the essentials

This commit is contained in:
Chase Welsh 2022-11-21 20:42:53 -07:00
commit ba0fd3bf66
18 changed files with 33213 additions and 0 deletions

23
.gitignore vendored Normal file
View file

@ -0,0 +1,23 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
# dependencies
/node_modules
/.pnp
.pnp.js
# testing
/coverage
# production
/build
# misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local
npm-debug.log*
yarn-debug.log*
yarn-error.log*

4
README.md Normal file
View file

@ -0,0 +1,4 @@
# F53's Personal Site
I orignally made my site in pure JS HTML and CSS while I was still learning the basics.
This is a refactor to react so I can make stuff nice

32963
package-lock.json generated Normal file

File diff suppressed because it is too large Load diff

48
package.json Normal file
View file

@ -0,0 +1,48 @@
{
"name": "personal-site",
"version": "0.1.0",
"private": true,
"dependencies": {
"@testing-library/jest-dom": "^5.16.5",
"@testing-library/react": "^13.4.0",
"@testing-library/user-event": "^13.5.0",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-router-dom": "^6.4.3",
"react-scripts": "5.0.1",
"react-tsparticles": "^2.5.3",
"sass": "^1.56.1",
"tsparticles": "^2.5.3",
"web-vitals": "^2.1.4"
},
"devDependencies": {
"@svgr/webpack": "^6.2.1"
},
"overrides": {
"@svgr/webpack": "$@svgr/webpack"
},
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"eslintConfig": {
"extends": [
"react-app",
"react-app/jest"
]
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
}
}

BIN
public/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 177 KiB

20
public/index.html Normal file
View file

@ -0,0 +1,20 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#000000" />
<meta
name="description"
content="Web site created using create-react-app"
/>
<link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
<title>React App</title>
</head>
<body style="background-color: #1c1c1c;">
<noscript>You need to enable JavaScript to run this app.</noscript>
<div id="root"></div>
</body>
</html>

BIN
public/logo192.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

BIN
public/logo512.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

25
public/manifest.json Normal file
View file

@ -0,0 +1,25 @@
{
"short_name": "F53",
"name": "F53's Home Page",
"icons": [
{
"src": "favicon.ico",
"sizes": "64x64 32x32 24x24 16x16",
"type": "image/x-icon"
},
{
"src": "logo192.png",
"type": "image/png",
"sizes": "192x192"
},
{
"src": "logo512.png",
"type": "image/png",
"sizes": "512x512"
}
],
"start_url": ".",
"display": "standalone",
"theme_color": "#008B8B",
"background_color": "#1c1c1c"
}

24
public/particles.json Normal file
View file

@ -0,0 +1,24 @@
{
"particles": {
"number": {
"value": 50,
"density": {
"enable": true,
"value_area": 800
}
},
"line_linked": {
"enable": true,
"distance": 250,
"color": "#ffffff",
"opacity": 1,
"width": 2
},
"move": {
"enable": true,
"random": true,
"out_mode": "out"
}
},
"retina_detect": true
}

3
public/robots.txt Normal file
View file

@ -0,0 +1,3 @@
# https://www.robotstxt.org/robotstxt.html
User-agent: *
Disallow:

9
src/App.js Normal file
View file

@ -0,0 +1,9 @@
import { useCallback } from "react";
import Particles from "react-tsparticles";
import { loadFull } from "tsparticles";
export default function App() {
return <div id="app" className="col centered">
<Particles id="tsparticles" url="particles.json"/>
</div>
}

3
src/components/Spacer.js Normal file
View file

@ -0,0 +1,3 @@
export default function Spacer() {
return <div className="spacer"/>
}

3
src/elements/Footer.js Normal file
View file

@ -0,0 +1,3 @@
export default function Footer() {
}

3
src/elements/Header.js Normal file
View file

@ -0,0 +1,3 @@
export default function Header() {
}

15
src/index.js Normal file
View file

@ -0,0 +1,15 @@
import React from 'react';
import ReactDOM from 'react-dom/client';
import App from './App';
import { BrowserRouter } from "react-router-dom";
import './styles/index.scss';
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
<React.StrictMode>
<BrowserRouter>
<App />
</BrowserRouter>
</React.StrictMode>
);

5
src/pages/Home.js Normal file
View file

@ -0,0 +1,5 @@
export default function Home() {
return <div>
</div>
}

65
src/styles/index.scss Normal file
View file

@ -0,0 +1,65 @@
// Assign to parents for changing direction
.row { display: flex; flex-direction: row; }
.col { display: flex; flex-direction: column; }
// Assign to children of row/col to center
.row.centerChildren > *, .row > .centered { align-self: center; margin: auto 0; }
.col.centerChildren > *, .col > .centered { align-self: center; margin: 0 auto; }
// Assign to empty child div to aesthetically fill space
.spacer { flex:1; }
// Font
@import url('https://fonts.googleapis.com/css2?family=Fredoka+One&display=swap');
* {
margin: 0;
font-family: 'Fredoka One', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
// Custom component styling
.labeled_input > label { margin-right: 1rem; }
.invisible { opacity: 0; cursor: default; }
.link { color: aqua; text-decoration: underline; }
.error { color: #F00; }
.panel {
background-color: var(--bkg-elev1);
padding: 1rem;
border-radius: 1rem;
box-shadow: 0 0 0.5rem 0.1rem rgba(0, 0, 0, 0.237);
}
// HTML default component styling
h1, h2, h3, h4, h5, p, button, span, label, ::marker, svg, ul, a, input, textarea {
margin: 0;
text-decoration: none;
color: var(--txt-color);
}
button, input, textarea {
border: none;
resize: none;
padding: 0.25rem 0.5rem;
border-radius: 100rem;
background-color: var(--bkg-elev1);
&:hover, &:active { background-color: var(--bkg-elev2) }
&.elev2 { &:hover, &:active { background-color: var(--bkg-elev3) } }
&.elev3 { &:hover, &:active { background-color: var(--bkg-elev4) } }
}
button {
scale: 0.95;
&:hover { scale: 1 }
&:active { scale: 0.95; }
}
// Variables
:root {
--bkg-color: #1c1c1c;
--bkg-elev1: rgba(255,255,255, 0.05);
--bkg-elev2: rgba(255,255,255, 0.10);
--bkg-elev3: rgba(255,255,255, 0.15);
--bkg-elev4: rgba(255,255,255, 0.20);
--txt-color: #ffffff;
}