cleanup package.json, update sass, fix router (css class issue)

This commit is contained in:
2026-03-04 22:55:56 -06:00
parent a798641848
commit 9fde302756
9 changed files with 3052 additions and 4926 deletions

7893
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -3,7 +3,6 @@
"version": "0.1.0", "version": "0.1.0",
"private": true, "private": true,
"dependencies": { "dependencies": {
"@babel/core": "^7.16.0",
"@fontsource/inter": "^5.2.8", "@fontsource/inter": "^5.2.8",
"@fontsource/neuton": "^5.2.7", "@fontsource/neuton": "^5.2.7",
"@fortawesome/fontawesome-svg-core": "^7.2.0", "@fortawesome/fontawesome-svg-core": "^7.2.0",
@@ -11,32 +10,10 @@
"@fortawesome/free-regular-svg-icons": "^7.2.0", "@fortawesome/free-regular-svg-icons": "^7.2.0",
"@fortawesome/free-solid-svg-icons": "^7.2.0", "@fortawesome/free-solid-svg-icons": "^7.2.0",
"@fortawesome/react-fontawesome": "^3.2.0", "@fortawesome/react-fontawesome": "^3.2.0",
"@pmmmwh/react-refresh-webpack-plugin": "^0.5.3",
"@react-three/fiber": "^9.5.0", "@react-three/fiber": "^9.5.0",
"browserslist": "^4.18.1",
"css-loader": "^6.5.1",
"css-minimizer-webpack-plugin": "^3.2.0",
"file-loader": "^6.2.0",
"html-webpack-plugin": "^5.5.0",
"jest": "^27.4.3",
"jest-resolve": "^27.4.2",
"jest-watch-typeahead": "^1.0.0",
"mini-css-extract-plugin": "^2.4.5",
"motion": "^12.34.3", "motion": "^12.34.3",
"postcss": "^8.4.4",
"postcss-loader": "^6.2.1",
"postcss-normalize": "^10.0.1",
"postcss-preset-env": "^7.0.1",
"react": "^19.2.4", "react": "^19.2.4",
"react-dev-utils": "^12.0.1",
"react-dom": "^19.2.4", "react-dom": "^19.2.4",
"react-refresh": "^0.11.0",
"resolve": "^1.20.0",
"resolve-url-loader": "^4.0.0",
"sass-loader": "^12.3.0",
"source-map-loader": "^3.0.0",
"style-loader": "^3.3.1",
"terser-webpack-plugin": "^5.2.5",
"three": "^0.183.2" "three": "^0.183.2"
}, },
"scripts": { "scripts": {
@@ -57,9 +34,11 @@
] ]
}, },
"devDependencies": { "devDependencies": {
"@babel/core": "^7.29.0",
"@babel/preset-env": "^7.29.0", "@babel/preset-env": "^7.29.0",
"@babel/preset-react": "^7.28.5", "@babel/preset-react": "^7.28.5",
"@babel/preset-typescript": "^7.28.5", "@babel/preset-typescript": "^7.28.5",
"@pmmmwh/react-refresh-webpack-plugin": "^0.6.2",
"@svgr/webpack": "^8.1.0", "@svgr/webpack": "^8.1.0",
"@testing-library/dom": "^10.4.1", "@testing-library/dom": "^10.4.1",
"@testing-library/jest-dom": "^6.9.1", "@testing-library/jest-dom": "^6.9.1",
@@ -72,8 +51,23 @@
"@types/three": "^0.183.1", "@types/three": "^0.183.1",
"babel-loader": "^10.0.0", "babel-loader": "^10.0.0",
"babel-preset-react-app": "^10.1.0", "babel-preset-react-app": "^10.1.0",
"browserslist": "^4.28.1",
"css-loader": "^7.1.4",
"css-minimizer-webpack-plugin": "^8.0.0",
"file-loader": "^6.2.0",
"fork-ts-checker-webpack-plugin": "^9.1.0", "fork-ts-checker-webpack-plugin": "^9.1.0",
"html-webpack-plugin": "^5.6.6",
"mini-css-extract-plugin": "^2.10.0",
"postcss": "^8.5.8",
"postcss-loader": "^8.2.1",
"postcss-normalize": "^13.0.1",
"postcss-preset-env": "^11.2.0",
"sass": "^1.97.3", "sass": "^1.97.3",
"sass-loader": "^16.0.7",
"sass-migrator": "^2.5.7",
"source-map-loader": "^5.0.0",
"style-loader": "^4.0.0",
"terser-webpack-plugin": "^5.3.17",
"ts-loader": "^9.5.4", "ts-loader": "^9.5.4",
"ts-node": "^10.9.2", "ts-node": "^10.9.2",
"typescript": "^5.9.3", "typescript": "^5.9.3",

View File

@@ -5,10 +5,8 @@ import japanese from "../img/IMG_20230531_000224_01.jpg";
import {PropsWithChildren} from "react"; import {PropsWithChildren} from "react";
export default function AboutPage() { export default function AboutPage() {
return <main> return <main className="about-page">
<div className="edge"> <div className="edge"/>
</div>
<section className="about-container"> <section className="about-container">
<img src={openingImage} alt="Tymur Arsentiev" className="self"/> <img src={openingImage} alt="Tymur Arsentiev" className="self"/>
<h1 className="title">Welcome to my blog and personal website!</h1> <h1 className="title">Welcome to my blog and personal website!</h1>
@@ -16,7 +14,7 @@ export default function AboutPage() {
For the longest time, I never had a personal website to show my skills. For the longest time, I never had a personal website to show my skills.
I'm a longtime coder, project after project, but have never considered making a place to share my thoughts. I'm a longtime coder, project after project, but have never considered making a place to share my thoughts.
After a while, I was inspired by my <ExternalLink href="https://medium.com/@tymur.arsent">Medium</ExternalLink> and After a while, I was inspired by my <ExternalLink href="https://medium.com/@tymur.arsent">Medium</ExternalLink> and
&nbsp;<ExternalLink href="https://substack.com/@timsnodocmartins">Substack</ExternalLink> account to begin journaling my thoughts on my own. &nbsp;<ExternalLink href="https://substack.com/@timsnodocmartins">Substack</ExternalLink> account to begin journaling my thoughts on my own.
</p> </p>
<p> <p>
I like to take pride in my uniqueness as a web developer. I like to take pride in my uniqueness as a web developer.
@@ -38,9 +36,7 @@ export default function AboutPage() {
My favorite thing about Ebay is that they have almost every clothing brand, typically at reduced prices due to use. My favorite thing about Ebay is that they have almost every clothing brand, typically at reduced prices due to use.
</p> </p>
</section> </section>
<div className="edge"> <div className="edge"/>
</div>
</main> </main>
} }

View File

@@ -1,6 +1,6 @@
@import "../nav/nav.scss"; @use "../nav/nav.scss";
main { .about-page {
color: white; color: white;
display: flex; display: flex;
justify-content: center; justify-content: center;
@@ -8,7 +8,7 @@ main {
.title { .title {
text-align: center; text-align: center;
margin: $padding; margin: nav.$padding;
} }
.self { .self {
@@ -17,7 +17,7 @@ main {
} }
.about-container { .about-container {
margin-top: 2 * $padding; margin-top: 2 * nav.$padding;
flex-shrink: 1; flex-shrink: 1;
max-width: 75%; max-width: 75%;
display: flex; display: flex;
@@ -30,7 +30,7 @@ main {
} }
p { p {
text-indent: 2 * $padding; text-indent: 2 * nav.$padding;
margin: 10px; margin: 10px;
max-width: 600px; max-width: 600px;
line-height: 40px; line-height: 40px;

View File

@@ -4,11 +4,7 @@ import './index.scss';
import {RouterProvider} from "./router/RouterContext"; import {RouterProvider} from "./router/RouterContext";
import {Route} from "./router/Route"; import {Route} from "./router/Route";
import "@fontsource/inter"; // Defaults to weight 400 import "@fontsource/inter"; // Defaults to weight 400
import "@fontsource/inter/400.css"; // Specify weight
import "@fontsource/inter/400-italic.css"; // Specify weight and style
import "@fontsource/neuton"; // Defaults to weight 400 import "@fontsource/neuton"; // Defaults to weight 400
import "@fontsource/neuton/400.css"; // Specify weight
import "@fontsource/neuton/400-italic.css"; // Specify weight and style
const Canvas = React.lazy(() => import("./index/Canvas")); const Canvas = React.lazy(() => import("./index/Canvas"));
const About = React.lazy(() => import("./about/AboutPage")); const About = React.lazy(() => import("./about/AboutPage"));
@@ -28,6 +24,9 @@ root.render(
<Route path="/about"> <Route path="/about">
<About/> <About/>
</Route> </Route>
<Route path="/articles">
<div>Test</div>
</Route>
</RouterProvider> </RouterProvider>
</React.StrictMode> </React.StrictMode>
); );

View File

@@ -9,7 +9,7 @@ import {Stars} from "./Stars";
export default function Canvas() { export default function Canvas() {
return ( return (
<main> <main className="canvas">
<ThreeCanvas gl={{antialias: true, alpha: true}} > <ThreeCanvas gl={{antialias: true, alpha: true}} >
<Sphere/> <Sphere/>
<Moon radius={8} color="pink" step={0.01}/> <Moon radius={8} color="pink" step={0.01}/>

View File

@@ -1,4 +1,4 @@
main { .canvas {
width: 100vw; width: 100vw;
height: 100vh; height: 100vh;
display: flex; display: flex;

View File

@@ -1,16 +1,16 @@
@import "./nav"; @use "./nav";
.menu { .menu {
position: absolute; position: absolute;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
background: $menu; background: nav.$menu;
z-index: 10; z-index: 10;
color: white; color: white;
width: 25%; width: 25%;
height: 100vh; height: 100vh;
div { div {
padding: $padding; padding: nav.$padding;
} }
} }

View File

@@ -5,12 +5,12 @@ import {useRouter} from "./RouterContext";
import {Path} from "./router"; import {Path} from "./router";
export function Link(props: {className?: string, href: Path, replace?: boolean } & PropsWithChildren) { export function Link(props: {className?: string, href: Path, replace?: boolean } & PropsWithChildren) {
const {children, className, href, replace} = props; const {children, className, href} = props;
const router = useRouter(); const router = useRouter();
function onClick(event: React.MouseEvent) { function onClick(event: React.MouseEvent) {
// event.preventDefault(); event.preventDefault();
if(replace) { if(window.location.pathname === href) {
router.replacePage(props.href); router.replacePage(props.href);
} else { } else {
router.pushPage(props.href); router.pushPage(props.href);