This commit is contained in:
Sangelo 2023-06-05 01:25:15 +03:00
commit 72a04887d4
44 changed files with 2307 additions and 0 deletions

12
.gitignore vendored Normal file
View file

@ -0,0 +1,12 @@
.DS_Store
node_modules
/build
/.svelte-kit
/package
.env
.env.*
!.env.example
.vercel
.output
vite.config.js.timestamp-*
vite.config.ts.timestamp-*

2
.npmrc Normal file
View file

@ -0,0 +1,2 @@
engine-strict=true
resolution-mode=highest

69
README.md Normal file
View file

@ -0,0 +1,69 @@
# 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-add/kit@latest
Svelte Add's SvelteKit app initializer (Version 2023.06.30.00)
✔ What directory should your app be created in? … explorecraft-testing
✔ What scripting language will you write your app in? JavaScript
✔ What language will you write your app styles in? SCSS (used by Bootstrap and Bulma and PicoCSS)
✔ What framework will you use for your app's styles? PicoCSS
✔ What other features do you want for your app?
✔ What code quality tools do you want to help maintain your app?
✔ Where will you deploy your app? Nowhere (set up a deployment target later)
✔ Do you want example code added to your app to demonstrate how to use the tools you've selected? Yes
✔ Should your app's dependencies be installed with npm right now? Yes
=============
WARNING: You are currently running a version of TypeScript which is not officially supported by @typescript-eslint/typescript-estree.
You may find that it works just fine, or you may not.
SUPPORTED TYPESCRIPT VERSIONS: >=3.3.1 <5.1.0
YOUR TYPESCRIPT VERSION: 5.1.3
Please only submit bug reports when using the officially supported version.
=============
🪄 Your JavaScript + SCSS + PicoCSS SvelteKit app is ready!
1. cd explorecraft-testing-sveltekit
2. npm run dev -- --open # start developing with a browser open
cd explorecraft-testing
```
## 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.
-----
- `git clone https://gitpot.dev/sangelo/explorecraft-testing.git && cd explorecraft-testing`
- `npm install`
- `npm run dev`

1401
package-lock.json generated Normal file

File diff suppressed because it is too large Load diff

21
package.json Normal file
View file

@ -0,0 +1,21 @@
{
"name": "explorecraft-testing-sveltekit",
"version": "0.0.1",
"scripts": {
"dev": "vite dev",
"build": "vite build",
"preview": "vite preview"
},
"devDependencies": {
"@fontsource/fira-mono": "^4.5.10",
"@neoconfetti/svelte": "^1.0.0",
"@sveltejs/adapter-auto": "^2.0.0",
"@sveltejs/kit": "^1.5.0",
"svelte": "^3.54.0",
"vite": "^4.3.0",
"sass": "^1.62.0",
"svelte-preprocess": "^5.0.3",
"@picocss/pico": "^1.5.10"
},
"type": "module"
}

12
src/app.html Normal file
View file

@ -0,0 +1,12 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="icon" href="%sveltekit.assets%/favicon.svg" />
<meta name="viewport" content="width=device-width" />
%sveltekit.head%
</head>
<body data-sveltekit-preload-data="hover">
<div style="display: contents">%sveltekit.body%</div>
</body>
</html>

49
src/app.scss Normal file
View file

@ -0,0 +1,49 @@
@import "@picocss/pico/scss/pico"; /* To import only what you need from Pico [check the documentaion](https://picocss.com/docs/customization.html) */
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@100;200;300;400;500;600;700&display=swap');
/* @import url('https://cdn.jsdelivr.net/npm/@mdi/font@5.8.55/css/materialdesignicons.min.css'); */
/* Write your global styles here, in SCSS syntax. Variables and mixins from the src/variables.scss file are available here without importing */
body {
font-family: 'IBM Plex Mono', monospace;
// background-color: #ffffff;
// color: #000000;
}
/* Green Light scheme (Default) */
/* Can be forced with data-theme="light" */
[data-theme="light"],
:root:not([data-theme="dark"]) {
--primary: #43a047;
--primary-hover: #388e3c;
--primary-focus: rgba(67, 160, 71, 0.125);
--primary-inverse: #FFF;
}
/* Green Dark scheme (Auto) */
/* Automatically enabled if user has Dark mode enabled */
@media only screen and (prefers-color-scheme: dark) {
:root:not([data-theme]) {
--primary: #43a047;
--primary-hover: #4caf50;
--primary-focus: rgba(67, 160, 71, 0.25);
--primary-inverse: #FFF;
}
}
/* Green Dark scheme (Forced) */
/* Enabled if forced with data-theme="dark" */
[data-theme="dark"] {
--primary: #43a047;
--primary-hover: #4caf50;
--primary-focus: rgba(67, 160, 71, 0.25);
--primary-inverse: #FFF;
}
/* Green (Common styles) */
:root {
--form-element-active-border-color: var(--primary);
--form-element-focus-color: var(--primary-focus);
--switch-color: var(--primary-inverse);
--switch-checked-background-color: var(--primary);
}

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M17.75,4.09L15.22,6.03L16.13,9.09L13.5,7.28L10.87,9.09L11.78,6.03L9.25,4.09L12.44,4L13.5,1L14.56,4L17.75,4.09M21.25,11L19.61,12.25L20.2,14.23L18.5,13.06L16.8,14.23L17.39,12.25L15.75,11L17.81,10.95L18.5,9L19.19,10.95L21.25,11M18.97,15.95C19.8,15.87 20.69,17.05 20.16,17.8C19.84,18.25 19.5,18.67 19.08,19.07C15.17,23 8.84,23 4.94,19.07C1.03,15.17 1.03,8.83 4.94,4.93C5.34,4.53 5.76,4.17 6.21,3.85C6.96,3.32 8.14,4.21 8.06,5.04C7.79,7.9 8.75,10.87 10.95,13.06C13.14,15.26 16.1,16.22 18.97,15.95M17.33,17.97C14.5,17.81 11.7,16.64 9.53,14.5C7.36,12.31 6.2,9.5 6.04,6.68C3.23,9.82 3.34,14.64 6.35,17.66C9.37,20.67 14.19,20.78 17.33,17.97Z" /></svg>

After

Width:  |  Height:  |  Size: 711 B

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12,7A5,5 0 0,1 17,12A5,5 0 0,1 12,17A5,5 0 0,1 7,12A5,5 0 0,1 12,7M12,9A3,3 0 0,0 9,12A3,3 0 0,0 12,15A3,3 0 0,0 15,12A3,3 0 0,0 12,9M12,2L14.39,5.42C13.65,5.15 12.84,5 12,5C11.16,5 10.35,5.15 9.61,5.42L12,2M3.34,7L7.5,6.65C6.9,7.16 6.36,7.78 5.94,8.5C5.5,9.24 5.25,10 5.11,10.79L3.34,7M3.36,17L5.12,13.23C5.26,14 5.53,14.78 5.95,15.5C6.37,16.24 6.91,16.86 7.5,17.37L3.36,17M20.65,7L18.88,10.79C18.74,10 18.47,9.23 18.05,8.5C17.63,7.78 17.1,7.15 16.5,6.64L20.65,7M20.64,17L16.5,17.36C17.09,16.85 17.62,16.22 18.04,15.5C18.46,14.77 18.73,14 18.87,13.21L20.64,17M12,22L9.59,18.56C10.33,18.83 11.14,19 12,19C12.82,19 13.63,18.83 14.37,18.56L12,22Z" /></svg>

After

Width:  |  Height:  |  Size: 724 B

View file

@ -0,0 +1,15 @@
<svg width="512" height="512" viewBox="0 0 512 512" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_2_7)">
<path d="M128 336V320H144V336H160V352H208V368H352V352H368V336H384V352H376H368V360V368H360H352V376V384H280H208V376V368H184H160V360V352H152H144V344V336H136H128Z" fill="black" fill-opacity="0.25"/>
<path d="M128 320V304H144V320H160V336H208V352H352V336H368V320H384V336H376H368V344V352H360H352V360V368H280H208V360V352H184H160V344V336H152H144V328V320H136H128Z" fill="black" fill-opacity="0.5"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M128 216V272H136H144V288V304H152H160V312V320H184H208V328V336H232H256V328V320H240H224V312V304H208H192V296V288H184H176V280V272H168H160V264V256H152H144V208V160H136H128V216ZM368 256V288H360H352V304V320H336H320V304V288H328H336V280V272H328H320V280V288H312H304V304V320H296H288V328V336H320H352V328V320H360H368V304V288H376H384V256V224H376H368V256Z" fill="#38B067"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M144 208V256H152H160V264V272H168H176V280V288H184H192V296V304H208H224V312V320H232H240V312V304H248H256V280V256H264H272V288V320H280H288V304V288H296H304V280V272H320H336V280V288H328H320V304V320H336H352V304V288H360H368V272V256H360H352V248V240H320H288V248V256H280H272V248V240H264H256V232V224H248H240V216V208H232H224V200V192H208H192V184V176H176H160V168V160H152H144V208ZM192 248V256H200H208V264V272H216H224V288V304H232H240V288V272H232H224V264V256H216H208V248V240H200H192V248Z" fill="#4ABF78"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M128 144V160H120H112V216V272H120H128V288V304H136H144V312V320H152H160V328V336H184H208V344V352H280H352V344V336H360H368V328V320H376H384V304V288H392H400V248V208H360H320V216V224H304H288V216V208H280H272V200V192H264H256V184V176H248H240V168V160H224H208V152V144H192H176V136V128H152H128V144ZM144 152V160H136H128V216V272H136H144V288V304H152H160V312V320H184H208V328V336H232H256V328V320H248H240V312V304H248H256V280V256H264H272V288V320H280H288V328V336H320H352V328V320H360H368V304V288H376H384V256V224H352H320V232V240H304H288V248V256H280H272V232V208H264H256V200V192H248H240V184V176H224H208V168V160H192H176V152V144H160H144V152ZM192 248V256H200H208V264V272H216H224V288V304H232H240V288V272H232H224V264V256H216H208V248V240H200H192V248ZM304 280V288H296H288V304V320H296H304V304V288H312H320V280V272H312H304V280Z" fill="#167A59"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M144 152V160H152H160V168V176H176H192V184V192H208H224V200V208H232H240V216V224H248H256V232V240H264H272V224V208H264H256V200V192H248H240V184V176H224H208V168V160H192H176V152V144H160H144V152ZM320 232V240H336H352V248V256H360H368V240V224H344H320V232Z" fill="#57C783"/>
</g>
<defs>
<clipPath id="clip0_2_7">
<rect width="512" height="512" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

View file

@ -0,0 +1,8 @@
<svg width="512" height="512" viewBox="0 0 512 512" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M28.4443 398.222V369.778H56.8888V398.222H85.3332V426.667H170.667V455.111H426.667V426.667H455.111V398.222H483.555V426.667H469.333H455.111V440.889V455.111H440.889H426.667V469.333V483.556H298.667H170.667V469.333V455.111H128H85.3332V440.889V426.667H71.111H56.8888V412.444V398.222H42.6666H28.4443Z" fill="black" fill-opacity="0.25"/>
<path d="M28.4443 369.778V341.333H56.8888V369.778H85.3332V398.222H170.667V426.667H426.667V398.222H455.111V369.778H483.555V398.222H469.333H455.111V412.444V426.667H440.889H426.667V440.889V455.111H298.667H170.667V440.889V426.667H128H85.3332V412.444V398.222H71.111H56.8888V384V369.778H42.6666H28.4443Z" fill="black" fill-opacity="0.5"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M28.4443 184.889V284.444H42.6666H56.8888V312.889V341.333H71.111H85.3332V355.556V369.778H128H170.667V384V398.222H213.333H256V384V369.778H227.555H199.111V355.556V341.333H170.667H142.222V327.111V312.889H128H113.778V298.667V284.444H99.5554H85.3332V270.222V256H71.111H56.8888V170.667V85.3333H42.6666H28.4443V184.889ZM455.111 256V312.889H440.889H426.667V341.333V369.778H398.222H369.778V341.333V312.889H384H398.222V298.667V284.444H384H369.778V298.667V312.889H355.555H341.333V341.333V369.778H327.111H312.889V384V398.222H369.778H426.667V384V369.778H440.889H455.111V341.333V312.889H469.333H483.555V256V199.111H469.333H455.111V256Z" fill="#38B067"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M56.8889 170.667V256H71.1111H85.3334V270.222V284.444H99.5556H113.778V298.667V312.889H128H142.222V327.111V341.333H170.667H199.111V355.556V369.778H213.333H227.556V355.556V341.333H241.778H256V298.667V256H270.222H284.444V312.889V369.778H298.667H312.889V341.333V312.889H327.111H341.333V298.667V284.444H369.778H398.222V298.667V312.889H384H369.778V341.333V369.778H398.222H426.667V341.333V312.889H440.889H455.111V284.444V256H440.889H426.667V241.778V227.556H369.778H312.889V241.778V256H298.667H284.444V241.778V227.556H270.222H256V213.333V199.111H241.778H227.556V184.889V170.667H213.333H199.111V156.444V142.222H170.667H142.222V128V113.778H113.778H85.3334V99.5556V85.3333H71.1111H56.8889V170.667ZM142.222 241.778V256H156.444H170.667V270.222V284.444H184.889H199.111V312.889V341.333H213.333H227.556V312.889V284.444H213.333H199.111V270.222V256H184.889H170.667V241.778V227.556H156.444H142.222V241.778Z" fill="#4ABF78"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M28.4444 56.8889V85.3333H14.2222H0V184.889V284.444H14.2222H28.4444V312.889V341.333H42.6667H56.8889V355.556V369.778H71.1111H85.3333V384V398.222H128H170.667V412.444V426.667H298.667H426.667V412.444V398.222H440.889H455.111V384V369.778H469.333H483.556V341.333V312.889H497.778H512V241.778V170.667H440.889H369.778V184.889V199.111H341.333H312.889V184.889V170.667H298.667H284.444V156.444V142.222H270.222H256V128V113.778H241.778H227.556V99.5556V85.3333H199.111H170.667V71.1111V56.8889H142.222H113.778V42.6667V28.4444H71.1111H28.4444V56.8889ZM56.8889 71.1111V85.3333H42.6667H28.4444V184.889V284.444H42.6667H56.8889V312.889V341.333H71.1111H85.3333V355.556V369.778H128H170.667V384V398.222H213.333H256V384V369.778H241.778H227.556V355.556V341.333H241.778H256V298.667V256H270.222H284.444V312.889V369.778H298.667H312.889V384V398.222H369.778H426.667V384V369.778H440.889H455.111V341.333V312.889H469.333H483.556V256V199.111H426.667H369.778V213.333V227.556H341.333H312.889V241.778V256H298.667H284.444V213.333V170.667H270.222H256V156.444V142.222H241.778H227.556V128V113.778H199.111H170.667V99.5556V85.3333H142.222H113.778V71.1111V56.8889H85.3333H56.8889V71.1111ZM142.222 241.778V256H156.444H170.667V270.222V284.444H184.889H199.111V312.889V341.333H213.333H227.556V312.889V284.444H213.333H199.111V270.222V256H184.889H170.667V241.778V227.556H156.444H142.222V241.778ZM341.333 298.667V312.889H327.111H312.889V341.333V369.778H327.111H341.333V341.333V312.889H355.556H369.778V298.667V284.444H355.556H341.333V298.667Z" fill="#167A59"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M56.8889 71.1111V85.3333H71.1111H85.3334V99.5556V113.778H113.778H142.222V128V142.222H170.667H199.111V156.444V170.667H213.333H227.556V184.889V199.111H241.778H256V213.333V227.556H270.222H284.444V199.111V170.667H270.222H256V156.444V142.222H241.778H227.556V128V113.778H199.111H170.667V99.5556V85.3333H142.222H113.778V71.1111V56.8889H85.3334H56.8889V71.1111ZM369.778 213.333V227.556H398.222H426.667V241.778V256H440.889H455.111V227.556V199.111H412.444H369.778V213.333Z" fill="#57C783"/>
</svg>

After

Width:  |  Height:  |  Size: 4.4 KiB

View file

@ -0,0 +1,45 @@
<svg width="220" height="220" viewBox="0 0 220 220" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_14_42)">
<path d="M193.75 141.049C193.75 180.51 156.534 212.5 110.625 212.5C64.7163 212.5 27.5 180.51 27.5 141.049C41.1644 122.903 25.7679 92.7734 41.1644 79.8049C56.6642 79.8048 68.3852 76.1176 69.6318 70.7316C72.598 57.916 42.8026 33.1083 54.8288 8.35348C61.9944 3.59548 76.1721 19.4598 85.5736 37.8414C94.1002 54.5123 99.1807 70.5411 102.654 70.7316C105.805 70.9044 107.721 71.8658 110.625 71.8658C133.399 71.8658 175.341 69.4448 190.334 82.0732C186.918 97.9512 193.75 121.056 193.75 141.049Z" fill="#F3F3F3"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M77.039 8.90552L111.492 67.9484C120.704 83.6564 77.5623 84.511 72.6278 75.7048L45.4398 27.2507C42.8514 22.6278 42.3906 17.0945 44.191 12.11C45.9914 7.12537 49.8697 3.19524 54.7915 1.3545L55.3945 1.12769C63.5194 -1.91261 72.6378 1.36534 77.039 8.90552Z" fill="url(#paint0_radial_14_42)"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M150.929 106.236C141.019 106.236 141.019 90.7225 150.929 90.7225H173.605C175.058 90.7225 176.44 90.1425 177.473 89.1089C178.496 88.0649 179.07 86.6677 179.07 85.1994V85.1683C179.07 82.1176 176.624 79.6452 173.605 79.6452H46.3922C43.3738 79.6452 40.9275 82.1176 40.9275 85.1683V85.1994C40.9275 86.6677 41.5014 88.0649 42.5241 89.1089C43.5571 90.1425 44.9395 90.7225 46.3922 90.7225H67.9734C77.8833 90.7225 77.8832 106.236 67.9734 106.236H46.3922C40.8762 106.236 35.5759 104.023 31.6768 100.072C27.7676 96.1314 25.5784 90.7744 25.5784 85.1994V85.1682C25.5784 73.5436 34.901 64.132 46.3922 64.132H173.605C185.096 64.132 194.419 73.5436 194.419 85.1682V85.1994C194.419 90.7744 192.229 96.1313 188.32 100.072C184.421 104.023 179.121 106.236 173.605 106.236H150.929Z" fill="url(#paint1_radial_14_42)"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M84.4197 172.725C78.3108 172.725 72.4576 170.263 68.1388 165.91C63.8201 161.545 61.3962 155.62 61.3962 149.455V71.8896C61.3962 67.5975 64.8343 64.1331 69.0707 64.1331H135.585C141.694 64.1331 147.547 66.5846 151.866 70.9477C156.184 75.3021 158.608 81.2267 158.608 87.4027V118.429C158.608 131.274 148.304 141.699 135.585 141.699C122.865 141.699 112.561 131.274 112.561 118.429V113.257C112.561 111.82 111.415 110.672 110.004 110.672C108.592 110.672 107.446 111.82 107.446 113.257V149.455C107.446 162.3 97.1419 172.725 84.4224 172.725H84.4197Z" fill="url(#paint2_radial_14_42)"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M173.935 101.839C172.104 97.9813 173.711 93.3482 177.528 91.4871C181.344 89.6363 185.928 91.2603 187.77 95.1178C193.204 106.536 196.253 119.329 196.253 132.825C196.253 180.938 157.605 220 110 220C62.3958 220 23.7473 180.938 23.7473 132.825C23.7473 119.329 26.7966 106.536 32.2305 95.1178C34.0721 91.2603 38.6561 89.6364 42.4727 91.4871C46.2894 93.3483 47.8962 97.9813 46.065 101.839C41.6041 111.219 39.0961 121.727 39.0961 132.823C39.0961 172.372 70.8682 204.485 110 204.485C149.132 204.485 180.904 172.373 180.904 132.823C180.904 121.727 178.398 111.219 173.935 101.839Z" fill="url(#paint3_radial_14_42)"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M171.396 204.482C175.633 204.482 179.071 207.957 179.071 212.239C179.071 216.521 175.633 219.995 171.396 219.995H48.6038C44.3674 219.995 40.9293 216.521 40.9293 212.239C40.9293 207.957 44.3674 204.482 48.6038 204.482H171.396Z" fill="url(#paint4_radial_14_42)"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M23.0236 204.482C27.26 204.482 30.6981 207.957 30.6981 212.239C30.6981 216.521 27.26 219.995 23.0236 219.995H7.67452C3.4381 219.995 0 216.521 0 212.239C0 207.957 3.4381 204.482 7.67452 204.482H23.0236Z" fill="url(#paint5_radial_14_42)"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M212.325 204.482C216.562 204.482 220 207.957 220 212.239C220 216.521 216.562 219.995 212.325 219.995H196.976C192.74 219.995 189.302 216.521 189.302 212.239C189.302 207.957 192.74 204.482 196.976 204.482H212.325Z" fill="url(#paint6_radial_14_42)"/>
</g>
<defs>
<radialGradient id="paint0_radial_14_42" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(74.8936 57.5745) rotate(50.4206) scale(227.744)">
<stop offset="0.242846" stop-color="#E84E1B"/>
<stop offset="1" stop-color="#A9142F"/>
</radialGradient>
<radialGradient id="paint1_radial_14_42" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(74.8936 57.5745) rotate(50.4206) scale(227.744)">
<stop offset="0.242846" stop-color="#E84E1B"/>
<stop offset="1" stop-color="#A9142F"/>
</radialGradient>
<radialGradient id="paint2_radial_14_42" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(74.8936 57.5745) rotate(50.4206) scale(227.744)">
<stop offset="0.242846" stop-color="#E84E1B"/>
<stop offset="1" stop-color="#A9142F"/>
</radialGradient>
<radialGradient id="paint3_radial_14_42" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(74.8936 57.5745) rotate(50.4206) scale(227.744)">
<stop offset="0.242846" stop-color="#E84E1B"/>
<stop offset="1" stop-color="#A9142F"/>
</radialGradient>
<radialGradient id="paint4_radial_14_42" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(74.8936 57.5745) rotate(50.4206) scale(227.744)">
<stop offset="0.242846" stop-color="#E84E1B"/>
<stop offset="1" stop-color="#A9142F"/>
</radialGradient>
<radialGradient id="paint5_radial_14_42" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(74.8936 57.5745) rotate(50.4206) scale(227.744)">
<stop offset="0.242846" stop-color="#E84E1B"/>
<stop offset="1" stop-color="#A9142F"/>
</radialGradient>
<radialGradient id="paint6_radial_14_42" cx="0" cy="0" r="1" gradientUnits="userSpaceOnUse" gradientTransform="translate(74.8936 57.5745) rotate(50.4206) scale(227.744)">
<stop offset="0.242846" stop-color="#E84E1B"/>
<stop offset="1" stop-color="#A9142F"/>
</radialGradient>
<clipPath id="clip0_14_42">
<rect width="220" height="220" fill="white"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 259 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 167 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 582 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 MiB

57
src/routes/+layout.svelte Normal file
View file

@ -0,0 +1,57 @@
<script>
import "../app.scss";
import Header from "./Header.svelte";
// import gitpot from "$lib/assets/logo/gitpot_icon.svg"
import "./styles.css";
</script>
<div class="app">
<Header />
<main>
<slot />
</main>
<footer>
<p>
&copy; Sangelo & LogolicusZ, 2023 | <a href="https://gitpot.dev/ExploreCraft/website"> Source Code</a>
</p>
</footer>
</div>
<style>
.app {
display: flex;
flex-direction: column;
min-height: 100vh;
}
main {
flex: 1;
display: flex;
flex-direction: column;
padding: 1rem;
width: 100%;
max-width: 64rem;
margin: 0 auto;
box-sizing: border-box;
}
footer {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
padding: 12px;
}
footer a {
font-weight: normal;
}
@media (min-width: 480px) {
footer {
padding: 0.1em 0;
}
}
</style>

3
src/routes/+page.js Normal file
View file

@ -0,0 +1,3 @@
// since there's no dynamic data here, we can prerender
// it so that it gets served as a static asset in production
export const prerender = true;

64
src/routes/+page.svelte Normal file
View file

@ -0,0 +1,64 @@
<script>
import Counter from './Counter.svelte';
import welcome from '$lib/images/svelte-welcome.webp';
import welcome_fallback from '$lib/images/svelte-welcome.png';
</script>
<svelte:head>
<title>ExploreCraft</title>
<meta name="description" content="Welcome to ExploreCraft! An exploration-focused and Quilt based modpack for Minecraft 1.19.2" />
</svelte:head>
<div class="text-column">
<h1>ExploreCraft</h1>
<p>Welcome to the ExploreCraft website!</p>
</div>
<!-- <section>
<h1>
<span class="welcome">
<picture>
<source srcset={welcome} type="image/webp" />
<img src={welcome_fallback} alt="Welcome" />
</picture>
</span>
to your new<br />SvelteKit app
</h1>
<h2>
try editing <strong>src/routes/+page.svelte</strong>
</h2>
<Counter />
</section> -->
<!-- <style>
section {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
flex: 0.6;
}
h1 {
width: 100%;
}
.welcome {
display: block;
position: relative;
width: 100%;
height: 0;
padding: 0 0 calc(100% * 495 / 2048) 0;
}
.welcome img {
position: absolute;
width: 100%;
height: 100%;
top: 0;
display: block;
}
</style> -->

102
src/routes/Counter.svelte Normal file
View file

@ -0,0 +1,102 @@
<script>
import { spring } from 'svelte/motion';
let count = 0;
const displayed_count = spring();
$: displayed_count.set(count);
$: offset = modulo($displayed_count, 1);
function modulo(n, m) {
// handle negative numbers
return ((n % m) + m) % m;
}
</script>
<div class="counter">
<button on:click={() => (count -= 1)} aria-label="Decrease the counter by one">
<svg aria-hidden="true" viewBox="0 0 1 1">
<path d="M0,0.5 L1,0.5" />
</svg>
</button>
<div class="counter-viewport">
<div class="counter-digits" style="transform: translate(0, {100 * offset}%)">
<strong class="hidden" aria-hidden="true">{Math.floor($displayed_count + 1)}</strong>
<strong>{Math.floor($displayed_count)}</strong>
</div>
</div>
<button on:click={() => (count += 1)} aria-label="Increase the counter by one">
<svg aria-hidden="true" viewBox="0 0 1 1">
<path d="M0,0.5 L1,0.5 M0.5,0 L0.5,1" />
</svg>
</button>
</div>
<style>
.counter {
display: flex;
border-top: 1px solid rgba(0, 0, 0, 0.1);
border-bottom: 1px solid rgba(0, 0, 0, 0.1);
margin: 1rem 0;
}
.counter button {
width: 2em;
padding: 0;
display: flex;
align-items: center;
justify-content: center;
border: 0;
background-color: transparent;
touch-action: manipulation;
font-size: 2rem;
}
.counter button:hover {
background-color: var(--color-bg-1);
}
svg {
width: 25%;
height: 25%;
}
path {
vector-effect: non-scaling-stroke;
stroke-width: 2px;
stroke: #444;
}
.counter-viewport {
width: 8em;
height: 4em;
overflow: hidden;
text-align: center;
position: relative;
}
.counter-viewport strong {
position: absolute;
display: flex;
width: 100%;
height: 100%;
font-weight: 400;
color: var(--color-theme-1);
font-size: 4rem;
align-items: center;
justify-content: center;
}
.counter-digits {
position: absolute;
width: 100%;
height: 100%;
}
.hidden {
top: -100%;
user-select: none;
}
</style>

115
src/routes/Header.svelte Normal file
View file

@ -0,0 +1,115 @@
<script>
import { page } from '$app/stores';
import logo from '$lib/assets/logo/explorecraft.svg';
import github from '$lib/images/github.svg';
import Switcher from './Switcher.svelte';
</script>
<div class="header-container">
<a class="link" href="/">
<div class="header">
<img class="logo" src="{logo}" alt="ExploreCraft Logo" />
<div>ExploreCraft</div>
</div>
</a>
<nav id="navigation-bar">
<ul>
<li aria-current={$page.url.pathname === '/' ? 'page' : undefined}>
<a href="/">Home</a>
</li>
<li aria-current={$page.url.pathname === '/download' ? 'page' : undefined}>
<a href="/download">Download</a>
</li>
<li aria-current={$page.url.pathname.startsWith('/gallery') ? 'page' : undefined}>
<a href="/gallery">Gallery</a>
</li>
<li>
<Switcher/>
</li>
</ul>
</nav>
</div>
<hr class="separator" />
<style>
.header {
display: flex;
align-items: center;
padding: 0;
font-weight: 500;
font-size: 1.5em;
}
.logo {
height: 2em;
width: auto;
margin-right: 0.2em;
}
.separator {
width: 95%;
margin: 0 auto;
border: none;
border-top: 2px solid;
margin-bottom: 1em;
}
.header-container {
display: flex;
align-items: center;
width: 100%;
}
.header {
display: flex;
align-items: center;
justify-content: space-between; /* Add this to align the logo and navigation on opposite sides */
padding: 0.5em;
padding-right: 1.5em; /* Change padding-left to padding-right */
font-weight: 500;
font-size: 1.5em;
}
#navigation-bar {
display: flex;
align-items: center;
justify-content: flex-end;
list-style: none;
margin: 0;
margin-left: auto;
margin-right: 2em;
padding: 0;
}
#navigation-bar li {
margin-left: 1em;
}
#navigation-bar a {
font-family: 'IBM Plex Mono', monospace;
font-style: normal;
font-weight: 500;
font-size: 1em;
/* color: #000000; */
text-decoration: none;
transition: font-style;
}
#navigation-bar a:hover {
font-style: italic;
}
#navigation-bar a.current-page {
font-style: italic;
}
.link {
/* color: #000000; */
text-decoration: none;
transition: font-style;
}
.link:hover {
font-style: italic;
}
</style>

View file

@ -0,0 +1,58 @@
<!-- Switcher.svelte -->
<script>
import { onMount } from "svelte";
import sun from "$lib/assets/icons/sun.svg";
import moon from "$lib/assets/icons/moon.svg";
let isDarkMode = false;
const toggleDarkMode = () => {
isDarkMode = !isDarkMode;
const theme = isDarkMode ? "dark" : "light";
document.documentElement.setAttribute("data-theme", theme);
localStorage.setItem("isDarkMode", JSON.stringify(isDarkMode));
};
onMount(() => {
const storedMode = localStorage.getItem("isDarkMode");
isDarkMode = storedMode
? JSON.parse(storedMode)
: window.matchMedia("(prefers-color-scheme: dark)").matches;
const theme = isDarkMode ? "dark" : "auto";
document.documentElement.setAttribute("data-theme", theme);
});
</script>
<button class:dark={isDarkMode} class="switcher" on:click={toggleDarkMode}>
{#if isDarkMode}
<img src={sun} class="icon" alt="Light Mode" />
{:else}
<img src={moon} class="icon" alt="Dark Mode" />
{/if}
</button>
<style>
.switcher {
padding: 0.5rem;
background-color: transparent;
border: none;
cursor: pointer;
color: var(--text-color); /* Set the color for the button icon */
}
.icon {
width: 1.5em;
height: 1.5em;
}
/* Dark mode styles */
:global(.dark) .icon {
filter: invert(100%);
}
/* Dark theme styles */
:global(.dark) {
--bg-color: #111;
--text-color: #fff;
}
</style>

View file

@ -0,0 +1,9 @@
import { dev } from '$app/environment';
// we don't need any JS on this page, though we'll load
// it in dev so that we get hot module replacement
export const csr = dev;
// since there's no dynamic data here, we can prerender
// it so that it gets served as a static asset in production
export const prerender = true;

View file

@ -0,0 +1,71 @@
<svelte:head>
<title>YAHOO!</title>
<meta name="description" content="CELEBRATE GOOD TIMES COME ON!" />
</svelte:head>
<script>
import { onMount } from 'svelte';
let characters = ['🥳', '🎉', '✨'];
let confetti = new Array(100)
.fill()
.map((_, i) => {
return {
character:
characters[i % characters.length],
x: Math.random() * 100,
y: -20 - Math.random() * 100,
r: 0.1 + Math.random() * 1
};
})
.sort((a, b) => a.r - b.r);
onMount(() => {
let frame;
function loop() {
frame = requestAnimationFrame(loop);
confetti = confetti.map((emoji) => {
emoji.y += 0.3 * emoji.r;
if (emoji.y > 120) emoji.y = -20;
return emoji;
});
}
loop();
return () => cancelAnimationFrame(frame);
});
</script>
{#each confetti as c}
<span
style="left: {c.x}%; top: {c.y}%; transform: scale({c.r})"
>{c.character}</span
>
{/each}
<div class="text-column">
<h1>Yahoo!</h1>
<h2>Celebrate good times COME ON!</h2>
</div>
<style>
:global(body) {
overflow: hidden;
}
span {
position: absolute;
font-size: 5vw;
user-select: none;
}
h1, h2 {
align-self: flex-start;
align-items: center;
}
</style>

View file

@ -0,0 +1,9 @@
import { dev } from '$app/environment';
// we don't need any JS on this page, though we'll load
// it in dev so that we get hot module replacement
export const csr = dev;
// since there's no dynamic data here, we can prerender
// it so that it gets served as a static asset in production
export const prerender = true;

View file

@ -0,0 +1,9 @@
<svelte:head>
<title>Downloads</title>
<meta name="description" content="About this app" />
</svelte:head>
<div class="text-column">
<h1>Downloads</h1>
<p>Here you'll find all downloads.</p>
</div>

View file

@ -0,0 +1,9 @@
import { dev } from '$app/environment';
// we don't need any JS on this page, though we'll load
// it in dev so that we get hot module replacement
export const csr = dev;
// since there's no dynamic data here, we can prerender
// it so that it gets served as a static asset in production
export const prerender = true;

View file

@ -0,0 +1,9 @@
<svelte:head>
<title>Gallery</title>
<meta name="description" content="About this app" />
</svelte:head>
<div class="text-column">
<h1>Gallery</h1>
<p>Here you'll find the sweet screenshots 😉.</p>
</div>

107
src/routes/styles.css Normal file
View file

@ -0,0 +1,107 @@
/* @import '@fontsource/fira-mono';
:root {
--font-body: Arial, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu,
Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
--font-mono: 'Fira Mono', monospace;
--color-bg-0: rgb(202, 216, 228);
--color-bg-1: hsl(209, 36%, 86%);
--color-bg-2: hsl(224, 44%, 95%);
--color-theme-1: #ff3e00;
--color-theme-2: #4075a6;
--color-text: rgba(0, 0, 0, 0.7);
--column-width: 42rem;
--column-margin-top: 4rem;
font-family: var(--font-body);
color: var(--color-text);
}
body {
min-height: 100vh;
margin: 0;
background-attachment: fixed;
background-color: var(--color-bg-1);
background-size: 100vw 100vh;
background-image: radial-gradient(
50% 50% at 50% 50%,
rgba(255, 255, 255, 0.75) 0%,
rgba(255, 255, 255, 0) 100%
),
linear-gradient(180deg, var(--color-bg-0) 0%, var(--color-bg-1) 15%, var(--color-bg-2) 50%);
}
h1,
h2,
p {
font-weight: 400;
}
p {
line-height: 1.5;
}
a {
color: var(--color-theme-1);
text-decoration: none;
}
a:hover {
text-decoration: underline;
}
h1 {
font-size: 2rem;
text-align: center;
}
h2 {
font-size: 1rem;
}
pre {
font-size: 16px;
font-family: var(--font-mono);
background-color: rgba(255, 255, 255, 0.45);
border-radius: 3px;
box-shadow: 2px 2px 6px rgb(255 255 255 / 25%);
padding: 0.5em;
overflow-x: auto;
color: var(--color-text);
}
.text-column {
display: flex;
max-width: 48rem;
flex: 0.6;
flex-direction: column;
justify-content: center;
margin: 0 auto;
}
input,
button {
font-size: inherit;
font-family: inherit;
}
button:focus:not(:focus-visible) {
outline: none;
}
@media (min-width: 720px) {
h1 {
font-size: 2.4rem;
}
}
.visually-hidden {
border: 0;
clip: rect(0 0 0 0);
height: auto;
margin: 0;
overflow: hidden;
padding: 0;
position: absolute;
width: 1px;
white-space: nowrap;
} */

2
src/variables.scss Normal file
View file

@ -0,0 +1,2 @@
/* Variables and mixins declared here will be available in all other SCSS files */ /* https://github.com/picocss/pico/issues/201 */
$semantic-root-element: "body div:first-child";

8
static/favicon.svg Normal file
View file

@ -0,0 +1,8 @@
<svg width="512" height="512" viewBox="0 0 512 512" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M28.4443 398.222V369.778H56.8888V398.222H85.3332V426.667H170.667V455.111H426.667V426.667H455.111V398.222H483.555V426.667H469.333H455.111V440.889V455.111H440.889H426.667V469.333V483.556H298.667H170.667V469.333V455.111H128H85.3332V440.889V426.667H71.111H56.8888V412.444V398.222H42.6666H28.4443Z" fill="black" fill-opacity="0.25"/>
<path d="M28.4443 369.778V341.333H56.8888V369.778H85.3332V398.222H170.667V426.667H426.667V398.222H455.111V369.778H483.555V398.222H469.333H455.111V412.444V426.667H440.889H426.667V440.889V455.111H298.667H170.667V440.889V426.667H128H85.3332V412.444V398.222H71.111H56.8888V384V369.778H42.6666H28.4443Z" fill="black" fill-opacity="0.5"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M28.4443 184.889V284.444H42.6666H56.8888V312.889V341.333H71.111H85.3332V355.556V369.778H128H170.667V384V398.222H213.333H256V384V369.778H227.555H199.111V355.556V341.333H170.667H142.222V327.111V312.889H128H113.778V298.667V284.444H99.5554H85.3332V270.222V256H71.111H56.8888V170.667V85.3333H42.6666H28.4443V184.889ZM455.111 256V312.889H440.889H426.667V341.333V369.778H398.222H369.778V341.333V312.889H384H398.222V298.667V284.444H384H369.778V298.667V312.889H355.555H341.333V341.333V369.778H327.111H312.889V384V398.222H369.778H426.667V384V369.778H440.889H455.111V341.333V312.889H469.333H483.555V256V199.111H469.333H455.111V256Z" fill="#38B067"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M56.8889 170.667V256H71.1111H85.3334V270.222V284.444H99.5556H113.778V298.667V312.889H128H142.222V327.111V341.333H170.667H199.111V355.556V369.778H213.333H227.556V355.556V341.333H241.778H256V298.667V256H270.222H284.444V312.889V369.778H298.667H312.889V341.333V312.889H327.111H341.333V298.667V284.444H369.778H398.222V298.667V312.889H384H369.778V341.333V369.778H398.222H426.667V341.333V312.889H440.889H455.111V284.444V256H440.889H426.667V241.778V227.556H369.778H312.889V241.778V256H298.667H284.444V241.778V227.556H270.222H256V213.333V199.111H241.778H227.556V184.889V170.667H213.333H199.111V156.444V142.222H170.667H142.222V128V113.778H113.778H85.3334V99.5556V85.3333H71.1111H56.8889V170.667ZM142.222 241.778V256H156.444H170.667V270.222V284.444H184.889H199.111V312.889V341.333H213.333H227.556V312.889V284.444H213.333H199.111V270.222V256H184.889H170.667V241.778V227.556H156.444H142.222V241.778Z" fill="#4ABF78"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M28.4444 56.8889V85.3333H14.2222H0V184.889V284.444H14.2222H28.4444V312.889V341.333H42.6667H56.8889V355.556V369.778H71.1111H85.3333V384V398.222H128H170.667V412.444V426.667H298.667H426.667V412.444V398.222H440.889H455.111V384V369.778H469.333H483.556V341.333V312.889H497.778H512V241.778V170.667H440.889H369.778V184.889V199.111H341.333H312.889V184.889V170.667H298.667H284.444V156.444V142.222H270.222H256V128V113.778H241.778H227.556V99.5556V85.3333H199.111H170.667V71.1111V56.8889H142.222H113.778V42.6667V28.4444H71.1111H28.4444V56.8889ZM56.8889 71.1111V85.3333H42.6667H28.4444V184.889V284.444H42.6667H56.8889V312.889V341.333H71.1111H85.3333V355.556V369.778H128H170.667V384V398.222H213.333H256V384V369.778H241.778H227.556V355.556V341.333H241.778H256V298.667V256H270.222H284.444V312.889V369.778H298.667H312.889V384V398.222H369.778H426.667V384V369.778H440.889H455.111V341.333V312.889H469.333H483.556V256V199.111H426.667H369.778V213.333V227.556H341.333H312.889V241.778V256H298.667H284.444V213.333V170.667H270.222H256V156.444V142.222H241.778H227.556V128V113.778H199.111H170.667V99.5556V85.3333H142.222H113.778V71.1111V56.8889H85.3333H56.8889V71.1111ZM142.222 241.778V256H156.444H170.667V270.222V284.444H184.889H199.111V312.889V341.333H213.333H227.556V312.889V284.444H213.333H199.111V270.222V256H184.889H170.667V241.778V227.556H156.444H142.222V241.778ZM341.333 298.667V312.889H327.111H312.889V341.333V369.778H327.111H341.333V341.333V312.889H355.556H369.778V298.667V284.444H355.556H341.333V298.667Z" fill="#167A59"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M56.8889 71.1111V85.3333H71.1111H85.3334V99.5556V113.778H113.778H142.222V128V142.222H170.667H199.111V156.444V170.667H213.333H227.556V184.889V199.111H241.778H256V213.333V227.556H270.222H284.444V199.111V170.667H270.222H256V156.444V142.222H241.778H227.556V128V113.778H199.111H170.667V99.5556V85.3333H142.222H113.778V71.1111V56.8889H85.3334H56.8889V71.1111ZM369.778 213.333V227.556H398.222H426.667V241.778V256H440.889H455.111V227.556V199.111H412.444H369.778V213.333Z" fill="#57C783"/>
</svg>

After

Width:  |  Height:  |  Size: 4.4 KiB

3
static/robots.txt Normal file
View file

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

22
svelte.config.js Normal file
View file

@ -0,0 +1,22 @@
import preprocess from "svelte-preprocess";
import adapter from "@sveltejs/adapter-auto";
/** @type {import('@sveltejs/kit').Config} */
const config = {
kit: {
// adapter-auto only supports some environments, see https://kit.svelte.dev/docs/adapter-auto for a list.
// If your environment is not supported or you settled on a specific environment, switch out the adapter.
// See https://kit.svelte.dev/docs/adapters for more information about adapters.
adapter: adapter(),
},
preprocess: [
preprocess({
scss: {
prependData: '@use "src/variables.scss" as *;',
},
}),
],
};
export default config;

14
vite.config.js Normal file
View file

@ -0,0 +1,14 @@
import { sveltekit } from "@sveltejs/kit/vite";
import { defineConfig } from "vite";
export default defineConfig({
plugins: [sveltekit()],
css: {
preprocessorOptions: {
scss: {
additionalData: '@use "src/variables.scss" as *;',
},
},
},
});