Initial commit
This commit is contained in:
commit
750943aaba
16 changed files with 318 additions and 0 deletions
3
.editorconfig
Normal file
3
.editorconfig
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
[*.{html,css}]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
/output.css
|
||||
/.envrc
|
||||
2
Dockerfile
Normal file
2
Dockerfile
Normal file
|
|
@ -0,0 +1,2 @@
|
|||
FROM caddy:2.10.0-alpine
|
||||
COPY . /usr/share/caddy/
|
||||
15
LICENSE
Normal file
15
LICENSE
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
BSD Zero Clause License
|
||||
|
||||
Copyright (c) 2026 Artyom Belousov
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for any
|
||||
purpose with or without fee is hereby granted.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
||||
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
||||
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
||||
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
||||
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||
PERFORMANCE OF THIS SOFTWARE.
|
||||
|
||||
BIN
assets/avatar.png
Normal file
BIN
assets/avatar.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 254 KiB |
1
assets/codeberg.svg
Normal file
1
assets/codeberg.svg
Normal file
|
|
@ -0,0 +1 @@
|
|||
<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path fill='#cba6f7' d='M12 1A11 11 0 0 0 1 12a11 11 0 0 0 1.7 6.4L12 6l9.3 12.4A11 11 0 0 0 23 12 11 11 0 0 0 12 1Z'/><path fill='#555' d='M21.3 18.4 12 6l4.4 16.8a11 11 0 0 0 4.9-4.4Z' /></svg>
|
||||
|
After Width: | Height: | Size: 256 B |
BIN
assets/favicon.png
Normal file
BIN
assets/favicon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 17 KiB |
2
assets/habr.svg
Normal file
2
assets/habr.svg
Normal file
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 16 KiB |
11
assets/linkedin.svg
Normal file
11
assets/linkedin.svg
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
|
||||
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<svg fill="#cba6f7" height="800px" width="800px" version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
viewBox="-143 145 512 512" xml:space="preserve">
|
||||
<path d="M113,145c-141.4,0-256,114.6-256,256s114.6,256,256,256s256-114.6,256-256S254.4,145,113,145z M41.4,508.1H-8.5V348.4h49.9
|
||||
V508.1z M15.1,328.4h-0.4c-18.1,0-29.8-12.2-29.8-27.7c0-15.8,12.1-27.7,30.5-27.7c18.4,0,29.7,11.9,30.1,27.7
|
||||
C45.6,316.1,33.9,328.4,15.1,328.4z M241,508.1h-56.6v-82.6c0-21.6-8.8-36.4-28.3-36.4c-14.9,0-23.2,10-27,19.6
|
||||
c-1.4,3.4-1.2,8.2-1.2,13.1v86.3H71.8c0,0,0.7-146.4,0-159.7h56.1v25.1c3.3-11,21.2-26.6,49.8-26.6c35.5,0,63.3,23,63.3,72.4V508.1z
|
||||
"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 824 B |
4
assets/telegram.svg
Normal file
4
assets/telegram.svg
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<svg width="800px" height="800px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12ZM12.3583 9.38244C11.3857 9.787 9.44177 10.6243 6.52657 11.8944C6.05318 12.0827 5.8052 12.2669 5.78263 12.4469C5.74448 12.7513 6.12559 12.8711 6.64455 13.0343C6.71515 13.0565 6.78829 13.0795 6.86327 13.1038C7.37385 13.2698 8.06068 13.464 8.41773 13.4717C8.74161 13.4787 9.1031 13.3452 9.50219 13.0711C12.226 11.2325 13.632 10.3032 13.7202 10.2831C13.7825 10.269 13.8688 10.2512 13.9273 10.3032C13.9858 10.3552 13.98 10.4536 13.9738 10.48C13.9361 10.641 12.4401 12.0318 11.6659 12.7515C11.4246 12.9759 11.2534 13.135 11.2184 13.1714C11.14 13.2528 11.0601 13.3298 10.9833 13.4038C10.509 13.8611 10.1532 14.204 11.003 14.764C11.4114 15.0331 11.7381 15.2556 12.0641 15.4776C12.4201 15.7201 12.7752 15.9619 13.2347 16.2631C13.3517 16.3398 13.4635 16.4195 13.5724 16.4971C13.9867 16.7925 14.3589 17.0579 14.8188 17.0155C15.086 16.991 15.362 16.7397 15.5022 15.9903C15.8335 14.2193 16.4847 10.382 16.6352 8.80081C16.6484 8.66228 16.6318 8.48498 16.6185 8.40715C16.6051 8.32932 16.5773 8.21842 16.4761 8.13633C16.3563 8.03911 16.1714 8.01861 16.0886 8.02C15.7125 8.0267 15.1354 8.22735 12.3583 9.38244Z" fill="#cba6f7"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.5 KiB |
6
compose.yaml
Normal file
6
compose.yaml
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
services:
|
||||
app:
|
||||
restart: unless-stopped
|
||||
build: .
|
||||
ports:
|
||||
- 127.0.0.1:1234:80
|
||||
16
devbox.json
Normal file
16
devbox.json
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
"$schema": "https://raw.githubusercontent.com/jetify-com/devbox/0.16.0/.schema/devbox.schema.json",
|
||||
"packages": [
|
||||
"live-server@latest",
|
||||
],
|
||||
"shell": {
|
||||
"init_hook": [
|
||||
"echo 'Welcome to devbox!' > /dev/null"
|
||||
],
|
||||
"scripts": {
|
||||
"test": [
|
||||
"echo \"Error: no test specified\" && exit 1"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
57
devbox.lock
Normal file
57
devbox.lock
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
{
|
||||
"lockfile_version": "1",
|
||||
"packages": {
|
||||
"github:NixOS/nixpkgs/nixpkgs-unstable": {
|
||||
"last_modified": "2026-02-08T07:51:33Z",
|
||||
"resolved": "github:NixOS/nixpkgs/fef9403a3e4d31b0a23f0bacebbec52c248fbb51?lastModified=1770537093&narHash=sha256-pF1quXG5wsgtyuPOHcLfYg%2Fft%2FQMr8NnX0i6tW2187s%3D"
|
||||
},
|
||||
"live-server@latest": {
|
||||
"last_modified": "2026-01-23T17:20:52Z",
|
||||
"resolved": "github:NixOS/nixpkgs/a1bab9e494f5f4939442a57a58d0449a109593fe#live-server",
|
||||
"source": "devbox-search",
|
||||
"version": "0.11.0",
|
||||
"systems": {
|
||||
"aarch64-darwin": {
|
||||
"outputs": [
|
||||
{
|
||||
"name": "out",
|
||||
"path": "/nix/store/45j19v60l7ms9qd4nmx9clgcsc4153v8-live-server-0.11.0",
|
||||
"default": true
|
||||
}
|
||||
],
|
||||
"store_path": "/nix/store/45j19v60l7ms9qd4nmx9clgcsc4153v8-live-server-0.11.0"
|
||||
},
|
||||
"aarch64-linux": {
|
||||
"outputs": [
|
||||
{
|
||||
"name": "out",
|
||||
"path": "/nix/store/zycqx30blgv023nmnzg7il6mhwrsf3i3-live-server-0.11.0",
|
||||
"default": true
|
||||
}
|
||||
],
|
||||
"store_path": "/nix/store/zycqx30blgv023nmnzg7il6mhwrsf3i3-live-server-0.11.0"
|
||||
},
|
||||
"x86_64-darwin": {
|
||||
"outputs": [
|
||||
{
|
||||
"name": "out",
|
||||
"path": "/nix/store/m4k0kxa4134digwmlrfsz01lqfrv9yhh-live-server-0.11.0",
|
||||
"default": true
|
||||
}
|
||||
],
|
||||
"store_path": "/nix/store/m4k0kxa4134digwmlrfsz01lqfrv9yhh-live-server-0.11.0"
|
||||
},
|
||||
"x86_64-linux": {
|
||||
"outputs": [
|
||||
{
|
||||
"name": "out",
|
||||
"path": "/nix/store/vk1ds5i7dr51gx8iiwvwykn9b1avgd5j-live-server-0.11.0",
|
||||
"default": true
|
||||
}
|
||||
],
|
||||
"store_path": "/nix/store/vk1ds5i7dr51gx8iiwvwykn9b1avgd5j-live-server-0.11.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
47
index.html
Normal file
47
index.html
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
<!doctype html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Артём Белоусов | Бэкенд разработчик</title>
|
||||
<link rel="icon" href="./assets/favicon.png" type="image/png">
|
||||
<link href="./reset.css" rel="stylesheet">
|
||||
<link href="./input.css" rel="stylesheet">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="page-wrapper">
|
||||
<div class="avatar-wrapper">
|
||||
<img src="assets/avatar.png" class="avatar" />
|
||||
</div>
|
||||
<div class="title-wrapper">
|
||||
Артём Белоусов
|
||||
</div>
|
||||
<div class="subtitle-wrapper">
|
||||
Бэкенд разработчик
|
||||
</div>
|
||||
<div class="icons-wrapper">
|
||||
<div class="icon-wrapper">
|
||||
<a href="https://codeberg.org/flygrounder">
|
||||
<img src="assets/codeberg.svg" class="icon" />
|
||||
</a>
|
||||
</div>
|
||||
<div class="icon-wrapper">
|
||||
<a href="https://t.me/flygrounder">
|
||||
<img src="assets/telegram.svg" class="icon" />
|
||||
</a>
|
||||
</div>
|
||||
<div class="icon-wrapper">
|
||||
<a href="https://habr.com/ru/users/flygrounder/">
|
||||
<img src="assets/habr.svg" class="icon" />
|
||||
</a>
|
||||
</div>
|
||||
<div class="icon-wrapper">
|
||||
<a href="https://www.linkedin.com/in/flygrounder/">
|
||||
<img src="assets/linkedin.svg" class="icon" />
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
98
input.css
Normal file
98
input.css
Normal file
|
|
@ -0,0 +1,98 @@
|
|||
:root {
|
||||
--base: rgb(30, 30, 46);
|
||||
--text: rgb(205, 214, 244);
|
||||
--mauve: rgb(203, 166, 247);
|
||||
}
|
||||
|
||||
* {
|
||||
font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
|
||||
background-color: var(--base);
|
||||
color: var(--text);
|
||||
}
|
||||
|
||||
.page-wrapper {
|
||||
display: grid;
|
||||
place-content: center;
|
||||
height: 100vh;
|
||||
}
|
||||
|
||||
.avatar {
|
||||
border-radius: 50%;
|
||||
object-fit: cover;
|
||||
border-style: solid;
|
||||
border-color: var(--mauve);
|
||||
height: 30rem;
|
||||
width: 30rem;
|
||||
object-position: 0 -4.5rem;
|
||||
border-width: 0.75rem;
|
||||
}
|
||||
|
||||
.avatar-wrapper {
|
||||
display: grid;
|
||||
place-content: center;
|
||||
}
|
||||
|
||||
.title-wrapper {
|
||||
display: grid;
|
||||
place-content: center;
|
||||
font-weight: bold;
|
||||
font-size: 4.5rem;
|
||||
margin-top: 3rem;
|
||||
}
|
||||
|
||||
.subtitle-wrapper {
|
||||
display: grid;
|
||||
place-content: center;
|
||||
font-size: 3.75rem;
|
||||
}
|
||||
|
||||
.icons-wrapper {
|
||||
display: flex;
|
||||
place-content: center;
|
||||
grid-template-columns: repeat(4, 1fr);
|
||||
margin-top: 3rem;
|
||||
}
|
||||
|
||||
.icon-wrapper {
|
||||
margin-right: 1.25rem;
|
||||
}
|
||||
|
||||
.icon-wrapper:last-child {
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
.icon {
|
||||
height: 9rem;
|
||||
width: 9rem;
|
||||
}
|
||||
|
||||
@media (min-width:1024px) {
|
||||
.avatar {
|
||||
height: 10rem;
|
||||
width: 10rem;
|
||||
object-position: 0 -1.5rem;
|
||||
border-width: 0.25rem;
|
||||
}
|
||||
|
||||
.title-wrapper {
|
||||
font-size: 1.5rem;
|
||||
margin-top: 1rem;
|
||||
}
|
||||
|
||||
.subtitle-wrapper {
|
||||
font-size: 1.25rem;
|
||||
}
|
||||
|
||||
.icon-wrapper {
|
||||
margin-right: 1rem;
|
||||
}
|
||||
|
||||
.icons-wrapper {
|
||||
margin-top: 1rem;
|
||||
}
|
||||
|
||||
.icon {
|
||||
height: 3rem;
|
||||
width: 3rem;
|
||||
}
|
||||
}
|
||||
54
reset.css
Normal file
54
reset.css
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
/* 1. Use a more-intuitive box-sizing model */
|
||||
*, *::before, *::after {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
/* 2. Remove default margin */
|
||||
*:not(dialog) {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* 3. Enable keyword animations */
|
||||
@media (prefers-reduced-motion: no-preference) {
|
||||
html {
|
||||
interpolate-size: allow-keywords;
|
||||
}
|
||||
}
|
||||
|
||||
body {
|
||||
/* 4. Add accessible line-height */
|
||||
line-height: 1.5;
|
||||
/* 5. Improve text rendering */
|
||||
-webkit-font-smoothing: antialiased;
|
||||
}
|
||||
|
||||
/* 6. Improve media defaults */
|
||||
img, picture, video, canvas, svg {
|
||||
display: block;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
/* 7. Inherit fonts for form controls */
|
||||
input, button, textarea, select {
|
||||
font: inherit;
|
||||
}
|
||||
|
||||
/* 8. Avoid text overflows */
|
||||
p, h1, h2, h3, h4, h5, h6 {
|
||||
overflow-wrap: break-word;
|
||||
}
|
||||
|
||||
/* 9. Improve line wrapping */
|
||||
p {
|
||||
text-wrap: pretty;
|
||||
}
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
text-wrap: balance;
|
||||
}
|
||||
|
||||
/*
|
||||
10. Create a root stacking context
|
||||
*/
|
||||
#root, #__next {
|
||||
isolation: isolate;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue