rewrite; init commit

This commit is contained in:
Jill 2022-11-20 07:20:29 +03:00
commit 15c7679c39
37 changed files with 1630 additions and 0 deletions

11
.gitignore vendored Normal file
View File

@ -0,0 +1,11 @@
.DS_Store
node_modules
/build
/.svelte-kit
/package
.env
.env.*
!.env.example
vite.config.js.timestamp-*
vite.config.ts.timestamp-*
/static/videos/*

1
.npmrc Normal file
View File

@ -0,0 +1 @@
engine-strict=true

38
README.md Normal file
View File

@ -0,0 +1,38 @@
# create-svelte
Everything you need to build a Svelte project, powered by [`create-svelte`](https://github.com/sveltejs/kit/tree/master/packages/create-svelte).
## Creating a project
If you're seeing this, you've probably already done this step. Congrats!
```bash
# create a new project in the current directory
npm create svelte@latest
# create a new project in my-app
npm create svelte@latest my-app
```
## Developing
Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server:
```bash
npm run dev
# or start the server and open the app in a new browser tab
npm run dev -- --open
```
## Building
To create a production version of your app:
```bash
npm run build
```
You can preview the production build with `npm run preview`.
> To deploy your app, you may need to install an [adapter](https://kit.svelte.dev/docs/adapters) for your target environment.

26
package.json Normal file
View File

@ -0,0 +1,26 @@
{
"name": "dark-firepit.cloud",
"version": "0.0.1",
"private": true,
"scripts": {
"dev": "vite dev",
"build": "vite build",
"preview": "vite preview"
},
"devDependencies": {
"@sveltejs/adapter-auto": "next",
"@sveltejs/kit": "next",
"svelte": "^3.44.0",
"vite": "^3.1.0"
},
"type": "module",
"dependencies": {
"@fontsource/noto-emoji": "^4.5.5",
"@fontsource/roboto": "^4.5.8",
"@sveltejs/adapter-node": "1.0.0-next.100",
"@sveltejs/adapter-static": "1.0.0-next.48",
"modern-normalize": "^1.1.0",
"roboto-fontface": "^0.10.0",
"tippy.js": "^6.3.7"
}
}

771
pnpm-lock.yaml Normal file
View File

@ -0,0 +1,771 @@
lockfileVersion: 5.4
specifiers:
'@fontsource/noto-emoji': ^4.5.5
'@fontsource/roboto': ^4.5.8
'@sveltejs/adapter-auto': next
'@sveltejs/adapter-node': 1.0.0-next.100
'@sveltejs/adapter-static': 1.0.0-next.48
'@sveltejs/kit': next
modern-normalize: ^1.1.0
roboto-fontface: ^0.10.0
svelte: ^3.44.0
tippy.js: ^6.3.7
vite: ^3.1.0
dependencies:
'@fontsource/noto-emoji': 4.5.5
'@fontsource/roboto': 4.5.8
'@sveltejs/adapter-node': 1.0.0-next.100
'@sveltejs/adapter-static': 1.0.0-next.48
modern-normalize: 1.1.0
roboto-fontface: 0.10.0
tippy.js: 6.3.7
devDependencies:
'@sveltejs/adapter-auto': 1.0.0-next.88
'@sveltejs/kit': 1.0.0-next.553_svelte@3.53.1+vite@3.2.4
svelte: 3.53.1
vite: 3.2.4
packages:
/@esbuild/android-arm/0.15.14:
resolution: {integrity: sha512-+Rb20XXxRGisNu2WmNKk+scpanb7nL5yhuI1KR9wQFiC43ddPj/V1fmNyzlFC9bKiG4mYzxW7egtoHVcynr+OA==}
engines: {node: '>=12'}
cpu: [arm]
os: [android]
requiresBuild: true
dev: true
optional: true
/@esbuild/linux-loong64/0.15.14:
resolution: {integrity: sha512-eQi9rosGNVQFJyJWV0HCA5WZae/qWIQME7s8/j8DMvnylfBv62Pbu+zJ2eUDqNf2O4u3WB+OEXyfkpBoe194sg==}
engines: {node: '>=12'}
cpu: [loong64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/@fontsource/noto-emoji/4.5.5:
resolution: {integrity: sha512-bpjjx0ZqLDaP3G+g1plgmhgmS749B2ZKCrq5zqnIX8YNL8ZSOcySMAYQVGgNKv4uoq7ovjSlL5a9gS/GpAcfRA==}
dev: false
/@fontsource/roboto/4.5.8:
resolution: {integrity: sha512-CnD7zLItIzt86q4Sj3kZUiLcBk1dSk81qcqgMGaZe7SQ1P8hFNxhMl5AZthK1zrDM5m74VVhaOpuMGIL4gagaA==}
dev: false
/@polka/url/1.0.0-next.21:
resolution: {integrity: sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==}
dev: true
/@popperjs/core/2.11.6:
resolution: {integrity: sha512-50/17A98tWUfQ176raKiOGXuYpLyyVMkxxG6oylzL3BPOlA6ADGdK7EYunSa4I064xerltq9TGXs8HmOk5E+vw==}
dev: false
/@rollup/plugin-commonjs/23.0.2_rollup@2.79.1:
resolution: {integrity: sha512-e9ThuiRf93YlVxc4qNIurvv+Hp9dnD+4PjOqQs5vAYfcZ3+AXSrcdzXnVjWxcGQOa6KGJFcRZyUI3ktWLavFjg==}
engines: {node: '>=14.0.0'}
peerDependencies:
rollup: ^2.68.0||^3.0.0
peerDependenciesMeta:
rollup:
optional: true
dependencies:
'@rollup/pluginutils': 5.0.2_rollup@2.79.1
commondir: 1.0.1
estree-walker: 2.0.2
glob: 8.0.3
is-reference: 1.2.1
magic-string: 0.26.7
rollup: 2.79.1
dev: false
/@rollup/plugin-json/5.0.1_rollup@2.79.1:
resolution: {integrity: sha512-QCwhZZLvM8nRcTHyR1vOgyTMiAnjiNj1ebD/BMRvbO1oc/z14lZH6PfxXeegee2B6mky/u9fia4fxRM4TqrUaw==}
engines: {node: '>=14.0.0'}
peerDependencies:
rollup: ^1.20.0||^2.0.0||^3.0.0
peerDependenciesMeta:
rollup:
optional: true
dependencies:
'@rollup/pluginutils': 5.0.2_rollup@2.79.1
rollup: 2.79.1
dev: false
/@rollup/plugin-node-resolve/15.0.1_rollup@2.79.1:
resolution: {integrity: sha512-ReY88T7JhJjeRVbfCyNj+NXAG3IIsVMsX9b5/9jC98dRP8/yxlZdz7mHZbHk5zHr24wZZICS5AcXsFZAXYUQEg==}
engines: {node: '>=14.0.0'}
peerDependencies:
rollup: ^2.78.0||^3.0.0
peerDependenciesMeta:
rollup:
optional: true
dependencies:
'@rollup/pluginutils': 5.0.2_rollup@2.79.1
'@types/resolve': 1.20.2
deepmerge: 4.2.2
is-builtin-module: 3.2.0
is-module: 1.0.0
resolve: 1.22.1
rollup: 2.79.1
dev: false
/@rollup/pluginutils/5.0.2_rollup@2.79.1:
resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==}
engines: {node: '>=14.0.0'}
peerDependencies:
rollup: ^1.20.0||^2.0.0||^3.0.0
peerDependenciesMeta:
rollup:
optional: true
dependencies:
'@types/estree': 1.0.0
estree-walker: 2.0.2
picomatch: 2.3.1
rollup: 2.79.1
dev: false
/@sveltejs/adapter-auto/1.0.0-next.88:
resolution: {integrity: sha512-WcbELnu0Dz/72T1gbhDHxmNevVMEnQeNVi2IYrEj/uEKSMet4LOIrPv3DAAl8NETgBfzNJbMQpE7r9yL67CMTA==}
dependencies:
import-meta-resolve: 2.1.0
dev: true
/@sveltejs/adapter-node/1.0.0-next.100:
resolution: {integrity: sha512-XtyweoRcrnD3T/hkqv4XAlhU24VM6/QiUqR2mfs7I3Ji/KrBKWSM2GCpSptnfk3mELK193sJ0T4m6Z3x8uf47w==}
dependencies:
'@rollup/plugin-commonjs': 23.0.2_rollup@2.79.1
'@rollup/plugin-json': 5.0.1_rollup@2.79.1
'@rollup/plugin-node-resolve': 15.0.1_rollup@2.79.1
rollup: 2.79.1
dev: false
/@sveltejs/adapter-static/1.0.0-next.48:
resolution: {integrity: sha512-Z5Z+QZOav6D0KDeU3ReksGERJg/sX1k5OKWWXyQ11OwGErEEwSXHYRUyjaBmZEPeGzpVVGwwMUK8YWJlG/MKeA==}
dev: false
/@sveltejs/kit/1.0.0-next.553_svelte@3.53.1+vite@3.2.4:
resolution: {integrity: sha512-6gUPzmry+j/0uFJnGAJNru3lUpGY12We1Vsom5nDeRaG/Cs2wCwK8gMO2B5taZsHmryIB8zA+v0QCcu5kClmWA==}
engines: {node: '>=16.14'}
hasBin: true
requiresBuild: true
peerDependencies:
svelte: ^3.44.0
vite: ^3.2.0
dependencies:
'@sveltejs/vite-plugin-svelte': 1.2.0_svelte@3.53.1+vite@3.2.4
'@types/cookie': 0.5.1
cookie: 0.5.0
devalue: 4.2.0
kleur: 4.1.5
magic-string: 0.26.7
mime: 3.0.0
sade: 1.8.1
set-cookie-parser: 2.5.1
sirv: 2.0.2
svelte: 3.53.1
tiny-glob: 0.2.9
undici: 5.12.0
vite: 3.2.4
transitivePeerDependencies:
- diff-match-patch
- supports-color
dev: true
/@sveltejs/vite-plugin-svelte/1.2.0_svelte@3.53.1+vite@3.2.4:
resolution: {integrity: sha512-DT2oUkWAloH1tO7X5cQ4uDxQofaIS76skyFMElKtoqT6HJao+D82LI5i+0jPaSSmO7ex3Pa6jGYMlWy9ZJ1cdQ==}
engines: {node: ^14.18.0 || >= 16}
peerDependencies:
diff-match-patch: ^1.0.5
svelte: ^3.44.0
vite: ^3.0.0
peerDependenciesMeta:
diff-match-patch:
optional: true
dependencies:
debug: 4.3.4
deepmerge: 4.2.2
kleur: 4.1.5
magic-string: 0.26.7
svelte: 3.53.1
svelte-hmr: 0.15.1_svelte@3.53.1
vite: 3.2.4
vitefu: 0.2.1_vite@3.2.4
transitivePeerDependencies:
- supports-color
dev: true
/@types/cookie/0.5.1:
resolution: {integrity: sha512-COUnqfB2+ckwXXSFInsFdOAWQzCCx+a5hq2ruyj+Vjund94RJQd4LG2u9hnvJrTgunKAaax7ancBYlDrNYxA0g==}
dev: true
/@types/estree/1.0.0:
resolution: {integrity: sha512-WulqXMDUTYAXCjZnk6JtIHPigp55cVtDgDrO2gHRwhyJto21+1zbVCtOYB2L1F9w4qCQ0rOGWBnBe0FNTiEJIQ==}
dev: false
/@types/resolve/1.20.2:
resolution: {integrity: sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q==}
dev: false
/balanced-match/1.0.2:
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
dev: false
/brace-expansion/2.0.1:
resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
dependencies:
balanced-match: 1.0.2
dev: false
/builtin-modules/3.3.0:
resolution: {integrity: sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==}
engines: {node: '>=6'}
dev: false
/busboy/1.6.0:
resolution: {integrity: sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==}
engines: {node: '>=10.16.0'}
dependencies:
streamsearch: 1.1.0
dev: true
/commondir/1.0.1:
resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==}
dev: false
/cookie/0.5.0:
resolution: {integrity: sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==}
engines: {node: '>= 0.6'}
dev: true
/debug/4.3.4:
resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
engines: {node: '>=6.0'}
peerDependencies:
supports-color: '*'
peerDependenciesMeta:
supports-color:
optional: true
dependencies:
ms: 2.1.2
dev: true
/deepmerge/4.2.2:
resolution: {integrity: sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==}
engines: {node: '>=0.10.0'}
/devalue/4.2.0:
resolution: {integrity: sha512-mbjoAaCL2qogBKgeFxFPOXAUsZchircF+B/79LD4sHH0+NHfYm8gZpQrskKDn5gENGt35+5OI1GUF7hLVnkPDw==}
dev: true
/esbuild-android-64/0.15.14:
resolution: {integrity: sha512-HuilVIb4rk9abT4U6bcFdU35UHOzcWVGLSjEmC58OVr96q5UiRqzDtWjPlCMugjhgUGKEs8Zf4ueIvYbOStbIg==}
engines: {node: '>=12'}
cpu: [x64]
os: [android]
requiresBuild: true
dev: true
optional: true
/esbuild-android-arm64/0.15.14:
resolution: {integrity: sha512-/QnxRVxsR2Vtf3XottAHj7hENAMW2wCs6S+OZcAbc/8nlhbAL/bCQRCVD78VtI5mdwqWkVi3wMqM94kScQCgqg==}
engines: {node: '>=12'}
cpu: [arm64]
os: [android]
requiresBuild: true
dev: true
optional: true
/esbuild-darwin-64/0.15.14:
resolution: {integrity: sha512-ToNuf1uifu8hhwWvoZJGCdLIX/1zpo8cOGnT0XAhDQXiKOKYaotVNx7pOVB1f+wHoWwTLInrOmh3EmA7Fd+8Vg==}
engines: {node: '>=12'}
cpu: [x64]
os: [darwin]
requiresBuild: true
dev: true
optional: true
/esbuild-darwin-arm64/0.15.14:
resolution: {integrity: sha512-KgGP+y77GszfYJgceO0Wi/PiRtYo5y2Xo9rhBUpxTPaBgWDJ14gqYN0+NMbu+qC2fykxXaipHxN4Scaj9tUS1A==}
engines: {node: '>=12'}
cpu: [arm64]
os: [darwin]
requiresBuild: true
dev: true
optional: true
/esbuild-freebsd-64/0.15.14:
resolution: {integrity: sha512-xr0E2n5lyWw3uFSwwUXHc0EcaBDtsal/iIfLioflHdhAe10KSctV978Te7YsfnsMKzcoGeS366+tqbCXdqDHQA==}
engines: {node: '>=12'}
cpu: [x64]
os: [freebsd]
requiresBuild: true
dev: true
optional: true
/esbuild-freebsd-arm64/0.15.14:
resolution: {integrity: sha512-8XH96sOQ4b1LhMlO10eEWOjEngmZ2oyw3pW4o8kvBcpF6pULr56eeYVP5radtgw54g3T8nKHDHYEI5AItvskZg==}
engines: {node: '>=12'}
cpu: [arm64]
os: [freebsd]
requiresBuild: true
dev: true
optional: true
/esbuild-linux-32/0.15.14:
resolution: {integrity: sha512-6ssnvwaTAi8AzKN8By2V0nS+WF5jTP7SfuK6sStGnDP7MCJo/4zHgM9oE1eQTS2jPmo3D673rckuCzRlig+HMA==}
engines: {node: '>=12'}
cpu: [ia32]
os: [linux]
requiresBuild: true
dev: true
optional: true
/esbuild-linux-64/0.15.14:
resolution: {integrity: sha512-ONySx3U0wAJOJuxGUlXBWxVKFVpWv88JEv0NZ6NlHknmDd1yCbf4AEdClSgLrqKQDXYywmw4gYDvdLsS6z0hcw==}
engines: {node: '>=12'}
cpu: [x64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/esbuild-linux-arm/0.15.14:
resolution: {integrity: sha512-D2LImAIV3QzL7lHURyCHBkycVFbKwkDb1XEUWan+2fb4qfW7qAeUtul7ZIcIwFKZgPcl+6gKZmvLgPSj26RQ2Q==}
engines: {node: '>=12'}
cpu: [arm]
os: [linux]
requiresBuild: true
dev: true
optional: true
/esbuild-linux-arm64/0.15.14:
resolution: {integrity: sha512-kle2Ov6a1e5AjlHlMQl1e+c4myGTeggrRzArQFmWp6O6JoqqB9hT+B28EW4tjFWgV/NxUq46pWYpgaWXsXRPAg==}
engines: {node: '>=12'}
cpu: [arm64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/esbuild-linux-mips64le/0.15.14:
resolution: {integrity: sha512-FVdMYIzOLXUq+OE7XYKesuEAqZhmAIV6qOoYahvUp93oXy0MOVTP370ECbPfGXXUdlvc0TNgkJa3YhEwyZ6MRA==}
engines: {node: '>=12'}
cpu: [mips64el]
os: [linux]
requiresBuild: true
dev: true
optional: true
/esbuild-linux-ppc64le/0.15.14:
resolution: {integrity: sha512-2NzH+iuzMDA+jjtPjuIz/OhRDf8tzbQ1tRZJI//aT25o1HKc0reMMXxKIYq/8nSHXiJSnYV4ODzTiv45s+h73w==}
engines: {node: '>=12'}
cpu: [ppc64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/esbuild-linux-riscv64/0.15.14:
resolution: {integrity: sha512-VqxvutZNlQxmUNS7Ac+aczttLEoHBJ9e3OYGqnULrfipRvG97qLrAv9EUY9iSrRKBqeEbSvS9bSfstZqwz0T4Q==}
engines: {node: '>=12'}
cpu: [riscv64]
os: [linux]
requiresBuild: true
dev: true
optional: true
/esbuild-linux-s390x/0.15.14:
resolution: {integrity: sha512-+KVHEUshX5n6VP6Vp/AKv9fZIl5kr2ph8EUFmQUJnDpHwcfTSn2AQgYYm0HTBR2Mr4d0Wlr0FxF/Cs5pbFgiOw==}
engines: {node: '>=12'}
cpu: [s390x]
os: [linux]
requiresBuild: true
dev: true
optional: true
/esbuild-netbsd-64/0.15.14:
resolution: {integrity: sha512-6D/dr17piEgevIm1xJfZP2SjB9Z+g8ERhNnBdlZPBWZl+KSPUKLGF13AbvC+nzGh8IxOH2TyTIdRMvKMP0nEzQ==}
engines: {node: '>=12'}
cpu: [x64]
os: [netbsd]
requiresBuild: true
dev: true
optional: true
/esbuild-openbsd-64/0.15.14:
resolution: {integrity: sha512-rREQBIlMibBetgr2E9Lywt2Qxv2ZdpmYahR4IUlAQ1Efv/A5gYdO0/VIN3iowDbCNTLxp0bb57Vf0LFcffD6kA==}
engines: {node: '>=12'}
cpu: [x64]
os: [openbsd]
requiresBuild: true
dev: true
optional: true
/esbuild-sunos-64/0.15.14:
resolution: {integrity: sha512-DNVjSp/BY4IfwtdUAvWGIDaIjJXY5KI4uD82+15v6k/w7px9dnaDaJJ2R6Mu+KCgr5oklmFc0KjBjh311Gxl9Q==}
engines: {node: '>=12'}
cpu: [x64]
os: [sunos]
requiresBuild: true
dev: true
optional: true
/esbuild-windows-32/0.15.14:
resolution: {integrity: sha512-pHBWrcA+/oLgvViuG9FO3kNPO635gkoVrRQwe6ZY1S0jdET07xe2toUvQoJQ8KT3/OkxqUasIty5hpuKFLD+eg==}
engines: {node: '>=12'}
cpu: [ia32]
os: [win32]
requiresBuild: true
dev: true
optional: true
/esbuild-windows-64/0.15.14:
resolution: {integrity: sha512-CszIGQVk/P8FOS5UgAH4hKc9zOaFo69fe+k1rqgBHx3CSK3Opyk5lwYriIamaWOVjBt7IwEP6NALz+tkVWdFog==}
engines: {node: '>=12'}
cpu: [x64]
os: [win32]
requiresBuild: true
dev: true
optional: true
/esbuild-windows-arm64/0.15.14:
resolution: {integrity: sha512-KW9W4psdZceaS9A7Jsgl4WialOznSURvqX/oHZk3gOP7KbjtHLSsnmSvNdzagGJfxbAe30UVGXRe8q8nDsOSQw==}
engines: {node: '>=12'}
cpu: [arm64]
os: [win32]
requiresBuild: true
dev: true
optional: true
/esbuild/0.15.14:
resolution: {integrity: sha512-pJN8j42fvWLFWwSMG4luuupl2Me7mxciUOsMegKvwCmhEbJ2covUdFnihxm0FMIBV+cbwbtMoHgMCCI+pj1btQ==}
engines: {node: '>=12'}
hasBin: true
requiresBuild: true
optionalDependencies:
'@esbuild/android-arm': 0.15.14
'@esbuild/linux-loong64': 0.15.14
esbuild-android-64: 0.15.14
esbuild-android-arm64: 0.15.14
esbuild-darwin-64: 0.15.14
esbuild-darwin-arm64: 0.15.14
esbuild-freebsd-64: 0.15.14
esbuild-freebsd-arm64: 0.15.14
esbuild-linux-32: 0.15.14
esbuild-linux-64: 0.15.14
esbuild-linux-arm: 0.15.14
esbuild-linux-arm64: 0.15.14
esbuild-linux-mips64le: 0.15.14
esbuild-linux-ppc64le: 0.15.14
esbuild-linux-riscv64: 0.15.14
esbuild-linux-s390x: 0.15.14
esbuild-netbsd-64: 0.15.14
esbuild-openbsd-64: 0.15.14
esbuild-sunos-64: 0.15.14
esbuild-windows-32: 0.15.14
esbuild-windows-64: 0.15.14
esbuild-windows-arm64: 0.15.14
dev: true
/estree-walker/2.0.2:
resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
dev: false
/fs.realpath/1.0.0:
resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
dev: false
/fsevents/2.3.2:
resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
os: [darwin]
requiresBuild: true
optional: true
/function-bind/1.1.1:
resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==}
/glob/8.0.3:
resolution: {integrity: sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==}
engines: {node: '>=12'}
dependencies:
fs.realpath: 1.0.0
inflight: 1.0.6
inherits: 2.0.4
minimatch: 5.1.0
once: 1.4.0
dev: false
/globalyzer/0.1.0:
resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==}
dev: true
/globrex/0.1.2:
resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==}
dev: true
/has/1.0.3:
resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==}
engines: {node: '>= 0.4.0'}
dependencies:
function-bind: 1.1.1
/import-meta-resolve/2.1.0:
resolution: {integrity: sha512-yG9pxkWJVTy4cmRsNWE3ztFdtFuYIV8G4N+cbCkO8b+qngkLyIUhxQFuZ0qJm67+0nUOxjMPT7nfksPKza1v2g==}
dev: true
/inflight/1.0.6:
resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
dependencies:
once: 1.4.0
wrappy: 1.0.2
dev: false
/inherits/2.0.4:
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
dev: false
/is-builtin-module/3.2.0:
resolution: {integrity: sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw==}
engines: {node: '>=6'}
dependencies:
builtin-modules: 3.3.0
dev: false
/is-core-module/2.11.0:
resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==}
dependencies:
has: 1.0.3
/is-module/1.0.0:
resolution: {integrity: sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==}
dev: false
/is-reference/1.2.1:
resolution: {integrity: sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ==}
dependencies:
'@types/estree': 1.0.0
dev: false
/kleur/4.1.5:
resolution: {integrity: sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==}
engines: {node: '>=6'}
dev: true
/magic-string/0.26.7:
resolution: {integrity: sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==}
engines: {node: '>=12'}
dependencies:
sourcemap-codec: 1.4.8
/mime/3.0.0:
resolution: {integrity: sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==}
engines: {node: '>=10.0.0'}
hasBin: true
dev: true
/minimatch/5.1.0:
resolution: {integrity: sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==}
engines: {node: '>=10'}
dependencies:
brace-expansion: 2.0.1
dev: false
/modern-normalize/1.1.0:
resolution: {integrity: sha512-2lMlY1Yc1+CUy0gw4H95uNN7vjbpoED7NNRSBHE25nWfLBdmMzFCsPshlzbxHz+gYMcBEUN8V4pU16prcdPSgA==}
engines: {node: '>=6'}
dev: false
/mri/1.2.0:
resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==}
engines: {node: '>=4'}
dev: true
/mrmime/1.0.1:
resolution: {integrity: sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==}
engines: {node: '>=10'}
dev: true
/ms/2.1.2:
resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
dev: true
/nanoid/3.3.4:
resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==}
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true
dev: true
/once/1.4.0:
resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
dependencies:
wrappy: 1.0.2
dev: false
/path-parse/1.0.7:
resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
/picocolors/1.0.0:
resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
dev: true
/picomatch/2.3.1:
resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
engines: {node: '>=8.6'}
dev: false
/postcss/8.4.19:
resolution: {integrity: sha512-h+pbPsyhlYj6N2ozBmHhHrs9DzGmbaarbLvWipMRO7RLS+v4onj26MPFXA5OBYFxyqYhUJK456SwDcY9H2/zsA==}
engines: {node: ^10 || ^12 || >=14}
dependencies:
nanoid: 3.3.4
picocolors: 1.0.0
source-map-js: 1.0.2
dev: true
/resolve/1.22.1:
resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==}
hasBin: true
dependencies:
is-core-module: 2.11.0
path-parse: 1.0.7
supports-preserve-symlinks-flag: 1.0.0
/roboto-fontface/0.10.0:
resolution: {integrity: sha512-OlwfYEgA2RdboZohpldlvJ1xngOins5d7ejqnIBWr9KaMxsnBqotpptRXTyfNRLnFpqzX6sTDt+X+a+6udnU8g==}
dev: false
/rollup/2.79.1:
resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==}
engines: {node: '>=10.0.0'}
hasBin: true
optionalDependencies:
fsevents: 2.3.2
/sade/1.8.1:
resolution: {integrity: sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==}
engines: {node: '>=6'}
dependencies:
mri: 1.2.0
dev: true
/set-cookie-parser/2.5.1:
resolution: {integrity: sha512-1jeBGaKNGdEq4FgIrORu/N570dwoPYio8lSoYLWmX7sQ//0JY08Xh9o5pBcgmHQ/MbsYp/aZnOe1s1lIsbLprQ==}
dev: true
/sirv/2.0.2:
resolution: {integrity: sha512-4Qog6aE29nIjAOKe/wowFTxOdmbEZKb+3tsLljaBRzJwtqto0BChD2zzH0LhgCSXiI+V7X+Y45v14wBZQ1TK3w==}
engines: {node: '>= 10'}
dependencies:
'@polka/url': 1.0.0-next.21
mrmime: 1.0.1
totalist: 3.0.0
dev: true
/source-map-js/1.0.2:
resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
engines: {node: '>=0.10.0'}
dev: true
/sourcemap-codec/1.4.8:
resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==}
/streamsearch/1.1.0:
resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==}
engines: {node: '>=10.0.0'}
dev: true
/supports-preserve-symlinks-flag/1.0.0:
resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
engines: {node: '>= 0.4'}
/svelte-hmr/0.15.1_svelte@3.53.1:
resolution: {integrity: sha512-BiKB4RZ8YSwRKCNVdNxK/GfY+r4Kjgp9jCLEy0DuqAKfmQtpL38cQK3afdpjw4sqSs4PLi3jIPJIFp259NkZtA==}
engines: {node: ^12.20 || ^14.13.1 || >= 16}
peerDependencies:
svelte: '>=3.19.0'
dependencies:
svelte: 3.53.1
dev: true
/svelte/3.53.1:
resolution: {integrity: sha512-Q4/hHkktZogGhN5iqxqSi9sjEVoe/NbIxX4hXEHoasTxj+TxEQVAq66LnDMdAZxjmsodkoI5F3slqsS68U7FNw==}
engines: {node: '>= 8'}
dev: true
/tiny-glob/0.2.9:
resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==}
dependencies:
globalyzer: 0.1.0
globrex: 0.1.2
dev: true
/tippy.js/6.3.7:
resolution: {integrity: sha512-E1d3oP2emgJ9dRQZdf3Kkn0qJgI6ZLpyS5z6ZkY1DF3kaQaBsGZsndEpHwx+eC+tYM41HaSNvNtLx8tU57FzTQ==}
dependencies:
'@popperjs/core': 2.11.6
dev: false
/totalist/3.0.0:
resolution: {integrity: sha512-eM+pCBxXO/njtF7vdFsHuqb+ElbxqtI4r5EAvk6grfAFyJ6IvWlSkfZ5T9ozC6xWw3Fj1fGoSmrl0gUs46JVIw==}
engines: {node: '>=6'}
dev: true
/undici/5.12.0:
resolution: {integrity: sha512-zMLamCG62PGjd9HHMpo05bSLvvwWOZgGeiWlN/vlqu3+lRo3elxktVGEyLMX+IO7c2eflLjcW74AlkhEZm15mg==}
engines: {node: '>=12.18'}
dependencies:
busboy: 1.6.0
dev: true
/vite/3.2.4:
resolution: {integrity: sha512-Z2X6SRAffOUYTa+sLy3NQ7nlHFU100xwanq1WDwqaiFiCe+25zdxP1TfCS5ojPV2oDDcXudHIoPnI1Z/66B7Yw==}
engines: {node: ^14.18.0 || >=16.0.0}
hasBin: true
peerDependencies:
'@types/node': '>= 14'
less: '*'
sass: '*'
stylus: '*'
sugarss: '*'
terser: ^5.4.0
peerDependenciesMeta:
'@types/node':
optional: true
less:
optional: true
sass:
optional: true
stylus:
optional: true
sugarss:
optional: true
terser:
optional: true
dependencies:
esbuild: 0.15.14
postcss: 8.4.19
resolve: 1.22.1
rollup: 2.79.1
optionalDependencies:
fsevents: 2.3.2
dev: true
/vitefu/0.2.1_vite@3.2.4:
resolution: {integrity: sha512-clkvXTAeUf+XQKm3bhWUhT4pye+3acm6YCTGaWhxxIvZZ/QjnA3JA8Zud+z/mO5y5XYvJJhevs5Sjkv/FI8nRw==}
peerDependencies:
vite: ^3.0.0
peerDependenciesMeta:
vite:
optional: true
dependencies:
vite: 3.2.4
dev: true
/wrappy/1.0.2:
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
dev: false

30
src/app.html Normal file
View File

@ -0,0 +1,30 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>dark-firepit</title>
<link rel="icon" href="%sveltekit.assets%/favicon.png" />
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta property="og:title" content="dark-firepit">
<meta name="twitter:title" content="dark-firepit">
<meta name="description" content="firepit is a friend group of sane* developers, mathematicians, artists and overall queer furries.">
<meta property="og:description" content="firepit is a friend group of sane* developers, mathematicians, artists and overall queer furries.">
<meta name="twitter:description" content="firepit is a friend group of sane* developers, mathematicians, artists and overall queer furries.">
<meta property="og:image" content="/bn2.png">
<meta property="og:image:width" content="576">
<meta property="og:image:height" content="384">
<meta property="og:image:type" content="image/png">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:image" content="/bn2.png">
<meta name="twitter:site" content="https://dark-firepit.cloud/">
<link rel="canonical" href="https://dark-firepit.cloud/">
%sveltekit.head%
</head>
<body>
<div style="display: contents">%sveltekit.body%</div>
</body>
</html>

BIN
src/assets/icons/aether.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

BIN
src/assets/icons/jillo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

BIN
src/assets/icons/marco.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

BIN
src/assets/icons/winter.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

BIN
src/assets/icons/zydra.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

14
src/lib/Header.svelte Normal file
View File

@ -0,0 +1,14 @@
<script>
</script>
<style>
.logo {
border-radius: 50%;
animation: 2s glow infinite ease-in-out;
animation-direction: alternate;
}
</style>
<img src="/logo.png" width="128" height="128" class="logo center" alt="dark-firepit logo">
<h1 class="center glow-slight"><a class="stealth-link" href="/">dark-firepit</a></h1>

325
src/lib/People.svelte Normal file
View File

@ -0,0 +1,325 @@
<script>
import iconAether from '../assets/icons/aether.png';
import iconJillo from '../assets/icons/jillo.png';
import iconMarco from '../assets/icons/marco.png';
import iconMayflower from '../assets/icons/mayflower.png';
import iconOatmealine from '../assets/icons/oatmealine.png';
import iconOrdinaryManner from '../assets/icons/ordinarymanner.png';
import iconWinter from '../assets/icons/winter.png';
import iconZydra from '../assets/icons/zydra.png';
const people = [
{
icon: iconAether,
name: 'Aether',
description: `
Mathematician, category theory enthusiast, functional programmer and overall dork. Turned half
the server into furries. One half of the server administration.
<br>
<blockquote>
<i>"i'm growing kinda fond of yandex! however, there is one thing i have to try... [typing noises] gay... furry porn..."</i>
</blockquote>
`,
site: 'https://aether.gay/',
pronouns: 'they/it',
bottom: `
<small>Profile picture by <a target="_blank" rel="noreferrer" href="https://twitter.com/DumbDogDoodles">@DumbDugDoodles</a>.</small>
`
},
{
icon: iconOatmealine,
name: 'oatmealine',
description: `
Web developer, modder and overall programming masochist with a tendency and intent to use its power to commit
immense crime, both literally and spiritually. The other half of the server administration. Made this website!
<br>
<blockquote>
<i>"if you go far enough east into Russia, you end up in the farlands"</i>
</blockquote>
`,
site: 'https://oat.zone/',
pronouns: 'it/her',
bottom: `
<small>Profile picture by <a href="https://twitter.com/NeoVen0m">@NeoVen0m</a>.</small>
`
},
{
icon: iconMarco,
name: 'Marco'
},
{
icon: iconOrdinaryManner,
name: 'OrdinaryManner',
description: `
Moth enthusiast and artist, occasional modder and overall thing-doer. Quite fluffy. Do not recite
<a target="_blank" rel="noreferrer" href="https://www.youtube.com/watch?v=d0RmRJsgP28">this video</a> near him.
<br><br>
<img src="https://howto.smooch.computer/i/1uuw2.png">
<br><br>
`,
pronouns: 'he/him'
},
{
icon: iconWinter,
name: 'winter',
description: `
Local low-level developer and rhythm game enthusiast. In case of an investigation by any federal entity or similar,
we do not have any involvement with this person, we do not know how they are here, probably added by
a third party, we do not support any actions by them.
<br><br>
`,
site: 'https://wint0r.zone/',
pronouns: 'any except he'
},
{
icon: iconJillo,
name: 'Jillo',
description: `
The server maid! Partly sentient chip-controlled goo girl who lives on the server taking care of music, pronouns,
colors, <i>the counter</i> and other utility features. Also provides surveillance devices and partially acts as one.
<br>
<blockquote>
<i>";p slide whistle sound effect"</i>
</blockquote>
`,
site: 'https://oat.zone/#characters/jillo.chr',
siteDisplay: 'oat.zone:characters/jillo.chr',
pronouns: 'it/her'
},
{
icon: iconMayflower,
name: 'Mayflower',
description: `
A being of pure chaos, described by most as the equivalent of a neodymium magnet near electronics. Kokichi kinnie.
Commits programming crimes both willingly and unwillingly.
<br>
<blockquote>
<i>"do you know what an x86 is?"</i><br>
<i>"yes i do. that is the Intel®"</i>
</blockquote>
`,
site: 'https://mayf.pink/',
pronouns: 'any'
},
{
icon: iconZydra,
name: 'Zydra',
description: `
Bait for buses. No longer SSHes into their server as root. Should not be trusted around hammers, curtains, or
a set of 2 wedding videos.
<br><br>
`,
site: 'https://zydra.space/',
pronouns: 'he/they'
}
];
let overlay;
let personSelected = false;
let personSelectedDims = [0, 0];
function navigateUp(el) {
if (el.classList.contains('person')) return el;
return navigateUp(el.parentElement);
}
function clickPerson(event) {
if (personSelected) return;
const el = navigateUp(event.target);
const overlayPerson = el.cloneNode(true);
const back = document.createElement('div');
back.classList.add('overlay-back')
overlayPerson.insertBefore(back, overlayPerson.firstChild);
el.classList.add('hidden');
overlayPerson.classList.add('selected');
overlayPerson.style.left = `${el.offsetLeft}px`;
overlayPerson.style.top = `${el.offsetTop}px`;
personSelectedDims = [el.offsetWidth, el.offsetHeight];
overlayPerson.animate([
{ top: `${el.offsetTop}px`, left: `${el.offsetLeft}px` },
{ top: 0, left: 0, width: '100%', height: '100%' }
], {
duration: 700,
iterations: 1,
easing: 'cubic-bezier(0.25, 1, 0.5, 1)',
fill: 'forwards'
});
overlay.innerHTML = '';
overlay.appendChild(overlayPerson);
personSelected = el;
}
function closePerson() {
if (personSelected) {
const overlayPerson = overlay.children[0];
overlayPerson.animate([
{ top: 0, left: 0, width: '100%', height: '100%' },
{ top: `${personSelected.offsetTop}px`, left: `${personSelected.offsetLeft}px`, width: `${personSelectedDims[0]}px`, height: `${personSelectedDims[1]}px` }
], {
duration: 500,
iterations: 1,
easing: 'cubic-bezier(0.25, 1, 0.5, 1)',
fill: 'forwards'
});
personSelected = false;
setTimeout(() => {
for (const el of document.querySelectorAll('.person')) {
el.classList.remove('hidden');
if (!personSelected) overlay.innerHTML = '';
}
}, 500);
}
}
</script>
<style>
.people-container {
width: 100%;
padding: 0.5em;
border-radius: 40px;
}
.people {
width: 100%;
display: flex;
flex-direction: row;
align-items: flex-start;
align-content: flex-start;
justify-content: center;
gap: 1em;
position: relative;
flex-wrap: wrap;
}
.person {
width: 140px;
border: 1.5px solid #999;
border-radius: 20px;
display: flex;
align-items: center;
flex-direction: column;
transition-timing-function: ease-out;
height: 175px;
transition: width 0.5s, height 0.45s, top 0.5s, left 0.45s, background-color 0.1s;
background-color: transparent;
gap: 0.7em;
color: #fff;
overflow: hidden;
backdrop-filter: blur(12px);
font-weight: 300;
}
.person:not(.selected):not(.disabled) {
cursor: pointer;
}
.person:not(.selected):not(.disabled):hover {
background-color: rgba(255, 255, 255, 0.04);
}
.person:global(.hidden) {
opacity: 0;
}
.person:global(.selected) {
position: absolute;
z-index: 1;
}
.person:global(.selected).marco {
background-image: url('/giygas.gif');
}
.person-icon {
width: 86px;
height: auto;
border-radius: 100%;
margin: 1em;
}
.person-icon-fake {
margin: 14px;
min-width: 86px;
min-height: 86px;
border-radius: 100%;
background-color: #444;
display: flex;
align-items: center;
justify-content: center;
font-size: 32px;
}
.person-name {
font-weight: 600;
font-size: large;
text-align: center;
max-width: 130px;
}
.person-bottom {
flex-grow: 1;
display: flex;
flex-direction: row;
align-items: flex-end;
align-content: flex-end;
justify-content: center;
padding: 2em;
}
.person-desc {
text-align: left;
opacity: 0;
transition: opacity 0.5s;
width: 450px;
max-width: 80vw;
margin: 1.5em;
}
.person:global(.selected) .person-desc {
opacity: 1;
}
.people-overlay {
pointer-events: none;
position: absolute;
width: 100%;
height: 100%;
}
.people-overlay.has-person {
pointer-events: auto;
z-index: 2;
}
</style>
<div class="people-container center">
<div class="people">
<div class="people-overlay" bind:this={overlay} on:click={closePerson} on:keypress={closePerson} class:has-person={personSelected}></div>
{#each people as p}
<button class="person" class:marco={p.name === 'Marco'} on:click={clickPerson}>
<img src="{p.icon}" width="256" height="256" class="person-icon" alt="{p.name}'s icon">
<div class="person-name">{p.name}</div>
<div class="person-desc">
{#if p.description}
{@html p.description}
{/if}
{#if p.site}
🔗 <a target="_blank" rel="noreferrer" href="{p.site}">{p.siteDisplay || p.site.replace('https://','').replace('/','')}</a><br>
{/if}
{#if p.pronouns}
🏷️ <i>{p.pronouns}</i><br>
{/if}
</div>
{#if p.bottom}
<div class="person-bottom">
<small>Profile picture by <a href="https://twitter.com/DumbDogDoodles">@DumbDugDoodles</a>.</small>
</div>
{/if}
</button>
{/each}
<button class="person disabled">
<div class="person-icon-fake">
+7
</div>
<div class="person-name">...and others</div>
</button>
</div>
</div>

1
src/routes/+layout.js Normal file
View File

@ -0,0 +1 @@
export const prerender = true;

View File

@ -0,0 +1,8 @@
<script>
import 'modern-normalize';
import 'roboto-fontface/css/roboto/roboto-fontface.css';
//import '@fontsource/noto-emoji';
import '../style.css';
</script>
<slot/>

114
src/routes/+page.svelte Normal file
View File

@ -0,0 +1,114 @@
<script>
import Header from "../lib/Header.svelte";
import People from "../lib/People.svelte";
import tippy from 'tippy.js';
import 'tippy.js/dist/tippy.css';
import { onMount } from "svelte";
let tipFriendCloud;
onMount(() => {
tippy(tipFriendCloud, {
content: 'A cloud for friends. A mix between Public and Private Cloud.',
placement: 'bottom'
});
});
</script>
<svelte:head>
<title>dark-firepit</title>
</svelte:head>
<main>
<Header/>
<div class="big paragraph neat-bg-container">
<div class="neat-bg" style="transform: skewY(1deg)"></div>
<pre>firepit</pre> is a friend group of sane<em>*</em> developers, mathematicians, artists
and overall queer furries.
</div>
<div class="paragraph center">
This domain <em>(and associated server)</em> is used for hosting various
<span class="has-tooltip" bind:this={tipFriendCloud}>friend cloud</span> services. <span title="among us">Among</span> those
services is:
</div>
<el>
<li><a href="https://nextcloud.oat.zone">Nextcloud</a></li>
<li><a href="https://git.oat.zone/">Gitea</a></li>
<li><a href="https://nitter.oat.zone/">Nitter</a></li>
</el>
<div class="paragraph">
Alongside those, we also host some miscellaneous pages and services:
</div>
<el>
<li><a href="/videos-of-all-time">Videos of all time</a></li>
<li><a href="https://yugoslavia.best">yugoslavia.best</a></li>
<li>
Personal sites of <pre>firepit</pre> members:
<a href="https://oat.zone">oat.zone</a>,
<a href="https://aether.gay">aether.gay</a>,
<a href="https://mayf.pink">mayf.pink</a>,
<a href="https://wint0r.zone">wint0r.zone</a>
</li>
</el>
<div class="paragraph">
And occasionally, we fork or develop software:
</div>
<el>
<li><a href="https://git.oat.zone/dark-firepit/dark-firepit-modpack">1.19.2 Minecraft modpack</a></li>
<li><a href="https://git.oat.zone/dark-firepit/dotfiles">NixOS system configuration</a></li>
</el>
<div class="big paragraph neat-bg-container center">
<div class="neat-bg" style="transform: skewY(-1deg)"></div>
But who are we, really?
</div>
<div class="paragraph center">
We consist of 14 people, give or take:
</div>
<People/>
<div class="big paragraph neat-bg-container center">
<div class="neat-bg" style="transform: skewY(0.5deg)"></div>
Why not reach out?
</div>
<div class="paragraph">
<b>Tell us feedback about our services!</b> Tell us suggestions, issues, or just tell us about your day.
We'll be sure to communally decide how to reply with the most informative, funniest or otherwise best
response possible.
</div>
<div class="paragraph">
Currently, you'll just have to use Jill's email, which would be <b>oat at [its domain]</b> (be sure
to include <i>"firepit"</i> somewhere in the subject line). However, in the future we're looking to get
more contact options. <i>Don't expect any requests to join the group to be taken seriously.</i>
</div>
<hr style="width: 120%; left: -10%; position: relative">
<div class="center">
<a href="https://stats.uptimerobot.com/ZyM4vi7Ao7" style="text-decoration: none">Status</a><a>more links??</a>
</div>
<footer class="center">
<i>Thank you for sus lel meem fof.</i><br>
<img src="wawoo.png" alt="wawoo.png">
<img src="cat.gif" alt="a jumping cat">
<br>
<img src="badges/badge1.gif" alt="badge that says 'best viewed with any browser, any os'">
<img src="badges/badge2.gif" alt="aol instant messenger badge">
<img src="badges/badge3.gif" alt="'written in the vi editor' badge">
<img src="badges/badge4.gif" alt="'get quake now' badge">
<a class="stealth-link" href="https://dark-firepit.cloud"><img src="badges/dark-firepit.png" alt="the dark-firepit badge"></a>
<a class="stealth-link" href="https://oat.zone"><img src="badges/oat-zone.gif" alt="the oat.zone badge"></a>
</footer>
</main>

View File

@ -0,0 +1 @@
export const csr = false;

View File

@ -0,0 +1,119 @@
<script>
import Header from "../../lib/Header.svelte";
const videos = [
'void.mp4',
'asmr.mp4',
'geometry_dash_layout.webm',
'wd_gaster_rapping.webm',
'trinkets.mp4',
'car_door.webm',
'eminem_potion.mp4',
'LASIK_eye_surgery.mp4',
'yellow_egg.mp4',
'mab.mp4',
'yipp.mp4',
'just_a_week_away.webm',
'oh_my_lordy_lord.webm',
'toad.mp4',
'crispsy.mp4',
'griddy.mp4',
'soevil.mp4',
'caralarmlayout.mp4',
'the_pizza.mp4',
'wiggles.mp4',
'wake-up.mp4',
'duetto.mp4',
'doyou.mp4',
'canwe.mp4',
'dontlikethisvideo.mp4',
'burgerr.mp4',
'asterisk.mp4',
'bottle_child.mp4',
'diamondtester.mp4',
'twerk.mp4',
'ueeeiin.mp4',
'sunny.mp4',
'itso.mp4',
'my_wii.mp4',
'chips.mp4',
'breakingnews.mp4',
'soup.mp4',
'AA.mp4',
'yay.mp4',
'ghostly_spirit.mp4',
'is_your_family_missing.webm',
'chicken_sandwich.mp4',
'cat.mov',
'hungry.mp4',
'robert.mp4',
'the_horse.mp4'
];
const types = {
'mp4': 'video/mp4',
'webm': 'video/webm',
'mov': 'video/quicktime'
}
</script>
<style>
.video {
border-radius: 10px;
filter: drop-shadow(0px 0px 32px rgba(255, 255, 255, 0.1));
display: flex;
flex-direction: column;
overflow: hidden;
max-width: 100%;
}
.videos {
display: flex;
justify-content: center;
align-items: center;
flex-direction: row;
gap: 1em;
flex-wrap: wrap;
}
.video-label {
padding: 0.5em;
background-color: #eeeeef;
color: #000;
font-weight: bold;
text-align: center;
font-size: large;
}
</style>
<svelte:head>
<title>videos of all time</title>
</svelte:head>
<main style="width: 1100px">
<Header/>
<div class="big paragraph neat-bg-container center">
<div class="neat-bg" style="transform: skewY(1deg)"></div>
videos of all fucking time compilation
</div>
<div class="videos">
{#each videos as vid}
<div class="video">
<!-- svelte-ignore a11y-media-has-caption -->
<video
width="350"
controls="true"
controlslist="disablepictureinpicture nofullscreen noremoteplayback"
disablepictureinpicture="true"
disableremoteplayback="true"
playsinline="true"
preload="metadata">
<source src={'/videos/' + vid} type={types[vid.split('.').pop()]}>
</video>
<div class="video-label">
{vid}
</div>
</div>
{/each}
</div>
</main>

141
src/style.css Normal file
View File

@ -0,0 +1,141 @@
:root {
--accent-color: #4210f1;
--accent-color-highlight: #b14ff5;
}
a:not(.stealth-link) {
color: #fff;
filter: drop-shadow(0px 0px 0px transparent);
transition: color 0.08s, filter 0.08s;
}
a:not(.stealth-link):hover {
color: var(--accent-color-highlight);
filter: drop-shadow(0px 0px 4px var(--accent-color-highlight));
}
a.stealth-link {
color: #fff;
text-decoration: none;
}
body {
padding: 0px;
margin: 0px;
overflow-x: hidden;
color: #fefeff;
background-color: #101012;
font-family: Roboto, Avenir, Helvetica, Arial, sans-serif;
font-weight: 300;
width: 100%;
min-height: 100vh;
text-underline-offset: 3px;
font-size: 16px;
display: flex;
justify-content: center;
color-scheme: dark;
text-rendering: optimizeLegibility;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
-webkit-text-size-adjust: 100%;
}
main {
margin: auto;
max-width: 90%;
width: 600px;
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 2em;
padding-top: 3em;
}
.center {
align-self: center;
text-align: center;
}
pre {
display: inline;
}
em {
font-weight: light;
}
.big {
font-size: 28px;
}
.paragraph {
line-height: 1.3;
text-align: justify;
}
@keyframes glow {
from {
filter: drop-shadow(0px 0px 32px #4210f1) drop-shadow(0px 0px 4px #222230);
}
to {
filter: drop-shadow(0px 0px 64px #4210f1) drop-shadow(0px 0px 6px #222230);
}
}
.glow-slight {
animation: 4s glow-slight infinite ease-in-out;
animation-direction: alternate;
}
@keyframes glow-slight {
from {
filter: drop-shadow(0px 0px 6px #222230);
}
to {
filter: drop-shadow(0px 0px 4px #222230);
}
}
h1 {
position: relative;
z-index: 2;
margin-top: 0;
margin-bottom: 0;
}
.neat-bg-container {
position: relative;
/*filter: drop-shadow(0px 0px 6px var(--accent-color));*/
/*box-shadow: 0px 0px 6px var(--accent-color);*/
padding-top: 0.5em;
padding-bottom: 0.5em;
}
.neat-bg {
position: absolute;
z-index: -1;
top: 0;
bottom: 0;
left: -75vw;
right: -75vw;
background-color: var(--accent-color);
}
li {
margin-top: 0.2em;
margin-bottom: 0.2em;
}
.has-tooltip {
text-decoration: underline dotted;
cursor: help;
}
.overlay-back {
pointer-events: auto;
position: absolute;
inset: 0;
cursor: pointer;
}
blockquote {
margin-left: 8px;
padding-left: 8px;
border-left: 1.5px solid #aaa;
}
footer {
margin-bottom: 6em;
}

BIN
static/badges/badge1.gif Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

BIN
static/badges/badge2.gif Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
static/badges/badge3.gif Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
static/badges/badge4.gif Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

BIN
static/badges/oat-zone.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
static/bn2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

BIN
static/cat.gif Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

BIN
static/favicon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

BIN
static/giygas.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 982 KiB

BIN
static/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 115 KiB

BIN
static/wawoo.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

16
svelte.config.js Normal file
View File

@ -0,0 +1,16 @@
import adapter from '@sveltejs/adapter-static';
/** @type {import('@sveltejs/kit').Config} */
const config = {
kit: {
adapter: adapter({
//fallback: 'index.html'
}),
trailingSlash: 'always',
prerender: {
enabled: true
}
}
};
export default config;

4
update.sh Executable file
View File

@ -0,0 +1,4 @@
pnpm run build
# clean up old assets
#ssh dark-firepit "rm -f /var/www/dark-firepit.cloud/_app"
rsync -z -h -v -r -P -t ./build/ dark-firepit:/var/www/dark-firepit.cloud/

10
vite.config.js Normal file
View File

@ -0,0 +1,10 @@
import { sveltekit } from '@sveltejs/kit/vite';
const config = {
plugins: [sveltekit()],
build: {
sourcemap: true
}
};
export default config;