feat(nuxt,schema): inline error, welcome, spa-loading templates (#27021)

This commit is contained in:
Daniel Roe 2024-05-01 14:10:33 +01:00 committed by GitHub
parent 15781c6087
commit 256ef1faf6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
53 changed files with 1086 additions and 276 deletions

View File

@ -20,6 +20,11 @@ export default createConfigForNuxt({
// Don't add other attributes to this object // Don't add other attributes to this object
ignores: [ ignores: [
'packages/schema/schema/**', 'packages/schema/schema/**',
'packages/schema/src/templates/*',
'packages/nuxt/src/app/components/welcome.vue',
'packages/nuxt/src/app/components/error-*.vue',
'packages/nuxt/src/core/templates/spa-loading-icon.*',
'packages/nuxt/src/core/runtime/nitro/error-*',
], ],
}, },
{ {
@ -207,6 +212,12 @@ export default createConfigForNuxt({
'perfectionist/sort-objects': 'error', 'perfectionist/sort-objects': 'error',
}, },
}, },
{
files: ['packages/nuxt/src/app/components/welcome.vue'],
rules: {
'vue/multi-word-component-names': 'off',
},
},
) )
// Generate type definitions for the eslint config // Generate type definitions for the eslint config

View File

@ -12,7 +12,7 @@
"build:stub": "pnpm dev:prepare", "build:stub": "pnpm dev:prepare",
"cleanup": "rimraf 'packages/**/node_modules' 'playground/node_modules' 'node_modules'", "cleanup": "rimraf 'packages/**/node_modules' 'playground/node_modules' 'node_modules'",
"dev": "pnpm play", "dev": "pnpm play",
"dev:prepare": "pnpm --filter './packages/**' prepack --stub", "dev:prepare": "pnpm --filter @nuxt/ui-templates prepack && pnpm --filter './packages/[^u]**' prepack --stub",
"lint": "eslint . --cache", "lint": "eslint . --cache",
"lint:fix": "eslint . --cache --fix", "lint:fix": "eslint . --cache --fix",
"lint:docs": "markdownlint ./docs && case-police 'docs/**/*.md' *.md", "lint:docs": "markdownlint ./docs && case-police 'docs/**/*.md' *.md",
@ -35,6 +35,7 @@
"resolutions": { "resolutions": {
"@nuxt/kit": "workspace:*", "@nuxt/kit": "workspace:*",
"@nuxt/schema": "workspace:*", "@nuxt/schema": "workspace:*",
"@nuxt/ui-templates": "workspace:*",
"@nuxt/vite-builder": "workspace:*", "@nuxt/vite-builder": "workspace:*",
"@nuxt/webpack-builder": "workspace:*", "@nuxt/webpack-builder": "workspace:*",
"rollup": "^4.17.2", "rollup": "^4.17.2",

View File

@ -64,7 +64,6 @@
"@nuxt/kit": "workspace:*", "@nuxt/kit": "workspace:*",
"@nuxt/schema": "workspace:*", "@nuxt/schema": "workspace:*",
"@nuxt/telemetry": "^2.5.4", "@nuxt/telemetry": "^2.5.4",
"@nuxt/ui-templates": "^1.3.3",
"@nuxt/vite-builder": "workspace:*", "@nuxt/vite-builder": "workspace:*",
"@unhead/dom": "^1.9.7", "@unhead/dom": "^1.9.7",
"@unhead/ssr": "^1.9.7", "@unhead/ssr": "^1.9.7",
@ -118,6 +117,7 @@
"vue-router": "^4.3.2" "vue-router": "^4.3.2"
}, },
"devDependencies": { "devDependencies": {
"@nuxt/ui-templates": "^1.3.3",
"@parcel/watcher": "2.4.1", "@parcel/watcher": "2.4.1",
"@types/estree": "1.0.5", "@types/estree": "1.0.5",
"@types/fs-extra": "11.0.4", "@types/fs-extra": "11.0.4",

View File

@ -0,0 +1 @@
../../../../ui-templates/dist/templates/error-404.vue

View File

@ -0,0 +1 @@
../../../../ui-templates/dist/templates/error-500.vue

View File

@ -0,0 +1 @@
../../../../ui-templates/dist/templates/error-dev.vue

View File

@ -40,10 +40,10 @@ const description = _error.message || _error.toString()
const stack = import.meta.dev && !is404 ? _error.description || `<pre>${stacktrace}</pre>` : undefined const stack = import.meta.dev && !is404 ? _error.description || `<pre>${stacktrace}</pre>` : undefined
// TODO: Investigate side-effect issue with imports // TODO: Investigate side-effect issue with imports
const _Error404 = defineAsyncComponent(() => import('@nuxt/ui-templates/templates/error-404.vue').then(r => r.default || r)) const _Error404 = defineAsyncComponent(() => import('./error-404.vue').then(r => r.default || r))
const _Error = import.meta.dev const _Error = import.meta.dev
? defineAsyncComponent(() => import('@nuxt/ui-templates/templates/error-dev.vue').then(r => r.default || r)) ? defineAsyncComponent(() => import('./error-dev.vue').then(r => r.default || r))
: defineAsyncComponent(() => import('@nuxt/ui-templates/templates/error-500.vue').then(r => r.default || r)) : defineAsyncComponent(() => import('./error-500.vue').then(r => r.default || r))
const ErrorTemplate = is404 ? _Error404 : _Error const ErrorTemplate = is404 ? _Error404 : _Error
</script> </script>

View File

@ -0,0 +1 @@
../../../../ui-templates/dist/templates/welcome.vue

View File

@ -1,7 +1,7 @@
import { promises as fsp, mkdirSync, writeFileSync } from 'node:fs' import { promises as fsp, mkdirSync, writeFileSync } from 'node:fs'
import { dirname, join, relative, resolve } from 'pathe' import { dirname, join, relative, resolve } from 'pathe'
import { defu } from 'defu' import { defu } from 'defu'
import { compileTemplate as _compileTemplate, findPath, logger, normalizePlugin, normalizeTemplate, resolveAlias, resolveFiles, resolvePath, templateUtils, tryResolveModule } from '@nuxt/kit' import { compileTemplate as _compileTemplate, findPath, logger, normalizePlugin, normalizeTemplate, resolveAlias, resolveFiles, resolvePath, templateUtils } from '@nuxt/kit'
import type { Nuxt, NuxtApp, NuxtPlugin, NuxtTemplate, ResolvedNuxtTemplate } from 'nuxt/schema' import type { Nuxt, NuxtApp, NuxtPlugin, NuxtTemplate, ResolvedNuxtTemplate } from 'nuxt/schema'
import * as defaultTemplates from './templates' import * as defaultTemplates from './templates'
@ -142,7 +142,7 @@ export async function resolveApp (nuxt: Nuxt, app: NuxtApp) {
) )
} }
if (!app.mainComponent) { if (!app.mainComponent) {
app.mainComponent = (await tryResolveModule('@nuxt/ui-templates/templates/welcome.vue', nuxt.options.modulesDir)) ?? '@nuxt/ui-templates/templates/welcome.vue' app.mainComponent = resolve(nuxt.options.appDir, 'components/welcome.vue')
} }
// Resolve root component // Resolve root component

View File

@ -14,10 +14,10 @@ import fsExtra from 'fs-extra'
import { dynamicEventHandler } from 'h3' import { dynamicEventHandler } from 'h3'
import { isWindows } from 'std-env' import { isWindows } from 'std-env'
import type { Nuxt, NuxtOptions, RuntimeConfig } from 'nuxt/schema' import type { Nuxt, NuxtOptions, RuntimeConfig } from 'nuxt/schema'
import { template as defaultSpaLoadingTemplate } from '@nuxt/ui-templates/templates/spa-loading-icon.mjs'
import { version as nuxtVersion } from '../../package.json' import { version as nuxtVersion } from '../../package.json'
import { distDir } from '../dirs' import { distDir } from '../dirs'
import { toArray } from '../utils' import { toArray } from '../utils'
import { template as defaultSpaLoadingTemplate } from './templates/spa-loading-icon.js'
import { ImportProtectionPlugin, nuxtImportProtections } from './plugins/import-protection' import { ImportProtectionPlugin, nuxtImportProtections } from './plugins/import-protection'
const logLevelMapReverse = { const logLevelMapReverse = {

View File

@ -276,7 +276,7 @@ async function initNuxt (nuxt: Nuxt) {
addComponent({ addComponent({
name: 'NuxtWelcome', name: 'NuxtWelcome',
priority: 10, // built-in that we do not expect the user to override priority: 10, // built-in that we do not expect the user to override
filePath: (await tryResolveModule('@nuxt/ui-templates/templates/welcome.vue', nuxt.options.modulesDir))!, filePath: resolve(nuxt.options.appDir, 'components/welcome'),
}) })
addComponent({ addComponent({
@ -567,7 +567,6 @@ export async function loadNuxt (opts: LoadNuxtOptions): Promise<Nuxt> {
options.modulesDir.push(resolve(options.workspaceDir, 'node_modules')) options.modulesDir.push(resolve(options.workspaceDir, 'node_modules'))
options.modulesDir.push(resolve(pkgDir, 'node_modules')) options.modulesDir.push(resolve(pkgDir, 'node_modules'))
options.build.transpile.push( options.build.transpile.push(
'@nuxt/ui-templates', // this exposes vue SFCs
'std-env', // we need to statically replace process.env when used in runtime code 'std-env', // we need to statically replace process.env when used in runtime code
) )
options.alias['vue-demi'] = resolve(options.appDir, 'compat/vue-demi') options.alias['vue-demi'] = resolve(options.appDir, 'compat/vue-demi')

View File

@ -0,0 +1 @@
../../../../../ui-templates/dist/templates/error-500.d.ts

View File

@ -0,0 +1 @@
../../../../../ui-templates/dist/templates/error-500.js

View File

@ -0,0 +1 @@
../../../../../ui-templates/dist/templates/error-dev.d.ts

View File

@ -0,0 +1 @@
../../../../../ui-templates/dist/templates/error-dev.js

View File

@ -66,9 +66,7 @@ export default <NitroErrorHandler> async function errorhandler (error: H3Error,
// Fallback to static rendered error page // Fallback to static rendered error page
if (!res) { if (!res) {
const { template } = import.meta.dev const { template } = import.meta.dev ? await import('./error-dev.js') : await import('./error-500.js')
? await import('@nuxt/ui-templates/templates/error-dev.mjs')
: await import('@nuxt/ui-templates/templates/error-500.mjs')
if (import.meta.dev) { if (import.meta.dev) {
// TODO: Support `message` in template // TODO: Support `message` in template
(errorObject as any).description = errorObject.message (errorObject as any).description = errorObject.message

View File

@ -0,0 +1 @@
../../../../ui-templates/dist/templates/spa-loading-icon.d.ts

View File

@ -0,0 +1 @@
../../../../ui-templates/dist/templates/spa-loading-icon.js

View File

@ -253,7 +253,7 @@ export default defineNuxtModule({
nuxt.hook('app:resolve', (app) => { nuxt.hook('app:resolve', (app) => {
// Add default layout for pages // Add default layout for pages
if (app.mainComponent!.includes('@nuxt/ui-templates')) { if (app.mainComponent === resolve(nuxt.options.appDir, 'components/welcome.vue')) {
app.mainComponent = resolve(runtimeDir, 'app.vue') app.mainComponent = resolve(runtimeDir, 'app.vue')
} }
app.middleware.unshift({ app.middleware.unshift({

View File

@ -30,7 +30,7 @@ describe('resolveApp', () => {
".vue", ".vue",
], ],
"layouts": {}, "layouts": {},
"mainComponent": "@nuxt/ui-templates/dist/templates/welcome.vue", "mainComponent": "<repoRoot>/packages/nuxt/src/app/components/welcome.vue",
"middleware": [ "middleware": [
{ {
"global": true, "global": true,

View File

@ -35,6 +35,7 @@
}, },
"devDependencies": { "devDependencies": {
"@nuxt/telemetry": "2.5.4", "@nuxt/telemetry": "2.5.4",
"@nuxt/ui-templates": "^1.3.3",
"@types/file-loader": "5.0.4", "@types/file-loader": "5.0.4",
"@types/pug": "2.0.10", "@types/pug": "2.0.10",
"@types/sass-loader": "8.0.8", "@types/sass-loader": "8.0.8",
@ -62,7 +63,6 @@
"webpack-dev-middleware": "7.2.1" "webpack-dev-middleware": "7.2.1"
}, },
"dependencies": { "dependencies": {
"@nuxt/ui-templates": "^1.3.3",
"consola": "^3.2.3", "consola": "^3.2.3",
"defu": "^6.1.4", "defu": "^6.1.4",
"hookable": "^5.5.3", "hookable": "^5.5.3",

View File

@ -1,5 +1,5 @@
import { defineUntypedSchema } from 'untyped' import { defineUntypedSchema } from 'untyped'
import { loading as loadingTemplate } from '@nuxt/ui-templates' import { template as loadingTemplate } from '../templates/loading.js'
export default defineUntypedSchema({ export default defineUntypedSchema({
devServer: { devServer: {

View File

@ -0,0 +1 @@
../../../ui-templates/dist/templates/loading.d.ts

View File

@ -0,0 +1 @@
../../../ui-templates/dist/templates/loading.js

View File

@ -1,5 +1,5 @@
import { resolve, join } from 'path' import { join, resolve } from 'node:path'
import { promises as fsp } from 'fs' import { promises as fsp } from 'node:fs'
import type { Plugin } from 'vite' import type { Plugin } from 'vite'
import template from 'lodash.template' import template from 'lodash.template'
import genericMessages from '../templates/messages.json' import genericMessages from '../templates/messages.json'
@ -23,10 +23,10 @@ export const DevRenderingPlugin = () => {
const messages = JSON.parse(await fsp.readFile(r(page, 'messages.json'), 'utf-8')) const messages = JSON.parse(await fsp.readFile(r(page, 'messages.json'), 'utf-8'))
return template(contents, { return template(contents, {
interpolate: /{{{?([\s\S]+?)}?}}/g interpolate: /{{{?([\s\S]+?)}?}}/g,
})({ })({
messages: { ...genericMessages, ...messages } messages: { ...genericMessages, ...messages },
}) })
} },
} }
} }

View File

@ -1,5 +1,5 @@
import { resolve, join } from 'path' import { join, resolve } from 'node:path'
import { promises as fsp } from 'fs' import { promises as fsp } from 'node:fs'
import { globby } from 'globby' import { globby } from 'globby'
const r = (...path: string[]) => resolve(join(__dirname, '..', ...path)) const r = (...path: string[]) => resolve(join(__dirname, '..', ...path))
@ -10,12 +10,11 @@ async function main () {
const { template } = await import(file) const { template } = await import(file)
const updated = template({ const updated = template({
// messages: {}, // messages: {},
name: '{{ name }}' // TODO name: '{{ name }}', // TODO
}) })
await fsp.mkdir(file.replace('.mjs', '')) await fsp.mkdir(file.replace('.mjs', ''))
await fsp.writeFile(file.replace('.mjs', '/index.html'), updated) await fsp.writeFile(file.replace('.mjs', '/index.html'), updated)
} }
} }
// eslint-disable-next-line no-console
main().catch(console.error) main().catch(console.error)

View File

@ -1,16 +1,18 @@
import { promises as fsp } from 'fs' import { promises as fsp } from 'node:fs'
import { resolve, join, dirname, basename } from 'upath' import { basename, dirname, join, resolve } from 'pathe'
import type { Plugin } from 'vite' import type { Plugin } from 'vite'
// @ts-expect-error https://github.com/GoogleChromeLabs/critters/pull/151
import Critters from 'critters' import Critters from 'critters'
import template from 'lodash.template' import template from 'lodash.template'
import { genObjectFromRawEntries } from 'knitwork' import { genObjectFromRawEntries } from 'knitwork'
import htmlMinifier from 'html-minifier' import htmlMinifier from 'html-minifier'
import { camelCase } from 'scule' import { camelCase } from 'scule'
import genericMessages from '../templates/messages.json' import genericMessages from '../templates/messages.json'
const r = (...path: string[]) => resolve(join(__dirname, '..', ...path)) const r = (...path: string[]) => resolve(join(__dirname, '..', ...path))
const replaceAll = (input, search, replace) => input.split(search).join(replace) const replaceAll = (input: string, search: string | RegExp, replace: string) => input.split(search).join(replace)
export const RenderPlugin = () => { export const RenderPlugin = () => {
return <Plugin> { return <Plugin> {
@ -78,7 +80,7 @@ export const RenderPlugin = () => {
const jsCode = [ const jsCode = [
`const _messages = ${JSON.stringify({ ...genericMessages, ...messages })}`, `const _messages = ${JSON.stringify({ ...genericMessages, ...messages })}`,
`const _render = ${template(html, { variable: '__var__', interpolate: /{{{?([\s\S]+?)}?}}/g }).toString().replace('__var__', '{ messages }')}`, `const _render = ${template(html, { variable: '__var__', interpolate: /{{{?([\s\S]+?)}?}}/g }).toString().replace('__var__', '{ messages }')}`,
'const _template = (messages) => _render({ messages: { ..._messages, ...messages } })' 'const _template = (messages) => _render({ messages: { ..._messages, ...messages } })',
].join('\n').trim() ].join('\n').trim()
const templateContent = html const templateContent = html
@ -87,7 +89,7 @@ export const RenderPlugin = () => {
.replace(/messages\./g, '') .replace(/messages\./g, '')
.replace(/<script[^>]*>([\s\S]*?)<\/script>/g, '') .replace(/<script[^>]*>([\s\S]*?)<\/script>/g, '')
.replace(/<a href="(\/[^"]*)"([^>]*)>([\s\S]*)<\/a>/g, '<NuxtLink to="$1"$2>\n$3\n</NuxtLink>') .replace(/<a href="(\/[^"]*)"([^>]*)>([\s\S]*)<\/a>/g, '<NuxtLink to="$1"$2>\n$3\n</NuxtLink>')
// eslint-disable-next-line no-template-curly-in-string
.replace(/<([^>]+) ([a-z]+)="([^"]*)({{\s*(\w+?)\s*}})([^"]*)"([^>]*)>/g, '<$1 :$2="`$3${$5}$6`"$7>') .replace(/<([^>]+) ([a-z]+)="([^"]*)({{\s*(\w+?)\s*}})([^"]*)"([^>]*)>/g, '<$1 :$2="`$3${$5}$6`"$7>')
.replace(/>{{\s*(\w+?)\s*}}<\/[\w-]*>/g, ' v-text="$1" />') .replace(/>{{\s*(\w+?)\s*}}<\/[\w-]*>/g, ' v-text="$1" />')
.replace(/>{{{\s*(\w+?)\s*}}}<\/[\w-]*>/g, ' v-html="$1" />') .replace(/>{{{\s*(\w+?)\s*}}}<\/[\w-]*>/g, ' v-html="$1" />')
@ -109,7 +111,7 @@ export const RenderPlugin = () => {
.filter(i => !i.includes('const t=document.createElement("link")')) .filter(i => !i.includes('const t=document.createElement("link")'))
const props = genObjectFromRawEntries(Object.entries({ ...genericMessages, ...messages }).map(([key, value]) => [key, { const props = genObjectFromRawEntries(Object.entries({ ...genericMessages, ...messages }).map(([key, value]) => [key, {
type: typeof value === 'string' ? 'String' : typeof value === 'number' ? 'Number' : typeof value === 'boolean' ? 'Boolean' : 'undefined', type: typeof value === 'string' ? 'String' : typeof value === 'number' ? 'Number' : typeof value === 'boolean' ? 'Boolean' : 'undefined',
default: JSON.stringify(value) default: JSON.stringify(value),
}])) }]))
const vueCode = [ const vueCode = [
'<script setup>', '<script setup>',
@ -118,7 +120,7 @@ export const RenderPlugin = () => {
title && 'useHead(' + genObjectFromRawEntries([ title && 'useHead(' + genObjectFromRawEntries([
['title', `\`${title}\``], ['title', `\`${title}\``],
['script', inlineScripts.map(s => ({ children: `\`${s}\`` }))], ['script', inlineScripts.map(s => ({ children: `\`${s}\`` }))],
['style', [{ children: `\`${globalStyles}\`` }]] ['style', [{ children: `\`${globalStyles}\`` }]],
]) + ')', ]) + ')',
'</script>', '</script>',
'<template>', '<template>',
@ -126,27 +128,26 @@ export const RenderPlugin = () => {
'</template>', '</template>',
'<style scoped>', '<style scoped>',
styleContent.replace(globalStyles, ''), styleContent.replace(globalStyles, ''),
'</style>' '</style>',
].filter(Boolean).join('\n').trim() ].filter(Boolean).join('\n').trim()
// Generate types // Generate types
const types = [ const types = [
`export type DefaultMessages = Record<${Object.keys(messages).map(a => `"${a}"`).join(' | ') || 'string'}, string | boolean | number >`, `export type DefaultMessages = Record<${Object.keys(messages).map(a => `"${a}"`).join(' | ') || 'string'}, string | boolean | number >`,
'declare const template: (data: Partial<DefaultMessages>) => string', 'declare const template: (data: Partial<DefaultMessages>) => string',
'export { template }' 'export { template }',
].join('\n') ].join('\n')
// Register exports // Register exports
templateExports.push({ templateExports.push({
exportName: camelCase(templateName), exportName: camelCase(templateName),
templateName, templateName,
types types,
}) })
// Write new template // Write new template
await fsp.writeFile(fileName.replace('/index.html', '.mjs'), `${jsCode}\nexport const template = _template`) await fsp.writeFile(fileName.replace('/index.html', '.js'), `${jsCode}\nexport const template = _template`)
await fsp.writeFile(fileName.replace('/index.html', '.vue'), vueCode) await fsp.writeFile(fileName.replace('/index.html', '.vue'), vueCode)
await fsp.writeFile(fileName.replace('/index.html', '.d.mts'), `${types}`)
await fsp.writeFile(fileName.replace('/index.html', '.d.ts'), `${types}`) await fsp.writeFile(fileName.replace('/index.html', '.d.ts'), `${types}`)
// Remove original html file // Remove original html file
@ -160,6 +161,6 @@ export const RenderPlugin = () => {
await fsp.writeFile(r('dist/index.d.ts'), replaceAll(contents, /\.mjs/g, ''), 'utf8') await fsp.writeFile(r('dist/index.d.ts'), replaceAll(contents, /\.mjs/g, ''), 'utf8')
await fsp.writeFile(r('dist/index.d.mts'), replaceAll(contents, /\.mjs/g, ''), 'utf8') await fsp.writeFile(r('dist/index.d.mts'), replaceAll(contents, /\.mjs/g, ''), 'utf8')
} },
} }
} }

View File

@ -1,14 +1,19 @@
{ {
"name": "@nuxt/ui-templates", "name": "@nuxt/ui-templates",
"version": "1.3.3", "version": "1.3.3",
"repository": "nuxt/assets", "repository": {
"type": "git",
"url": "git+https://github.com/nuxt/nuxt.git",
"directory": "packages/ui-templates"
},
"license": "CC-BY-ND-4.0", "license": "CC-BY-ND-4.0",
"type": "module",
"exports": { "exports": {
"./templates/*": "./dist/templates/*", "./templates/*": "./dist/templates/*",
".": "./dist/index.mjs", ".": "./dist/index.js",
"./*": "./dist/*" "./*": "./dist/*"
}, },
"main": "./dist/index.mjs", "main": "./dist/index.js",
"types": "./dist/index.d.ts", "types": "./dist/index.d.ts",
"files": [ "files": [
"dist/templates/*", "dist/templates/*",
@ -19,26 +24,26 @@
"dev": "vite", "dev": "vite",
"lint": "eslint --ext .ts,.js .", "lint": "eslint --ext .ts,.js .",
"optimize-assets": "npx svgo public/assets/**/*.svg", "optimize-assets": "npx svgo public/assets/**/*.svg",
"prepack": "pnpm build", "prepack": "pnpm build && true",
"prerender": "pnpm build && jiti ./lib/prerender", "prerender": "pnpm build && jiti ./lib/prerender",
"test": "pnpm lint && pnpm build" "test": "pnpm lint && pnpm build"
}, },
"devDependencies": { "devDependencies": {
"@nuxt/ui-assets": "^0.2.1", "@types/html-minifier": "4.0.5",
"@types/html-minifier": "^4.0.5", "@types/lodash.template": "4.5.3",
"@types/lodash.template": "^4.5.3", "@unocss/reset": "0.59.4",
"@unocss/reset": "^0.58.9",
"critters": "0.0.22", "critters": "0.0.22",
"execa": "^8.0.1", "execa": "8.0.1",
"globby": "^14.0.1", "globby": "14.0.1",
"html-minifier": "^4.0.0", "html-minifier": "4.0.0",
"jiti": "^1.21.0", "jiti": "1.21.0",
"knitwork": "^1.1.0", "knitwork": "1.1.0",
"lodash.template": "^4.5.0", "lodash.template": "4.5.0",
"scule": "^1.3.0", "pathe": "1.1.2",
"unocss": "^0.58.9", "prettier": "3.2.5",
"upath": "^2.0.1", "scule": "1.3.0",
"vite": "^5.2.8" "unocss": "0.59.4",
"vite": "5.2.10"
}, },
"publishConfig": { "publishConfig": {
"access": "public" "access": "public"

View File

@ -1 +0,0 @@
../assets

View File

@ -0,0 +1 @@
<svg width="14" height="14" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="m6.667 0 4.041 7H2.625l4.042-7zm0 14L2.625 7h8.083l-4.041 7z" opacity=".9" fill="#00DC82"/></svg>

After

Width:  |  Height:  |  Size: 181 B

View File

@ -0,0 +1 @@
<svg width="150" height="150" fill="none" xmlns="http://www.w3.org/2000/svg"><g clip-path="url(#a)"><path d="M163.796 9.64c-16.555.935-49.457 4.34-69.77 16.72-1.401.855-2.196 2.374-2.196 3.962v109.445c0 3.474 3.816 5.67 7.033 4.058 20.898-10.474 51.121-13.331 66.065-14.113 5.103-.268 9.069-4.34 9.069-9.222V18.874c.003-5.327-4.637-9.547-10.201-9.234zM79.971 26.36C59.66 13.98 26.758 10.58 10.204 9.64 4.64 9.327 0 13.547 0 18.874v101.619c0 4.885 3.966 8.957 9.069 9.222 14.95.782 45.188 3.642 66.086 14.122 3.208 1.609 7.012-.584 7.012-4.049V30.268c0-1.591-.792-3.05-2.197-3.908z" fill="#D1E2E2"/></g><defs><clipPath id="a"><path fill="#fff" d="M0 0h150v150H0z"/></clipPath></defs></svg>

After

Width:  |  Height:  |  Size: 688 B

View File

@ -0,0 +1 @@
<svg width="80" height="80" fill="none" xmlns="http://www.w3.org/2000/svg"><g clip-path="url(#a)"><path d="M63.69 51.775c0 3.325-2.47 6.05-5.596 6.05-3.072 0-5.596-2.726-5.596-6.05 0-3.325 2.469-6.05 5.596-6.05 3.127 0 5.595 2.725 5.595 6.05zm-25.62-6.05c-3.126 0-5.595 2.725-5.595 6.05 0 3.325 2.524 6.05 5.596 6.05 3.127 0 5.595-2.726 5.595-6.05.055-3.325-2.468-6.05-5.595-6.05zM96 11.227V109c-13.82-12.133-9.4-8.117-25.454-22.945l2.908 10.083H11.246C5.046 96.138 0 91.124 0 84.911V11.227C0 5.014 5.047 0 11.246 0h73.508C90.954 0 96 5.014 96 11.227zM80.366 62.893c0-17.549-7.9-31.774-7.9-31.774-7.9-5.886-15.415-5.722-15.415-5.722l-.768.872c9.326 2.834 13.66 6.922 13.66 6.922-13.031-7.096-28.338-7.097-40.978-1.581-2.03.926-3.237 1.58-3.237 1.58s4.553-4.305 14.427-7.139l-.548-.654s-7.516-.163-15.415 5.723c0 0-7.9 14.224-7.9 31.773 0 0 4.609 7.903 16.732 8.284 0 0 2.03-2.453 3.675-4.524-6.966-2.07-9.6-6.43-9.6-6.43.807.56 2.138 1.288 2.25 1.362 9.259 5.152 22.411 6.84 34.23 1.907 1.92-.708 4.06-1.743 6.309-3.215 0 0-2.743 4.469-9.93 6.486 1.647 2.07 3.621 4.414 3.621 4.414 12.124-.382 16.787-8.284 16.787-8.284z" fill="#D1E2E2"/></g><defs><clipPath id="a"><path fill="#fff" d="M0 0h80v80H0z"/></clipPath></defs></svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -0,0 +1,71 @@
<svg width="342" height="165" viewBox="0 0 342 165" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_2687_3947)">
<path d="M0.152832 131.851H154.28" stroke="#E4E4E7"/>
<path d="M215.399 107.359H349.153" stroke="#E4E4E7"/>
<path d="M0.152832 77.2178L116.191 77.2178" stroke="#E4E4E7"/>
<path d="M36.1528 106.921L152.191 106.921" stroke="#E4E4E7"/>
<path d="M202.153 42.9209L317.305 42.9209" stroke="#E4E4E7"/>
<path d="M218.153 76.9209L345.305 76.9209" stroke="#E4E4E7"/>
<path d="M285.947 8.45605V166.979" stroke="#E4E4E7"/>
<path d="M252.602 16.8311V107.36" stroke="#E4E4E7"/>
<path d="M171.153 16.9209V107.45" stroke="#E4E4E7"/>
<path d="M218.153 16.9209V43.4501" stroke="#E4E4E7"/>
<path d="M122.153 16.9211L327.45 16.9209" stroke="#E4E4E7"/>
<path d="M1.92432 43.3086H148.163" stroke="#E4E4E7"/>
<path d="M122.392 16.4209V55.3659" stroke="#E4E4E7"/>
<path d="M36.084 0.920898L36.084 176.921" stroke="#E4E4E7"/>
<path d="M75.4448 43.249V175.152" stroke="#E4E4E7"/>
<circle opacity="0.7" cx="75.4448" cy="77.2178" r="3.5" fill="#00DC82"/>
<circle opacity="0.7" cx="36.1528" cy="131.85" r="3.5" fill="#00DC82"/>
<circle opacity="0.7" cx="285.947" cy="42.9209" r="3.5" fill="#00DC82"/>
<circle opacity="0.7" cx="252.602" cy="107.359" r="3.5" fill="#00DC82"/>
<g filter="url(#filter0_d_2687_3947)">
<path d="M122.846 50.7109L163.067 26.0929C166.656 23.9507 171.117 23.8611 174.77 25.8579L217.894 49.0819C221.524 51.0665 223.807 54.8133 223.892 58.9246L224.15 104.352C224.235 108.448 222.13 112.287 218.609 114.46L177.783 139.658C174.174 141.886 169.638 142.011 165.931 139.984L123.774 116.935C120.045 114.896 117.125 111.001 117.153 106.776L117.153 60.5974C117.18 56.5529 119.338 52.8048 122.846 50.7109Z" fill="white"/>
<path d="M222.151 104.393C222.22 107.764 220.487 110.944 217.571 112.75C217.567 112.753 217.563 112.755 217.559 112.758L176.733 137.956C173.748 139.798 169.96 139.907 166.89 138.229L124.733 115.18C121.469 113.395 119.131 110.069 119.153 106.79L119.153 106.776L119.153 60.6107C119.153 60.6086 119.153 60.6065 119.153 60.6044C119.178 57.2703 120.958 54.1669 123.871 52.4282L123.881 52.4225L123.89 52.4167L164.101 27.8047C164.101 27.8047 164.101 27.8047 164.101 27.8047C164.106 27.8022 164.11 27.7997 164.114 27.7972C167.078 26.0385 170.793 25.9632 173.81 27.6128L173.81 27.6128L173.821 27.6188L216.934 50.8367C216.936 50.8377 216.938 50.8387 216.94 50.8397C219.935 52.4801 221.817 55.5878 221.892 58.9515L222.15 104.363L222.15 104.378L222.151 104.393Z" stroke="url(#paint0_linear_2687_3947)" stroke-width="4"/>
</g>
<path d="M192.349 96.9158L190.63 90.5186L183.778 64.9088C183.55 64.0605 182.994 63.3375 182.233 62.8988C181.472 62.4601 180.568 62.3416 179.72 62.5693L173.323 64.2877L173.116 64.3498C172.807 63.945 172.409 63.6168 171.953 63.3906C171.497 63.1644 170.995 63.0463 170.486 63.0455H163.861C163.279 63.0471 162.707 63.2043 162.205 63.501C161.703 63.2043 161.132 63.0471 160.549 63.0455H153.924C153.045 63.0455 152.203 63.3945 151.582 64.0157C150.96 64.6369 150.611 65.4795 150.611 66.358V99.483C150.611 100.362 150.96 101.204 151.582 101.825C152.203 102.447 153.045 102.796 153.924 102.796H160.549C161.132 102.794 161.703 102.637 162.205 102.34C162.707 102.637 163.279 102.794 163.861 102.796H170.486C171.365 102.796 172.207 102.447 172.829 101.825C173.45 101.204 173.799 100.362 173.799 99.483V78.8627L177.836 93.9346L179.554 100.332C179.742 101.039 180.158 101.665 180.739 102.11C181.32 102.556 182.031 102.797 182.763 102.796C183.049 102.791 183.334 102.756 183.612 102.692L190.009 100.974C190.43 100.861 190.824 100.665 191.169 100.399C191.514 100.132 191.802 99.7997 192.018 99.4209C192.238 99.047 192.381 98.6325 192.438 98.2021C192.495 97.7717 192.465 97.3342 192.349 96.9158V96.9158ZM176.325 75.4881L182.722 73.7697L187.007 89.7732L180.61 91.4916L176.325 75.4881ZM180.569 65.7783L181.873 70.5607L175.476 72.2791L174.171 67.4967L180.569 65.7783ZM170.486 66.358V91.2018H163.861V66.358H170.486ZM160.549 66.358V71.3268H153.924V66.358H160.549ZM153.924 99.483V74.6393H160.549V99.483H153.924ZM170.486 99.483H163.861V94.5143H170.486V99.483ZM189.161 97.7646L182.763 99.483L181.459 94.6799L187.877 92.9615L189.161 97.7646V97.7646Z" fill="url(#paint1_linear_2687_3947)"/>
<rect x="2.15283" y="-3.0791" width="327" height="23" fill="url(#paint2_linear_2687_3947)"/>
<rect width="327" height="25" transform="matrix(1 0 0 -1 2.15283 166.921)" fill="url(#paint3_linear_2687_3947)"/>
<rect width="327" height="25" transform="matrix(0 1 1 0 0.152832 -17.0791)" fill="url(#paint4_linear_2687_3947)"/>
<rect x="342.153" y="-17.0791" width="327" height="25" transform="rotate(90 342.153 -17.0791)" fill="url(#paint5_linear_2687_3947)"/>
</g>
<defs>
<filter id="filter0_d_2687_3947" x="86.1528" y="-6.5791" width="169" height="179" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset/>
<feGaussianBlur stdDeviation="15.5"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.07 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_2687_3947"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_2687_3947" result="shape"/>
</filter>
<linearGradient id="paint0_linear_2687_3947" x1="118.202" y1="60.3042" x2="223.159" y2="113.509" gradientUnits="userSpaceOnUse">
<stop stop-color="#00DC82"/>
<stop offset="1" stop-color="#003F25"/>
</linearGradient>
<linearGradient id="paint1_linear_2687_3947" x1="150.495" y1="71.0767" x2="191.769" y2="94.1139" gradientUnits="userSpaceOnUse">
<stop stop-color="#00DC82"/>
<stop offset="1" stop-color="#003F25"/>
</linearGradient>
<linearGradient id="paint2_linear_2687_3947" x1="165.653" y1="-3.0791" x2="166.153" y2="19.9209" gradientUnits="userSpaceOnUse">
<stop stop-color="white"/>
<stop offset="1" stop-color="white" stop-opacity="0"/>
</linearGradient>
<linearGradient id="paint3_linear_2687_3947" x1="163.5" y1="-2.30278e-07" x2="164.091" y2="24.9979" gradientUnits="userSpaceOnUse">
<stop stop-color="white"/>
<stop offset="1" stop-color="white" stop-opacity="0"/>
</linearGradient>
<linearGradient id="paint4_linear_2687_3947" x1="163.5" y1="-2.30278e-07" x2="164.091" y2="24.9979" gradientUnits="userSpaceOnUse">
<stop stop-color="white"/>
<stop offset="1" stop-color="white" stop-opacity="0"/>
</linearGradient>
<linearGradient id="paint5_linear_2687_3947" x1="505.653" y1="-17.0791" x2="506.244" y2="7.91876" gradientUnits="userSpaceOnUse">
<stop stop-color="white"/>
<stop offset="1" stop-color="white" stop-opacity="0"/>
</linearGradient>
<clipPath id="clip0_2687_3947">
<rect width="341" height="164" fill="white" transform="translate(0.152832 0.920898)"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 6.7 KiB

View File

@ -0,0 +1,71 @@
<svg width="342" height="165" viewBox="0 0 342 165" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_2595_7273)">
<path d="M0.152832 131.851H154.28" stroke="#27272A"/>
<path d="M215.399 107.359H349.153" stroke="#27272A"/>
<path d="M0.152832 77.2178L116.191 77.2178" stroke="#27272A"/>
<path d="M36.1528 106.921L152.191 106.921" stroke="#27272A"/>
<path d="M202.153 42.9209L317.305 42.9209" stroke="#27272A"/>
<path d="M218.153 76.9209L345.305 76.9209" stroke="#27272A"/>
<path d="M285.947 8.45605V166.979" stroke="#27272A"/>
<path d="M252.602 16.8311V107.36" stroke="#27272A"/>
<path d="M171.153 16.9209V107.45" stroke="#27272A"/>
<path d="M218.153 16.9209V43.4501" stroke="#27272A"/>
<path d="M122.153 16.9211L327.45 16.9209" stroke="#27272A"/>
<path d="M1.92432 43.3086H148.163" stroke="#27272A"/>
<path d="M122.392 16.4209V55.3659" stroke="#27272A"/>
<path d="M36.084 0.920898L36.084 176.921" stroke="#27272A"/>
<path d="M75.4448 43.249V175.152" stroke="#27272A"/>
<circle opacity="0.14" cx="75.4448" cy="77.2178" r="3.5" fill="#00DC82"/>
<circle opacity="0.14" cx="36.1528" cy="131.85" r="3.5" fill="#00DC82"/>
<circle opacity="0.14" cx="285.947" cy="42.9209" r="3.5" fill="#00DC82"/>
<circle opacity="0.14" cx="252.602" cy="107.359" r="3.5" fill="#00DC82"/>
<g filter="url(#filter0_d_2595_7273)">
<path d="M122.846 50.7109L163.067 26.0929C166.656 23.9507 171.117 23.8611 174.77 25.8579L217.894 49.0819C221.524 51.0665 223.807 54.8133 223.892 58.9246L224.15 104.352C224.235 108.448 222.13 112.287 218.609 114.46L177.783 139.658C174.174 141.886 169.638 142.011 165.931 139.984L123.774 116.935C120.045 114.896 117.125 111.001 117.153 106.776L117.153 60.5974C117.18 56.5529 119.338 52.8048 122.846 50.7109Z" fill="#18181B"/>
<path d="M123.871 52.4282L123.881 52.4225L123.89 52.4167L164.101 27.8047C167.083 26.0291 170.786 25.9592 173.81 27.6128L173.81 27.6128L173.821 27.6188L216.934 50.8367C216.936 50.8376 216.938 50.8386 216.939 50.8395C219.938 52.4814 221.817 55.5694 221.892 58.9515L222.15 104.363L222.15 104.378L222.151 104.393C222.221 107.772 220.485 110.952 217.559 112.758L176.733 137.956C173.732 139.808 169.963 139.909 166.89 138.229L124.733 115.18C121.465 113.393 119.131 110.089 119.153 106.79L119.153 106.776L119.153 60.6107C119.153 60.6086 119.153 60.6065 119.153 60.6044C119.178 57.2703 120.958 54.1669 123.871 52.4282Z" stroke="url(#paint0_linear_2595_7273)" stroke-width="4"/>
</g>
<path d="M192.349 96.9158L190.63 90.5186L183.778 64.9088C183.55 64.0605 182.994 63.3375 182.233 62.8988C181.472 62.4601 180.568 62.3416 179.72 62.5693L173.323 64.2877L173.116 64.3498C172.807 63.945 172.409 63.6168 171.953 63.3906C171.497 63.1644 170.995 63.0463 170.486 63.0455H163.861C163.279 63.0471 162.707 63.2043 162.205 63.501C161.703 63.2043 161.132 63.0471 160.549 63.0455H153.924C153.045 63.0455 152.203 63.3945 151.582 64.0157C150.96 64.6369 150.611 65.4795 150.611 66.358V99.483C150.611 100.362 150.96 101.204 151.582 101.825C152.203 102.447 153.045 102.796 153.924 102.796H160.549C161.132 102.794 161.703 102.637 162.205 102.34C162.707 102.637 163.279 102.794 163.861 102.796H170.486C171.365 102.796 172.207 102.447 172.829 101.825C173.45 101.204 173.799 100.362 173.799 99.483V78.8627L177.836 93.9346L179.554 100.332C179.742 101.039 180.158 101.665 180.739 102.11C181.32 102.556 182.031 102.797 182.763 102.796C183.049 102.791 183.334 102.756 183.612 102.692L190.009 100.974C190.43 100.861 190.824 100.665 191.169 100.399C191.514 100.132 191.802 99.7998 192.018 99.4209C192.238 99.047 192.381 98.6325 192.438 98.2021C192.495 97.7717 192.465 97.3342 192.349 96.9158ZM176.325 75.4881L182.722 73.7697L187.007 89.7732L180.61 91.4916L176.325 75.4881ZM180.569 65.7783L181.873 70.5607L175.476 72.2791L174.171 67.4967L180.569 65.7783ZM170.486 66.358V91.2018H163.861V66.358H170.486ZM160.549 66.358V71.3268H153.924V66.358H160.549ZM153.924 99.483V74.6393H160.549V99.483H153.924ZM170.486 99.483H163.861V94.5143H170.486V99.483ZM189.161 97.7646L182.763 99.483L181.459 94.6799L187.877 92.9615L189.161 97.7646Z" fill="url(#paint1_linear_2595_7273)"/>
<rect x="2.15283" y="-3.0791" width="327" height="23" fill="url(#paint2_linear_2595_7273)"/>
<rect width="327" height="25" transform="matrix(1 0 0 -1 2.15283 166.921)" fill="url(#paint3_linear_2595_7273)"/>
<rect width="327" height="25" transform="matrix(0 1 1 0 0.152832 -17.0791)" fill="url(#paint4_linear_2595_7273)"/>
<rect x="342.153" y="-17.0791" width="327" height="25" transform="rotate(90 342.153 -17.0791)" fill="url(#paint5_linear_2595_7273)"/>
</g>
<defs>
<filter id="filter0_d_2595_7273" x="86.1528" y="-6.5791" width="169" height="179" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset/>
<feGaussianBlur stdDeviation="15.5"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.07 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_2595_7273"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_2595_7273" result="shape"/>
</filter>
<linearGradient id="paint0_linear_2595_7273" x1="118.202" y1="60.3042" x2="223.159" y2="113.509" gradientUnits="userSpaceOnUse">
<stop stop-color="#00DC82"/>
<stop offset="1" stop-color="#003F25"/>
</linearGradient>
<linearGradient id="paint1_linear_2595_7273" x1="150.495" y1="71.0767" x2="191.769" y2="94.1139" gradientUnits="userSpaceOnUse">
<stop stop-color="#00DC82"/>
<stop offset="1" stop-color="#003F25"/>
</linearGradient>
<linearGradient id="paint2_linear_2595_7273" x1="165.653" y1="-3.0791" x2="166.153" y2="19.9209" gradientUnits="userSpaceOnUse">
<stop stop-color="#18181B"/>
<stop offset="1" stop-color="#18181B" stop-opacity="0"/>
</linearGradient>
<linearGradient id="paint3_linear_2595_7273" x1="163.5" y1="-2.30278e-07" x2="164.091" y2="24.9979" gradientUnits="userSpaceOnUse">
<stop stop-color="#18181B"/>
<stop offset="1" stop-color="#18181B" stop-opacity="0"/>
</linearGradient>
<linearGradient id="paint4_linear_2595_7273" x1="163.5" y1="-2.30278e-07" x2="164.091" y2="24.9979" gradientUnits="userSpaceOnUse">
<stop stop-color="#18181B"/>
<stop offset="1" stop-color="#18181B" stop-opacity="0"/>
</linearGradient>
<linearGradient id="paint5_linear_2595_7273" x1="505.653" y1="-17.0791" x2="506.244" y2="7.91876" gradientUnits="userSpaceOnUse">
<stop stop-color="#18181B"/>
<stop offset="1" stop-color="#18181B" stop-opacity="0"/>
</linearGradient>
<clipPath id="clip0_2595_7273">
<rect width="341" height="164" fill="white" transform="translate(0.152832 0.920898)"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 6.6 KiB

View File

@ -0,0 +1,71 @@
<svg width="342" height="165" viewBox="0 0 342 165" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_2687_3977)">
<path d="M0.152832 131.851H154.28" stroke="#E4E4E7"/>
<path d="M215.399 107.359H349.153" stroke="#E4E4E7"/>
<path d="M0.152832 77.2178L116.191 77.2178" stroke="#E4E4E7"/>
<path d="M36.1528 106.921L152.191 106.921" stroke="#E4E4E7"/>
<path d="M202.153 42.9209L317.305 42.9209" stroke="#E4E4E7"/>
<path d="M218.153 76.9209L345.305 76.9209" stroke="#E4E4E7"/>
<path d="M285.947 8.45605V166.979" stroke="#E4E4E7"/>
<path d="M252.602 16.8311V107.36" stroke="#E4E4E7"/>
<path d="M171.153 16.9209V107.45" stroke="#E4E4E7"/>
<path d="M218.153 16.9209V43.4501" stroke="#E4E4E7"/>
<path d="M122.153 16.9211L327.45 16.9209" stroke="#E4E4E7"/>
<path d="M1.92432 43.3086H148.163" stroke="#E4E4E7"/>
<path d="M122.392 16.4209V55.3659" stroke="#E4E4E7"/>
<path d="M36.084 0.920898L36.084 176.921" stroke="#E4E4E7"/>
<path d="M75.4448 43.249V175.152" stroke="#E4E4E7"/>
<circle opacity="0.7" cx="75.4448" cy="77.2178" r="3.5" fill="#A1A1AA"/>
<circle opacity="0.7" cx="36.1528" cy="131.85" r="3.5" fill="#A1A1AA"/>
<circle opacity="0.7" cx="285.947" cy="42.9209" r="3.5" fill="#A1A1AA"/>
<circle opacity="0.7" cx="252.602" cy="107.359" r="3.5" fill="#A1A1AA"/>
<g filter="url(#filter0_d_2687_3977)">
<path d="M122.846 50.7109L163.067 26.0929C166.656 23.9507 171.117 23.8611 174.77 25.8579L217.894 49.0819C221.524 51.0665 223.807 54.8133 223.892 58.9246L224.15 104.352C224.235 108.448 222.13 112.287 218.609 114.46L177.783 139.658C174.174 141.886 169.638 142.011 165.931 139.984L123.774 116.935C120.045 114.896 117.125 111.001 117.153 106.776L117.153 60.5974C117.18 56.5529 119.338 52.8048 122.846 50.7109Z" fill="white"/>
<path d="M222.151 104.393C222.22 107.764 220.487 110.944 217.571 112.75C217.567 112.753 217.563 112.755 217.559 112.758L176.733 137.956C173.748 139.798 169.96 139.907 166.89 138.229L124.733 115.18C121.469 113.395 119.131 110.069 119.153 106.79L119.153 106.776L119.153 60.6107C119.153 60.6086 119.153 60.6065 119.153 60.6044C119.178 57.2703 120.958 54.1669 123.871 52.4282L123.881 52.4225L123.89 52.4167L164.101 27.8047C164.101 27.8047 164.101 27.8047 164.101 27.8047C164.106 27.8022 164.11 27.7997 164.114 27.7972C167.078 26.0385 170.793 25.9632 173.81 27.6128L173.81 27.6128L173.821 27.6188L216.934 50.8367C216.936 50.8377 216.938 50.8387 216.94 50.8397C219.935 52.4801 221.817 55.5878 221.892 58.9515L222.15 104.363L222.15 104.378L222.151 104.393Z" stroke="url(#paint0_linear_2687_3977)" stroke-width="4"/>
</g>
<path d="M192.349 96.9158L190.63 90.5186L183.778 64.9088C183.55 64.0605 182.994 63.3375 182.233 62.8988C181.472 62.4601 180.568 62.3416 179.72 62.5693L173.323 64.2877L173.116 64.3498C172.807 63.945 172.409 63.6168 171.953 63.3906C171.497 63.1644 170.995 63.0463 170.486 63.0455H163.861C163.279 63.0471 162.707 63.2043 162.205 63.501C161.703 63.2043 161.132 63.0471 160.549 63.0455H153.924C153.045 63.0455 152.203 63.3945 151.582 64.0157C150.96 64.6369 150.611 65.4795 150.611 66.358V99.483C150.611 100.362 150.96 101.204 151.582 101.825C152.203 102.447 153.045 102.796 153.924 102.796H160.549C161.132 102.794 161.703 102.637 162.205 102.34C162.707 102.637 163.279 102.794 163.861 102.796H170.486C171.365 102.796 172.207 102.447 172.829 101.825C173.45 101.204 173.799 100.362 173.799 99.483V78.8627L177.836 93.9346L179.554 100.332C179.742 101.039 180.158 101.665 180.739 102.11C181.32 102.556 182.031 102.797 182.763 102.796C183.049 102.791 183.334 102.756 183.612 102.692L190.009 100.974C190.43 100.861 190.824 100.665 191.169 100.399C191.514 100.132 191.802 99.7997 192.018 99.4209C192.238 99.047 192.381 98.6325 192.438 98.2021C192.495 97.7717 192.465 97.3342 192.349 96.9158V96.9158ZM176.325 75.4881L182.722 73.7697L187.007 89.7732L180.61 91.4916L176.325 75.4881ZM180.569 65.7783L181.873 70.5607L175.476 72.2791L174.171 67.4967L180.569 65.7783ZM170.486 66.358V91.2018H163.861V66.358H170.486ZM160.549 66.358V71.3268H153.924V66.358H160.549ZM153.924 99.483V74.6393H160.549V99.483H153.924ZM170.486 99.483H163.861V94.5143H170.486V99.483ZM189.161 97.7646L182.763 99.483L181.459 94.6799L187.877 92.9615L189.161 97.7646V97.7646Z" fill="url(#paint1_linear_2687_3977)"/>
<rect x="2.15283" y="-3.0791" width="327" height="23" fill="url(#paint2_linear_2687_3977)"/>
<rect width="327" height="25" transform="matrix(1 0 0 -1 2.15283 166.921)" fill="url(#paint3_linear_2687_3977)"/>
<rect width="327" height="25" transform="matrix(0 1 1 0 0.152832 -17.0791)" fill="url(#paint4_linear_2687_3977)"/>
<rect x="342.153" y="-17.0791" width="327" height="25" transform="rotate(90 342.153 -17.0791)" fill="url(#paint5_linear_2687_3977)"/>
</g>
<defs>
<filter id="filter0_d_2687_3977" x="86.1528" y="-6.5791" width="169" height="179" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset/>
<feGaussianBlur stdDeviation="15.5"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix type="matrix" values="0 0 0 0 0.831373 0 0 0 0 0.831373 0 0 0 0 0.847059 0 0 0 0.07 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_2687_3977"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_2687_3977" result="shape"/>
</filter>
<linearGradient id="paint0_linear_2687_3977" x1="118.202" y1="60.3042" x2="223.159" y2="113.509" gradientUnits="userSpaceOnUse">
<stop stop-color="#D4D4D8"/>
<stop offset="1" stop-color="#3F3F46"/>
</linearGradient>
<linearGradient id="paint1_linear_2687_3977" x1="150.495" y1="71.0767" x2="191.769" y2="94.1139" gradientUnits="userSpaceOnUse">
<stop stop-color="#D4D4D8"/>
<stop offset="1" stop-color="#3F3F46"/>
</linearGradient>
<linearGradient id="paint2_linear_2687_3977" x1="165.653" y1="-3.0791" x2="166.153" y2="19.9209" gradientUnits="userSpaceOnUse">
<stop stop-color="white"/>
<stop offset="1" stop-color="white" stop-opacity="0"/>
</linearGradient>
<linearGradient id="paint3_linear_2687_3977" x1="163.5" y1="-2.30278e-07" x2="164.091" y2="24.9979" gradientUnits="userSpaceOnUse">
<stop stop-color="white"/>
<stop offset="1" stop-color="white" stop-opacity="0"/>
</linearGradient>
<linearGradient id="paint4_linear_2687_3977" x1="163.5" y1="-2.30278e-07" x2="164.091" y2="24.9979" gradientUnits="userSpaceOnUse">
<stop stop-color="white"/>
<stop offset="1" stop-color="white" stop-opacity="0"/>
</linearGradient>
<linearGradient id="paint5_linear_2687_3977" x1="505.653" y1="-17.0791" x2="506.244" y2="7.91876" gradientUnits="userSpaceOnUse">
<stop stop-color="white"/>
<stop offset="1" stop-color="white" stop-opacity="0"/>
</linearGradient>
<clipPath id="clip0_2687_3977">
<rect width="341" height="164" fill="white" transform="translate(0.152832 0.920898)"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 6.7 KiB

View File

@ -0,0 +1,71 @@
<svg width="342" height="165" viewBox="0 0 342 165" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_2595_7193)">
<path d="M0.152832 131.851H154.28" stroke="#27272A"/>
<path d="M215.399 107.359H349.153" stroke="#27272A"/>
<path d="M0.152832 77.2178L116.191 77.2178" stroke="#27272A"/>
<path d="M36.1528 106.921L152.191 106.921" stroke="#27272A"/>
<path d="M202.153 42.9209L317.305 42.9209" stroke="#27272A"/>
<path d="M218.153 76.9209L345.305 76.9209" stroke="#27272A"/>
<path d="M285.947 8.45605V166.979" stroke="#27272A"/>
<path d="M252.602 16.8311V107.36" stroke="#27272A"/>
<path d="M171.153 16.9209V107.45" stroke="#27272A"/>
<path d="M218.153 16.9209V43.4501" stroke="#27272A"/>
<path d="M122.153 16.9211L327.45 16.9209" stroke="#27272A"/>
<path d="M1.92432 43.3086H148.163" stroke="#27272A"/>
<path d="M122.392 16.4209V55.3659" stroke="#27272A"/>
<path d="M36.084 0.920898L36.084 176.921" stroke="#27272A"/>
<path d="M75.4448 43.249V175.152" stroke="#27272A"/>
<circle opacity="0.14" cx="75.4448" cy="77.2178" r="3.5" fill="white"/>
<circle opacity="0.14" cx="36.1528" cy="131.85" r="3.5" fill="white"/>
<circle opacity="0.14" cx="285.947" cy="42.9209" r="3.5" fill="white"/>
<circle opacity="0.14" cx="252.602" cy="107.359" r="3.5" fill="white"/>
<g filter="url(#filter0_d_2595_7193)">
<path d="M122.846 50.7109L163.067 26.0929C166.656 23.9507 171.117 23.8611 174.77 25.8579L217.894 49.0819C221.524 51.0665 223.807 54.8133 223.892 58.9246L224.15 104.352C224.235 108.448 222.13 112.287 218.609 114.46L177.783 139.658C174.174 141.886 169.638 142.011 165.931 139.984L123.774 116.935C120.045 114.896 117.125 111.001 117.153 106.776L117.153 60.5974C117.18 56.5529 119.338 52.8048 122.846 50.7109Z" fill="#18181B"/>
<path d="M123.871 52.4282L123.881 52.4225L123.89 52.4167L164.101 27.8047C167.083 26.0291 170.786 25.9592 173.81 27.6128L173.81 27.6128L173.821 27.6188L216.934 50.8367C216.936 50.8376 216.938 50.8386 216.939 50.8395C219.938 52.4814 221.817 55.5694 221.892 58.9515L222.15 104.363L222.15 104.378L222.151 104.393C222.221 107.772 220.485 110.952 217.559 112.758L176.733 137.956C173.732 139.808 169.963 139.909 166.89 138.229L124.733 115.18C121.465 113.393 119.131 110.089 119.153 106.79L119.153 106.776L119.153 60.6107C119.153 60.6086 119.153 60.6065 119.153 60.6044C119.178 57.2703 120.958 54.1669 123.871 52.4282Z" stroke="url(#paint0_linear_2595_7193)" stroke-width="4"/>
</g>
<path d="M192.349 96.9158L190.63 90.5186L183.778 64.9088C183.55 64.0605 182.994 63.3375 182.233 62.8988C181.472 62.4601 180.568 62.3416 179.72 62.5693L173.323 64.2877L173.116 64.3498C172.807 63.945 172.409 63.6168 171.953 63.3906C171.497 63.1644 170.995 63.0463 170.486 63.0455H163.861C163.279 63.0471 162.707 63.2043 162.205 63.501C161.703 63.2043 161.132 63.0471 160.549 63.0455H153.924C153.045 63.0455 152.203 63.3945 151.582 64.0157C150.96 64.6369 150.611 65.4795 150.611 66.358V99.483C150.611 100.362 150.96 101.204 151.582 101.825C152.203 102.447 153.045 102.796 153.924 102.796H160.549C161.132 102.794 161.703 102.637 162.205 102.34C162.707 102.637 163.279 102.794 163.861 102.796H170.486C171.365 102.796 172.207 102.447 172.829 101.825C173.45 101.204 173.799 100.362 173.799 99.483V78.8627L177.836 93.9346L179.554 100.332C179.742 101.039 180.158 101.665 180.739 102.11C181.32 102.556 182.031 102.797 182.763 102.796C183.049 102.791 183.334 102.756 183.612 102.692L190.009 100.974C190.43 100.861 190.824 100.665 191.169 100.399C191.514 100.132 191.802 99.7998 192.018 99.4209C192.238 99.047 192.381 98.6325 192.438 98.2021C192.495 97.7717 192.465 97.3342 192.349 96.9158ZM176.325 75.4881L182.722 73.7697L187.007 89.7732L180.61 91.4916L176.325 75.4881ZM180.569 65.7783L181.873 70.5607L175.476 72.2791L174.171 67.4967L180.569 65.7783ZM170.486 66.358V91.2018H163.861V66.358H170.486ZM160.549 66.358V71.3268H153.924V66.358H160.549ZM153.924 99.483V74.6393H160.549V99.483H153.924ZM170.486 99.483H163.861V94.5143H170.486V99.483ZM189.161 97.7646L182.763 99.483L181.459 94.6799L187.877 92.9615L189.161 97.7646Z" fill="url(#paint1_linear_2595_7193)"/>
<rect x="2.15283" y="-3.0791" width="327" height="23" fill="url(#paint2_linear_2595_7193)"/>
<rect width="327" height="25" transform="matrix(1 0 0 -1 2.15283 166.921)" fill="url(#paint3_linear_2595_7193)"/>
<rect width="327" height="25" transform="matrix(0 1 1 0 0.152832 -17.0791)" fill="url(#paint4_linear_2595_7193)"/>
<rect x="342.153" y="-17.0791" width="327" height="25" transform="rotate(90 342.153 -17.0791)" fill="url(#paint5_linear_2595_7193)"/>
</g>
<defs>
<filter id="filter0_d_2595_7193" x="86.1528" y="-6.5791" width="169" height="179" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset/>
<feGaussianBlur stdDeviation="15.5"/>
<feComposite in2="hardAlpha" operator="out"/>
<feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.07 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_2595_7193"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_2595_7193" result="shape"/>
</filter>
<linearGradient id="paint0_linear_2595_7193" x1="118.202" y1="60.3042" x2="223.159" y2="113.509" gradientUnits="userSpaceOnUse">
<stop stop-color="white"/>
<stop offset="1" stop-color="#71717A"/>
</linearGradient>
<linearGradient id="paint1_linear_2595_7193" x1="150.495" y1="71.0767" x2="191.769" y2="94.1139" gradientUnits="userSpaceOnUse">
<stop stop-color="white"/>
<stop offset="1" stop-color="#71717A"/>
</linearGradient>
<linearGradient id="paint2_linear_2595_7193" x1="165.653" y1="-3.0791" x2="166.153" y2="19.9209" gradientUnits="userSpaceOnUse">
<stop stop-color="#18181B"/>
<stop offset="1" stop-color="#18181B" stop-opacity="0"/>
</linearGradient>
<linearGradient id="paint3_linear_2595_7193" x1="163.5" y1="-2.30278e-07" x2="164.091" y2="24.9979" gradientUnits="userSpaceOnUse">
<stop stop-color="#18181B"/>
<stop offset="1" stop-color="#18181B" stop-opacity="0"/>
</linearGradient>
<linearGradient id="paint4_linear_2595_7193" x1="163.5" y1="-2.30278e-07" x2="164.091" y2="24.9979" gradientUnits="userSpaceOnUse">
<stop stop-color="#18181B"/>
<stop offset="1" stop-color="#18181B" stop-opacity="0"/>
</linearGradient>
<linearGradient id="paint5_linear_2595_7193" x1="505.653" y1="-17.0791" x2="506.244" y2="7.91876" gradientUnits="userSpaceOnUse">
<stop stop-color="#18181B"/>
<stop offset="1" stop-color="#18181B" stop-opacity="0"/>
</linearGradient>
<clipPath id="clip0_2595_7193">
<rect width="341" height="164" fill="white" transform="translate(0.152832 0.920898)"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 6.6 KiB

View File

@ -0,0 +1,14 @@
<svg width="53" height="58" viewBox="0 0 53 58" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M49.1971 43.7595C49.1113 43.8209 49.0231 43.8796 48.9325 43.9357L29.0918 56.2117C27.6504 57.1035 25.8212 57.1564 24.3387 56.3439L3.85107 45.1148C2.27157 44.2491 1.14238 42.6366 1.15291 41.0494L1.15293 41.0427L1.153 18.552C1.15301 18.5509 1.15302 18.5499 1.15302 18.5488C1.16485 16.9324 2.02611 15.4289 3.43319 14.5869L3.43322 14.587L3.44269 14.5812L22.9844 2.59084C24.4169 1.73583 26.2139 1.69824 27.6729 2.49791L27.6729 2.49792L27.6784 2.50094L48.6303 13.8121C48.6313 13.8126 48.6322 13.8131 48.6331 13.8136C50.0797 14.6078 50.9898 16.1132 51.026 17.7438L51.1517 39.8672L51.1517 39.8746L51.1519 39.8821C51.1834 41.4138 50.4491 42.8635 49.1971 43.7595Z" fill="white" stroke="url(#paint0_linear_2613_3941)" stroke-width="2"/>
<path d="M37.1528 17.9209H15.1528C14.6224 17.9209 14.1137 18.1316 13.7386 18.5067C13.3635 18.8818 13.1528 19.3905 13.1528 19.9209V37.9209C13.1528 38.4513 13.3635 38.96 13.7386 39.3351C14.1137 39.7102 14.6224 39.9209 15.1528 39.9209H37.1528C37.6833 39.9209 38.192 39.7102 38.567 39.3351C38.9421 38.96 39.1528 38.4513 39.1528 37.9209V19.9209C39.1528 19.3905 38.9421 18.8818 38.567 18.5067C38.192 18.1316 37.6833 17.9209 37.1528 17.9209V17.9209ZM15.1528 19.9209H37.1528V24.9209H15.1528V19.9209ZM15.1528 26.9209H22.1528V37.9209H15.1528V26.9209ZM37.1528 37.9209H24.1528V26.9209H37.1528V37.9209Z" fill="url(#paint1_linear_2613_3941)"/>
<defs>
<linearGradient id="paint0_linear_2613_3941" x1="0.662695" y1="18.4025" x2="51.7209" y2="44.2212" gradientUnits="userSpaceOnUse">
<stop stop-color="#8DEAFF"/>
<stop offset="1" stop-color="#008AA9"/>
</linearGradient>
<linearGradient id="paint1_linear_2613_3941" x1="13.0804" y1="22.6224" x2="37.028" y2="37.847" gradientUnits="userSpaceOnUse">
<stop stop-color="#8DEAFF"/>
<stop offset="1" stop-color="#008AA9"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -0,0 +1,14 @@
<svg width="53" height="58" viewBox="0 0 53 58" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M3.43319 14.5869L3.43322 14.587L3.44269 14.5812L22.9844 2.59084C24.4246 1.73116 26.2124 1.69742 27.6729 2.49791L27.6729 2.49792L27.6784 2.50094L48.6303 13.8121C48.6313 13.8126 48.6322 13.8131 48.6331 13.8137C50.0812 14.6086 50.9896 16.1043 51.026 17.7437L51.1517 39.8672L51.1517 39.8746L51.1519 39.8821C51.1856 41.5203 50.346 43.0611 48.9325 43.9357L29.0918 56.2117C27.6424 57.1085 25.8227 57.1572 24.3387 56.3439L3.85107 45.1148C2.26984 44.2481 1.14232 42.646 1.15293 41.0494V41.0427L1.153 18.552C1.15301 18.5509 1.15302 18.5499 1.15302 18.5488C1.16485 16.9324 2.02611 15.4289 3.43319 14.5869Z" fill="#18181B" stroke="url(#paint0_linear_2595_7426)" stroke-width="2"/>
<path d="M37.1528 17.9209H15.1528C14.6224 17.9209 14.1137 18.1316 13.7386 18.5067C13.3635 18.8818 13.1528 19.3905 13.1528 19.9209V37.9209C13.1528 38.4513 13.3635 38.96 13.7386 39.3351C14.1137 39.7102 14.6224 39.9209 15.1528 39.9209H37.1528C37.6833 39.9209 38.192 39.7102 38.567 39.3351C38.9421 38.96 39.1528 38.4513 39.1528 37.9209V19.9209C39.1528 19.3905 38.9421 18.8818 38.567 18.5067C38.192 18.1316 37.6833 17.9209 37.1528 17.9209ZM15.1528 19.9209H37.1528V24.9209H15.1528V19.9209ZM15.1528 26.9209H22.1528V37.9209H15.1528V26.9209ZM37.1528 37.9209H24.1528V26.9209H37.1528V37.9209Z" fill="url(#paint1_linear_2595_7426)"/>
<defs>
<linearGradient id="paint0_linear_2595_7426" x1="0.662695" y1="18.4025" x2="51.7209" y2="44.2212" gradientUnits="userSpaceOnUse">
<stop stop-color="#8DEAFF"/>
<stop offset="1" stop-color="#008AA9"/>
</linearGradient>
<linearGradient id="paint1_linear_2595_7426" x1="13.0804" y1="22.6224" x2="37.028" y2="37.847" gradientUnits="userSpaceOnUse">
<stop stop-color="#8DEAFF"/>
<stop offset="1" stop-color="#008AA9"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -0,0 +1,14 @@
<svg width="53" height="58" viewBox="0 0 53 58" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M49.1971 43.7595C49.1113 43.8209 49.0231 43.8796 48.9325 43.9357L29.0918 56.2117C27.6504 57.1035 25.8212 57.1564 24.3387 56.3439L3.85107 45.1148C2.27157 44.2491 1.14238 42.6366 1.15291 41.0494L1.15293 41.0427L1.153 18.552C1.15301 18.5509 1.15302 18.5499 1.15302 18.5488C1.16485 16.9324 2.02611 15.4289 3.43319 14.5869L3.43322 14.587L3.44269 14.5812L22.9844 2.59084C24.4169 1.73583 26.2139 1.69824 27.6729 2.49791L27.6729 2.49792L27.6784 2.50094L48.6303 13.8121C48.6313 13.8126 48.6322 13.8131 48.6331 13.8136C50.0797 14.6078 50.9898 16.1132 51.026 17.7438L51.1517 39.8672L51.1517 39.8746L51.1519 39.8821C51.1834 41.4138 50.4491 42.8635 49.1971 43.7595Z" fill="white" stroke="url(#paint0_linear_2691_4397)" stroke-width="2"/>
<path d="M37.1528 17.9209H15.1528C14.6224 17.9209 14.1137 18.1316 13.7386 18.5067C13.3635 18.8818 13.1528 19.3905 13.1528 19.9209V37.9209C13.1528 38.4513 13.3635 38.96 13.7386 39.3351C14.1137 39.7102 14.6224 39.9209 15.1528 39.9209H37.1528C37.6833 39.9209 38.192 39.7102 38.567 39.3351C38.9421 38.96 39.1528 38.4513 39.1528 37.9209V19.9209C39.1528 19.3905 38.9421 18.8818 38.567 18.5067C38.192 18.1316 37.6833 17.9209 37.1528 17.9209V17.9209ZM15.1528 19.9209H37.1528V24.9209H15.1528V19.9209ZM15.1528 26.9209H22.1528V37.9209H15.1528V26.9209ZM37.1528 37.9209H24.1528V26.9209H37.1528V37.9209Z" fill="url(#paint1_linear_2691_4397)"/>
<defs>
<linearGradient id="paint0_linear_2691_4397" x1="0.662695" y1="18.4025" x2="51.7209" y2="44.2212" gradientUnits="userSpaceOnUse">
<stop stop-color="#D4D4D8"/>
<stop offset="1" stop-color="#71717A"/>
</linearGradient>
<linearGradient id="paint1_linear_2691_4397" x1="13.0804" y1="22.6224" x2="37.028" y2="37.847" gradientUnits="userSpaceOnUse">
<stop stop-color="#D4D4D8"/>
<stop offset="1" stop-color="#71717A"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@ -0,0 +1,14 @@
<svg width="53" height="58" viewBox="0 0 53 58" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M3.43319 14.5869L3.43322 14.587L3.44269 14.5812L22.9844 2.59084C24.4246 1.73116 26.2124 1.69742 27.6729 2.49791L27.6729 2.49792L27.6784 2.50094L48.6303 13.8121C48.6313 13.8126 48.6322 13.8131 48.6331 13.8137C50.0812 14.6086 50.9896 16.1043 51.026 17.7437L51.1517 39.8672L51.1517 39.8746L51.1519 39.8821C51.1856 41.5203 50.346 43.0611 48.9325 43.9357L29.0918 56.2117C27.6424 57.1085 25.8227 57.1572 24.3387 56.3439L3.85107 45.1148C2.26984 44.2481 1.14232 42.646 1.15293 41.0494V41.0427L1.153 18.552C1.15301 18.5509 1.15302 18.5499 1.15302 18.5488C1.16485 16.9324 2.02611 15.4289 3.43319 14.5869Z" fill="#18181B" stroke="url(#paint0_linear_2595_7182)" stroke-width="2"/>
<path d="M37.1528 17.9209H15.1528C14.6224 17.9209 14.1137 18.1316 13.7386 18.5067C13.3635 18.8818 13.1528 19.3905 13.1528 19.9209V37.9209C13.1528 38.4513 13.3635 38.96 13.7386 39.3351C14.1137 39.7102 14.6224 39.9209 15.1528 39.9209H37.1528C37.6833 39.9209 38.192 39.7102 38.567 39.3351C38.9421 38.96 39.1528 38.4513 39.1528 37.9209V19.9209C39.1528 19.3905 38.9421 18.8818 38.567 18.5067C38.192 18.1316 37.6833 17.9209 37.1528 17.9209ZM15.1528 19.9209H37.1528V24.9209H15.1528V19.9209ZM15.1528 26.9209H22.1528V37.9209H15.1528V26.9209ZM37.1528 37.9209H24.1528V26.9209H37.1528V37.9209Z" fill="url(#paint1_linear_2595_7182)"/>
<defs>
<linearGradient id="paint0_linear_2595_7182" x1="0.662695" y1="18.4025" x2="51.7209" y2="44.2212" gradientUnits="userSpaceOnUse">
<stop stop-color="white"/>
<stop offset="1" stop-color="#71717A"/>
</linearGradient>
<linearGradient id="paint1_linear_2595_7182" x1="13.0804" y1="22.6224" x2="37.028" y2="37.847" gradientUnits="userSpaceOnUse">
<stop stop-color="white"/>
<stop offset="1" stop-color="#71717A"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="105" height="116" fill="none"><g filter="url(#a)"><path fill="#fff" d="M17.203 33.223 46.9 14.286a8.416 8.416 0 0 1 8.64-.18L87.38 31.97c2.68 1.527 4.365 4.409 4.428 7.571l.191 34.944c.063 3.151-1.491 6.104-4.091 7.776l-30.143 19.383a8.417 8.417 0 0 1-8.75.251l-31.126-17.73C15.135 82.595 12.98 79.6 13 76.35V40.828c.02-3.111 1.614-5.994 4.203-7.605Z"/><path stroke="url(#b)" stroke-width="2" d="M46.9 14.286 17.202 33.223c-2.59 1.61-4.183 4.494-4.203 7.605V76.35m33.9-62.064a8.416 8.416 0 0 1 8.64-.18m-8.64.18a8.435 8.435 0 0 1 8.64-.18M13 76.35c-.02 3.25 2.135 6.246 4.888 7.814M13 76.35c-.02 3.233 2.136 6.247 4.888 7.814m0 0 31.126 17.731m0 0a8.417 8.417 0 0 0 8.75-.251m-8.75.251a8.438 8.438 0 0 0 8.75-.251m0 0 30.143-19.383m0 0c2.598-1.67 4.154-4.627 4.091-7.776m-4.091 7.776c2.6-1.672 4.154-4.625 4.091-7.776m0 0-.19-34.944m0 0c-.064-3.162-1.75-6.044-4.43-7.571m4.43 7.571c-.063-3.147-1.75-6.045-4.43-7.571m0 0L55.54 14.105"/></g><path fill="#fff" d="M32 37h42v42H32z"/><path fill="url(#c)" d="M48.669 67.697c-.886 2.69-3.02 4.659-6.153 5.709-1.41.465-2.88.72-4.364.755a1.313 1.313 0 0 1-1.312-1.313c.035-1.484.29-2.954.754-4.364 1.05-3.134 3.02-5.266 5.71-6.152a1.314 1.314 0 1 1 .836 2.477c-3.232 1.083-4.232 4.577-4.544 6.595 2.018-.311 5.512-1.312 6.595-4.544a1.313 1.313 0 0 1 2.477.837Zm16.39-12.486-1.46 1.477v10.057a2.657 2.657 0 0 1-.772 1.854l-5.316 5.3a2.559 2.559 0 0 1-1.853.77 2.413 2.413 0 0 1-.755-.115 2.626 2.626 0 0 1-1.821-2.001l-1.296-6.48-6.858-6.858-6.48-1.297a2.625 2.625 0 0 1-2.002-1.82 2.609 2.609 0 0 1 .656-2.61l5.3-5.315a2.658 2.658 0 0 1 1.853-.771h10.057l1.477-1.46c4.692-4.692 9.499-4.561 11.353-4.282a2.576 2.576 0 0 1 2.198 2.198c.28 1.854.41 6.661-4.282 11.353Zm-26.103.132 6.185 1.23 6.546-6.546h-7.432l-5.299 5.316ZM47.438 58 53 63.562l10.205-10.204c1.28-1.28 4.2-4.725 3.543-9.106-4.38-.656-7.826 2.264-9.105 3.544L47.438 58Zm13.535 1.313-6.546 6.546 1.23 6.185 5.316-5.299v-7.432Z"/><defs><linearGradient id="b" x1="57.994" x2="92" y1="58" y2="58" gradientUnits="userSpaceOnUse"><stop stop-color="#00DC82"/><stop offset=".5" stop-color="#1DE0B1"/><stop offset="1" stop-color="#36E4DA"/></linearGradient><linearGradient id="c" x1="55.197" x2="69.453" y1="58.108" y2="58.108" gradientUnits="userSpaceOnUse"><stop stop-color="#00DC82"/><stop offset=".5" stop-color="#1DE0B1"/><stop offset="1" stop-color="#36E4DA"/></linearGradient><filter id="a" width="104.897" height="115.897" x=".052" y=".052" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feColorMatrix in="SourceAlpha" result="hardAlpha" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"/><feOffset/><feGaussianBlur stdDeviation="5.974"/><feComposite in2="hardAlpha" operator="out"/><feColorMatrix values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.07 0"/><feBlend in2="BackgroundImageFix" result="effect1_dropShadow_2726_4054"/><feBlend in="SourceGraphic" in2="effect1_dropShadow_2726_4054" result="shape"/></filter></defs></svg>

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="105" height="116" fill="none"><g filter="url(#a)" shape-rendering="geometricPrecision"><path fill="#18181B" d="M17.203 33.223 46.9 14.286a8.416 8.416 0 0 1 8.64-.18L87.38 31.97c2.68 1.527 4.365 4.409 4.428 7.571l.191 34.944c.063 3.151-1.491 6.104-4.091 7.776l-30.143 19.383a8.417 8.417 0 0 1-8.75.251l-31.126-17.73C15.135 82.595 12.98 79.6 13 76.35V40.828c.02-3.111 1.614-5.994 4.203-7.605Z"/><path stroke="url(#b)" stroke-width="2" d="M46.9 14.286 17.202 33.223c-2.59 1.61-4.183 4.494-4.203 7.605V76.35m33.9-62.064a8.416 8.416 0 0 1 8.64-.18m-8.64.18a8.435 8.435 0 0 1 8.64-.18M13 76.35c-.02 3.25 2.135 6.246 4.888 7.814M13 76.35c-.02 3.233 2.136 6.247 4.888 7.814m0 0 31.126 17.731m0 0a8.417 8.417 0 0 0 8.75-.251m-8.75.251a8.438 8.438 0 0 0 8.75-.251m0 0 30.143-19.383m0 0c2.598-1.67 4.154-4.627 4.091-7.776m-4.091 7.776c2.6-1.672 4.154-4.625 4.091-7.776m0 0-.19-34.944m0 0c-.064-3.162-1.75-6.044-4.43-7.571m4.43 7.571c-.063-3.147-1.75-6.045-4.43-7.571m0 0L55.54 14.105"/></g><path fill="url(#c)" d="M48.669 67.696c-.886 2.69-3.02 4.659-6.153 5.709-1.41.465-2.88.72-4.364.755a1.313 1.313 0 0 1-1.312-1.313c.035-1.484.29-2.954.754-4.364 1.05-3.133 3.02-5.266 5.71-6.152a1.312 1.312 0 1 1 .836 2.477c-3.232 1.083-4.232 4.577-4.544 6.595 2.018-.311 5.512-1.312 6.595-4.544a1.313 1.313 0 0 1 2.477.837Zm16.39-12.486-1.46 1.477v10.057a2.657 2.657 0 0 1-.772 1.854l-5.316 5.3a2.559 2.559 0 0 1-1.853.77 2.413 2.413 0 0 1-.755-.115 2.624 2.624 0 0 1-1.821-2.001l-1.296-6.48-6.858-6.858-6.48-1.297a2.625 2.625 0 0 1-2.002-1.82 2.609 2.609 0 0 1 .656-2.61l5.3-5.315a2.658 2.658 0 0 1 1.853-.771h10.057l1.477-1.46c4.692-4.692 9.499-4.561 11.353-4.282a2.576 2.576 0 0 1 2.198 2.198c.28 1.854.41 6.661-4.282 11.353Zm-26.103.132 6.185 1.23 6.546-6.546h-7.432l-5.299 5.316Zm8.482 2.657L53 63.561l10.205-10.205c1.28-1.28 4.2-4.724 3.543-9.105-4.38-.656-7.826 2.264-9.105 3.544L47.438 57.999Zm13.535 1.313-6.546 6.546 1.23 6.185 5.316-5.299v-7.432Z" shape-rendering="geometricPrecision"/><defs><linearGradient id="b" x1="57.994" x2="92" y1="58" y2="58" gradientUnits="userSpaceOnUse"><stop stop-color="#00DC82"/><stop offset=".5" stop-color="#1DE0B1"/><stop offset="1" stop-color="#36E4DA"/></linearGradient><linearGradient id="c" x1="55.197" x2="69.453" y1="58.107" y2="58.107" gradientUnits="userSpaceOnUse"><stop stop-color="#00DC82"/><stop offset=".5" stop-color="#1DE0B1"/><stop offset="1" stop-color="#36E4DA"/></linearGradient><filter id="a" width="104.897" height="115.897" x=".052" y=".052" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse"><feFlood flood-opacity="0" result="BackgroundImageFix"/><feColorMatrix in="SourceAlpha" result="hardAlpha" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"/><feOffset/><feGaussianBlur stdDeviation="5.974"/><feComposite in2="hardAlpha" operator="out"/><feColorMatrix values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.07 0"/><feBlend in2="BackgroundImageFix" result="effect1_dropShadow_2724_4091"/><feBlend in="SourceGraphic" in2="effect1_dropShadow_2724_4091" result="shape"/></filter></defs></svg>

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

@ -0,0 +1 @@
<svg width="80" height="87" fill="none" xmlns="http://www.w3.org/2000/svg"><g clip-path="url(#a)"><path d="M31.44 75.289c0 .379-.435.682-.985.682-.625.056-1.061-.247-1.061-.682 0-.38.436-.682.985-.682.569-.057 1.062.246 1.062.682zm-5.893-.853c-.133.379.246.815.815.928.492.19 1.061 0 1.175-.379.113-.378-.247-.814-.815-.985-.493-.132-1.043.057-1.175.436zm8.376-.322c-.55.133-.928.493-.871.928.056.38.55.626 1.118.493.55-.133.928-.493.871-.871-.056-.36-.568-.607-1.118-.55zm12.47-72.598C20.109 1.516 0 21.465 0 47.742c0 21.01 13.228 38.99 32.123 45.317 2.426.436 3.279-1.06 3.279-2.292 0-1.175-.057-7.654-.057-11.632 0 0-13.266 2.841-16.052-5.646 0 0-2.16-5.513-5.269-6.934 0 0-4.34-2.975.303-2.918 0 0 4.72.38 7.316 4.888 4.15 7.313 11.105 5.21 13.816 3.96.435-3.031 1.667-5.134 3.032-6.385-10.594-1.174-21.283-2.709-21.283-20.934 0-5.21 1.44-7.825 4.473-11.16-.493-1.23-2.104-6.308.492-12.863 3.961-1.232 13.077 5.115 13.077 5.115 3.79-1.06 7.865-1.61 11.902-1.61 4.036 0 8.11.55 11.901 1.61 0 0 9.116-6.365 13.077-5.115 2.596 6.574.985 11.632.493 12.864 3.032 3.353 4.89 5.968 4.89 11.159 0 18.282-11.163 19.74-21.757 20.934 1.743 1.497 3.221 4.339 3.221 8.79 0 6.385-.056 14.286-.056 15.84 0 1.23.871 2.727 3.278 2.291C81.151 86.731 94 68.752 94 47.742 94 21.465 72.68 1.516 46.394 1.516zM18.422 66.858c-.246.19-.19.625.133.985.303.303.739.436.985.19.246-.19.19-.626-.133-.986-.303-.303-.739-.435-.985-.189zm-2.047-1.535c-.133.247.057.55.436.74.303.189.682.132.815-.133.133-.247-.057-.55-.436-.74-.379-.113-.682-.056-.815.133zm6.14 6.745c-.303.246-.189.815.247 1.175.436.435.985.492 1.232.189.246-.246.132-.815-.247-1.175-.417-.435-.985-.492-1.231-.189zm-2.16-2.785c-.303.19-.303.682 0 1.118.303.436.815.625 1.061.436.303-.247.303-.74 0-1.175-.265-.436-.758-.625-1.061-.379z" fill="#D1E2E2"/></g><defs><clipPath id="a"><path fill="#fff" d="M0 0h80v86.761H0z"/></clipPath></defs></svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -0,0 +1,3 @@
<svg width="61" height="42" viewBox="0 0 61 42" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M33.9869 41.2211H56.412C57.1243 41.2212 57.824 41.0336 58.4408 40.6772C59.0576 40.3209 59.5698 39.8083 59.9258 39.191C60.2818 38.5737 60.469 37.8736 60.4687 37.1609C60.4684 36.4482 60.2805 35.7482 59.924 35.1313L44.864 9.03129C44.508 8.41416 43.996 7.90168 43.3793 7.54537C42.7626 7.18906 42.063 7.00147 41.3509 7.00147C40.6387 7.00147 39.9391 7.18906 39.3225 7.54537C38.7058 7.90168 38.1937 8.41416 37.8377 9.03129L33.9869 15.7093L26.458 2.65061C26.1018 2.03354 25.5895 1.52113 24.9726 1.16489C24.3557 0.808639 23.656 0.621094 22.9438 0.621094C22.2316 0.621094 21.5318 0.808639 20.915 1.16489C20.2981 1.52113 19.7858 2.03354 19.4296 2.65061L0.689224 35.1313C0.332704 35.7482 0.144842 36.4482 0.144532 37.1609C0.144222 37.8736 0.331476 38.5737 0.687459 39.191C1.04344 39.8083 1.5556 40.3209 2.17243 40.6772C2.78925 41.0336 3.48899 41.2212 4.20126 41.2211H18.2778C23.8551 41.2211 27.9682 38.7699 30.7984 33.9876L37.6694 22.0813L41.3498 15.7093L52.3951 34.8492H37.6694L33.9869 41.2211ZM18.0484 34.8426L8.2247 34.8404L22.9504 9.32211L30.2979 22.0813L25.3784 30.6092C23.4989 33.7121 21.3637 34.8426 18.0484 34.8426Z" fill="#00DC82"/>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -0,0 +1,19 @@
<svg width="53" height="58" viewBox="0 0 53 58" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_2613_3853)">
<path d="M51.1519 39.8821C51.154 39.9844 51.1527 40.0863 51.148 40.1877C51.0782 41.7091 50.2566 43.1165 48.9325 43.9357L29.0918 56.2117C27.6504 57.1035 25.8212 57.1564 24.3387 56.3439L3.85107 45.1148C2.27157 44.2491 1.14238 42.6366 1.15291 41.0494L1.15293 41.0427L1.153 18.552C1.15301 18.5509 1.15302 18.5499 1.15302 18.5488C1.16485 16.9324 2.02611 15.4289 3.43319 14.5869L3.43322 14.587L3.44269 14.5812L22.9844 2.59084C24.4169 1.73583 26.2139 1.69824 27.6729 2.49791L27.6729 2.49792L27.6784 2.50094L48.6303 13.8121C48.6313 13.8126 48.6322 13.8131 48.6331 13.8136C50.0797 14.6078 50.9898 16.1132 51.026 17.7438L51.1517 39.8672L51.1517 39.8746L51.1519 39.8821Z" fill="white" stroke="url(#paint0_linear_2613_3853)" stroke-width="2"/>
<path d="M33.8193 42.2552H17.8193C16.7585 42.2552 15.7411 41.8337 14.9909 41.0836C14.2408 40.3334 13.8193 39.316 13.8193 38.2552V24.9218C13.8193 23.861 14.2408 22.8435 14.9909 22.0934C15.7411 21.3433 16.7585 20.9218 17.8193 20.9218H19.1527C19.1751 19.792 19.5558 18.6985 20.2399 17.7991C20.924 16.8996 21.8761 16.2407 22.9589 15.9173C24.0416 15.594 25.1992 15.6229 26.2644 16C27.3297 16.377 28.2477 17.0827 28.886 18.0152C29.4839 18.8674 29.8094 19.8808 29.8193 20.9218H33.8193C34.173 20.9218 34.5121 21.0623 34.7621 21.3124C35.0122 21.5624 35.1527 21.9015 35.1527 22.2552V26.2552C36.2825 26.2776 37.376 26.6583 38.2754 27.3424C39.1749 28.0265 39.8338 28.9786 40.1572 30.0613C40.4805 31.1441 40.4516 32.3016 40.0745 33.3669C39.6975 34.4322 38.9918 35.3502 38.0593 35.9885C37.2071 36.5864 36.1937 36.9118 35.1527 36.9218V36.9218V40.9218C35.1527 41.2755 35.0122 41.6146 34.7621 41.8646C34.5121 42.1147 34.173 42.2552 33.8193 42.2552ZM17.8193 23.5885C17.4657 23.5885 17.1266 23.729 16.8765 23.979C16.6265 24.2291 16.486 24.5682 16.486 24.9218V38.2552C16.486 38.6088 16.6265 38.9479 16.8765 39.198C17.1266 39.448 17.4657 39.5885 17.8193 39.5885H32.486V35.3485C32.4849 35.1347 32.5351 34.9238 32.6326 34.7335C32.7301 34.5432 32.8718 34.3792 33.046 34.2552C33.2196 34.1313 33.4204 34.051 33.6316 34.0208C33.8427 33.9907 34.058 34.0116 34.2593 34.0818C34.6393 34.2368 35.0532 34.2901 35.46 34.2363C35.8669 34.1825 36.2527 34.0236 36.5793 33.7752C36.9045 33.5769 37.1834 33.3113 37.3973 32.9962C37.6111 32.6811 37.7551 32.3239 37.8193 31.9485C37.8708 31.5699 37.8402 31.1847 37.7298 30.8189C37.6194 30.4532 37.4317 30.1154 37.1793 29.8285C36.8381 29.414 36.3734 29.1193 35.8529 28.9874C35.3325 28.8555 34.7835 28.8932 34.286 29.0952C34.0846 29.1654 33.8694 29.1863 33.6582 29.1562C33.4471 29.126 33.2463 29.0457 33.0727 28.9218C32.8985 28.7978 32.7567 28.6338 32.6593 28.4435C32.5618 28.2532 32.5115 28.0423 32.5127 27.8285V23.5885H28.246C28.0269 23.6009 27.8081 23.559 27.609 23.4666C27.4099 23.3742 27.2368 23.234 27.1049 23.0586C26.973 22.8832 26.8864 22.6779 26.8529 22.461C26.8194 22.2441 26.8399 22.0222 26.9127 21.8152C27.0677 21.4352 27.1209 21.0213 27.0671 20.6145C27.0134 20.2076 26.8544 19.8218 26.606 19.4952C26.4091 19.1607 26.1395 18.8749 25.8172 18.6588C25.4948 18.4427 25.128 18.3019 24.7438 18.2468C24.3597 18.1917 23.9681 18.2238 23.598 18.3407C23.2279 18.4575 22.8889 18.6561 22.606 18.9218C22.3433 19.1824 22.1377 19.4948 22.0023 19.8391C21.8668 20.1834 21.8045 20.5521 21.8193 20.9218C21.8224 21.2277 21.8812 21.5304 21.9927 21.8152C22.0632 22.0168 22.0842 22.2324 22.054 22.4438C22.0237 22.6553 21.9432 22.8564 21.819 23.0302C21.6949 23.204 21.5308 23.3454 21.3406 23.4426C21.1504 23.5397 20.9396 23.5898 20.726 23.5885H17.8193Z" fill="url(#paint1_linear_2613_3853)"/>
</g>
<defs>
<linearGradient id="paint0_linear_2613_3853" x1="0.662695" y1="18.4025" x2="51.7209" y2="44.2212" gradientUnits="userSpaceOnUse">
<stop stop-color="#F7D14C"/>
<stop offset="1" stop-color="#A38108"/>
</linearGradient>
<linearGradient id="paint1_linear_2613_3853" x1="13.7453" y1="21.3705" x2="40.3876" y2="35.7024" gradientUnits="userSpaceOnUse">
<stop stop-color="#F7D14C"/>
<stop offset="1" stop-color="#A38108"/>
</linearGradient>
<clipPath id="clip0_2613_3853">
<rect width="52" height="57" fill="white" transform="translate(0.152832 0.920898)"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 4.1 KiB

View File

@ -0,0 +1,14 @@
<svg width="53" height="58" viewBox="0 0 53 58" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M3.43319 14.5869L3.43322 14.587L3.44269 14.5812L22.9844 2.59084C24.4246 1.73116 26.2124 1.69742 27.6729 2.49791L27.6729 2.49792L27.6784 2.50094L48.6303 13.8121C48.6313 13.8126 48.6322 13.8131 48.6331 13.8137C50.0812 14.6086 50.9896 16.1043 51.026 17.7437L51.1517 39.8672L51.1517 39.8746L51.1519 39.8821C51.1856 41.5204 50.346 43.0611 48.9325 43.9357L29.0918 56.2117C27.6424 57.1085 25.8227 57.1572 24.3387 56.3439L3.85107 45.1148C2.26984 44.2481 1.14232 42.646 1.15293 41.0494V41.0427L1.153 18.552C1.15301 18.5509 1.15302 18.5499 1.15302 18.5488C1.16485 16.9324 2.02611 15.4289 3.43319 14.5869Z" fill="#18181B" stroke="url(#paint0_linear_2595_7337)" stroke-width="2"/>
<path d="M33.8193 42.2542H17.8193C16.7585 42.2542 15.7411 41.8328 14.9909 41.0826C14.2408 40.3325 13.8193 39.3151 13.8193 38.2542V24.9209C13.8193 23.86 14.2408 22.8426 14.9909 22.0924C15.7411 21.3423 16.7585 20.9209 17.8193 20.9209H19.1527C19.1751 19.791 19.5558 18.6975 20.2399 17.7981C20.924 16.8986 21.8761 16.2397 22.9589 15.9164C24.0416 15.593 25.1992 15.6219 26.2644 15.999C27.3297 16.376 28.2477 17.0817 28.886 18.0142C29.4839 18.8664 29.8094 19.8799 29.8193 20.9209H33.8193C34.173 20.9209 34.5121 21.0613 34.7621 21.3114C35.0122 21.5614 35.1527 21.9006 35.1527 22.2542V26.2542C36.2825 26.2766 37.376 26.6573 38.2754 27.3414C39.1749 28.0255 39.8338 28.9776 40.1572 30.0604C40.4805 31.1432 40.4516 32.3007 40.0745 33.366C39.6975 34.4312 38.9918 35.3492 38.0593 35.9875C37.2071 36.5854 36.1937 36.9109 35.1527 36.9209V40.9209C35.1527 41.2745 35.0122 41.6136 34.7621 41.8637C34.5121 42.1137 34.173 42.2542 33.8193 42.2542ZM17.8193 23.5875C17.4657 23.5875 17.1266 23.728 16.8765 23.978C16.6265 24.2281 16.486 24.5672 16.486 24.9209V38.2542C16.486 38.6078 16.6265 38.9469 16.8765 39.197C17.1266 39.447 17.4657 39.5875 17.8193 39.5875H32.486V35.3475C32.4849 35.1337 32.5351 34.9228 32.6326 34.7325C32.7301 34.5422 32.8718 34.3782 33.046 34.2542C33.2196 34.1304 33.4205 34.05 33.6316 34.0198C33.8427 33.9897 34.058 34.0106 34.2593 34.0809C34.6393 34.2359 35.0532 34.2891 35.46 34.2353C35.8669 34.1816 36.2527 34.0226 36.5793 33.7742C36.9045 33.5759 37.1834 33.3103 37.3973 32.9952C37.6111 32.6801 37.7551 32.3229 37.8193 31.9475C37.8708 31.5689 37.8402 31.1837 37.7298 30.8179C37.6194 30.4522 37.4317 30.1144 37.1793 29.8275C36.8381 29.413 36.3734 29.1183 35.8529 28.9864C35.3325 28.8545 34.7835 28.8923 34.286 29.0942C34.0846 29.1644 33.8694 29.1854 33.6582 29.1552C33.4471 29.125 33.2463 29.0447 33.0727 28.9209C32.8985 28.7969 32.7567 28.6328 32.6593 28.4425C32.5618 28.2522 32.5115 28.0413 32.5127 27.8275V23.5875H28.246C28.0269 23.5999 27.8081 23.5581 27.609 23.4656C27.4099 23.3732 27.2368 23.233 27.1049 23.0576C26.973 22.8822 26.8864 22.6769 26.8529 22.46C26.8194 22.2431 26.8399 22.0213 26.9127 21.8142C27.0677 21.4342 27.1209 21.0204 27.0671 20.6135C27.0134 20.2066 26.8544 19.8208 26.606 19.4942C26.4091 19.1597 26.1395 18.8739 25.8172 18.6578C25.4948 18.4417 25.128 18.3009 24.7438 18.2458C24.3597 18.1908 23.9681 18.2228 23.598 18.3397C23.2279 18.4565 22.8889 18.6552 22.606 18.9209C22.3433 19.1814 22.1377 19.4938 22.0023 19.8381C21.8668 20.1824 21.8045 20.5512 21.8193 20.9209C21.8224 21.2267 21.8812 21.5294 21.9927 21.8142C22.0632 22.0158 22.0842 22.2314 22.054 22.4429C22.0237 22.6543 21.9432 22.8554 21.819 23.0292C21.6949 23.203 21.5308 23.3444 21.3406 23.4416C21.1504 23.5388 20.9396 23.5888 20.726 23.5875H17.8193Z" fill="url(#paint1_linear_2595_7337)"/>
<defs>
<linearGradient id="paint0_linear_2595_7337" x1="0.662695" y1="18.4025" x2="51.7209" y2="44.2212" gradientUnits="userSpaceOnUse">
<stop stop-color="#F7D14C"/>
<stop offset="1" stop-color="#A38108"/>
</linearGradient>
<linearGradient id="paint1_linear_2595_7337" x1="13.7453" y1="21.3695" x2="40.3876" y2="35.7015" gradientUnits="userSpaceOnUse">
<stop stop-color="#F7D14C"/>
<stop offset="1" stop-color="#A38108"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

@ -0,0 +1,19 @@
<svg width="53" height="58" viewBox="0 0 53 58" fill="none" xmlns="http://www.w3.org/2000/svg">
<g clip-path="url(#clip0_2691_4389)">
<path d="M51.1519 39.8821C51.154 39.9844 51.1527 40.0863 51.148 40.1877C51.0782 41.7091 50.2566 43.1165 48.9325 43.9357L29.0918 56.2117C27.6504 57.1035 25.8212 57.1564 24.3387 56.3439L3.85107 45.1148C2.27157 44.2491 1.14238 42.6366 1.15291 41.0494L1.15293 41.0427L1.153 18.552C1.15301 18.5509 1.15302 18.5499 1.15302 18.5488C1.16485 16.9324 2.02611 15.4289 3.43319 14.5869L3.43322 14.587L3.44269 14.5812L22.9844 2.59084C24.4169 1.73583 26.2139 1.69824 27.6729 2.49791L27.6729 2.49792L27.6784 2.50094L48.6303 13.8121C48.6313 13.8126 48.6322 13.8131 48.6331 13.8136C50.0797 14.6078 50.9898 16.1132 51.026 17.7438L51.1517 39.8672L51.1517 39.8746L51.1519 39.8821Z" fill="white" stroke="url(#paint0_linear_2691_4389)" stroke-width="2"/>
<path d="M33.8193 42.2542H17.8193C16.7585 42.2542 15.7411 41.8328 14.9909 41.0826C14.2408 40.3325 13.8193 39.3151 13.8193 38.2542V24.9209C13.8193 23.86 14.2408 22.8426 14.9909 22.0924C15.7411 21.3423 16.7585 20.9209 17.8193 20.9209H19.1527C19.1751 19.791 19.5558 18.6975 20.2399 17.7981C20.924 16.8986 21.8761 16.2397 22.9589 15.9164C24.0416 15.593 25.1992 15.6219 26.2644 15.999C27.3297 16.376 28.2477 17.0817 28.886 18.0142C29.4839 18.8664 29.8094 19.8799 29.8193 20.9209H33.8193C34.173 20.9209 34.5121 21.0613 34.7621 21.3114C35.0122 21.5614 35.1527 21.9006 35.1527 22.2542V26.2542C36.2825 26.2766 37.376 26.6573 38.2754 27.3414C39.1749 28.0255 39.8338 28.9776 40.1572 30.0604C40.4805 31.1432 40.4516 32.3007 40.0745 33.366C39.6975 34.4312 38.9918 35.3492 38.0593 35.9875C37.2071 36.5854 36.1937 36.9109 35.1527 36.9209V36.9209V40.9209C35.1527 41.2745 35.0122 41.6136 34.7621 41.8637C34.5121 42.1137 34.173 42.2542 33.8193 42.2542ZM17.8193 23.5875C17.4657 23.5875 17.1266 23.728 16.8765 23.978C16.6265 24.2281 16.486 24.5672 16.486 24.9209V38.2542C16.486 38.6078 16.6265 38.9469 16.8765 39.197C17.1266 39.447 17.4657 39.5875 17.8193 39.5875H32.486V35.3475C32.4849 35.1337 32.5351 34.9228 32.6326 34.7325C32.7301 34.5422 32.8718 34.3782 33.046 34.2542C33.2196 34.1304 33.4204 34.05 33.6316 34.0198C33.8427 33.9897 34.058 34.0106 34.2593 34.0809C34.6393 34.2359 35.0532 34.2891 35.46 34.2353C35.8669 34.1816 36.2527 34.0226 36.5793 33.7742C36.9045 33.5759 37.1834 33.3103 37.3973 32.9952C37.6111 32.6801 37.7551 32.3229 37.8193 31.9475C37.8708 31.5689 37.8402 31.1837 37.7298 30.8179C37.6194 30.4522 37.4317 30.1144 37.1793 29.8275C36.8381 29.413 36.3734 29.1183 35.8529 28.9864C35.3325 28.8545 34.7835 28.8923 34.286 29.0942C34.0846 29.1644 33.8694 29.1854 33.6582 29.1552C33.4471 29.125 33.2463 29.0447 33.0727 28.9209C32.8985 28.7969 32.7567 28.6328 32.6593 28.4425C32.5618 28.2522 32.5115 28.0413 32.5127 27.8275V23.5875H28.246C28.0269 23.5999 27.8081 23.5581 27.609 23.4656C27.4099 23.3732 27.2368 23.233 27.1049 23.0576C26.973 22.8822 26.8864 22.6769 26.8529 22.46C26.8194 22.2431 26.8399 22.0213 26.9127 21.8142C27.0677 21.4342 27.1209 21.0204 27.0671 20.6135C27.0134 20.2066 26.8544 19.8208 26.606 19.4942C26.4091 19.1597 26.1395 18.8739 25.8172 18.6578C25.4948 18.4417 25.128 18.3009 24.7438 18.2458C24.3597 18.1908 23.9681 18.2228 23.598 18.3397C23.2279 18.4565 22.8889 18.6552 22.606 18.9209C22.3433 19.1814 22.1377 19.4938 22.0023 19.8381C21.8668 20.1824 21.8045 20.5512 21.8193 20.9209C21.8224 21.2267 21.8812 21.5294 21.9927 21.8142C22.0632 22.0158 22.0842 22.2314 22.054 22.4429C22.0237 22.6543 21.9432 22.8554 21.819 23.0292C21.6949 23.203 21.5308 23.3444 21.3406 23.4416C21.1504 23.5388 20.9396 23.5888 20.726 23.5875H17.8193Z" fill="url(#paint1_linear_2691_4389)"/>
</g>
<defs>
<linearGradient id="paint0_linear_2691_4389" x1="0.662695" y1="18.4025" x2="51.7209" y2="44.2212" gradientUnits="userSpaceOnUse">
<stop stop-color="#D4D4D8"/>
<stop offset="1" stop-color="#71717A"/>
</linearGradient>
<linearGradient id="paint1_linear_2691_4389" x1="13.7453" y1="21.3695" x2="40.3876" y2="35.7015" gradientUnits="userSpaceOnUse">
<stop stop-color="#D4D4D8"/>
<stop offset="1" stop-color="#71717A"/>
</linearGradient>
<clipPath id="clip0_2691_4389">
<rect width="52" height="57" fill="white" transform="translate(0.152832 0.920898)"/>
</clipPath>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 4.1 KiB

View File

@ -0,0 +1,14 @@
<svg width="53" height="58" viewBox="0 0 53 58" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M3.43319 14.5869L3.43322 14.587L3.44269 14.5812L22.9844 2.59084C24.4246 1.73116 26.2124 1.69742 27.6729 2.49791L27.6729 2.49792L27.6784 2.50094L48.6303 13.8121C48.6313 13.8126 48.6322 13.8131 48.6331 13.8137C50.0812 14.6086 50.9896 16.1043 51.026 17.7437L51.1517 39.8672L51.1517 39.8746L51.1519 39.8821C51.1856 41.5203 50.346 43.0611 48.9325 43.9357L29.0918 56.2117C27.6424 57.1085 25.8227 57.1572 24.3387 56.3439L3.85107 45.1148C2.26984 44.2481 1.14232 42.646 1.15293 41.0494V41.0427L1.153 18.552C1.15301 18.5509 1.15302 18.5499 1.15302 18.5488C1.16485 16.9324 2.02611 15.4289 3.43319 14.5869Z" fill="#18181B" stroke="url(#paint0_linear_2595_7175)" stroke-width="2"/>
<path d="M33.8193 42.2542H17.8193C16.7585 42.2542 15.7411 41.8328 14.9909 41.0826C14.2408 40.3325 13.8193 39.3151 13.8193 38.2542V24.9209C13.8193 23.86 14.2408 22.8426 14.9909 22.0924C15.7411 21.3423 16.7585 20.9209 17.8193 20.9209H19.1527C19.1751 19.791 19.5558 18.6975 20.2399 17.7981C20.924 16.8986 21.8761 16.2397 22.9589 15.9164C24.0416 15.593 25.1992 15.6219 26.2644 15.999C27.3297 16.376 28.2477 17.0817 28.886 18.0142C29.4839 18.8664 29.8094 19.8799 29.8193 20.9209H33.8193C34.173 20.9209 34.5121 21.0613 34.7621 21.3114C35.0122 21.5614 35.1527 21.9006 35.1527 22.2542V26.2542C36.2825 26.2766 37.376 26.6573 38.2754 27.3414C39.1749 28.0255 39.8338 28.9776 40.1572 30.0604C40.4805 31.1432 40.4516 32.3007 40.0745 33.366C39.6975 34.4312 38.9918 35.3492 38.0593 35.9875C37.2071 36.5854 36.1937 36.9109 35.1527 36.9209V40.9209C35.1527 41.2745 35.0122 41.6136 34.7621 41.8637C34.5121 42.1137 34.173 42.2542 33.8193 42.2542ZM17.8193 23.5875C17.4657 23.5875 17.1266 23.728 16.8765 23.978C16.6265 24.2281 16.486 24.5672 16.486 24.9209V38.2542C16.486 38.6078 16.6265 38.9469 16.8765 39.197C17.1266 39.447 17.4657 39.5875 17.8193 39.5875H32.486V35.3475C32.4849 35.1337 32.5351 34.9228 32.6326 34.7325C32.7301 34.5422 32.8718 34.3782 33.046 34.2542C33.2196 34.1304 33.4205 34.05 33.6316 34.0198C33.8427 33.9897 34.058 34.0106 34.2593 34.0809C34.6393 34.2359 35.0532 34.2891 35.46 34.2353C35.8669 34.1816 36.2527 34.0226 36.5793 33.7742C36.9045 33.5759 37.1834 33.3103 37.3973 32.9952C37.6111 32.6801 37.7551 32.3229 37.8193 31.9475C37.8708 31.5689 37.8402 31.1837 37.7298 30.8179C37.6194 30.4522 37.4317 30.1144 37.1793 29.8275C36.8381 29.413 36.3734 29.1183 35.8529 28.9864C35.3325 28.8545 34.7835 28.8923 34.286 29.0942C34.0846 29.1644 33.8694 29.1854 33.6582 29.1552C33.4471 29.125 33.2463 29.0447 33.0727 28.9209C32.8985 28.7969 32.7567 28.6328 32.6593 28.4425C32.5618 28.2522 32.5115 28.0413 32.5127 27.8275V23.5875H28.246C28.0269 23.5999 27.8081 23.5581 27.609 23.4656C27.4099 23.3732 27.2368 23.233 27.1049 23.0576C26.973 22.8822 26.8864 22.6769 26.8529 22.46C26.8194 22.2431 26.8399 22.0213 26.9127 21.8142C27.0677 21.4342 27.1209 21.0204 27.0671 20.6135C27.0134 20.2066 26.8544 19.8208 26.606 19.4942C26.4091 19.1597 26.1395 18.8739 25.8172 18.6578C25.4948 18.4417 25.128 18.3009 24.7438 18.2458C24.3597 18.1908 23.9681 18.2228 23.598 18.3397C23.2279 18.4565 22.8889 18.6552 22.606 18.9209C22.3433 19.1814 22.1377 19.4938 22.0023 19.8381C21.8668 20.1824 21.8045 20.5512 21.8193 20.9209C21.8224 21.2267 21.8812 21.5294 21.9927 21.8142C22.0632 22.0158 22.0842 22.2314 22.054 22.4429C22.0237 22.6543 21.9432 22.8554 21.819 23.0292C21.6949 23.203 21.5308 23.3444 21.3406 23.4416C21.1504 23.5388 20.9396 23.5888 20.726 23.5875H17.8193Z" fill="url(#paint1_linear_2595_7175)"/>
<defs>
<linearGradient id="paint0_linear_2595_7175" x1="0.662695" y1="18.4025" x2="51.7209" y2="44.2212" gradientUnits="userSpaceOnUse">
<stop stop-color="white"/>
<stop offset="1" stop-color="#71717A"/>
</linearGradient>
<linearGradient id="paint1_linear_2595_7175" x1="13.7453" y1="21.3695" x2="40.3876" y2="35.7015" gradientUnits="userSpaceOnUse">
<stop stop-color="white"/>
<stop offset="1" stop-color="#71717A"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

@ -0,0 +1 @@
<svg width="80" height="80" fill="none" xmlns="http://www.w3.org/2000/svg"><g clip-path="url(#a)"><path d="M87.926 29.04c.063.87.063 1.74.063 2.611 0 26.552-20.21 57.146-57.146 57.146-11.38 0-21.95-3.296-30.843-9.016 1.617.186 3.171.248 4.85.248 9.39 0 18.033-3.171 24.935-8.58-8.83-.188-16.23-5.97-18.779-13.93 1.244.187 2.488.31 3.793.31a21.24 21.24 0 0 0 5.286-.683C10.882 55.28 3.98 47.196 3.98 37.434v-.249a20.227 20.227 0 0 0 9.078 2.55c-5.41-3.607-8.954-9.763-8.954-16.727 0-3.731.995-7.151 2.736-10.136C16.727 25.06 31.589 33.019 48.253 33.89a22.677 22.677 0 0 1-.497-4.602c0-11.068 8.954-20.085 20.085-20.085a20.037 20.037 0 0 1 14.675 6.343c4.54-.87 8.892-2.55 12.748-4.85-1.493 4.663-4.664 8.58-8.83 11.068 4.042-.435 7.96-1.555 11.566-3.109a43.177 43.177 0 0 1-10.074 10.384z" fill="#D1E2E2"/></g><defs><clipPath id="a"><path fill="#fff" d="M0 0h80v80H0z"/></clipPath></defs></svg>

After

Width:  |  Height:  |  Size: 893 B

View File

@ -1,6 +1,6 @@
import fsp from 'node:fs/promises' import fsp from 'node:fs/promises'
import { fileURLToPath } from 'node:url' import { fileURLToPath } from 'node:url'
import { beforeAll, describe, it, expect } from 'vitest' import { beforeAll, describe, expect, it } from 'vitest'
import { execaCommand } from 'execa' import { execaCommand } from 'execa'
import { format } from 'prettier' import { format } from 'prettier'
@ -9,13 +9,13 @@ const distDir = fileURLToPath(new URL('../dist/templates', import.meta.url))
describe('template', () => { describe('template', () => {
beforeAll(async () => { beforeAll(async () => {
await execaCommand('pnpm build', { await execaCommand('pnpm build', {
cwd: fileURLToPath(new URL('..', import.meta.url)) cwd: fileURLToPath(new URL('..', import.meta.url)),
}) })
}) })
function formatCss (css: string) { function formatCss (css: string) {
return format(css, { return format(css, {
parser: 'css' parser: 'css',
}) })
} }

View File

@ -3,17 +3,17 @@ import { defineConfig, presetUno } from 'unocss'
export default defineConfig({ export default defineConfig({
presets: [ presets: [
presetUno({ presetUno({
dark: 'media' dark: 'media',
}) }),
], ],
content: { content: {
filesystem: [ filesystem: [
'./templates/**/*.html' './templates/**/*.html',
] ],
}, },
theme: { theme: {
colors: { colors: {
primary: { 'primary': {
50: '#F2FDF9', 50: '#F2FDF9',
100: '#E6FCF3', 100: '#E6FCF3',
200: '#BFF6E0', 200: '#BFF6E0',
@ -23,28 +23,28 @@ export default defineConfig({
600: '#00C675', 600: '#00C675',
700: '#00844E', 700: '#00844E',
800: '#00633B', 800: '#00633B',
900: '#004227' 900: '#004227',
}, },
'secondary-surface': '#E5F9FF', 'secondary-surface': '#E5F9FF',
'secondary-lightest': '#B7E1ED', 'secondary-lightest': '#B7E1ED',
'secondary-lighter': '#95CDDE', 'secondary-lighter': '#95CDDE',
'secondary-light': '#71A2B0', 'secondary-light': '#71A2B0',
secondary: '#497A87', 'secondary': '#497A87',
'secondary-dark': '#255461', 'secondary-dark': '#255461',
'secondary-darker': '#003543', 'secondary-darker': '#003543',
'secondary-darkest': '#012A35', 'secondary-darkest': '#012A35',
'secondary-black': '#001E26', 'secondary-black': '#001E26',
tertiary: '#B2CCCC', // cloud 'tertiary': '#B2CCCC', // cloud
'cloud-surface': '#E6F0F0', 'cloud-surface': '#E6F0F0',
'cloud-lightest': '#D1E2E2', 'cloud-lightest': '#D1E2E2',
'cloud-lighter': '#B2CCCC', 'cloud-lighter': '#B2CCCC',
'cloud-light': '#92ADAD', 'cloud-light': '#92ADAD',
cloud: '#688282', 'cloud': '#688282',
'cloud-dark': '#566B6B', 'cloud-dark': '#566B6B',
'cloud-darker': '#334040', 'cloud-darker': '#334040',
'cloud-darkest': '#273131', 'cloud-darkest': '#273131',
'cloud-black': '#1A2121', 'cloud-black': '#1A2121',
green: { 'green': {
// 50: "#eefdf2", // 50: "#eefdf2",
50: '#d0fcde', 50: '#d0fcde',
100: '#b0fccb', 100: '#b0fccb',
@ -55,10 +55,10 @@ export default defineConfig({
600: '#00bb6a', 600: '#00bb6a',
700: '#009956', 700: '#009956',
800: '#047342', 800: '#047342',
900: '#134d2e' 900: '#134d2e',
// 950: "#132a1c", // 950: "#132a1c",
}, },
gray: { 'gray': {
50: '#f5f5f5', 50: '#f5f5f5',
100: '#eeeeee', 100: '#eeeeee',
200: '#e0e0e0', 200: '#e0e0e0',
@ -68,9 +68,9 @@ export default defineConfig({
600: '#616161', 600: '#616161',
700: '#424242', 700: '#424242',
800: '#212121', 800: '#212121',
900: '#18181B' 900: '#18181B',
}, },
sky: { 'sky': {
surface: '#E5F9FF', surface: '#E5F9FF',
lightest: '#B7E1ED', lightest: '#B7E1ED',
lighter: '#95CDDE', lighter: '#95CDDE',
@ -79,8 +79,8 @@ export default defineConfig({
dark: '#255461', dark: '#255461',
darker: '#003543', darker: '#003543',
darkest: '#012A35', darkest: '#012A35',
black: '#001E26' black: '#001E26',
} },
} },
} },
}) })

View File

@ -1,5 +1,5 @@
import { resolve } from 'path' import { resolve } from 'node:path'
import { readdirSync } from 'fs' import { readdirSync } from 'node:fs'
import { defineConfig } from 'vite' import { defineConfig } from 'vite'
import UnoCSS from 'unocss/vite' import UnoCSS from 'unocss/vite'
@ -16,21 +16,21 @@ export default defineConfig({
...Object.fromEntries( ...Object.fromEntries(
readdirSync(r('templates')).filter(dir => dir !== 'messages.json').map(dir => [ readdirSync(r('templates')).filter(dir => dir !== 'messages.json').map(dir => [
dir, dir,
r('templates', dir, 'index.html') r('templates', dir, 'index.html'),
]) ]),
), ),
index: r('index.html') index: r('index.html'),
} },
} },
}, },
plugins: [ plugins: [
UnoCSS(), UnoCSS(),
DevRenderingPlugin(), DevRenderingPlugin(),
RenderPlugin() RenderPlugin(),
], ],
server: { server: {
fs: { fs: {
allow: ['./templates', __dirname] allow: ['./templates', __dirname],
} },
} },
}) })

File diff suppressed because it is too large Load Diff