Initial Commit

This commit is contained in:
Nazareno Oviedo 2022-03-28 15:00:11 -03:00
commit 4aa3fdbc2a
147 changed files with 8710 additions and 0 deletions

35
.gitignore vendored Normal file
View File

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

1
.husky/.gitignore vendored Normal file
View File

@ -0,0 +1 @@
_

4
.husky/pre-commit Executable file
View File

@ -0,0 +1,4 @@
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"
yarn lint-staged

9
.vscode/extensions.json vendored Normal file
View File

@ -0,0 +1,9 @@
{
"recommendations": [
"bradlc.vscode-tailwindcss",
"heybourn.headwind",
"dbaeumer.vscode-eslint",
"esbenp.prettier-vscode",
"stylelint.vscode-stylelint"
]
}

21
.vscode/settings.json vendored Normal file
View File

@ -0,0 +1,21 @@
{
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true,
"source.fixAll.stylelint": true
},
"stylelint.validate": ["css", "scss"],
"css.validate": false,
"less.validate": false,
"scss.validate": false,
"[css]": {
"editor.formatOnSave": false
},
"[scss]": {
"editor.formatOnSave": false
},
"[less]": {
"editor.formatOnSave": false
}
}

33
README.md Normal file
View File

@ -0,0 +1,33 @@
# Laconic
Repository for `Laconic`'s website.
## Featured Aspects of the Stack
- [TypeScript](https://www.typescriptlang.org/)
- [Next.js](https://nextjs.org/)
- [GSAP](https://greensock.com/gsap/)
## Get Started
1. Install yarn:
```
npm install -g yarn
```
2. Install the dependencies with:
```
yarn
```
3. Start developing and watch for code changes:
```
yarn dev
```
---
If you find you need to make extra config to make this work more seamlessly, feel free to submit a PR suggesting your changes. Our focus is to get you up and running with the least steps and burden as possible.

5
next-env.d.ts vendored Normal file
View File

@ -0,0 +1,5 @@
/// <reference types="next" />
/// <reference types="next/image-types/global" />
// NOTE: This file should not be edited
// see https://nextjs.org/docs/basic-features/typescript for more information.

5
next-sitemap.js Normal file
View File

@ -0,0 +1,5 @@
module.exports = {
siteUrl: 'https://laconic.com/',
generateRobotsTxt: true,
exclude: []
}

13
next.config.js Normal file
View File

@ -0,0 +1,13 @@
const withPlugins = require('next-compose-plugins')
const withBundleAnalyzer = require('@next/bundle-analyzer')
module.exports = withPlugins(
[withBundleAnalyzer({ enabled: process.env.ANALYZE === 'true' })],
{
reactStrictMode: false,
swcMinify: true,
images: {
formats: ['image/avif', 'image/webp']
}
}
)

250
package.json Normal file
View File

@ -0,0 +1,250 @@
{
"name": "laconic",
"version": "1.0.0",
"description": "Laconic Website",
"repository": "https://github.com/LaconicNetwork/laconic.com",
"author": "basement.studio",
"private": true,
"scripts": {
"prepare": "husky install",
"dev": "next",
"build": "next build && next export",
"build:analyze": "cross-env ANALYZE=true yarn build",
"postbuild": "next-sitemap",
"start": "next start",
"lint": "eslint . --ext .ts,.tsx,.js,.jsx && stylelint '**/*.{css,scss}'",
"tsc": "tsc --pretty --noEmit"
},
"dependencies": {
"@juggle/resize-observer": "^3.3.1",
"@radix-ui/react-polymorphic": "^0.0.14",
"clsx": "^1.1.1",
"gsap": "https://basement.studio/gsap/bonus-0.0.12.tgz",
"keen-slider": "^6.6.5",
"locomotive-scroll": "^4.1.4",
"next": "^12.1.1",
"next-real-viewport": "^0.7.0",
"next-seo": "^5.2.0",
"react": "^18.0.0-rc.0",
"react-device-detect": "^2.1.2",
"react-dom": "^18.0.0-rc.0",
"react-fast-marquee": "^1.3.1",
"react-hook-form": "^7.28.1",
"react-merge-refs": "^1.1.0",
"react-use-measure": "^2.1.1",
"sharp": "0.30.3"
},
"devDependencies": {
"@next/bundle-analyzer": "^12.1.1",
"@types/css-font-loading-module": "0.0.7",
"@types/mousetrap": "^1.6.9",
"@types/node": "^17.0.23",
"@types/react": "^17.0.43",
"@types/react-dom": "^17.0.14",
"@typescript-eslint/eslint-plugin": "^5.16.0",
"@typescript-eslint/parser": "^5.16.0",
"autoprefixer": "10.4.4",
"cross-env": "^7.0.3",
"eslint": "^7.32.0",
"eslint-config-next": "^12.1.1",
"eslint-config-prettier": "8.5.0",
"eslint-import-resolver-typescript": "^2.5.0",
"eslint-plugin-import": "^2.25.4",
"eslint-plugin-jsx-a11y": "^6.5.1",
"eslint-plugin-prettier": "^4.0.0",
"eslint-plugin-react": "7.29.4",
"eslint-plugin-react-hooks": "^4.3.0",
"eslint-plugin-simple-import-sort": "^7.0.0",
"husky": "^7.0.4",
"lint-staged": "12.3.7",
"next-compose-plugins": "^2.2.1",
"next-sitemap": "^2.5.14",
"next-transpile-modules": "^9.0.0",
"prettier": "^2.6.1",
"sass": "1.49.9",
"stylelint": "^14.6.1",
"stylelint-config-prettier": "^9.0.3",
"stylelint-config-standard": "^25.0.0",
"stylelint-config-standard-scss": "^3.0.0",
"stylelint-prettier": "^2.0.0",
"typescript": "^4.6.3"
},
"engines": {
"node": "14.x",
"yarn": "1.x"
},
"browserslist": [
">0.2%",
"not dead",
"not ie <= 11",
"not op_mini all"
],
"prettier": {
"semi": false,
"singleQuote": true,
"arrowParens": "always",
"tabWidth": 2,
"printWidth": 80,
"trailingComma": "none"
},
"eslintConfig": {
"parser": "@typescript-eslint/parser",
"plugins": [
"react",
"react-hooks",
"simple-import-sort",
"@typescript-eslint"
],
"ignorePatterns": [
"src/lib/lambo-jump/*"
],
"extends": [
"eslint:recommended",
"plugin:import/recommended",
"plugin:import/typescript",
"plugin:react/recommended",
"plugin:@typescript-eslint/recommended",
"prettier",
"plugin:prettier/recommended"
],
"env": {
"es6": true,
"browser": true,
"node": true
},
"rules": {
"react/react-in-jsx-scope": 0,
"react/display-name": 0,
"react/prop-types": 0,
"@typescript-eslint/explicit-function-return-type": 0,
"@typescript-eslint/explicit-member-accessibility": 0,
"@typescript-eslint/indent": 0,
"@typescript-eslint/member-delimiter-style": 0,
"@typescript-eslint/no-explicit-any": 0,
"@typescript-eslint/no-var-requires": 0,
"@typescript-eslint/no-use-before-define": 0,
"@typescript-eslint/ban-ts-comment": 0,
"simple-import-sort/imports": "error",
"simple-import-sort/exports": "error",
"react-hooks/exhaustive-deps": "warn",
"react/no-unescaped-entities": 0,
"curly": [
"error",
"multi-line"
],
"react/jsx-no-target-blank": [
2,
{
"allowReferrer": true
}
],
"@typescript-eslint/no-unused-vars": [
2,
{
"argsIgnorePattern": "^_"
}
],
"no-console": [
1,
{
"allow": [
"warn",
"error"
]
}
],
"prettier/prettier": [
"warn"
],
"@typescript-eslint/explicit-module-boundary-types": "off"
},
"settings": {
"import/parsers": {
"@typescript-eslint/parser": [
".ts",
".tsx"
]
},
"import/resolver": {
"typescript": {
"alwaysTryTypes": true,
"project": "."
}
},
"react": {
"version": "detect"
}
}
},
"stylelint": {
"ignoreFiles": [
"**/*.{ts,tsx,js,jsx}"
],
"extends": [
"stylelint-config-standard",
"stylelint-config-standard-scss",
"stylelint-prettier/recommended"
],
"plugins": [
"stylelint-prettier"
],
"rules": {
"scss/at-rule-no-unknown": [
true,
{
"ignoreAtRules": [
"tailwind",
"layer",
"apply",
"variants",
"responsive",
"screen",
"include",
"for",
"mixin",
"if",
"else",
"warn",
"return",
"function",
"use",
"each"
]
}
],
"selector-pseudo-class-no-unknown": [
true,
{
"ignorePseudoClasses": [
"global"
]
}
],
"property-no-unknown": [
true,
{
"ignoreProperties": [
"font-named-instance"
]
}
],
"declaration-block-trailing-semicolon": null,
"no-descending-specificity": null,
"number-leading-zero": null,
"length-zero-no-unit": null,
"alpha-value-notation": null,
"selector-id-pattern": null,
"selector-class-pattern": null,
"property-no-vendor-prefix": null,
"value-no-vendor-prefix": null,
"function-no-unknown": null,
"scss/no-global-function-names": null,
"scss/at-extend-no-missing-placeholder": null
}
},
"lint-staged": {
"*.@(ts|tsx|css|scss)": [
"yarn lint --fix"
]
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

BIN
public/apple-touch-icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

9
public/browserconfig.xml Normal file
View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<browserconfig>
<msapplication>
<tile>
<square150x150logo src="/mstile-150x150.png"/>
<TileColor>#000000</TileColor>
</tile>
</msapplication>
</browserconfig>

BIN
public/favicon-16x16.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 332 B

BIN
public/favicon-32x32.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 423 B

BIN
public/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 1012 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 286 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 708 KiB

BIN
public/images/cash.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 MiB

View File

@ -0,0 +1 @@
<svg width="28" height="42" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M4.65967 34.9953v2.338H0V0h4.66667c-.00234.779333-.00467 1.55867-.007 2.338l.01166-.01167H2.359V35.0047h2.31233l-.01166-.0094ZM21.0069 39.6621c-.0023.7793-.0046 1.5587-.007 2.338h-4.6666c.0023-.7793.0046-1.5587.007-2.338l-.0117.0117c1.5587-.0047 3.1173-.0094 4.6783-.0117ZM28 25.6666c-.7793.0023-1.5587.0047-2.338.007.0047-.7817.007-1.5633.0117-2.345l-.0117.0117c.7793-.0024 1.5587-.0047 2.338-.007v2.3333Z" fill="#000"/><path d="M4.65967 2.33784H6.993v2.33333l.01167-.01166H4.67133V2.32617l-.01166.01167ZM6.99304 4.67133h2.33334v2.33334l.01166-.01167H7.00471V4.65967l-.01167.01166ZM9.32629 7.00483h2.33331v2.33333l.0117-.01166H9.33796V6.99316l-.01167.01167Z" fill="#000"/><path d="M11.6597 9.33784h2.3333v2.33336l.0117-.0117h-2.3334V9.32617l-.0116.01167ZM13.993 11.6713h2.3334v2.3334l.0116-.0117h-2.3333v-2.3333l-.0117.0116ZM16.3263 14.0048h2.3333v2.3334l.0117-.0117H16.338v-2.3333l-.0117.0116Z" fill="#000"/><path d="M18.6597 16.3378h2.3333v2.3334l.0117-.0117h-2.3334v-2.3333l-.0116.0116ZM20.993 18.6713h2.3334v2.3334l.0116-.0117h-2.3333v-2.3333l-.0117.0116ZM23.3263 21.0048h2.3333v2.3334l.0117-.0117H23.338v-2.3333l-.0117.0116ZM14.0047 34.9928h-2.3334v-4.6666l-.0116.0116h2.3333v4.6667l.0117-.0117ZM16.3404 39.6618H14.007v-4.6667l-.0116.0117h2.3333v4.6667l.0117-.0117Z" fill="#000"/><path d="M11.6736 30.3285H9.32861l.01167.0117v-2.3124h2.32162v2.3124l.0117-.0117Z" fill="#000"/><path d="M9.32869 30.3262v2.3333H6.99536l.01167.0117v-2.3334h2.33333l-.01167-.0116ZM6.99532 32.6597v2.3333H4.66199l.01166.0117v-2.3334h2.33333l-.01166-.0116Z" fill="#000"/><path d="M7.00468 32.6712H4.67134v2.3333H2.35901V2.32617h2.31233v2.33334h2.33334v2.33333h2.33333v2.33333h2.33329v2.33333h2.3334v2.3333h2.3333v2.3334h2.3333v2.3333h2.3334v2.3333h2.3333v2.3334h2.3333c-.0046.7816-.007 1.5633-.0116 2.345l.0116-.0117H16.359v4.6783h2.3123l-.0116-.0116v4.6783h2.345l-.0117-.0117v4.6784l.0117-.0117c-1.5587.0047-3.1197.007-4.6784.0117v-4.6667H13.993v-4.6667h-2.3333v-2.3123H9.33801v2.3123H7.00468v2.3334Z" fill="#fff"/><path d="M18.6713 30.338H16.359v-4.6783h9.3123v2.324h-7v2.3543Z" fill="#000"/><path d="M21.0047 35.0045h-2.345v-4.6783h2.345v4.6783Z" fill="#000"/><path d="M20.9954 39.6715v-4.6783h2.3123v4.6783h-2.3123Z" fill="#000"/></svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@ -0,0 +1 @@
<svg width="28" height="45" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M4.66667 0c-.00234.779333-.00468 1.55867-.00701 2.338l.01168-.01167H2.36367V34.9767h2.31232v-2.331h2.34035v-2.3264h2.32632V28.021H11.683v2.3193h2.3263v4.6737h2.3404v4.6247h4.6596V34.993l-.0116.0117h2.317v7.0046h-2.31v2.324H16.338v-2.3426h-2.3403V37.317h-2.3404v-4.6247H9.317v2.3217H6.99067v2.3403H4.65033v2.3124H0V0h4.66667Z" fill="#000"/><path d="M28 27.9998h-2.324v2.3264h-4.683v4.6783l.0117-.0117H18.648v-4.6736h-2.2936v-4.6667h9.3146v-2.3263l-.0116.0116c.7793-.0023 1.5586-.0046 2.338-.007C28 24.8895 28 26.4435 28 27.9998ZM4.65967 2.33784H6.993v2.33333l.01168-.01166H4.67135V2.32617l-.01168.01167ZM6.99304 4.67133h2.33334v2.33334l.01167-.01167H7.00472V4.65967l-.01168.01166ZM9.32629 7.00483h2.33331v2.33333l.0117-.01166H9.33797V6.99316l-.01168.01167Z" fill="#000"/><path d="M11.6597 9.33784h2.3333v2.33336l.0117-.0117h-2.3334V9.32617l-.0116.01167ZM13.993 11.6713h2.3334v2.3334l.0117-.0117h-2.3334v-2.3333l-.0117.0116ZM16.3263 14.0048h2.3333v2.3334l.0117-.0117H16.338v-2.3333l-.0117.0116Z" fill="#000"/><path d="M18.6597 16.3378h2.3333v2.3334l.0117-.0117h-2.3334v-2.3333l-.0116.0116ZM20.993 18.6713h2.3334v2.3334l.0117-.0117h-2.3334v-2.3333l-.0117.0116ZM23.3263 21.0048h2.3333v2.3334l.0117-.0117H23.338v-2.3333l-.0117.0116Z" fill="#000"/><path d="M23.338 20.9953v2.3333h2.3333v2.3263h-9.3146v4.6667h2.2936v4.6737h2.3567v4.6457h-4.6597v-4.6247H14.007v-4.6737h-2.3263v-2.3193H9.34034v2.2983H7.014v2.3263H4.67367v2.3311H2.36133V2.32861H4.669v2.33334h2.33333v2.33333h2.33333v2.33333H11.669v2.33329h2.3333v2.3334h2.3334v2.3333h2.3333v2.3333h2.3333v2.3334h2.3357Z" fill="#fff"/></svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -0,0 +1 @@
<svg width="35" height="52" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M6.99768 28.0023h2.33567V0H14c.0023.779333.0047 1.55867.007 2.338h-2.3147v4.634h2.303V2.32867h2.3357V9.338l.007-.007c-.14.01167-.2823.03033-.4223.03033-1.2577.00234-2.513.00234-3.7707.00234h-.4643V30.338H7.00701v-2.3403l-.00933.0046Z" fill="#000"/><path d="M2.33567 34.9975c-.77934 0-1.556337.0023-2.33567.0023V18.6665h4.67367v2.338H2.359v4.634h2.303v-4.6433h2.33567v7.0093l.007-.007c-1.38134.0117-2.765.021-4.14634.0327h-.497v.4643c0 2.0183 0 4.0343-.00233 6.0527 0 .154-.021.308-.03033.462l.007-.0117ZM28.0093 48.9977c-.0023.7794-.007 1.5564-.0093 2.3357H11.6667c0-.7793.0023-1.5563.0023-2.3357l-.007.007c.1283-.0116.2567-.0303.385-.0303 5.1917-.0023 10.3857-.0023 15.5773 0 .1284 0 .2567.014.385.0233ZM35 39.6668c-.7793.0023-1.5563.007-2.3356.0093-.0094-.1027-.0234-.2053-.0234-.308-.0023-4.4543-.0023-8.9063 0-13.3607 0-.1143.021-.231.0304-.3453l-.007.007c.7793 0 1.5563-.0023 2.3356-.0023v14ZM16.331 9.33561h2.3193v6.98129h2.3473v2.352l.007-.007H18.69v7.0047h-2.366c-.007-.1517-.0164-.28-.0164-.406V9.71361c0-.12833.021-.25666.0304-.385l-.007.007Z" fill="#000"/><path d="M20.9977 18.6691h4.6667v2.3333l.007-.007h-2.3147v4.6714H20.972v-.4434c0-2.0463 0-4.0926.0024-6.139 0-.14.021-.2823.0303-.4223l-.007.007Z" fill="#000"/><path d="M25.6643 21.0021h4.6667v2.3334l.007-.007h-2.3147v4.6713h-2.3846v-.4434c0-2.0463 0-4.0926.0023-6.139 0-.14.021-.2823.0303-.4223l-.007.007Z" fill="#000"/><path d="M30.3311 23.3356h2.3333v2.3333l.007-.007h-2.3333v-2.3333l-.007.007ZM7.00232 41.9977H4.66899v-4.6666l-.007.007h2.366c0 .7396.00466 1.4466 0 2.156-.007.8376-.021 1.6753-.03033 2.5106-.00234 0 .00466-.007.00466-.007Z" fill="#000"/><path d="M9.33569 46.6642H7.00236v-4.6666l-.007.007h2.366c0 .7396.00467 1.4466 0 2.156-.007.8376-.021 1.6753-.03033 2.5106-.00233 0 .00466-.007.00466-.007ZM4.66895 37.3309H2.33561v-2.3333l-.007.007h2.33334v2.3333l.007-.007Z" fill="#000"/><path d="M11.6689 48.9979H9.33561v-2.3333l-.007.007h2.33329v2.3333l.007-.007Z" fill="#000"/><path d="M11.662 49.0045v-2.3333H9.32864c.01167-.8377.02567-1.6754.03033-2.5107.00467-.707 0-1.4163 0-2.156h-2.366c.01167-.8377.02567-1.6753.03034-2.5107.00466-.707 0-1.4163 0-2.156h-2.366v-2.3333H2.32397c.01167-.154.03034-.308.03034-.462.00233-2.0183.00233-4.0343.00233-6.0527v-.4643h.497c1.38133-.0117 2.765-.021 4.14633-.0327v2.3404h4.67363V9.35884h.4644c1.2576 0 2.513 0 3.7706-.00234.14 0 .2824-.02099.4224-.03033-.0117.12834-.0304.25667-.0304.385-.0023 5.18233-.0023 10.36463 0 15.54703 0 .126.0094.2543.0164.406h2.366v-7.0047h2.3146c-.0116.14-.0303.2823-.0303.4223-.0023 2.0464-.0023 4.0927-.0023 6.139v.4434h2.3846v-4.6714h2.3147c-.0117.14-.0303.2824-.0303.4224-.0024 2.0463-.0024 4.0926-.0024 6.139v.4433h2.3847v-4.6713h2.3147v2.3333h2.3333c-.0117.1143-.0303.231-.0303.3453-.0024 4.4544-.0024 8.9064 0 13.3607 0 .1027.0163.2053.0233.308l.0093-.014h-2.3683c0 .8937-.0023 1.7453 0 2.597.0047 1.4723.014 2.9423.0233 4.4147l.0117-.0117h-2.345v2.345l.014-.0093c-.1283-.0094-.2567-.0234-.385-.0234-5.1917-.0023-10.3857-.0023-15.5773 0-.1214.0024-.2497.021-.378.0327Z" fill="#00ACD2"/><path d="M13.9954 2.32617v4.64334h-2.303v-4.634h2.3146c0 .00233-.0116-.00934-.0116-.00934ZM4.66201 20.9932v4.6433h-2.303v-4.634h2.31467c0 .0023-.01167-.0093-.01167-.0093Z" fill="#fff"/><path d="M30.3287 46.6738c-.007-1.4724-.0163-2.9424-.0233-4.4147-.0024-.8517 0-1.701 0-2.597h2.3683v7.0117h-2.345Z" fill="#000"/><path d="M27.9954 49.0071v-2.345h2.345v2.345h-2.345Z" fill="#000"/></svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

View File

@ -0,0 +1 @@
<svg width="35" height="54" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M32.6643 25.6688c.7794 0 1.5564-.0023 2.3357-.0023v16.3333h-2.3497v7.021h-2.331v2.3194H28v2.3263H11.6667v-2.3427H9.32867v-2.338h-2.338v-4.6573h-2.338v-4.6713h-2.324v-2.324H0V18.6665h4.67367v2.338H2.359v4.634h2.303v-4.6433h2.33567v7.0093l.007-.007c-.14.0117-.28234.0303-.42234.0303-1.25766.0024-2.51533.0024-3.77066.0024H2.394v6.9556h2.30767v2.3334H7.049v4.6666h2.31933v4.6667h2.34737v2.289h16.275v-2.31h2.3333v-7.014h2.3193v-.5063c0-4.3167 0-8.6334.0024-12.9477 0-.168.021-.3337.0303-.5017l-.0117.007Z" fill="#000"/><path d="M6.99768 28.0023h2.33567V0H14c.0023.779333.0047 1.55867.007 2.338h-2.3147v4.634h2.303V2.32867h2.3357V9.338l.007-.007c-.14.01167-.2823.03033-.4223.03033-1.2577.00234-2.513.00234-3.7707.00234h-.4643V30.338H7.00701v-2.3403l-.00933.0046Z" fill="#000"/><path d="M16.331 9.33561h2.3193v6.98129h2.3473v2.352l.007-.007H18.69v7.0047h-2.366c-.007-.1517-.0164-.28-.0164-.406V9.71361c0-.12833.021-.25666.0303-.385l-.0069.007Z" fill="#000"/><path d="M20.9977 18.6691h4.6667v2.3333l.007-.007h-2.3147v4.6714H20.972v-.4434c0-2.0463 0-4.0926.0024-6.139 0-.14.021-.2823.0303-.4223l-.007.007Z" fill="#000"/><path d="M25.6643 21.0021h4.6667v2.3334l.007-.007h-2.3147v4.6713h-2.3846v-.4434c0-2.0463 0-4.0926.0023-6.139 0-.14.021-.2823.0303-.4223l-.007.007Z" fill="#000"/><path d="M30.3311 23.3356h2.3333v2.3333l.007-.007h-2.3333v-2.3333l-.007.007Z" fill="#000"/><path d="M30.338 23.3287v2.3334h2.3333c-.0117.168-.0304.3336-.0304.5016-.0023 4.3167-.0023 8.6334-.0023 12.9477v.5063h-2.3193v7.014H27.986v2.31H11.7109v-2.289H9.36362v-4.6666H7.04428v-4.6667H4.69695v-2.3333H2.38928v-6.9557h.41767c1.25767 0 2.51533 0 3.77067-.0023.14 0 .28233-.021.42233-.0304v2.3404h4.67365V9.36372h.4643c1.2577 0 2.513 0 3.7707-.00233.14 0 .2823-.021.4223-.03034-.0116.12834-.0303.25667-.0303.385-.0023 5.18235-.0023 10.36465 0 15.54705 0 .126.0093.2543.0163.406h2.366v-7.0047h2.3147c-.0117.14-.0303.2823-.0303.4223-.0024 2.0464-.0024 4.0927-.0024 6.139v.4434h2.3847v-4.6714h2.3147c-.0117.14-.0304.2824-.0304.4224-.0023 2.0463-.0023 4.0926-.0023 6.139v.4433h2.3847v-4.6713c.8073-.0024 1.5633-.0024 2.3217-.0024Z" fill="#00ACD2"/><path d="M4.66201 20.9932v4.6433h-2.303v-4.634h2.31467c0 .0023-.01167-.0093-.01167-.0093ZM13.9954 2.32617v4.64334h-2.303v-4.634h2.3146c0 .00233-.0116-.00934-.0116-.00934Z" fill="#fff"/></svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 156 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

BIN
public/images/gifs/cash.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

View File

@ -0,0 +1,244 @@
<svg width="706" height="109" viewBox="0 0 706 109" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M54.8529 108.73V81.4903H36.693V8.85059H9.45312V108.73H54.8529Z" fill="black"/>
<path d="M57.5947 8.85059V108.73H84.8345V72.4103H93.9145V108.73H121.154V8.85059H57.5947ZM93.9145 45.1704H84.8345V36.0905H93.9145V45.1704Z" fill="black"/>
<path d="M123.861 8.85059V108.73H151.101V36.0905H160.18V108.73H187.42V36.0905H196.5V108.73H223.74V8.85059H123.861Z" fill="black"/>
<path d="M226.5 8.85059V108.73H290.059V63.3303H280.979V54.2504H290.059V8.85059H226.5ZM262.819 81.4903H253.74V72.4103H262.819V81.4903ZM253.74 45.1704V36.0905H262.819V45.1704H253.74Z" fill="black"/>
<path d="M292.766 8.85059V108.73H356.325V8.85059H292.766ZM329.085 81.4903H320.005V36.0905H329.085V81.4903Z" fill="black"/>
<path d="M443.493 8.85059V81.4903H434.413V45.1704H407.173V108.73H470.733V8.85059H443.493Z" fill="black"/>
<path d="M509.759 8.85059V81.4903H500.679V8.85059H473.439V108.73H536.999V8.85059H509.759Z" fill="black"/>
<path d="M539.705 8.85059V108.73H566.945V36.0905H576.025V108.73H603.265V36.0905H612.345V108.73H639.585V8.85059H539.705Z" fill="black"/>
<path d="M642.344 8.85059V108.73H669.584V90.5702H705.904V8.85059H642.344ZM678.664 63.3303H669.584V36.0905H678.664V63.3303Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M36.693 81.4903V8.85059H9.45312V108.73H54.8529V81.4903H36.693ZM51.5273 84.8158H33.3674V12.1762H12.7787V105.405H51.5273V84.8158ZM123.861 8.85059V108.73H151.101V36.0905H160.18V108.73H187.42V36.0905H196.5V108.73H223.74V8.85059H123.861ZM127.186 12.1762H220.415V105.405H199.826V32.7649H184.095V105.405H163.506V32.7649H147.775V105.405H127.186V12.1762ZM226.5 8.85059V108.73H290.059V63.3303H280.979V54.2504H290.059V8.85059H226.5ZM229.825 12.1762H286.734V50.9248H277.654V66.6559H286.734V105.405H229.825V12.1762ZM292.766 8.85059V108.73H356.325V8.85059H292.766ZM296.091 12.1762H353V105.405H296.091V12.1762ZM57.5947 108.73H84.8345V72.4103H93.9145V108.73H121.154V8.85059H57.5947V108.73ZM60.9202 12.1762V105.405H81.5089V69.0847H97.2401V105.405H117.829V12.1762H60.9202ZM97.2401 48.496H81.5089V32.7649H97.2401V48.496ZM266.145 84.8158H250.414V69.0847H266.145V84.8158ZM250.414 48.496V32.7649H266.145V48.496H250.414ZM332.411 84.8158H316.68V32.7649H332.411V84.8158ZM473.439 8.85059V108.73H536.999V8.85059H509.759V81.4903H500.679V8.85059H473.439ZM476.765 12.1762H497.353V84.8158H513.085V12.1762H533.673V105.405H476.765V12.1762ZM539.705 8.85059V108.73H566.945V36.0905H576.025V108.73H603.265V36.0905H612.345V108.73H639.585V8.85059H539.705ZM543.031 12.1762H636.259V105.405H615.67V32.7649H599.939V105.405H579.35V32.7649H563.619V105.405H543.031V12.1762ZM642.344 8.85059V108.73H669.584V90.5702H705.904V8.85059H642.344ZM645.67 12.1762H702.578V87.2446H666.258V105.405H645.67V12.1762ZM446.819 84.8158H431.087V48.496H410.499V105.405H467.407V12.1762H446.819V84.8158ZM470.733 8.85059V108.73H407.173V45.1704H434.413V81.4903H443.493V8.85059H470.733ZM681.99 66.6559H666.258V32.7649H681.99V66.6559ZM84.8345 45.1704V36.0905H93.9145V45.1704H84.8345ZM253.74 81.4903V72.4103H262.819V81.4903H253.74ZM253.74 36.0905H262.819V45.1704H253.74V36.0905ZM329.085 81.4903V36.0905H320.005V81.4903H329.085ZM678.664 63.3303V36.0905H669.584V63.3303H678.664Z" fill="black"/>
<path d="M0.634766 0.0327148H27.8746L36.6929 8.851H9.45305L0.634766 0.0327148Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M0.634766 0.0327148L9.45305 8.851H36.6929L27.8746 0.0327148H0.634766ZM8.66343 3.3583L10.8305 5.52541H28.6643L26.4971 3.3583H8.66343Z" fill="black"/>
<path d="M0.634766 99.9123V0.0327148L9.45305 8.851V108.731L0.634766 99.9123Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M3.96035 98.5348L6.12746 100.702V10.2285L3.96035 8.06138V98.5348ZM0.634766 0.0327148V99.9123L9.45305 108.731V8.851L0.634766 0.0327148Z" fill="black"/>
<path d="M27.874 0.0327148V72.6724L36.6923 81.4907V8.85099L27.874 0.0327148Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M31.1996 71.2949L33.3667 73.462V10.2285L31.1996 8.06138V71.2949ZM27.874 72.6724L36.6923 81.4907V8.85099L27.874 0.0327148V72.6724Z" fill="black"/>
<path d="M48.7769 0.0327148H112.337L121.155 8.851H57.5951L48.7769 0.0327148Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M48.7769 0.0327148L57.5951 8.851H121.155L112.337 0.0327148H48.7769ZM56.8055 3.3583L58.9726 5.52541H113.126L110.959 3.3583H56.8055Z" fill="black"/>
<path d="M48.7769 99.9123V0.0327148L57.5951 8.851V108.731L48.7769 99.9123Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M52.1024 98.5348L54.2696 100.702V10.2285L52.1024 8.06138V98.5348ZM48.7769 0.0327148V99.9123L57.5951 108.731V8.851L48.7769 0.0327148Z" fill="black"/>
<path d="M76.0161 27.2725V36.3524L84.8344 45.1707V36.0907L76.0161 27.2725Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M76.0161 36.3524V27.2725L84.8344 36.0907V45.1707L76.0161 36.3524Z" fill="black"/>
<path d="M85.0961 27.2725H76.0161L84.8344 36.0907H93.9144L85.0961 27.2725Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M76.0161 27.2725L84.8344 36.0907H93.9144L85.0961 27.2725H76.0161Z" fill="black"/>
<path d="M27.874 72.6724H46.0339L54.8522 81.4906H36.6923L27.874 72.6724Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M27.874 72.6724L36.6923 81.4906H54.8522L46.0339 72.6724H27.874ZM35.9027 75.9979L38.0698 78.1651H46.8236L44.6564 75.9979H35.9027Z" fill="black"/>
<path d="M76.0161 36.3525H85.0961L93.9144 45.1708H84.8344L76.0161 36.3525Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M76.0161 36.3525L84.8344 45.1708H93.9144L85.0961 36.3525H76.0161Z" fill="black"/>
<path d="M85.0957 36.3524V27.2725L93.914 36.0907V45.1707L85.0957 36.3524Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M85.0957 27.2725L93.914 36.0907V45.1707L85.0957 36.3524V27.2725Z" fill="black"/>
<path d="M46.0346 99.9121H0.634766L9.45304 108.73H54.8528L46.0346 99.9121Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M0.634766 99.9121L9.45304 108.73H54.8528L46.0346 99.9121H0.634766ZM8.66343 103.238L10.8305 105.405H46.8242L44.6571 103.238H8.66343Z" fill="black"/>
<path d="M46.0342 72.6724V99.9122L54.8525 108.731V81.4906L46.0342 72.6724Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M49.3598 98.5347L51.5269 100.702V82.8681L49.3598 80.701V98.5347ZM46.0342 99.9122L54.8525 108.731V81.4906L46.0342 72.6724V99.9122Z" fill="black"/>
<path d="M85.0961 63.5918H76.0161L84.8344 72.4101H93.9144L85.0961 63.5918Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M76.0161 63.5918L84.8344 72.4101H93.9144L85.0961 63.5918H76.0161Z" fill="black"/>
<path d="M76.0161 63.5918V99.9116L84.8344 108.73V72.4101L76.0161 63.5918Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M79.3417 98.5341L81.5088 100.701V73.7876L79.3417 71.6205V98.5341ZM76.0161 99.9116L84.8344 108.73V72.4101L76.0161 63.5918V99.9116Z" fill="black"/>
<path d="M76.0167 99.9121H48.7769L57.5951 108.73H84.835L76.0167 99.9121Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M48.7769 99.9121L57.5951 108.73H84.835L76.0167 99.9121H48.7769ZM56.8055 103.238L58.9726 105.405H76.8063L74.6392 103.238H56.8055Z" fill="black"/>
<path d="M112.335 0.0327148V99.9123L121.153 108.731V8.851L112.335 0.0327148Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M115.661 98.5348L117.828 100.702V10.2285L115.661 8.06138V98.5348ZM112.335 99.9123L121.153 108.731V8.851L112.335 0.0327148V99.9123Z" fill="black"/>
<path d="M115.043 99.9123V0.0327148L123.862 8.851V108.731L115.043 99.9123Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M118.369 98.5348L120.536 100.702V10.2285L118.369 8.06138V98.5348ZM115.043 0.0327148V99.9123L123.862 108.731V8.851L115.043 0.0327148Z" fill="black"/>
<path d="M115.043 0.0327148H214.923L223.741 8.851H123.862L115.043 0.0327148Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M115.043 0.0327148L123.862 8.851H223.741L214.923 0.0327148H115.043ZM123.072 3.3583L125.239 5.52541H215.713L213.546 3.3583H123.072Z" fill="black"/>
<path d="M85.0957 99.9116V63.5918L93.914 72.4101V108.73L85.0957 99.9116Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M88.4213 98.5341L90.5884 100.701V73.7876L88.4213 71.6205V98.5341ZM85.0957 63.5918V99.9116L93.914 108.73V72.4101L85.0957 63.5918Z" fill="black"/>
<path d="M151.363 27.2725H142.283L151.101 36.0907H160.181L151.363 27.2725Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M142.283 27.2725L151.101 36.0907H160.181L151.363 27.2725H142.283Z" fill="black"/>
<path d="M112.336 99.9121H85.0957L93.914 108.73H121.154L112.336 99.9121Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M85.0957 99.9121L93.914 108.73H121.154L112.336 99.9121H85.0957ZM93.1244 103.238L95.2915 105.405H113.125L110.958 103.238H93.1244Z" fill="black"/>
<path d="M142.283 27.2725V99.9121L151.101 108.73V36.0907L142.283 27.2725Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M145.608 98.5346L147.775 100.702V37.4682L145.608 35.3011V98.5346ZM142.283 99.9121L151.101 108.73V36.0907L142.283 27.2725V99.9121Z" fill="black"/>
<path d="M187.682 27.2725H178.602L187.42 36.0907H196.5L187.682 27.2725Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M178.602 27.2725L187.42 36.0907H196.5L187.682 27.2725H178.602Z" fill="black"/>
<path d="M151.361 99.9121V27.2725L160.18 36.0907V108.73L151.361 99.9121Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M154.687 98.5346L156.854 100.702V37.4682L154.687 35.3011V98.5346ZM151.361 27.2725V99.9121L160.18 108.73V36.0907L151.361 27.2725Z" fill="black"/>
<path d="M142.283 99.9121H115.043L123.862 108.73H151.102L142.283 99.9121Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M115.043 99.9121L123.862 108.73H151.102L142.283 99.9121H115.043ZM123.072 103.238L125.239 105.405H143.073L140.906 103.238H123.072Z" fill="black"/>
<path d="M178.602 27.2725V99.9121L187.42 108.73V36.0907L178.602 27.2725Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M181.927 98.5346L184.094 100.702V37.4682L181.927 35.3011V98.5346ZM178.602 99.9121L187.42 108.73V36.0907L178.602 27.2725V99.9121Z" fill="black"/>
<path d="M217.681 0.0327148H281.241L290.059 8.851H226.499L217.681 0.0327148Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M217.681 0.0327148L226.499 8.851H290.059L281.241 0.0327148H217.681ZM225.71 3.3583L227.877 5.52541H282.031L279.863 3.3583H225.71Z" fill="black"/>
<path d="M187.682 99.9121V27.2725L196.5 36.0907V108.73L187.682 99.9121Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M191.008 98.5346L193.175 100.702V37.4682L191.008 35.3011V98.5346ZM187.682 27.2725V99.9121L196.5 108.73V36.0907L187.682 27.2725Z" fill="black"/>
<path d="M178.601 99.9121H151.361L160.18 108.73H187.419L178.601 99.9121Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M151.361 99.9121L160.18 108.73H187.419L178.601 99.9121H151.361ZM159.39 103.238L161.557 105.405H179.391L177.224 103.238H159.39Z" fill="black"/>
<path d="M214.922 0.0327148V99.9123L223.741 108.731V8.851L214.922 0.0327148Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M218.248 98.5348L220.415 100.702V10.2285L218.248 8.06138V98.5348ZM214.922 99.9123L223.741 108.731V8.851L214.922 0.0327148V99.9123Z" fill="black"/>
<path d="M217.681 99.9123V0.0327148L226.499 8.851V108.731L217.681 99.9123Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M221.007 98.5348L223.174 100.702V10.2285L221.007 8.06138V98.5348ZM217.681 0.0327148V99.9123L226.499 108.731V8.851L217.681 0.0327148Z" fill="black"/>
<path d="M244.921 27.2725V36.3524L253.74 45.1707V36.0907L244.921 27.2725Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M244.921 36.3524V27.2725L253.74 36.0907V45.1707L244.921 36.3524Z" fill="black"/>
<path d="M254.001 27.2725H244.921L253.74 36.0907H262.82L254.001 27.2725Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M244.921 27.2725L253.74 36.0907H262.82L254.001 27.2725H244.921Z" fill="black"/>
<path d="M244.921 36.3525H254.001L262.82 45.1708H253.74L244.921 36.3525Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M244.921 36.3525L253.74 45.1708H262.82L254.001 36.3525H244.921Z" fill="black"/>
<path d="M254.001 36.3524V27.2725L262.819 36.0907V45.1707L254.001 36.3524Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M254.001 27.2725L262.819 36.0907V45.1707L254.001 36.3524V27.2725Z" fill="black"/>
<path d="M214.922 99.9121H187.682L196.5 108.73H223.74L214.922 99.9121Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M187.682 99.9121L196.5 108.73H223.74L214.922 99.9121H187.682ZM195.711 103.238L197.878 105.405H215.712L213.545 103.238H195.711Z" fill="black"/>
<path d="M281.242 0.0327148V45.4325L290.06 54.2508V8.85099L281.242 0.0327148Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M284.568 44.055L286.735 46.2221V10.2285L284.568 8.06138V44.055ZM281.242 45.4325L290.06 54.2508V8.85099L281.242 0.0327148V45.4325Z" fill="black"/>
<path d="M244.921 63.5918V72.6718L253.74 81.49V72.4101L244.921 63.5918Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M244.921 72.6718V63.5918L253.74 72.4101V81.49L244.921 72.6718Z" fill="black"/>
<path d="M254.001 63.5918H244.921L253.74 72.4101H262.82L254.001 63.5918Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M244.921 63.5918L253.74 72.4101H262.82L254.001 63.5918H244.921Z" fill="black"/>
<path d="M283.948 0.0327148H347.507L356.326 8.851H292.766L283.948 0.0327148Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M283.948 0.0327148L292.766 8.851H356.326L347.507 0.0327148H283.948ZM291.976 3.3583L294.144 5.52541H348.297L346.13 3.3583H291.976Z" fill="black"/>
<path d="M244.921 72.6724H254.001L262.82 81.4906H253.74L244.921 72.6724Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M244.921 72.6724L253.74 81.4906H262.82L254.001 72.6724H244.921Z" fill="black"/>
<path d="M254.001 72.6718V63.5918L262.819 72.4101V81.49L254.001 72.6718Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M254.001 63.5918L262.819 72.4101V81.49L254.001 72.6718V63.5918Z" fill="black"/>
<path d="M272.161 45.4331V54.5131L280.979 63.3313V54.2514L272.161 45.4331Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M272.161 54.5131V45.4331L280.979 54.2514V63.3313L272.161 54.5131Z" fill="black"/>
<path d="M281.241 45.4331H272.161L280.979 54.2514H290.059L281.241 45.4331Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M272.161 45.4331L280.979 54.2514H290.059L281.241 45.4331H272.161Z" fill="black"/>
<path d="M272.161 54.5127H281.241L290.059 63.331H280.979L272.161 54.5127Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M272.161 54.5127L280.979 63.331H290.059L281.241 54.5127H272.161Z" fill="black"/>
<path d="M283.948 99.9123V0.0327148L292.766 8.851V108.731L283.948 99.9123Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M287.273 98.5348L289.44 100.702V10.2285L287.273 8.06138V98.5348ZM283.948 0.0327148V99.9123L292.766 108.731V8.851L283.948 0.0327148Z" fill="black"/>
<path d="M320.267 27.2725H311.187L320.005 36.0907H329.085L320.267 27.2725Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M311.187 27.2725L320.005 36.0907H329.085L320.267 27.2725H311.187Z" fill="black"/>
<path d="M281.241 99.9121H217.681L226.499 108.73H290.059L281.241 99.9121Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M217.681 99.9121L226.499 108.73H290.059L281.241 99.9121H217.681ZM225.71 103.238L227.877 105.405H282.031L279.863 103.238H225.71Z" fill="black"/>
<path d="M281.242 54.5127V99.9125L290.06 108.731V63.331L281.242 54.5127Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M284.568 98.535L286.735 100.702V64.7085L284.568 62.5414V98.535ZM281.242 99.9125L290.06 108.731V63.331L281.242 54.5127V99.9125Z" fill="black"/>
<path d="M311.187 27.2725V72.6723L320.005 81.4905V36.0907L311.187 27.2725Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M314.513 71.2948L316.68 73.4619V37.4682L314.513 35.3011V71.2948ZM311.187 72.6723L320.005 81.4905V36.0907L311.187 27.2725V72.6723Z" fill="black"/>
<path d="M320.268 72.6723V27.2725L329.086 36.0907V81.4905L320.268 72.6723Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M323.593 71.2948L325.76 73.4619V37.4682L323.593 35.3011V71.2948ZM320.268 27.2725V72.6723L329.086 81.4905V36.0907L320.268 27.2725Z" fill="black"/>
<path d="M311.187 72.6724H320.267L329.085 81.4906H320.005L311.187 72.6724Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M311.187 72.6724L320.005 81.4906H329.085L320.267 72.6724H311.187Z" fill="black"/>
<path d="M347.507 0.0327148V99.9123L356.325 108.731V8.851L347.507 0.0327148Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M350.832 98.5348L353 100.702V10.2285L350.832 8.06138V98.5348ZM347.507 99.9123L356.325 108.731V8.851L347.507 0.0327148V99.9123Z" fill="black"/>
<path d="M347.507 99.9121H283.948L292.766 108.73H356.326L347.507 99.9121Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M283.948 99.9121L292.766 108.73H356.326L347.507 99.9121H283.948ZM291.976 103.238L294.144 105.405H348.297L346.13 103.238H291.976Z" fill="black"/>
<path d="M398.354 36.3525H425.594L434.412 45.1708H407.172L398.354 36.3525Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M398.354 36.3525L407.172 45.1708H434.412L425.594 36.3525H398.354ZM406.383 39.6781L408.55 41.8452H426.383L424.216 39.6781H406.383Z" fill="black"/>
<path d="M434.675 0.0327148H461.915L470.733 8.851H443.493L434.675 0.0327148Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M434.675 0.0327148L443.493 8.851H470.733L461.915 0.0327148H434.675ZM442.703 3.3583L444.871 5.52541H462.704L460.537 3.3583H442.703Z" fill="black"/>
<path d="M398.354 99.9123V36.3525L407.172 45.1708V108.731L398.354 99.9123Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M401.68 98.5348L403.847 100.702V46.5483L401.68 44.3812V98.5348ZM398.354 36.3525V99.9123L407.172 108.731V45.1708L398.354 36.3525Z" fill="black"/>
<path d="M434.675 72.6724V0.0327148L443.493 8.85099V81.4907L434.675 72.6724Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M438 71.2949L440.168 73.462V10.2285L438 8.06138V71.2949ZM434.675 0.0327148V72.6724L443.493 81.4907V8.85099L434.675 0.0327148Z" fill="black"/>
<path d="M464.621 0.0327148H491.86L500.679 8.851H473.439L464.621 0.0327148Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M464.621 0.0327148L473.439 8.851H500.679L491.86 0.0327148H464.621ZM472.649 3.3583L474.816 5.52541H492.65L490.483 3.3583H472.649Z" fill="black"/>
<path d="M425.595 36.3525V72.6724L434.413 81.4907V45.1708L425.595 36.3525Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M428.92 71.2949L431.087 73.462V46.5483L428.92 44.3812V71.2949ZM425.595 72.6724L434.413 81.4907V45.1708L425.595 36.3525V72.6724Z" fill="black"/>
<path d="M425.595 72.6724H434.675L443.493 81.4906H434.413L425.595 72.6724Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M425.595 72.6724L434.413 81.4906H443.493L434.675 72.6724H425.595Z" fill="black"/>
<path d="M461.914 0.0327148V99.9123L470.732 108.731V8.851L461.914 0.0327148Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M465.24 98.5348L467.407 100.702V10.2285L465.24 8.06138V98.5348ZM461.914 99.9123L470.732 108.731V8.851L461.914 0.0327148V99.9123Z" fill="black"/>
<path d="M464.621 99.9123V0.0327148L473.439 8.851V108.731L464.621 99.9123Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M467.946 98.5348L470.113 100.702V10.2285L467.946 8.06138V98.5348ZM464.621 0.0327148V99.9123L473.439 108.731V8.851L464.621 0.0327148Z" fill="black"/>
<path d="M500.941 0.0327148H528.181L537 8.851H509.76L500.941 0.0327148Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M500.941 0.0327148L509.76 8.851H537L528.181 0.0327148H500.941ZM508.97 3.3583L511.137 5.52541H528.971L526.804 3.3583H508.97Z" fill="black"/>
<path d="M491.86 0.0327148V72.6724L500.678 81.4907V8.85099L491.86 0.0327148Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M495.185 71.2949L497.353 73.462V10.2285L495.185 8.06138V71.2949ZM491.86 72.6724L500.678 81.4907V8.85099L491.86 0.0327148V72.6724Z" fill="black"/>
<path d="M461.914 99.9121H398.354L407.172 108.73H470.732L461.914 99.9121Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M398.354 99.9121L407.172 108.73H470.732L461.914 99.9121H398.354ZM406.383 103.238L408.55 105.405H462.703L460.536 103.238H406.383Z" fill="black"/>
<path d="M500.941 72.6724V0.0327148L509.76 8.85099V81.4907L500.941 72.6724Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M504.267 71.2949L506.434 73.462V10.2285L504.267 8.06138V71.2949ZM500.941 0.0327148V72.6724L509.76 81.4907V8.85099L500.941 0.0327148Z" fill="black"/>
<path d="M491.86 72.6724H500.94L509.758 81.4906H500.678L491.86 72.6724Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M491.86 72.6724L500.678 81.4906H509.758L500.94 72.6724H491.86Z" fill="black"/>
<path d="M528.181 0.0327148V99.9123L536.999 108.731V8.851L528.181 0.0327148Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M531.506 98.5348L533.673 100.702V10.2285L531.506 8.06138V98.5348ZM528.181 99.9123L536.999 108.731V8.851L528.181 0.0327148V99.9123Z" fill="black"/>
<path d="M530.886 0.0327148H630.766L639.584 8.851H539.705L530.886 0.0327148Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M530.886 0.0327148L539.705 8.851H639.584L630.766 0.0327148H530.886ZM538.915 3.3583L541.082 5.52541H631.555L629.388 3.3583H538.915Z" fill="black"/>
<path d="M530.886 99.9123V0.0327148L539.705 8.851V108.731L530.886 99.9123Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M534.212 98.5348L536.379 100.702V10.2285L534.212 8.06138V98.5348ZM530.886 0.0327148V99.9123L539.705 108.731V8.851L530.886 0.0327148Z" fill="black"/>
<path d="M567.206 27.2725H558.126L566.945 36.0907H576.025L567.206 27.2725Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M558.126 27.2725L566.945 36.0907H576.025L567.206 27.2725H558.126Z" fill="black"/>
<path d="M528.18 99.9121H464.621L473.439 108.73H536.999L528.18 99.9121Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M464.621 99.9121L473.439 108.73H536.999L528.18 99.9121H464.621ZM472.649 103.238L474.816 105.405H528.97L526.803 103.238H472.649Z" fill="black"/>
<path d="M558.126 27.2725V99.9121L566.945 108.73V36.0907L558.126 27.2725Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M561.452 98.5346L563.619 100.702V37.4682L561.452 35.3011V98.5346ZM558.126 99.9121L566.945 108.73V36.0907L558.126 27.2725V99.9121Z" fill="black"/>
<path d="M603.527 27.2725H594.447L603.266 36.0907H612.345L603.527 27.2725Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M594.447 27.2725L603.266 36.0907H612.345L603.527 27.2725H594.447Z" fill="black"/>
<path d="M567.207 99.9121V27.2725L576.025 36.0907V108.73L567.207 99.9121Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M570.533 98.5346L572.7 100.702V37.4682L570.533 35.3011V98.5346ZM567.207 27.2725V99.9121L576.025 108.73V36.0907L567.207 27.2725Z" fill="black"/>
<path d="M558.126 99.9121H530.886L539.705 108.73H566.944L558.126 99.9121Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M530.886 99.9121L539.705 108.73H566.944L558.126 99.9121H530.886ZM538.915 103.238L541.082 105.405H558.916L556.749 103.238H538.915Z" fill="black"/>
<path d="M594.447 27.2725V99.9121L603.266 108.73V36.0907L594.447 27.2725Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M597.773 98.5346L599.94 100.702V37.4682L597.773 35.3011V98.5346ZM594.447 99.9121L603.266 108.73V36.0907L594.447 27.2725V99.9121Z" fill="black"/>
<path d="M633.525 0.0327148H697.085L705.903 8.851H642.343L633.525 0.0327148Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M633.525 0.0327148L642.343 8.851H705.903L697.085 0.0327148H633.525ZM641.554 3.3583L643.721 5.52541H697.874L695.707 3.3583H641.554Z" fill="black"/>
<path d="M603.526 99.9121V27.2725L612.344 36.0907V108.73L603.526 99.9121Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M606.851 98.5346L609.019 100.702V37.4682L606.851 35.3011V98.5346ZM603.526 27.2725V99.9121L612.344 108.73V36.0907L603.526 27.2725Z" fill="black"/>
<path d="M630.766 0.0327148V99.9123L639.584 108.731V8.851L630.766 0.0327148Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M634.092 98.5348L636.259 100.702V10.2285L634.092 8.06138V98.5348ZM630.766 99.9123L639.584 108.731V8.851L630.766 0.0327148V99.9123Z" fill="black"/>
<path d="M594.447 99.9121H567.207L576.025 108.73H603.265L594.447 99.9121Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M567.207 99.9121L576.025 108.73H603.265L594.447 99.9121H567.207ZM575.236 103.238L577.403 105.405H595.237L593.069 103.238H575.236Z" fill="black"/>
<path d="M633.525 99.9123V0.0327148L642.343 8.851V108.731L633.525 99.9123Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M636.85 98.5348L639.018 100.702V10.2285L636.85 8.06138V98.5348ZM633.525 0.0327148V99.9123L642.343 108.731V8.851L633.525 0.0327148Z" fill="black"/>
<path d="M669.845 27.2725H660.765L669.583 36.0907H678.663L669.845 27.2725Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M660.765 27.2725L669.583 36.0907H678.663L669.845 27.2725H660.765Z" fill="black"/>
<path d="M660.765 27.2725V54.5123L669.583 63.3306V36.0907L660.765 27.2725Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M664.091 53.1348L666.258 55.3019V37.4682L664.091 35.3011V53.1348ZM660.765 54.5123L669.583 63.3306V36.0907L660.765 27.2725V54.5123Z" fill="black"/>
<path d="M669.846 54.5123V27.2725L678.664 36.0907V63.3306L669.846 54.5123Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M673.171 53.1348L675.338 55.3019V37.4682L673.171 35.3011V53.1348ZM669.846 27.2725V54.5123L678.664 63.3306V36.0907L669.846 27.2725Z" fill="black"/>
<path d="M630.766 99.9121H603.526L612.344 108.73H639.584L630.766 99.9121Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M603.526 99.9121L612.344 108.73H639.584L630.766 99.9121H603.526ZM611.555 103.238L613.722 105.405H631.555L629.388 103.238H611.555Z" fill="black"/>
<path d="M660.765 54.5127H669.845L678.663 63.331H669.583L660.765 54.5127Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M660.765 54.5127L669.583 63.331H678.663L669.845 54.5127H660.765Z" fill="black"/>
<path d="M697.085 0.0327148V81.7523L705.903 90.5706V8.85099L697.085 0.0327148Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M700.411 80.3748L702.578 82.542V10.2285L700.411 8.06138V80.3748ZM697.085 81.7523L705.903 90.5706V8.85099L697.085 0.0327148V81.7523Z" fill="black"/>
<path d="M660.765 99.9121H633.525L642.343 108.73H669.583L660.765 99.9121Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M633.525 99.9121L642.343 108.73H669.583L660.765 99.9121H633.525ZM641.554 103.238L643.721 105.405H661.554L659.387 103.238H641.554Z" fill="black"/>
<path d="M660.765 81.7524V99.9124L669.583 108.731V90.5707L660.765 81.7524Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M664.091 98.5349L666.258 100.702V91.9482L664.091 89.7811V98.5349ZM660.765 99.9124L669.583 108.731V90.5707L660.765 81.7524V99.9124Z" fill="black"/>
<path d="M697.085 81.7524H660.765L669.583 90.5707H705.903L697.085 81.7524Z" fill="black"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M660.765 81.7524L669.583 90.5707H705.903L697.085 81.7524H660.765ZM668.794 85.078L670.961 87.2451H697.875L695.707 85.078H668.794Z" fill="black"/>
<path d="M46.0351 100V72.7603H27.8751V0.120605H0.635254V100H46.0351Z" fill="url(#paint0_linear_1640_3386)"/>
<path d="M48.7768 0.120605V100H76.0166V63.6803H85.0966V100H112.336V0.120605H48.7768ZM85.0966 36.4404H76.0166V27.3605H85.0966V36.4404Z" fill="url(#paint1_linear_1640_3386)"/>
<path d="M115.043 0.120605V100H142.283V27.3605H151.363V100H178.602V27.3605H187.682V100H214.922V0.120605H115.043Z" fill="url(#paint2_linear_1640_3386)"/>
<path d="M217.682 0.120605V100H281.241V54.6004H272.161V45.5204H281.241V0.120605H217.682ZM254.002 72.7603H244.922V63.6803H254.002V72.7603ZM244.922 36.4404V27.3605H254.002V36.4404H244.922Z" fill="url(#paint3_linear_1640_3386)"/>
<path d="M283.948 0.120605V100H347.507V0.120605H283.948ZM320.268 72.7603H311.188V27.3605H320.268V72.7603Z" fill="url(#paint4_linear_1640_3386)"/>
<path d="M434.675 0.120605V72.7603H425.595V36.4404H398.355V100H461.915V0.120605H434.675Z" fill="url(#paint5_linear_1640_3386)"/>
<path d="M500.941 0.120605V72.7603H491.861V0.120605H464.621V100H528.181V0.120605H500.941Z" fill="url(#paint6_linear_1640_3386)"/>
<path d="M530.887 0.120605V100H558.127V27.3605H567.207V100H594.447V27.3605H603.527V100H630.767V0.120605H530.887Z" fill="url(#paint7_linear_1640_3386)"/>
<path d="M633.526 0.120605V100H660.766V81.8402H697.086V0.120605H633.526ZM669.846 54.6004H660.766V27.3605H669.846V54.6004Z" fill="url(#paint8_linear_1640_3386)"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M27.8751 72.7603V0.120605H0.635254V100H46.0351V72.7603H27.8751ZM42.0351 76.7603H23.8751V4.12061H4.63525V96.0002H42.0351V76.7603ZM115.043 0.120605V100H142.283V27.3605H151.363V100H178.602V27.3605H187.682V100H214.922V0.120605H115.043ZM119.043 4.12061H210.922V96.0002H191.682V23.3605H174.602V96.0002H155.363V23.3605H138.283V96.0002H119.043V4.12061ZM217.682 0.120605V100H281.241V54.6004H272.161V45.5204H281.241V0.120605H217.682ZM221.682 4.12061H277.241V41.5204H268.161V58.6004H277.241V96.0002H221.682V4.12061ZM283.948 100H347.507V0.120605H283.948V100ZM287.948 4.12061V96.0002H343.507V4.12061H287.948ZM112.336 100V0.120605H48.7768V100H76.0166V63.6803H85.0966V100H112.336ZM108.336 96.0002H89.0966V59.6803H72.0166V96.0002H52.7768V4.12061H108.336V96.0002ZM89.0966 40.4404H72.0166V23.3605H89.0966V40.4404ZM258.002 76.7603H240.922V59.6803H258.002V76.7603ZM240.922 40.4404V23.3605H258.002V40.4404H240.922ZM324.268 76.7603H307.188V23.3605H324.268V76.7603ZM464.621 0.120605V100H528.181V0.120605H500.941V72.7603H491.861V0.120605H464.621ZM468.621 4.12061H487.861V76.7603H504.941V4.12061H524.181V96.0002H468.621V4.12061ZM530.887 0.120605V100H558.127V27.3605H567.207V100H594.447V27.3605H603.527V100H630.767V0.120605H530.887ZM534.887 4.12061H626.767V96.0002H607.527V23.3605H590.447V96.0002H571.207V23.3605H554.127V96.0002H534.887V4.12061ZM633.526 0.120605V100H660.766V81.8402H697.086V0.120605H633.526ZM637.526 4.12061H693.086V77.8402H656.766V96.0002H637.526V4.12061ZM461.915 100V0.120605H434.675V72.7603H425.595V36.4404H398.355V100H461.915ZM457.915 96.0002H402.355V40.4404H421.595V76.7603H438.675V4.12061H457.915V96.0002ZM673.846 58.6004H656.766V23.3605H673.846V58.6004ZM85.0966 36.4404V27.3605H76.0166V36.4404H85.0966ZM254.002 72.7603V63.6803H244.922V72.7603H254.002ZM244.922 36.4404H254.002V27.3605H244.922V36.4404ZM320.268 72.7603V27.3605H311.188V72.7603H320.268ZM669.846 54.6004V27.3605H660.766V54.6004H669.846Z" fill="black"/>
<defs>
<linearGradient id="paint0_linear_1640_3386" x1="348.861" y1="0.120605" x2="348.861" y2="100" gradientUnits="userSpaceOnUse">
<stop stop-color="white"/>
<stop offset="1" stop-color="#FF9CDD"/>
</linearGradient>
<linearGradient id="paint1_linear_1640_3386" x1="348.861" y1="0.120605" x2="348.861" y2="100" gradientUnits="userSpaceOnUse">
<stop stop-color="white"/>
<stop offset="1" stop-color="#FF9CDD"/>
</linearGradient>
<linearGradient id="paint2_linear_1640_3386" x1="348.861" y1="0.120605" x2="348.861" y2="100" gradientUnits="userSpaceOnUse">
<stop stop-color="white"/>
<stop offset="1" stop-color="#FF9CDD"/>
</linearGradient>
<linearGradient id="paint3_linear_1640_3386" x1="348.861" y1="0.120605" x2="348.861" y2="100" gradientUnits="userSpaceOnUse">
<stop stop-color="white"/>
<stop offset="1" stop-color="#FF9CDD"/>
</linearGradient>
<linearGradient id="paint4_linear_1640_3386" x1="348.861" y1="0.120605" x2="348.861" y2="100" gradientUnits="userSpaceOnUse">
<stop stop-color="white"/>
<stop offset="1" stop-color="#FF9CDD"/>
</linearGradient>
<linearGradient id="paint5_linear_1640_3386" x1="348.861" y1="0.120605" x2="348.861" y2="100" gradientUnits="userSpaceOnUse">
<stop stop-color="white"/>
<stop offset="1" stop-color="#FF9CDD"/>
</linearGradient>
<linearGradient id="paint6_linear_1640_3386" x1="348.861" y1="0.120605" x2="348.861" y2="100" gradientUnits="userSpaceOnUse">
<stop stop-color="white"/>
<stop offset="1" stop-color="#FF9CDD"/>
</linearGradient>
<linearGradient id="paint7_linear_1640_3386" x1="348.861" y1="0.120605" x2="348.861" y2="100" gradientUnits="userSpaceOnUse">
<stop stop-color="white"/>
<stop offset="1" stop-color="#FF9CDD"/>
</linearGradient>
<linearGradient id="paint8_linear_1640_3386" x1="348.861" y1="0.120605" x2="348.861" y2="100" gradientUnits="userSpaceOnUse">
<stop stop-color="white"/>
<stop offset="1" stop-color="#FF9CDD"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 32 KiB

BIN
public/images/home/pine.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 271 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 570 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 223 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 499 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 483 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 280 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 402 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 464 B

BIN
public/images/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

BIN
public/images/noise-2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

BIN
public/images/noise.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 985 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1015 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 202 KiB

41
public/manifest.json Normal file
View File

@ -0,0 +1,41 @@
{
"name": "Shop MrBeast x Shrek",
"icons": [
{
"src": "/android-icon-36x36.png",
"sizes": "36x36",
"type": "image/png",
"density": "0.75"
},
{
"src": "/android-icon-48x48.png",
"sizes": "48x48",
"type": "image/png",
"density": "1.0"
},
{
"src": "/android-icon-72x72.png",
"sizes": "72x72",
"type": "image/png",
"density": "1.5"
},
{
"src": "/android-icon-96x96.png",
"sizes": "96x96",
"type": "image/png",
"density": "2.0"
},
{
"src": "/android-icon-144x144.png",
"sizes": "144x144",
"type": "image/png",
"density": "3.0"
},
{
"src": "/android-icon-192x192.png",
"sizes": "192x192",
"type": "image/png",
"density": "4.0"
}
]
}

BIN
public/mstile-144x144.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 972 B

BIN
public/mstile-150x150.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 931 B

BIN
public/mstile-310x150.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 967 B

BIN
public/mstile-310x310.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
public/mstile-70x70.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 776 B

BIN
public/og.jpeg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 147 KiB

9
public/robots.txt Normal file
View File

@ -0,0 +1,9 @@
# *
User-agent: *
Allow: /
# Host
Host: https://laconic.com/
# Sitemaps
Sitemap: https://laconic.com/sitemap.xml

View File

@ -0,0 +1,22 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
width="700.000000pt" height="700.000000pt" viewBox="0 0 700.000000 700.000000"
preserveAspectRatio="xMidYMid meet">
<metadata>
Created by potrace 1.14, written by Peter Selinger 2001-2017
</metadata>
<g transform="translate(0.000000,700.000000) scale(0.100000,-0.100000)"
fill="#000000" stroke="none">
<path d="M0 3500 l0 -3500 3500 0 3500 0 0 3500 0 3500 -3500 0 -3500 0 0
-3500z m2865 2104 c11 -131 -1 -524 -20 -639 -98 -612 -345 -1108 -780 -1565
-133 -140 -209 -273 -251 -439 -63 -246 -29 -495 97 -716 55 -97 188 -239 279
-300 289 -192 647 -216 954 -64 101 50 158 92 281 208 469 439 1009 694 1625
766 129 16 461 21 575 9 l65 -7 0 -774 0 -774 -1572 4 -1573 3 -100 23 c-580
131 -981 534 -1108 1111 -21 94 -21 114 -24 1668 l-4 1572 775 0 774 0 7 -86z
m1945 60 c408 -83 734 -391 841 -794 101 -383 -19 -799 -309 -1072 -133 -125
-299 -217 -479 -265 -86 -23 -119 -26 -263 -27 -139 0 -179 3 -253 22 -488
123 -817 518 -844 1013 -37 706 612 1264 1307 1123z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

19
public/site.webmanifest Normal file
View File

@ -0,0 +1,19 @@
{
"name": "Laconic",
"short_name": "Laconic",
"icons": [
{
"src": "/android-chrome-192x192.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "/android-chrome-512x512.png",
"sizes": "512x512",
"type": "image/png"
}
],
"theme_color": "#ffffff",
"background_color": "#ffffff",
"display": "standalone"
}

BIN
public/videos/hero-grid.mp4 Normal file

Binary file not shown.

View File

@ -0,0 +1,5 @@
# `common` dir
- Common components (maybe reused across the whole app)
- Not primitives
- Examples: `/media-card.tsx`, `/sidenav.tsx`, `/fade-in-box.tsx`, etc...

View File

@ -0,0 +1,8 @@
.transition {
position: fixed;
top: 100%;
left: 0;
z-index: 20;
pointer-events: none;
user-select: none;
}

View File

@ -0,0 +1,59 @@
import Image from 'next/image'
import * as React from 'react'
import { DURATION, gsap } from '~/lib/gsap'
import { usePageTransition } from '~/lib/gsap/page-transitions'
import cashSrc from '../../../../public/images/cash-transition.png'
import s from './cash-transition.module.scss'
export const CashTransition = React.memo(() => {
const { getTransitionSpace } = usePageTransition()
const cashRef = React.useRef<HTMLDivElement>(null)
React.useEffect(() => {
getTransitionSpace(async () => {
const tl = gsap.timeline({
onComplete: () => {
gsap.to(cashRef.current, {
top: '100%',
duration: DURATION * 2,
ease: 'power4.inOut'
})
}
})
const vw = window.innerWidth / 100
const vh = window.innerHeight / 100
const newTop = -1 * Math.max(vw * 12, vh * 20)
tl.to(cashRef.current, {
top: newTop,
duration: DURATION * 2.5,
ease: 'power4.inOut'
})
await tl
})
}, [getTransitionSpace])
return (
<div
ref={cashRef}
className={s['transition']}
style={{
width: 'max(100vw, 100vh)',
height: 'calc(120vh + max(12vh, 12vw))'
}}
>
<Image
src={cashSrc}
alt="cash"
objectFit="cover"
layout="fill"
objectPosition="top"
loading="eager"
/>
</div>
)
})

View File

@ -0,0 +1,14 @@
.cursor {
display: flex;
top: 0;
left: 0;
z-index: 50;
max-width: 35px;
pointer-events: none;
user-select: none;
> span {
position: relative;
display: flex;
}
}

View File

@ -0,0 +1,156 @@
import gsap from 'gsap'
import Head from 'next/head'
import * as React from 'react'
import { useDeviceDetect } from '~/hooks/use-device-detect'
import defaultSrc from '../../../../public/images/cursor/default.svg'
import defaultActiveSrc from '../../../../public/images/cursor/default-active.svg'
import pointerSrc from '../../../../public/images/cursor/pointer.svg'
import pointerActiveSrc from '../../../../public/images/cursor/pointer-active.svg'
import s from './cursor.module.scss'
type CursorType = 'pointer' | 'default' | undefined
const CursorContext = React.createContext<
{ setType: React.Dispatch<React.SetStateAction<CursorType>> } | undefined
>(undefined)
const Cursor = ({ children }: { children?: React.ReactNode }) => {
const cursorRef = React.useRef<HTMLDivElement>(null)
const [type, setType] = React.useState<CursorType>()
const { isMobile } = useDeviceDetect()
React.useEffect(() => {
if (!cursorRef.current) return
gsap.set(cursorRef.current, { xPercent: -50, yPercent: -50 })
const pos = { x: window.innerWidth / 2, y: window.innerHeight / 2 }
const mouse = { x: pos.x, y: pos.y }
const speed = 0.2
const xSet = gsap.quickSetter(cursorRef.current, 'x', 'px')
const ySet = gsap.quickSetter(cursorRef.current, 'y', 'px')
function handleMouseMove(e: MouseEvent) {
mouse.x = e.x
mouse.y = e.y
if (e.target instanceof HTMLElement || e.target instanceof SVGElement) {
if (e.target.dataset.cursor) {
setType(e.target.dataset.cursor as any)
return
}
if (e.target.closest('button') || e.target.closest('a')) {
setType('pointer')
return
} else if (
e.target.closest('p') ||
e.target.closest('span') ||
e.target.closest('h1') ||
e.target.closest('h2') ||
e.target.closest('h3') ||
e.target.closest('h4') ||
e.target.closest('h5') ||
e.target.closest('h5') ||
e.target.closest('input') ||
e.target.closest('textarea')
) {
setType('default') // this would be for text, if we'd have any text cursor
return
}
}
setType(undefined)
}
function handleTick() {
const dt = 1.0 - Math.pow(0.6 - speed, gsap.ticker.deltaRatio())
pos.x += (mouse.x - pos.x) * dt
pos.y += (mouse.y - pos.y) * dt
xSet(pos.x)
ySet(pos.y)
}
window.addEventListener('mousemove', handleMouseMove, { passive: true })
gsap.ticker.add(handleTick)
return () => {
window.removeEventListener('mousemove', handleMouseMove)
gsap.ticker.remove(handleTick)
}
}, [isMobile])
return (
<>
{isMobile === false && <CursorFollower ref={cursorRef} type={type} />}
<CursorContext.Provider value={{ setType }}>
{children}
</CursorContext.Provider>
</>
)
}
const CursorFollower = React.forwardRef<HTMLDivElement, { type: CursorType }>(
({ type }, ref) => {
const { src, adjustments } = React.useMemo(() => {
switch (type) {
case 'pointer':
return {
src: pointerSrc,
adjustments: { x: '4px', y: '22px' }
}
default:
return {
src: defaultSrc,
adjustments: { x: '10px', y: '17px' }
}
}
}, [type])
React.useEffect(() => {
document.documentElement.classList.add('has-custom-cursor')
return () => {
document.documentElement.classList.remove('has-custom-cursor')
}
}, [])
return (
<div ref={ref} className={s['cursor']}>
<Head>
{/* preload images */}
{[defaultSrc, defaultActiveSrc, pointerSrc, pointerActiveSrc].map(
(src) => {
return (
<link key={src.src} rel="preload" href={src.src} as="image" />
)
}
)}
</Head>
<span
style={{
transform: `translate(${adjustments.x}, ${adjustments.y})`
}}
>
<img
src={src.src}
alt={`cursor-${type}`}
width={src.width}
height={src.height}
loading="eager"
/>
</span>
</div>
)
}
)
export const useCursor = () => {
const context = React.useContext(CursorContext)
if (context === undefined) {
throw new Error('useCursor must be used within a CursorProvider')
}
return context
}
export default Cursor

View File

@ -0,0 +1,94 @@
import { forwardRef, useEffect, useRef, useState } from 'react'
import mergeRefs from 'react-merge-refs'
import { useAnimationContext } from '~/context/animation'
import { useIsomorphicLayoutEffect } from '~/hooks/use-isomorphic-layout-effect'
import { DURATION, gsap } from '~/lib/gsap'
type FadeInBoxProps = {
children: React.ReactNode
className?: string
id?: string
style?: React.CSSProperties
onFadeInCompleteTimeline?: GSAPTimeline
}
export const FadeInBox = forwardRef<HTMLDivElement, FadeInBoxProps>(
({ children, className, id, style, onFadeInCompleteTimeline }, ref) => {
const innerRef = useRef<HTMLDivElement>(null)
const { shouldAnimate } = useAnimationContext()
const [inView, setInView] = useState(false)
useEffect(() => {
const elementToObserve = innerRef.current
if (!elementToObserve) return
const handleObserve: IntersectionObserverCallback = ([element]) => {
if (element) {
setInView((p) => {
// trigger once
if (p === true) return true
else return element.isIntersecting
})
}
}
const observer = new IntersectionObserver(handleObserve, {
threshold: 0.14
})
observer.observe(elementToObserve)
return () => {
observer.disconnect()
}
}, [])
useIsomorphicLayoutEffect(() => {
if (!shouldAnimate || !inView) {
return
}
if (!innerRef.current) return
const tl = gsap.timeline({
paused: true,
smoothChildTiming: true,
defaults: { ease: 'slow', overwrite: true },
onComplete: () => {
if (
onFadeInCompleteTimeline &&
typeof onFadeInCompleteTimeline !== 'undefined'
) {
onFadeInCompleteTimeline.play()
}
}
})
tl.to(innerRef.current, {
autoAlpha: 1,
scale: 1,
duration: DURATION
})
tl.play()
return () => {
tl.kill()
}
}, [inView, shouldAnimate, onFadeInCompleteTimeline])
return (
<div
ref={mergeRefs([innerRef, ref])}
className={className}
id={id}
style={{
opacity: shouldAnimate ? 0 : undefined,
transform: shouldAnimate ? 'scale(0.9)' : undefined,
...style
}}
>
{children}
</div>
)
}
)

View File

@ -0,0 +1,117 @@
@import '~/css/helpers';
.footer {
position: relative;
z-index: 10;
.container {
display: flex;
justify-content: space-between;
padding-bottom: tovw(56px, 'default', 48px);
border-bottom: tovw(1px, 'default', 1px) solid var(--color-grey-light);
nav {
display: flex;
gap: tovw(88px, 'default', 64px);
@media screen and (max-width: 1024px) {
display: grid;
column-gap: tovw(97px, 'tablet', 97px);
grid-template-columns: repeat(2, 1fr);
grid-template-rows: auto;
row-gap: tovw(44px, 'tablet', 44px);
}
}
@media screen and (max-width: 1024px) {
flex-direction: column;
}
}
ul {
margin: 0;
padding: 0;
list-style-type: none;
> li {
line-height: 1.35;
&:first-of-type {
line-height: 1;
margin-bottom: tovw(12px, 'default', 10px);
a {
font-weight: 500;
}
}
}
}
}
.logo {
margin-right: tovw(88px, 'default', 64px);
@media screen and (max-width: 1024px) {
margin-right: 0;
margin-bottom: tovw(56px, 'tablet', 56px);
}
svg {
width: tovw(305px, 'default', 120px);
@media screen and (max-width: 1024px) {
width: 100%;
}
}
}
.connect__links {
> div {
display: grid;
align-content: flex-start;
gap: tovw(16px, 'default', 16px);
grid-template-columns: repeat(2, 1fr);
grid-template-rows: auto;
li {
width: tovw(24px, 'default', 24px);
height: tovw(24px, 'default', 24px);
}
}
@media screen and (max-width: 800px) {
display: none;
}
}
.sub__footer {
margin-top: tovw(18px, 'default', 18px);
margin-bottom: tovw(44px, 'default', 36px);
a,
p {
font-size: tovw(18px, 'default', 14px);
line-height: 1;
margin: 0;
color: var(--color-grey-light);
}
ul {
display: flex;
justify-content: space-between;
width: 100%;
@media screen and (max-width: 800px) {
align-items: center;
flex-direction: column;
justify-content: center;
li:last-of-type {
margin-bottom: 0;
}
}
div {
display: flex;
gap: tovw(37px, 'default', 24px);
@media screen and (max-width: 800px) {
margin-bottom: tovw(32px, 'tablet', 32px);
}
}
}
}

View File

@ -0,0 +1,51 @@
import {
Facebook,
Instagram,
Linkedin,
Reddit,
Telegram,
Twitter
} from '~/components/icons/socials'
export const DevelopersLinks = [
{ href: '/developers', title: 'Developers' },
{ href: '/github', title: 'Github' },
{ href: '/roadmap', title: 'Roadmap' },
{ href: '/chat', title: 'Chat' },
{ href: '/forum', title: 'Forum' }
]
export const ProductsLinks = [
{ href: '/products', title: 'Products' },
{ href: '/SDK', title: 'SDK' },
{ href: '/watchers', title: 'Watchers' },
{ href: '/network', title: 'Network' },
{ href: '/wallet', title: 'Wallet' },
{ href: '/token', title: 'Token' }
]
export const AboutLinks = [
{ href: '/about', title: 'About' },
{ href: '/faq', title: 'FAQ' },
{ href: '/team', title: 'Team' },
{ href: '/partners', title: 'Partners' },
{ href: '/newsroom', title: 'Newstoom' },
{ href: '/careers', title: 'Careers' },
{ href: '/contact', title: 'Contact' }
]
export const CommunityLinks = [
{ href: '/community', title: 'Community' },
{ href: '/validators', title: 'Validators' },
{ href: '/testnet', title: 'Testnet' },
{ href: '/insiders', title: 'Insiders' }
]
export const ConnectLinks = [
{ href: '/community', title: 'Twitter', logo: <Twitter /> },
{ href: '/validators', title: 'Telegram', logo: <Telegram /> },
{ href: '/testnet', title: 'Reddit', logo: <Reddit /> },
{ href: '/insiders', title: 'Linkedin', logo: <Linkedin /> },
{ href: '/insiders', title: 'Facebook', logo: <Facebook /> },
{ href: '/insiders', title: 'Instagram', logo: <Instagram /> }
]

View File

@ -0,0 +1,112 @@
import { LogoFooter } from '~/components/icons/logo'
import { Container } from '~/components/layout/container'
import Link from '~/components/primitives/link'
import {
AboutLinks,
CommunityLinks,
ConnectLinks,
DevelopersLinks,
ProductsLinks
} from './footer'
import s from './footer.module.scss'
export const Footer = () => {
return (
<footer className={s.footer}>
<Container className={s['container']}>
<div className={s['logo']}>
<Link variant="unstyled" href="/">
<LogoFooter />
</Link>
</div>
<nav>
<ul>
{DevelopersLinks.map((link) => {
return (
<li key={link.title}>
<Link href={link.href} variant="nav">
{link.title}
</Link>
</li>
)
})}
</ul>
<ul>
{ProductsLinks.map((link) => {
return (
<li key={link.title}>
<Link href={link.href} variant="nav">
{link.title}
</Link>
</li>
)
})}
</ul>
<ul>
{AboutLinks.map((link) => {
return (
<li key={link.title}>
<Link href={link.href} variant="nav">
{link.title}
</Link>
</li>
)
})}
</ul>
<ul>
{CommunityLinks.map((link) => {
return (
<li key={link.title}>
<Link href={link.href} variant="nav">
{link.title}
</Link>
</li>
)
})}
</ul>
<ul className={s['connect__links']}>
<li>
<Link href="/connect" variant="nav">
Connect
</Link>
</li>
<div>
{ConnectLinks.map((link) => {
return (
<li key={link.title}>
<Link href={link.href} variant="unstyled">
<span className="sr-only">{link.title}</span>
{link.logo && link.logo}
</Link>
</li>
)
})}
</div>
</ul>
</nav>
</Container>
<Container>
<nav className={s['sub__footer']}>
<ul>
<div>
<li>
<Link href="/privacy-policy" variant="nav">
Privacy Policy
</Link>
</li>
<li>
<Link href="/terms-of-use" variant="nav">
Terms of Use
</Link>
</li>
</div>
<li>
<p>Laconic, The Source of Proof</p>
</li>
</ul>
</nav>
</Container>
</footer>
)
}

View File

@ -0,0 +1,34 @@
@import '~/css/helpers';
.header {
position: fixed;
z-index: 10;
display: flex;
align-items: center;
justify-content: space-between;
width: 100%;
padding: tovw(14px, 'default', 14px) var(--main-padding-side);
background: rgb(4 4 4 / 0.01);
backdrop-filter: blur(20px);
nav {
display: flex;
align-items: center;
svg {
display: block;
}
}
ul {
display: flex;
margin: 0 0 0 tovw(122px, 'default', 90px);
padding: 0;
list-style-type: none;
gap: tovw(32px, 'default', 20px);
}
.burger {
width: tovw(22px, 'default', 22px);
}
}

View File

@ -0,0 +1,8 @@
export const defaultHeaderLinks = [
{ href: '/', title: 'Home' },
{ href: '/developers', title: 'Developers' },
{ href: '/products', title: 'Products' },
{ href: '/community', title: 'Community' },
{ href: '/about', title: 'About' },
{ href: '/blog', title: 'Blog' }
]

View File

@ -0,0 +1,38 @@
import clsx from 'clsx'
import NextLink from 'next/link'
import Burger from '~/components/icons/burguer'
import { Logo } from '~/components/icons/logo'
import { Button } from '~/components/primitives/button'
import Link from '~/components/primitives/link'
import { defaultHeaderLinks } from './header'
import s from './header.module.scss'
export const Header = () => {
return (
<header className={s.header}>
<nav>
<NextLink href="/">
<a>
<Logo />
</a>
</NextLink>
<ul className="hide-on-mobile">
{defaultHeaderLinks.length > 0 &&
defaultHeaderLinks.map((link, index) => (
<li key={index}>
<Link href={link.href} variant="nav">
{link.title}
</Link>
</li>
))}
</ul>
</nav>
<Button size="small" className="hide-on-mobile">
Get Started
</Button>
<Burger className={clsx(s['burger'], 'hide-on-desktop')} />
</header>
)
}

View File

@ -0,0 +1,96 @@
import { useRouter } from 'next/dist/client/router'
import NextHead from 'next/head'
import { NextSeo, NextSeoProps } from 'next-seo'
import * as React from 'react'
import { defaultMeta, siteOrigin } from '~/lib/constants'
type BasicMeta = {
colorScheme?: 'dark' | 'light'
description?: string
noIndex?: boolean
ogImage?: string
prefetch?: { href: string; as: string }[]
preload?: { href: string; as: string }[]
themeColor?: string
title?: string
}
export type MetaProps = BasicMeta & { rawNextSeoProps?: NextSeoProps }
export const Meta = (props: MetaProps) => {
const router = useRouter()
const nextSeoProps: NextSeoProps = React.useMemo(() => {
return {
title: props.title ?? defaultMeta.title,
description: props.description ?? defaultMeta.description,
canonical: `${siteOrigin}${router.pathname}`,
openGraph: {
images: [
{
url: props.ogImage ?? defaultMeta.ogImage,
alt: props.title ?? defaultMeta.title,
width: 1200,
height: 630,
type: 'image/jpeg'
}
]
},
twitter: {
cardType: 'summary_large_image',
handle: defaultMeta.twitter.handle,
site: defaultMeta.twitter.site
},
noindex: props.noIndex,
...props.rawNextSeoProps
}
}, [props, router.pathname])
return (
<>
<NextSeo {...nextSeoProps} />
<NextHead>
<meta charSet="utf-8" />
<meta
name="viewport"
content="minimum-scale=1, initial-scale=1, width=device-width"
/>
<meta name="theme-color" content={props.themeColor ?? '#FFB1E4'} />
<link
rel="apple-touch-icon"
sizes="180x180"
href="/apple-touch-icon.png"
/>
<link
rel="icon"
type="image/png"
sizes="32x32"
href="/favicon-32x32.png"
/>
<link
rel="icon"
type="image/png"
sizes="16x16"
href="/favicon-16x16.png"
/>
<link rel="manifest" href="/site.webmanifest" />
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#000000" />
<meta name="msapplication-TileColor" content="#000000" />
<meta name="theme-color" content="#ffffff" />
{props.preload?.map(({ href, as }) => (
<link key={href} rel="preload" href={href} as={as} />
))}
{props.prefetch?.map(({ href, as }) => (
<link key={href} rel="prefetch" href={href} as={as} />
))}
</NextHead>
<style jsx global>{`
html {
color-scheme: ${props.colorScheme ?? 'light'};
}
`}</style>
</>
)
}

View File

@ -0,0 +1,44 @@
import clsx from 'clsx'
import { useDeviceDetect } from '~/hooks/use-device-detect'
import s from './noise.module.css'
export const Noise = ({
softLight = true,
colorBurn = true,
ignoreDevice = false,
absolute = false
}) => {
const { isSafari, isMobile, loaded } = useDeviceDetect()
if (!loaded) return null
return (
<>
{(ignoreDevice || (!isSafari && !isMobile)) && (
<>
{softLight && (
<div
className={clsx(
s.noise,
'noise',
absolute ? 'absolute' : 'fixed'
)}
aria-hidden
/>
)}
{colorBurn && (
<div
className={clsx(
s.noise2,
'noise',
absolute ? 'absolute' : 'fixed'
)}
aria-hidden
/>
)}
</>
)}
</>
)
}

View File

@ -0,0 +1,77 @@
.noise {
background-color: white;
background-image: url('/images/noise.png');
background-repeat: repeat;
background-size: auto;
z-index: 500;
width: 300%;
height: 300%;
left: -100%;
top: -100%;
pointer-events: none;
mix-blend-mode: soft-light;
opacity: 0.2;
}
.noise2 {
background-color: white;
background-image: url('/images/noise-2.png');
background-repeat: repeat;
background-size: auto;
z-index: 500;
width: 300%;
height: 300%;
left: -100%;
top: -100%;
pointer-events: none;
mix-blend-mode: color-burn;
opacity: 0.8;
will-change: transform;
animation: grain 16s steps(10) infinite;
}
@keyframes grain {
0% {
transform: translate(20%, -15%);
}
10% {
transform: translate(-20%, -15%);
}
20% {
transform: translate(20%, -5%);
}
30% {
transform: translate(-20%, -5%);
}
40% {
transform: translate(20%, 5%);
}
50% {
transform: translate(-20%, 5%);
}
60% {
transform: translate(20%, 15%);
}
70% {
transform: translate(-20%, 15%);
}
80% {
transform: translate(20%, 5%);
}
90% {
transform: translate(-20%, 5%);
}
100% {
transform: translate(20%, -5%);
}
}

View File

@ -0,0 +1,59 @@
const Arrow = ({ className, fill }: { className?: string; fill?: string }) => {
return (
<svg
className={className}
viewBox="0 0 23 23"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<path
d="M3.758 23H23V3.758l-2.523-.01.01 14.935L1.804 0 0 1.804l18.683 18.683-14.936-.01L3.758 23Z"
fill={fill || 'var(--color-white)'}
/>
</svg>
)
}
const ArrowDotted = ({
className,
fill
}: {
className?: string
fill?: string
}) => {
return (
<svg
className={className}
fill="none"
viewBox="0 0 42 14"
xmlns="http://www.w3.org/2000/svg"
>
<path d="m1 35 6 6 6-6" stroke={fill || '#fff'} />
<path d="M7 41V0" stroke={fill || '#fff'} strokeDasharray="2 2" />
</svg>
)
}
const ArrowLink = ({
className,
fill
}: {
className?: string
fill?: string
}) => {
return (
<svg
className={className}
fill="none"
viewBox="0 0 11 11"
xmlns="http://www.w3.org/2000/svg"
>
<path
d="M1.455 10.557.427 9.53l7.648-7.662H2.167L2.181.443h8.347v8.36H9.091l.013-5.907-7.649 7.661Z"
fill={fill || 'var(--color-white)'}
/>
</svg>
)
}
export { Arrow, ArrowDotted, ArrowLink }

View File

@ -0,0 +1,18 @@
const Burger = ({ className, fill }: { className?: string; fill?: string }) => {
return (
<svg
className={className}
viewBox="0 0 22 11"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<path
stroke={fill || '#fff'}
style={{ mixBlendMode: 'difference' }}
d="M0 .5h22M0 5.5h22M0 10.5h22"
/>
</svg>
)
}
export default Burger

View File

@ -0,0 +1,72 @@
const Isotype = ({
className,
fill
}: {
className?: string
fill?: string
}) => {
return (
<svg
className={className}
width="94"
height="95"
viewBox="0 0 94 95"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<path
fillRule="evenodd"
clipRule="evenodd"
d="M15.86 49.967C26.8 38.911 33.57 23.643 33.568 6.785A60.4 60.4 0 0 0 33.198 0L0 .003l.001 64.465c-.003 7.814 2.945 15.631 8.842 21.59 5.897 5.96 13.637 8.942 21.37 8.938l-.002.002L94 95l-.002-33.556a60.653 60.653 0 0 0-6.714-.373c-16.676.002-31.784 6.845-42.724 17.9-7.96 7.844-20.724 7.845-28.586-.1-7.858-7.941-7.86-20.845-.114-28.904ZM87.114 6.976c-9.168-9.265-24.063-9.269-33.234 0-9.171 9.268-9.168 24.321 0 33.586 9.173 9.27 24.063 9.269 33.234 0 9.171-9.268 9.173-24.316 0-33.586Z"
fill={fill || 'var(--color-white)'}
/>
</svg>
)
}
const Logo = ({ className, fill }: { className?: string; fill?: string }) => {
return (
<svg
className={className}
width="133"
height="24"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<path
d="M37.761 22.302h9.246v-2.704h-6.155v-17.9h-3.09v20.604ZM59.314 1.697h-5.126l-5.357 20.605h3.194l1.34-5.151h6.618l1.34 5.151h3.348L59.314 1.697Zm-5.306 12.878 2.679-10.663h.103l2.575 10.663h-5.357ZM74.337 9.682h3.606c0-5.873-1.88-8.397-6.259-8.397-4.61 0-6.593 3.194-6.593 10.689 0 7.52 1.983 10.74 6.593 10.74 4.379 0 6.259-2.447 6.285-8.139h-3.606c-.026 4.456-.567 5.563-2.679 5.563-2.42 0-3.013-1.622-2.987-8.164 0-6.516.592-8.14 2.987-8.113 2.112 0 2.653 1.159 2.653 5.82ZM86.689 1.285c4.687.026 6.696 3.245 6.696 10.715 0 7.469-2.009 10.688-6.696 10.714-4.714.026-6.723-3.194-6.723-10.714 0-7.521 2.01-10.74 6.723-10.715ZM83.572 12c0 6.516.618 8.139 3.117 8.139 2.472 0 3.09-1.623 3.09-8.14 0-6.541-.618-8.164-3.09-8.138-2.499.026-3.117 1.648-3.117 8.139ZM99.317 22.276l-3.09.026V1.697h5.434l5.074 16.793h.052V1.697h3.09v20.605h-5.099l-5.409-18.08h-.052v18.054ZM116.615 1.697h-3.091v20.605h3.091V1.697ZM128.652 9.682h3.606c0-5.873-1.881-8.397-6.259-8.397-4.61 0-6.594 3.194-6.594 10.689 0 7.52 1.984 10.74 6.594 10.74 4.378 0 6.259-2.447 6.284-8.139h-3.605c-.026 4.456-.567 5.563-2.679 5.563-2.421 0-3.014-1.622-2.988-8.164 0-6.516.593-8.14 2.988-8.113 2.112 0 2.653 1.159 2.653 5.82Z"
fill={fill || 'var(--color-white)'}
/>
<path
fillRule="evenodd"
clipRule="evenodd"
d="M4.05 12.623A15.378 15.378 0 0 0 8.57 1.714C8.573 1.136 8.54.564 8.477 0H0v16.287c0 1.974.752 3.949 2.258 5.454A7.69 7.69 0 0 0 7.714 24L24 24v-8.477a15.636 15.636 0 0 0-1.715-.095c-4.258 0-8.115 1.73-10.908 4.523-2.032 1.981-5.291 1.982-7.299-.026-2.006-2.006-2.007-5.266-.029-7.302Zm18.192-10.86a6.004 6.004 0 0 0-8.485 0 6.003 6.003 0 0 0 0 8.484 6.003 6.003 0 0 0 8.485 0 6.002 6.002 0 0 0 0-8.485Z"
fill={fill || 'var(--color-white)'}
/>
</svg>
)
}
const LogoFooter = ({
className,
fill
}: {
className?: string
fill?: string
}) => {
return (
<svg
className={className}
fill="none"
viewBox="0 0 305 70"
xmlns="http://www.w3.org/2000/svg"
>
<path
d="M0 68.656h29.794v-8.834H9.96V1.35H0v67.306ZM69.388 1.35H52.873L35.61 68.656H45.9l4.316-16.826h21.33l4.315 16.826H86.65L69.388 1.35ZM52.292 43.416l8.631-34.83h.332l8.3 34.83H52.291ZM118.076 27.427h11.619C129.695 8.245 123.636 0 109.528 0 94.672 0 88.282 10.432 88.282 34.915c0 24.567 6.39 35.084 21.246 35.084 14.108 0 20.167-7.993 20.25-26.586h-11.619c-.083 14.555-1.826 18.173-8.631 18.173-7.802 0-9.71-5.3-9.627-26.67 0-21.286 1.908-26.587 9.627-26.503 6.805 0 8.548 3.786 8.548 19.014ZM158.069 0c15.105.085 21.578 10.601 21.578 35s-6.473 34.915-21.578 35c-15.188.084-21.661-10.433-21.661-35s6.473-35.084 21.661-35Zm-10.042 35c0 21.286 1.992 26.586 10.042 26.586 7.967 0 9.959-5.3 9.959-26.586 0-21.37-1.992-26.67-9.959-26.586-8.05.084-10.042 5.384-10.042 26.586ZM198.74 68.572l-9.959.084V1.35h17.511l16.35 54.855h.166V1.35h9.959v67.306h-16.432L198.906 9.595h-.166v58.977ZM254.391 1.35h-9.959v67.306h9.959V1.35ZM293.298 27.427h11.619C304.917 8.245 298.859 0 284.75 0c-14.856 0-21.246 10.432-21.246 34.915 0 24.567 6.39 35.084 21.246 35.084 14.109 0 20.167-7.993 20.25-26.586h-11.619c-.083 14.555-1.826 18.173-8.631 18.173-7.801 0-9.71-5.3-9.627-26.67 0-21.286 1.909-26.587 9.627-26.503 6.805 0 8.548 3.786 8.548 19.014Z"
fill={fill || 'var(--color-white)'}
/>
</svg>
)
}
export { Isotype, Logo, LogoFooter }

View File

@ -0,0 +1,228 @@
const Telegram = ({
className,
fill
}: {
className?: string
fill?: string
}) => {
return (
<svg
className={className}
fill="none"
viewBox="0 0 24 24"
xmlns="http://www.w3.org/2000/svg"
>
<path
clipRule="evenodd"
d="M24 12c0 6.6274-5.3726 12-12 12-6.62742 0-12-5.3726-12-12C0 5.37258 5.37258 0 12 0c6.6274 0 12 5.37258 12 12ZM12.43 8.85893c-1.1672.48547-3.49986 1.49027-6.99811 3.01437-.56806.2259-.86563.4469-.89272.663-.04578.3652.41154.509 1.0343.7048.08471.0267.17248.0543.26247.0835.6127.1992 1.43689.4322 1.86535.4414.38865.0084.82244-.1518 1.30135-.4807 3.26856-2.2063 4.95576-3.32149 5.06166-3.34553.0747-.01696.1783-.03829.2485.02408.0701.06235.0632.18045.0558.21215-.0453.1931-1.8405 1.8621-2.7695 2.7258-.2896.2692-.495.4602-.537.5038-.0941.0977-.19.1902-.2821.279-.5692.5487-.99609.9602.0236 1.6322.49.3229.8822.5899 1.2733.8563.4273.291.8534.5812 1.4047.9426.1405.092.2746.1877.4053.2808.4972.3545.9438.6729 1.4957.6221.3206-.0295.6519-.331.8201-1.2302.3975-2.1253 1.1789-6.7299 1.3595-8.62743.0158-.16624-.0041-.379-.02-.4724-.016-.09339-.0494-.22646-.1708-.32497-.1438-.11666-.3658-.14126-.465-.13952-.4514.00795-1.1438.24874-4.4764 1.63485Z"
fill="url(#telegram)"
fillRule="evenodd"
/>
<defs>
<linearGradient
id="telegram"
x1="12"
y1="0"
x2="12"
y2="24"
gradientUnits="userSpaceOnUse"
>
<stop stopColor={fill || 'var(--color-white)'} />
<stop offset="1" stopColor="#DEDEDE" />
</linearGradient>
</defs>
</svg>
)
}
const Twitter = ({
className,
fill
}: {
className?: string
fill?: string
}) => {
return (
<svg
className={className}
fill="none"
viewBox="0 0 24 24"
xmlns="http://www.w3.org/2000/svg"
>
<path
d="M7.55016 21.3548c9.05434 0 14.00814-7.4471 14.00814-13.9033 0-.20936-.0047-.42337-.0141-.63273.9637-.69168 1.7953-1.54843 2.4558-2.52999-.8975.39631-1.8504.65515-2.8261.76765 1.0274-.61122 1.7966-1.57142 2.1652-2.7026-.9665.56851-2.0235.96954-3.1257 1.18591-.7426-.78315-1.7244-1.30169-2.7937-1.47544-1.0693-.17376-2.1665.00695-3.122.51417-.9554.50722-1.7159 1.31271-2.1639 2.29194-.4479.97922-.5584 2.07764-.3143 3.12543-1.95701-.09747-3.87156-.60206-5.61952-1.48104-1.74795-.87898-3.29029-2.11274-4.52701-3.62129-.62857 1.07562-.820913 2.34843-.53794 3.55975C1.418 7.66457 2.15506 8.7235 3.19641 9.41483c-.78178-.02463-1.54643-.23354-2.230785-.60947v.06048c-.0007 1.12879.392475 2.22296 1.112685 3.09656.72021.8736 1.72301 1.4727 2.83794 1.6955-.72419.1966-1.48427.2253-2.22141.0837.31461.9708.92673 1.8198 1.75093 2.4287.8242.6088 1.81935.9471 2.84657.9676-1.74392 1.3596-3.89817 2.0971-6.11578 2.0936C.783287 19.2309.390399 19.2069 0 19.1598c2.25286 1.4345 4.87353 2.1964 7.55016 2.195Z"
fill="url(#twitter)"
/>
<defs>
<linearGradient
id="twitter"
x1="12"
y1="2"
x2="12"
y2="21.3548"
gradientUnits="userSpaceOnUse"
>
<stop stopColor={fill || 'var(--color-white)'} />
<stop offset="1" stopColor="#DEDEDE" />
</linearGradient>
</defs>
</svg>
)
}
const Reddit = ({ className, fill }: { className?: string; fill?: string }) => {
return (
<svg
className={className}
fill="none"
viewBox="0 0 24 24"
xmlns="http://www.w3.org/2000/svg"
>
<path
fillRule="evenodd"
clipRule="evenodd"
d="M24 12c0 6.6274-5.3726 12-12 12-6.62742 0-12-5.3726-12-12C0 5.37258 5.37258 0 12 0c6.6274 0 12 5.37258 12 12Zm-5.7544-1.7544C19.214 10.2456 20 11.0316 20 12c0 .7158-.4351 1.3333-1.0105 1.614.0281.1684.0421.3369.0421.5193 0 2.6947-3.1298 4.8702-7.0035 4.8702-3.87371 0-7.00353-2.1755-7.00353-4.8702 0-.1824.01403-.3649.0421-.5333-.61754-.2807-1.03859-.8842-1.03859-1.6 0-.9684.78596-1.7544 1.75438-1.7544.46316 0 .89825.1965 1.20702.4912 1.20702-.88419 2.87719-1.43156 4.74382-1.4877l.8843-4.18246c.028-.08421.0701-.15438.1403-.19649.0702-.0421.1544-.05614.2386-.0421l2.9053.61754c.1965-.42105.6175-.70175 1.1087-.70175.6878 0 1.2492.5614 1.2492 1.24912s-.5614 1.24912-1.2492 1.24912c-.6736 0-1.221-.53333-1.2491-1.19298l-2.5965-.54737-.8 3.74737c1.8246.07018 3.4807.63158 4.6737 1.4877.3088-.3088.7298-.4912 1.207-.4912ZM9.24913 12c-.68772 0-1.24912.5614-1.24912 1.2491 0 .6877.5614 1.2491 1.24912 1.2491s1.24917-.5614 1.24917-1.2491c0-.6877-.56145-1.2491-1.24917-1.2491Zm2.76487 5.4596c.4772 0 2.1053-.0561 2.9614-.9123.1264-.1263.1264-.3228.0281-.4631-.1263-.1263-.3368-.1263-.4631 0-.5474.5333-1.6843.7298-2.5123.7298-.8281 0-1.979-.1965-2.5123-.7298-.12632-.1263-.33685-.1263-.46316 0-.12632.1263-.12632.3368 0 .4631.8421.8422 2.48416.9123 2.96136.9123Zm1.4878-4.2105c0 .6877.5614 1.2491 1.2491 1.2491.6877 0 1.2491-.5614 1.2491-1.2491C16 12.5614 15.4386 12 14.7509 12c-.6877 0-1.2491.5614-1.2491 1.2491Z"
fill="url(#reddit)"
/>
<defs>
<linearGradient
id="reddit"
x1="12"
y1="0"
x2="12"
y2="24"
gradientUnits="userSpaceOnUse"
>
<stop stopColor={fill || 'var(--color-white)'} />
<stop offset="1" stopColor="#DEDEDE" />
</linearGradient>
</defs>
</svg>
)
}
const Linkedin = ({
className,
fill
}: {
className?: string
fill?: string
}) => {
return (
<svg
className={className}
viewBox="0 0 24 24"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<path
fillRule="evenodd"
clipRule="evenodd"
d="M3e-7 2.00509C3e-7 1.47331.21125.963308.587278.58728.963305.211253 1.47331.00000267 2.00509.00000267H21.9927c.2636-.00043042.5246.05112313.7682.15170933.2436.100586.4649.248229.6514.434476.1864.186247.3343.40744.4352.650912.1008.24348.1526.50446.1525.76799V21.9927c.0003.2636-.0514.5247-.1521.7683-.1007.2436-.2485.4649-.4348.6513-.1863.1865-.4076.3343-.6511.4352-.2436.1008-.5046.1526-.7682.1525H2.00509c-.2634 0-.52423-.0519-.76757-.1527-.243336-.1009-.464424-.2487-.650628-.435-.186204-.1863-.333875-.4074-.434576-.6508-.1007015-.2434-.15245901-.5043-.1523157-.7677V2.00509ZM9.49964 9.15055h3.24986v1.63195C13.2185 9.84437 14.4185 9 16.2218 9c3.4571 0 4.2764 1.8687 4.2764 5.2975v6.3512h-3.4986v-5.5702c0-1.9527-.4691-3.0545-1.6603-3.0545-1.6528 0-2.34 1.188-2.34 3.0545v5.5702H9.49964V9.15055Zm-6 11.34875h3.49963V9H3.49964v11.4993ZM7.5 5.24946c.0066.29964-.04672.59758-.15683.87634s-.27479.53271-.48437.74696c-.20959.21426-.45986.38449-.73612.5007-.27627.11622-.57296.17609-.87268.17609s-.59641-.05987-.87268-.17609c-.27626-.11621-.52653-.28644-.73612-.5007-.20958-.21425-.37426-.4682-.48437-.74696C3.04672 5.84704 2.9934 5.5491 3 5.24946c.01295-.58816.25569-1.14787.67624-1.55925.42054-.41139.98546-.64175 1.57376-.64175s1.15322.23036 1.57376.64175c.42055.41138.66329.97109.67624 1.55925Z"
fill={fill || 'var(--color-white)'}
/>
</svg>
)
}
const Facebook = ({
className,
fill
}: {
className?: string
fill?: string
}) => {
return (
<svg
className={className}
viewBox="0 0 24 24"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<path
d="M24 12c0-6.62742-5.3726-12-12-12C5.37258 0 0 5.37258 0 12c0 5.9895 4.3882 10.954 10.125 11.8542v-8.3855H7.07812V12H10.125V9.35625c0-3.0075 1.7916-4.66875 4.5326-4.66875 1.3125 0 2.6862.23437 2.6862.23437V7.875h-1.5132c-1.4906 0-1.9556.92508-1.9556 1.875V12h3.3281l-.532 3.4687H13.875v8.3855C19.6118 22.954 24 17.9895 24 12Z"
fill="url(#facebook)"
/>
<defs>
<linearGradient
id="facebook"
x1="12"
y1="0"
x2="12"
y2="23.8542"
gradientUnits="userSpaceOnUse"
>
<stop stopColor={fill || 'var(--color-white)'} />
<stop offset="1" stopColor="#DEDEDE" />
</linearGradient>
</defs>
</svg>
)
}
const Instagram = ({
className,
fill
}: {
className?: string
fill?: string
}) => {
return (
<svg
className={className}
viewBox="0 0 24 24"
fill="none"
xmlns="http://www.w3.org/2000/svg"
>
<path
d="M12 2.16094c3.2063 0 3.5859.01406 4.8469.07031 1.1719.05156 1.8047.24844 2.2265.4125.5579.21563.961.47813 1.3782.89531.4218.42188.6797.82032.8953 1.37813.164.42187.3609 1.05937.4125 2.22656.0562 1.26562.0703 1.64531.0703 4.84685 0 3.2063-.0141 3.586-.0703 4.8469-.0516 1.1719-.2485 1.8047-.4125 2.2266-.2156.5578-.4782.9609-.8953 1.3781-.4219.4219-.8203.6797-1.3782.8953-.4218.1641-1.0593.3609-2.2265.4125-1.2656.0562-1.6453.0703-4.8469.0703-3.20625 0-3.58594-.0141-4.84687-.0703-1.17188-.0516-1.80469-.2484-2.22657-.4125-.55781-.2156-.96093-.4781-1.37812-.8953-.42188-.4219-.67969-.8203-.89531-1.3781-.16407-.4219-.36094-1.0594-.4125-2.2266-.05625-1.2656-.07032-1.6453-.07032-4.8469 0-3.20622.01407-3.58591.07032-4.84685.05156-1.17188.24843-1.80469.4125-2.22656.21562-.55781.47812-.96094.89531-1.37813.42187-.42187.82031-.67968 1.37812-.89531.42188-.16406 1.05938-.36094 2.22657-.4125C8.41406 2.175 8.79375 2.16094 12 2.16094ZM12 0C8.74219 0 8.33438.0140625 7.05469.0703125 5.77969.126563 4.90313.332812 4.14375.628125 3.35156.9375 2.68125 1.34531 2.01563 2.01562 1.34531 2.68125.9375 3.35156.628125 4.13906.332812 4.90313.126563 5.775.0703125 7.05.0140625 8.33437 0 8.74219 0 12c0 3.2578.0140625 3.6656.0703125 4.9453.0562505 1.275.2624995 2.1516.5578125 2.911.309375.7921.717185 1.4625 1.387505 2.1281.66562.6656 1.33593 1.0781 2.12343 1.3828.76407.2953 1.63594.5015 2.91094.5578 1.27969.0562 1.6875.0703 4.9453.0703 3.2578 0 3.6656-.0141 4.9453-.0703 1.275-.0563 2.1516-.2625 2.911-.5578.7875-.3047 1.4578-.7172 2.1234-1.3828.6656-.6656 1.0781-1.336 1.3828-2.1235.2953-.764.5016-1.6359.5578-2.9109.0563-1.2797.0703-1.6875.0703-4.9453 0-3.25782-.014-3.66564-.0703-4.94532-.0562-1.275-.2625-2.15157-.5578-2.91094-.2953-.79688-.7031-1.46719-1.3734-2.13282C21.3188 1.35 20.6484.9375 19.8609.632812 19.0969.3375 18.225.13125 16.95.075 15.6656.0140625 15.2578 0 12 0Z"
fill="url(#instagram-a)"
/>
<path
d="M12 5.83594c-3.40312 0-6.16406 2.76094-6.16406 6.16406 0 3.4031 2.76094 6.1641 6.16406 6.1641 3.4031 0 6.1641-2.761 6.1641-6.1641 0-3.40312-2.761-6.16406-6.1641-6.16406Zm0 10.16246c-2.20781 0-3.99844-1.7906-3.99844-3.9984 0-2.20781 1.79063-3.99844 3.99844-3.99844 2.2078 0 3.9984 1.79063 3.9984 3.99844 0 2.2078-1.7906 3.9984-3.9984 3.9984Z"
fill="url(#instagram-b)"
/>
<path
d="M19.8469 5.59238c0 .79688-.6469 1.43907-1.4391 1.43907-.7969 0-1.439-.64688-1.439-1.43907 0-.79687.6468-1.43906 1.439-1.43906s1.4391.64688 1.4391 1.43906Z"
fill="url(#instagram-c)"
/>
<defs>
<linearGradient
id="instagram-a"
x1="11.993"
y1="0"
x2="11.993"
y2="23.9953"
gradientUnits="userSpaceOnUse"
>
<stop stopColor={fill || 'var(--color-white)'} />
<stop offset="1" stopColor="#DEDEDE" />
</linearGradient>
<linearGradient
id="instagram-b"
x1="12"
y1="5.83594"
x2="12"
y2="18.1641"
gradientUnits="userSpaceOnUse"
>
<stop stopColor={fill || 'var(--color-white)'} />
<stop offset="1" stopColor="#DEDEDE" />
</linearGradient>
<linearGradient
id="instagram-c"
x1="18.4078"
y1="4.15332"
x2="18.4078"
y2="7.03145"
gradientUnits="userSpaceOnUse"
>
<stop stopColor={fill || 'var(--color-white)'} />
<stop offset="1" stopColor="#DEDEDE" />
</linearGradient>
</defs>
</svg>
)
}
export { Facebook, Instagram, Linkedin, Reddit, Telegram, Twitter }

View File

@ -0,0 +1,28 @@
.aspect-box {
position: relative;
}
@supports (aspect-ratio: var(--raw-ratio)) {
.aspect-box {
aspect-ratio: var(--raw-ratio);
position: relative;
}
}
@supports not (aspect-ratio: var(--raw-ratio)) {
.aspect-box::before {
content: '';
width: 1px;
margin-left: -1px;
float: left;
height: 0;
padding-top: var(--ratio);
}
.aspect-box::after {
/* to clear float */
content: '';
display: table;
clear: both;
}
}

View File

@ -0,0 +1,26 @@
import clsx from 'clsx'
import * as React from 'react'
import s from './aspect-box.module.css'
export const AspectBox = ({
ratio,
children,
className,
style,
...rest
}: { ratio: number } & JSX.IntrinsicElements['div']) => {
return (
<div
{...rest}
className={clsx(s['aspect-box'], className)}
style={{
...style,
['--ratio' as string]: `${100 / ratio}%`,
['--raw-ratio' as string]: ratio
}}
>
{children}
</div>
)
}

View File

@ -0,0 +1,12 @@
@import '~/css/helpers';
.container {
width: 100%;
max-width: tovw(1296px, 'default', 320px);
margin: 0 auto;
@media screen and (max-width: 800px) {
max-width: 100%;
padding: 0 tovw(27px, 'tablet', 27px);
}
}

View File

@ -0,0 +1,15 @@
import clsx from 'clsx'
import * as React from 'react'
import s from './container.module.scss'
export const Container = React.forwardRef<
HTMLDivElement,
JSX.IntrinsicElements['div']
>(({ className, ...props }, ref) => {
return (
<div {...props} className={clsx(s['container'], className)} ref={ref} />
)
})
export type ContainerProps = React.ComponentProps<typeof Container>

View File

@ -0,0 +1,34 @@
import * as React from 'react'
import { Footer } from '~/components/common/footer'
import { Header } from '~/components/common/header'
import { LocomotiveScrollProvider } from '~/lib/locomotive-scroll/provider'
type Props = {
children?: React.ReactNode
extras?: React.ReactNode
locomotiveScroll?: boolean
}
const ContentMemo = React.memo(({ children, extras }: Props) => {
return (
<>
{extras}
<Header />
<main>{children}</main>
<Footer />
</>
)
})
export const PageLayout = (props: Props) => {
if (props.locomotiveScroll) {
return (
<LocomotiveScrollProvider>
<ContentMemo {...props} />
</LocomotiveScrollProvider>
)
} else {
return <ContentMemo {...props} />
}
}

Some files were not shown because too many files have changed in this diff Show More