refactor: restructure

This commit is contained in:
Timofey Gelazoniya 2025-01-29 04:55:18 +03:00
parent 4a6aa94e39
commit dc3462a864
Signed by: zeldon
GPG Key ID: 047886915281DD2A
14 changed files with 148 additions and 128 deletions

View File

@ -1,17 +0,0 @@
FROM node:20-slim as build
WORKDIR /opt
COPY ./package.json /opt/package.json
COPY ./package-lock.json /opt/package-lock.json
RUN npm ci
COPY . .
RUN npm run build
FROM nginx:1.24-alpine-slim
COPY ./nginx/nginx.conf /etc/nginx/conf.d/default.conf
COPY --from=build /opt/dist /usr/share/nginx/html

14
config/Dockerfile Normal file
View File

@ -0,0 +1,14 @@
FROM node:24-slim as build
WORKDIR /opt
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build
FROM nginx:1.24-alpine-slim
COPY config/nginx.conf /etc/nginx/conf.d/default.conf
COPY --from=build /opt/dist /usr/share/nginx/html

View File

@ -6,7 +6,9 @@ services:
container_name: zeldon-site container_name: zeldon-site
build: build:
context: . context: .
dockerfile: Dockerfile dockerfile: config/Dockerfile
ports: ports:
- 3123:80 - "3123:80"
restart: unless-stopped restart: unless-stopped
volumes:
- ./config/nginx.conf:/etc/nginx/conf.d/default.conf:ro

View File

@ -1,48 +1,58 @@
<!DOCTYPE html> <!DOCTYPE html>
<html> <html lang="en">
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8" />
<meta http-equiv="Cache-Control" content="no-cache"> <meta http-equiv="Cache-Control" content="no-cache" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no"> <meta
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent"> name="viewport"
<meta name="apple-mobile-web-app-capable" content="yes"> content="width=device-width, initial-scale=1.0, user-scalable=no"
<meta name="mobile-web-app-capable" content="yes"> />
<meta
name="apple-mobile-web-app-status-bar-style"
content="black-translucent"
/>
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="mobile-web-app-capable" content="yes" />
<link rel="icon" href="favicon/favicon.ico" sizes="any"> <link rel="icon" href="favicon/favicon.ico" sizes="any" />
<link rel="icon" href="favicon/favicon.svg" type="image/svg+xml"> <link rel="icon" href="favicon/favicon.svg" type="image/svg+xml" />
<link rel="apple-touch-icon" href="favicon/apple-touch-icon.png"> <link rel="apple-touch-icon" href="favicon/apple-touch-icon.png" />
<title>zeldØƞ</title> <title>zeldØƞ</title>
<meta name="description" content="zeldon's website"> <meta name="description" content="zeldon's website" />
<meta property="og:type" content="website"> <meta property="og:type" content="website" />
<meta property="og:title" content="zeldØƞ"> <meta property="og:title" content="zeldØƞ" />
<meta property="og:description" content="zeldon's website"> <meta property="og:description" content="zeldon's website" />
<meta property="og:url" content="https://zeldon.ru"> <meta property="og:url" content="https://zeldon.ru" />
<meta property="og:image" content="ogimage.jpg"> <meta property="og:image" content="ogimage.jpg" />
<!-- analytics -->
<script async defer data-website-id="4ce8bee2-4633-4a5a-81e3-83f5cd9b7c8b"
src="https://analytics.zeldon.ru/umami.js"></script>
</head> </head>
<body> <body>
<div class="container"> <div class="container">
<div class="content"> <div class="content">
<div class="content-info"> <div class="content-info">
<h1 class="name perspective">TIMOFEY <br>GELAZONIYA</h1> <h1 class="name perspective">TIMOFEY <br />GELAZONIYA</h1>
<h4 class="greeting perspective"></h4> <h4 class="greeting perspective"></h4>
<h4 class="clock perspective"></h4> <h4 class="clock perspective"></h4>
</div> </div>
<div class="button-container perspective"> <div class="button-container perspective">
<button class="button button--hyperion" onclick="window.open('https://spotify.zeldon.ru', '_blank')" <button
type="button"> class="button button--hyperion"
onclick="window.open('https://spotify.zeldon.ru', '_blank')"
type="button"
>
<span class="button-inner"> <span class="button-inner">
<svg class="spotify-icon" height="30" width="30" viewBox="0 0 170 170"> <svg
class="spotify-icon"
height="30"
width="30"
viewBox="0 0 170 170"
>
<path <path
d="m83.996 0.277c-46.249 0-83.743 37.493-83.743 83.742 0 46.251 37.494 83.741 83.743 83.741 46.254 0 83.744-37.49 83.744-83.741 0-46.246-37.49-83.738-83.745-83.738l0.001-0.004zm38.404 120.78c-1.5 2.46-4.72 3.24-7.18 1.73-19.662-12.01-44.414-14.73-73.564-8.07-2.809 0.64-5.609-1.12-6.249-3.93-0.643-2.81 1.11-5.61 3.926-6.25 31.9-7.291 59.263-4.15 81.337 9.34 2.46 1.51 3.24 4.72 1.73 7.18zm10.25-22.805c-1.89 3.075-5.91 4.045-8.98 2.155-22.51-13.839-56.823-17.846-83.448-9.764-3.453 1.043-7.1-0.903-8.148-4.35-1.04-3.453 0.907-7.093 4.354-8.143 30.413-9.228 68.222-4.758 94.072 11.127 3.07 1.89 4.04 5.91 2.15 8.976v-0.001zm0.88-23.744c-26.99-16.031-71.52-17.505-97.289-9.684-4.138 1.255-8.514-1.081-9.768-5.219-1.254-4.14 1.08-8.513 5.221-9.771 29.581-8.98 78.756-7.245 109.83 11.202 3.73 2.209 4.95 7.016 2.74 10.733-2.2 3.722-7.02 4.949-10.73 2.739z" /> d="m83.996 0.277c-46.249 0-83.743 37.493-83.743 83.742 0 46.251 37.494 83.741 83.743 83.741 46.254 0 83.744-37.49 83.744-83.741 0-46.246-37.49-83.738-83.745-83.738l0.001-0.004zm38.404 120.78c-1.5 2.46-4.72 3.24-7.18 1.73-19.662-12.01-44.414-14.73-73.564-8.07-2.809 0.64-5.609-1.12-6.249-3.93-0.643-2.81 1.11-5.61 3.926-6.25 31.9-7.291 59.263-4.15 81.337 9.34 2.46 1.51 3.24 4.72 1.73 7.18zm10.25-22.805c-1.89 3.075-5.91 4.045-8.98 2.155-22.51-13.839-56.823-17.846-83.448-9.764-3.453 1.043-7.1-0.903-8.148-4.35-1.04-3.453 0.907-7.093 4.354-8.143 30.413-9.228 68.222-4.758 94.072 11.127 3.07 1.89 4.04 5.91 2.15 8.976v-0.001zm0.88-23.744c-26.99-16.031-71.52-17.505-97.289-9.684-4.138 1.255-8.514-1.081-9.768-5.219-1.254-4.14 1.08-8.513 5.221-9.771 29.581-8.98 78.756-7.245 109.83 11.202 3.73 2.209 4.95 7.016 2.74 10.733-2.2 3.722-7.02 4.949-10.73 2.739z"
/>
</svg> </svg>
<span> <span>
<span>Sign in with Spotify</span> <span>Sign in with Spotify</span>
@ -50,25 +60,37 @@
</span> </span>
</button> </button>
<div class="links-container"> <div class="links-container">
<a class="link" target="_blank" rel="noopener noreferrer" href="https://vk.com/xzeldon"> <a
<span class="link-text"> class="link"
vk target="_blank"
</span> rel="noopener noreferrer"
href="https://vk.com/xzeldon"
>
<span class="link-text"> vk </span>
</a> </a>
<a class="link" target="_blank" rel="noopener noreferrer" href="https://github.com/xzeldon"> <a
<span class="link-text"> class="link"
git target="_blank"
</span> rel="noopener noreferrer"
href="https://github.com/xzeldon"
>
<span class="link-text"> git </span>
</a> </a>
<a class="link" target="_blank" rel="noopener noreferrer" href="https://t.me/xzeldon"> <a
<span class="link-text"> class="link"
telegram target="_blank"
</span> rel="noopener noreferrer"
href="https://git.zeldon.ru"
>
<span class="link-text"> gitea </span>
</a> </a>
<a class="link" target="_blank" rel="noopener noreferrer" href="https://www.instagram.com/zeeeldon"> <a
<span class="link-text"> class="link"
instagram target="_blank"
</span> rel="noopener noreferrer"
href="https://t.me/xzeldon"
>
<span class="link-text"> telegram </span>
</a> </a>
</div> </div>
</div> </div>
@ -77,5 +99,4 @@
<canvas></canvas> <canvas></canvas>
<script type="module" src="./src/main.js"></script> <script type="module" src="./src/main.js"></script>
</body> </body>
</html> </html>

View File

@ -1,9 +0,0 @@
@keyframes fadein {
from {
opacity: 0;
}
to {
opacity: 1.0;
}
}

View File

@ -1,19 +0,0 @@
@font-face {
font-family: "Inter Var";
font-weight: 400 900;
font-display: swap;
font-style: normal;
src: url("/src/font/Inter.woff2") format("woff2");
}
html {
font-family: "Inter Var", sans-serif;
font-size: 17px;
box-sizing: border-box;
}
.greeting {
font-variation-settings: "wght" 400;
letter-spacing: 0rem;
line-height: 1.7rem;
}

View File

View File

@ -1,10 +1,10 @@
import "./css/style.css"; import "./styles/base.css";
import "./css/font.css"; import "./styles/typography.css";
import "./css/animation.css"; import "./styles/animations.css";
import "./css/button.css"; import "./styles/components.css";
import "./app"; import "./effects";
import { add3DRotationEffect, updateGreeting, updateTime } from "./app"; import { add3DRotationEffect, updateGreeting, updateTime } from "./effects";
import { importJsAsModule } from "./utils"; import { importJsAsModule } from "./utils";
const initialize = async () => { const initialize = async () => {

View File

@ -0,0 +1,9 @@
@keyframes fadein {
from {
opacity: 0;
}
to {
opacity: 1;
}
}

19
src/styles/typography.css Normal file
View File

@ -0,0 +1,19 @@
@font-face {
font-family: "Inter Var";
font-weight: 400 900;
font-display: swap;
font-style: normal;
src: url("/src/assets/Inter.woff2") format("woff2");
}
html {
font-family: "Inter Var", sans-serif;
font-size: 17px;
box-sizing: border-box;
}
.greeting {
font-variation-settings: "wght" 400;
letter-spacing: 0rem;
line-height: 1.7rem;
}