upgraded astro config and packes to latest version

This commit is contained in:
Sebastian Wendel 2023-10-31 16:42:59 +01:00
parent a0cf3805e9
commit 65f4134c82
22 changed files with 3767 additions and 1860 deletions

6
.envrc
View file

@ -1,7 +1,5 @@
watch_file flake.nix flake.lock package.json yarn.lock nix/*.nix
use flake use flake
yarn install watch_file **/*.nix *.lock package.json
yarn sync yarn2nix > nix/yarn.nix

View file

@ -1,32 +1,44 @@
module.exports = { module.exports = {
env: { env: {
browser: true, node: true,
es2021: true, browser: true,
es2021: true,
},
extends: [
"eslint:recommended",
"plugin:astro/recommended",
"plugin:astro/jsx-a11y-strict",
],
parser: "@typescript-eslint/parser",
parserOptions: {
ecmaVersion: "latest",
sourceType: "module",
},
plugins: ["@typescript-eslint"],
rules: {},
overrides: [
{
files: ["*.ts"],
parser: "@typescript-eslint/parser",
extends: ["plugin:@typescript-eslint/recommended"],
rules: {
"@typescript-eslint/no-unused-vars": [
"error",
{ argsIgnorePattern: "^_", destructuredArrayIgnorePattern: "^_" },
],
"@typescript-eslint/no-non-null-assertion": "off",
},
}, },
extends: ['plugin:astro/all'], {
parser: '@typescript-eslint/parser', files: ["*.astro"],
parserOptions: { parser: "astro-eslint-parser",
ecmaVersion: 'latest', parserOptions: {
sourceType: 'module', parser: "@typescript-eslint/parser",
extraFileExtensions: [".astro"],
},
rules: {
"astro/no-set-html-directive": "off",
},
}, },
plugins: ['@typescript-eslint'], ],
rules: {},
overrides: [
{
// Define the configuration for `.astro` file.
files: ['*.astro'],
// Allows Astro components to be parsed.
parser: 'astro-eslint-parser',
// Parse the script in `.astro` as TypeScript by adding the following configuration.
// It's the setting you need when using TypeScript.
parserOptions: {
parser: '@typescript-eslint/parser',
extraFileExtensions: ['.astro'],
},
rules: {
// override/add rules settings here, such as:
'astro/no-set-html-directive': 'off',
},
},
],
}; };

2
.npmrc
View file

@ -1,2 +0,0 @@
# Expose Astro dependencies for `pnpm` users
shamefully-hoist=true

View file

@ -1,30 +0,0 @@
/** @type {import("@types/prettier").Options} */
module.exports = {
printWidth: 100,
semi: true,
singleQuote: true,
tabWidth: 4,
trailingComma: 'es5',
useTabs: true,
plugins: ['./node_modules/prettier-plugin-astro'],
overrides: [
{
files: '*.astro',
options: {
parser: 'astro',
},
},
{
files: ['.*', '*.md', '*.toml'],
options: {
useTabs: false,
},
},
{
files: ['*.yaml', '*.yml', '*.json'],
options: {
tabWidth: 2,
},
},
],
};

24
.prettierrc.mjs Normal file
View file

@ -0,0 +1,24 @@
/** @type {import("prettier").Config} */
export default {
plugins: ["prettier-plugin-astro"],
overrides: [
{
files: "*.astro",
options: {
parser: "astro",
},
},
{
files: ["*.md", "*.toml"],
options: {
useTabs: false,
},
},
{
files: ["*.yaml", "*.yml", "*.json"],
options: {
tabWidth: 2,
},
},
],
};

View file

@ -1,7 +1,4 @@
{ {
"recommendations": [ "recommendations": ["astro-build.astro-vscode", "kamadorueda.alejandra"],
"astro-build.astro-vscode",
"kamadorueda.alejandra",
],
"unwantedRecommendations": [] "unwantedRecommendations": []
} }

31
.vscode/settings.json vendored
View file

@ -1,12 +1,21 @@
{ {
"alejandra.program": "alejandra", "eslint.validate": [
"[nix]": { "astro",
"editor.defaultFormatter": "kamadorueda.alejandra", "javascript",
"editor.formatOnPaste": true, "javascriptreact",
"editor.formatOnSave": true, "typescript",
"editor.insertSpaces": true, "typescriptreact"
"editor.tabSize": 2, ],
"editor.codeLens": true "files.associations": {
}, "*.mdx": "markdown"
} },
"editor.formatOnSave": true,
"editor.formatOnPaste": true,
"[astro]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[nix]": {
"editor.defaultFormatter": "kamadorueda.alejandra",
"editor.tabSize": 2
}
}

18
.vscode/tasks.json vendored
View file

@ -1,18 +0,0 @@
{
"version": "2.0.0",
"tasks": [
{
"label": "watch tests",
"type": "shell",
"command": "watch --color 'nix-build test --no-out-link | xargs cat'",
"presentation": {
"echo": false,
"reveal": "always",
"focus": false,
"panel": "dedicated",
"showReuseMessage": false
},
"problemMatcher": []
}
]
}

6
astro-i18next.config.mjs Normal file
View file

@ -0,0 +1,6 @@
/** @type {import('astro-i18next').AstroI18nextConfig} */
export default {
defaultLocale: "de",
locales: ["en", "de"],
};

View file

@ -1,32 +1,66 @@
import { defineConfig } from 'astro/config'; import path from "path";
import path from 'path'; import { defineConfig } from "astro/config";
import mdx from '@astrojs/mdx'; import react from "@astrojs/react";
import robotsTxt from 'astro-robots-txt'; import vue from "@astrojs/vue";
import tailwind from '@astrojs/tailwind'; import mdx from "@astrojs/mdx";
import sitemap from '@astrojs/sitemap'; import tailwind from "@astrojs/tailwind";
import astroI18next from "astro-i18next";
import remarkToc from "remark-toc";
import robotsTxt from "astro-robots-txt";
import sitemap from "@astrojs/sitemap";
import { astroImageTools } from "astro-imagetools";
const mkPath = (name) => path.resolve(`./src/${name}`); const mkPath = (name) => path.resolve(`./src/${name}`);
const cacheDir = process.env.VITE_CACHE ? process.env.VITE_CACHE : 'node_modules/.vite'; const tailwindConfig = {
const tailwindConfig = { config: { applyBaseStyles: false } }; config: {
const external = ['svgo']; applyBaseStyles: false,
},
};
const external = ["svgo"];
const mdxConfig = {}; const mdxConfig = {};
const alias = { const alias = {
'@srx-components': mkPath('components'), "@srx-components": mkPath("components"),
'@srx-layouts': mkPath('layouts'), "@srx-layouts": mkPath("layouts"),
'@srx-pages': mkPath('pages'), "@srx-pages": mkPath("pages"),
'@srx-scripts': mkPath('scripts'), "@srx-scripts": mkPath("scripts"),
'@srx-styles': mkPath('styles'), "@srx-styles": mkPath("styles"),
}; };
// https://astro.build/config // https://astro.build/config
export default defineConfig({ export default defineConfig({
integrations: [sitemap(), mdx(mdxConfig), tailwind(tailwindConfig), robotsTxt()], site: "https://srx.dev",
site: 'https://srx.dev', server: {
server: { port: 3001 }, port: 3001,
experimental: { },
contentCollections: true, integrations: [
}, react(),
vite: { vue(),
ssr: { external }, tailwind(tailwindConfig),
resolve: { alias }, mdx(mdxConfig),
}, astroI18next(),
sitemap(),
robotsTxt(),
astroImageTools,
],
markdown: {
remarkPlugins: [
[
remarkToc,
{
heading: "contents",
},
],
],
},
// experimental: {
// contentCollections: true,
// },
vite: {
ssr: {
external,
},
resolve: {
alias,
},
},
}); });

View file

@ -1,3 +0,0 @@
builds:
exclude:
- 'checks.*.pre-commit'

View file

@ -1,35 +0,0 @@
{inputs, ...}: let
inherit (inputs.nix-filter.lib) filter inDirectory matchExt;
in {
perSystem = {config, ...}: {
dream2nix.inputs.self = {
source = filter {
root = ./..;
include = [
(inDirectory "src")
(inDirectory "public")
(matchExt "js")
(matchExt "cjs")
(matchExt "mjs")
../package.json
../yarn.lock
];
};
projects.srx_dev = {
name = "srx_dev";
subsystem = "nodejs";
translator = "yarn-lock";
subsystemInfo.nodejs = 18;
};
packageOverrides.srx_dev.copySrx_dev = {
installPhase = ''
mkdir -p $out
cp -rv ./dist/* $out
'';
};
};
packages.srx_dev = config.dream2nix.outputs.self.packages.srx_dev;
};
}

View file

@ -1,43 +1,79 @@
{ {
"name": "srx.dev", "name": "srx.dev",
"version": "0.0.1", "version": "0.0.1",
"private": true, "description": "Astro Website",
"scripts": { "author": "Sebastian Wendel",
"build": "astro build", "license": "MIT",
"dev": "astro dev", "private": true,
"preview": "astro preview", "repository": {
"start": "astro dev", "type": "git",
"sync": "astro sync" "url": "https://code.srx.dev/swendel/srx.astro.nix"
}, },
"devDependencies": { "scripts": {
"@astrojs/mdx": "^0.18.2", "build": "astro build",
"@astrojs/rss": "^2.3.1", "dev": "astro dev",
"@astrojs/sitemap": "^1.2.1", "preview": "astro preview",
"@astrojs/tailwind": "^3.1.1", "start": "astro dev",
"@types/lodash": "^4.14.192", "sync": "astro sync",
"@types/luxon": "^3.2.0", "format": "prettier -w .",
"@types/marked": "^4.0.8", "lint": "eslint . --ext .js,.ts,.astro"
"@types/seedrandom": "^3.0.2", },
"@typescript-eslint/eslint-plugin": "^5.46.0", "devDependencies": {
"@typescript-eslint/parser": "^5.46.0", "@astrojs/mdx": "^0.18.2",
"astro-forms": "^1.0.11", "@astrojs/partytown": "^2.0.1",
"astro-icon": "^0.8.0", "@astrojs/prism": "^3.0.0",
"astro-robots-txt": "^0.4.0", "@astrojs/react": "^3.0.4",
"astro": "^2.1.8", "@astrojs/rss": "^2.3.1",
"eslint-config-standard": "^17.0.0", "@astrojs/sitemap": "^1.2.1",
"eslint-plugin-astro": "^0.26.0", "@astrojs/tailwind": "^3.1.1",
"eslint-plugin-import": "^2.25.2", "@astrojs/vue": "^3.0.2",
"eslint-plugin-n": "^15.6.0", "@tailwindcss/forms": "^0.5.6",
"eslint-plugin-promise": "^6.1.0", "@tailwindcss/typography": "^0.5.10",
"eslint": "^8.29.0", "@types/lodash": "^4.14.192",
"lodash": "^4.17.21", "@types/luxon": "^3.2.0",
"luxon": "^3.0.4", "@types/marked": "^6.0.0",
"marked": "^4.2.4", "@types/react": "^18.0.21",
"prettier-plugin-astro": "^0.8.0", "@types/seedrandom": "^3.0.2",
"prettier": "^2.8.1", "@typescript-eslint/eslint-plugin": "^5.46.0",
"sanitize-html": "^2.8.0", "@typescript-eslint/parser": "^5.46.0",
"seedrandom": "^3.0.5", "astro": "^2.1.8",
"tailwindcss": "^3.0.24" "astro-auto-import": "^0.3.1",
}, "astro-compressor": "^0.4.1",
"dependencies": {} "astro-forms": "^1.0.11",
"astro-i18next": "^1.0.0-beta.21",
"astro-icon": "^0.8.1",
"astro-imagetools": "^0.9.0",
"astro-robots-txt": "^0.4.0",
"astro-seo": "^0.8.0",
"eslint": "^8.29.0",
"eslint-config-standard": "^17.0.0",
"eslint-plugin-astro": "^0.26.0",
"eslint-plugin-import": "^2.25.2",
"eslint-plugin-jsx-a11y": "^6.7.1",
"eslint-plugin-n": "^15.6.0",
"eslint-plugin-promise": "^6.1.0",
"lodash": "^4.17.21",
"luxon": "^3.0.4",
"marked": "^9.1.4",
"postcss": "^8.4.31",
"prettier": "^3.0.3",
"prettier-plugin-astro": "^0.12.1",
"prettier-plugin-tailwind": "^2.2.12",
"remark-toc": "^9.0.0",
"sanitize-html": "^2.8.0",
"seedrandom": "^3.0.5",
"svgo": "^3.0.2",
"tailwindcss": "^3.0.24",
"typescript": "^5.2.2"
},
"engines": {
"node": ">=18.14.1"
},
"packageManager": "yarn@1.22.19",
"dependencies": {
"@types/react-dom": "^18.0.6",
"react": "^18.0.0",
"react-dom": "^18.0.0",
"vue": "^3.2.30"
}
} }

View file

@ -1,8 +0,0 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": ["config:base"],
"assignees": ["Nobbz"],
"rangeStrategy": "update-lockfile",
"schedule": ["* 0-5 * * *"],
"nix": { "enabled": true }
}

View file

@ -11,28 +11,28 @@
* (or add `stroke="none"` on shapes with no `fill` or `stroke` specified). * (or add `stroke="none"` on shapes with no `fill` or `stroke` specified).
*/ */
export const iconPaths = { export const iconPaths = {
'terminal-window': `<path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="m80 96 40 32-40 32m56 0h40"/><rect width="192" height="160" x="32" y="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16.97" rx="8.5"/>`, "terminal-window": `<path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="m80 96 40 32-40 32m56 0h40"/><rect width="192" height="160" x="32" y="48" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16.97" rx="8.5"/>`,
trophy: `<path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="M56 56v55.1c0 39.7 31.8 72.6 71.5 72.9a72 72 0 0 0 72.5-72V56a8 8 0 0 0-8-8H64a8 8 0 0 0-8 8Zm40 168h64m-32-40v40"/><path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="M198.2 128h9.8a32 32 0 0 0 32-32V80a8 8 0 0 0-8-8h-32M58 128H47.9a32 32 0 0 1-32-32V80a8 8 0 0 1 8-8h32"/>`, trophy: `<path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="M56 56v55.1c0 39.7 31.8 72.6 71.5 72.9a72 72 0 0 0 72.5-72V56a8 8 0 0 0-8-8H64a8 8 0 0 0-8 8Zm40 168h64m-32-40v40"/><path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="M198.2 128h9.8a32 32 0 0 0 32-32V80a8 8 0 0 0-8-8h-32M58 128H47.9a32 32 0 0 1-32-32V80a8 8 0 0 1 8-8h32"/>`,
strategy: `<circle cx="68" cy="188" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="m40 72 40 40m0-40-40 40m136 56 40 40m0-40-40 40M136 80V40h40"/><path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="m136 40 16 16c40 40 8 88-24 96"/>`, strategy: `<circle cx="68" cy="188" r="28" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="m40 72 40 40m0-40-40 40m136 56 40 40m0-40-40 40M136 80V40h40"/><path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="m136 40 16 16c40 40 8 88-24 96"/>`,
'paper-plane-tilt': `<path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="M210.3 35.9 23.9 88.4a8 8 0 0 0-1.2 15l85.6 40.5a7.8 7.8 0 0 1 3.8 3.8l40.5 85.6a8 8 0 0 0 15-1.2l52.5-186.4a7.9 7.9 0 0 0-9.8-9.8Zm-99.4 109.2 45.2-45.2"/>`, "paper-plane-tilt": `<path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="M210.3 35.9 23.9 88.4a8 8 0 0 0-1.2 15l85.6 40.5a7.8 7.8 0 0 1 3.8 3.8l40.5 85.6a8 8 0 0 0 15-1.2l52.5-186.4a7.9 7.9 0 0 0-9.8-9.8Zm-99.4 109.2 45.2-45.2"/>`,
'arrow-right': `<path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="M40 128h176m-72-72 72 72-72 72"/>`, "arrow-right": `<path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="M40 128h176m-72-72 72 72-72 72"/>`,
'arrow-left': `<path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="M216 128H40m72-72-72 72 72 72"/>`, "arrow-left": `<path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="M216 128H40m72-72-72 72 72 72"/>`,
code: `<path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="m64 88-48 40 48 40m128-80 48 40-48 40M160 40 96 216"/>`, code: `<path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="m64 88-48 40 48 40m128-80 48 40-48 40M160 40 96 216"/>`,
'microphone-stage': `<circle cx="168" cy="88" r="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="m213.3 133.3-90.6-90.6M100 156l-12 12m16.8-70.1L28.1 202.5a7.9 7.9 0 0 0 .8 10.4l14.2 14.2a7.9 7.9 0 0 0 10.4.8l104.6-76.7"/>`, "microphone-stage": `<circle cx="168" cy="88" r="64" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="m213.3 133.3-90.6-90.6M100 156l-12 12m16.8-70.1L28.1 202.5a7.9 7.9 0 0 0 .8 10.4l14.2 14.2a7.9 7.9 0 0 0 10.4.8l104.6-76.7"/>`,
'pencil-line': `<path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="M96 216H48a8 8 0 0 1-8-8v-44.7a7.9 7.9 0 0 1 2.3-5.6l120-120a8 8 0 0 1 11.4 0l44.6 44.6a8 8 0 0 1 0 11.4Zm40-152 56 56"/><path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="M216 216H96l-55.5-55.5M164 92l-96 96"/>`, "pencil-line": `<path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="M96 216H48a8 8 0 0 1-8-8v-44.7a7.9 7.9 0 0 1 2.3-5.6l120-120a8 8 0 0 1 11.4 0l44.6 44.6a8 8 0 0 1 0 11.4Zm40-152 56 56"/><path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="M216 216H96l-55.5-55.5M164 92l-96 96"/>`,
'rocket-launch': `<path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="M94.1 184.6c-11.4 33.9-56.6 33.9-56.6 33.9s0-45.2 33.9-56.6m124.5-56.5L128 173.3 82.7 128l67.9-67.9C176.3 34.4 202 34.7 213 36.3a7.8 7.8 0 0 1 6.7 6.7c1.6 11 1.9 36.7-23.8 62.4Z"/><path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="M184.6 116.7v64.6a8 8 0 0 1-2.4 5.6l-32.3 32.4a8 8 0 0 1-13.5-4.1l-8.4-41.9m11.3-101.9H74.7a8 8 0 0 0-5.6 2.4l-32.4 32.3a8 8 0 0 0 4.1 13.5l41.9 8.4"/>`, "rocket-launch": `<path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="M94.1 184.6c-11.4 33.9-56.6 33.9-56.6 33.9s0-45.2 33.9-56.6m124.5-56.5L128 173.3 82.7 128l67.9-67.9C176.3 34.4 202 34.7 213 36.3a7.8 7.8 0 0 1 6.7 6.7c1.6 11 1.9 36.7-23.8 62.4Z"/><path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="M184.6 116.7v64.6a8 8 0 0 1-2.4 5.6l-32.3 32.4a8 8 0 0 1-13.5-4.1l-8.4-41.9m11.3-101.9H74.7a8 8 0 0 0-5.6 2.4l-32.4 32.3a8 8 0 0 0 4.1 13.5l41.9 8.4"/>`,
list: `<path stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="M40 128h176M40 64h176M40 192h176"/>`, list: `<path stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="M40 128h176M40 64h176M40 192h176"/>`,
heart: `<path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="M128 216S28 160 28 92a52 52 0 0 1 100-20h0a52 52 0 0 1 100 20c0 68-100 124-100 124Z"/>`, heart: `<path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="M128 216S28 160 28 92a52 52 0 0 1 100-20h0a52 52 0 0 1 100 20c0 68-100 124-100 124Z"/>`,
'moon-stars': `<path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="M216 112V64m24 24h-48m-24-64v32m16-16h-32m65 113A92 92 0 0 1 103 39h0a92 92 0 1 0 114 114Z"/>`, "moon-stars": `<path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="M216 112V64m24 24h-48m-24-64v32m16-16h-32m65 113A92 92 0 0 1 103 39h0a92 92 0 1 0 114 114Z"/>`,
sun: `<circle cx="128" cy="128" r="60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="M128 36V16M63 63 49 49m-13 79H16m47 65-14 14m79 13v20m65-47 14 14m13-79h20m-47-65 14-14"/>`, sun: `<circle cx="128" cy="128" r="60" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="M128 36V16M63 63 49 49m-13 79H16m47 65-14 14m79 13v20m65-47 14 14m13-79h20m-47-65 14-14"/>`,
'twitter-logo': `<path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="M128 88c0-22 18.5-40.3 40.5-40a40 40 0 0 1 36.2 24H240l-32.3 32.3A127.9 127.9 0 0 1 80 224c-32 0-40-12-40-12s32-12 48-36c0 0-64-32-48-120 0 0 40 40 88 48Z"/>`, "twitter-logo": `<path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="M128 88c0-22 18.5-40.3 40.5-40a40 40 0 0 1 36.2 24H240l-32.3 32.3A127.9 127.9 0 0 1 80 224c-32 0-40-12-40-12s32-12 48-36c0 0-64-32-48-120 0 0 40 40 88 48Z"/>`,
'codepen-logo': `<path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="m232 101-104 59-104-59 100.1-56.8a8.3 8.3 0 0 1 7.8 0Z"/><path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="m232 165-100.1 56.8a8.3 8.3 0 0 1-7.8 0L24 165l104-59Zm0-64v64M24 101v64m104-5v62.8m0-179.6V106"/>`, "codepen-logo": `<path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="m232 101-104 59-104-59 100.1-56.8a8.3 8.3 0 0 1 7.8 0Z"/><path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="m232 165-100.1 56.8a8.3 8.3 0 0 1-7.8 0L24 165l104-59Zm0-64v64M24 101v64m104-5v62.8m0-179.6V106"/>`,
'github-logo': `<g stroke-linecap="round" stroke-linejoin="round"><path fill="none" stroke-width="14.7" d="M55.7 167.2c13.9 1 21.3 13.1 22.2 14.6 4.2 7.2 10.4 9.6 18.3 7.1l1.1-3.4a60.3 60.3 0 0 1-25.8-11.9c-12-10.1-18-25.6-18-46.3"/><path fill="none" stroke-width="16" d="M61.4 205.1a24.5 24.5 0 0 1-3-6.1c-3.2-7.9-7.1-10.6-7.8-11.1l-1-.6c-2.4-1.6-9.5-6.5-7.2-13.9 1.4-4.5 6-7.2 12.3-7.2h.8c4 .3 7.6 1.5 10.7 3.2-9.1-10.1-13.6-24.3-13.6-42.3 0-11.3 3.5-21.7 10.1-30.4A46.7 46.7 0 0 1 65 67.3a8.3 8.3 0 0 1 5-4.7c2.8-.9 13.3-2.7 33.2 9.9a105 105 0 0 1 50.5 0c19.9-12.6 30.4-10.8 33.2-9.9 2.3.7 4.1 2.4 5 4.7 5 12.7 4 23.2 2.6 29.4 6.7 8.7 10 18.9 10 30.4 0 42.6-25.8 54.7-43.6 58.7 1.4 4.1 2.2 8.8 2.2 13.7l-.1 23.4v2.3"/><path fill="none" stroke-width="16" d="M160.9 185.7c1.4 4.1 2.2 8.8 2.2 13.7l-.1 23.4v2.3A98.6 98.6 0 1 0 61.4 205c-1.4-2.1-11.3-17.5-11.8-17.8-2.4-1.6-9.5-6.5-7.2-13.9 1.4-4.5 6-7.2 12.3-7.2h.8c4 .3 7.6 1.5 10.7 3.2-9.1-10.1-13.6-24.3-13.6-42.3 0-11.3 3.5-21.7 10.1-30.4A46.4 46.4 0 0 1 65 67.3a8.3 8.3 0 0 1 5-4.7c2.8-.9 13.3-2.7 33.2 9.9a105 105 0 0 1 50.5 0c19.9-12.6 30.4-10.8 33.2-9.9 2.3.7 4.1 2.4 5 4.7 5 12.7 4 23.2 2.6 29.4 6.7 8.7 10 18.9 10 30.4.1 42.6-25.8 54.7-43.6 58.6z"/><path fill="none" stroke-width="18.7" d="m170.1 203.3 17.3-12 17.2-18.7 9.5-26.6v-27.9l-9.5-27.5" /><path fill="none" stroke-width="22.7" d="m92.1 57.3 23.3-4.6 18.7-1.4 29.3 5.4m-110 32.6-8 16-4 21.4.6 20.3 3.4 13" /><path fill="none" stroke-width="13.3" d="M28.8 133a100 100 0 0 0 66.9 94.4v-8.7c-22.4 1.8-33-11.5-35.6-19.8-3.4-8.6-7.8-11.4-8.5-11.8"/></g>`, "github-logo": `<g stroke-linecap="round" stroke-linejoin="round"><path fill="none" stroke-width="14.7" d="M55.7 167.2c13.9 1 21.3 13.1 22.2 14.6 4.2 7.2 10.4 9.6 18.3 7.1l1.1-3.4a60.3 60.3 0 0 1-25.8-11.9c-12-10.1-18-25.6-18-46.3"/><path fill="none" stroke-width="16" d="M61.4 205.1a24.5 24.5 0 0 1-3-6.1c-3.2-7.9-7.1-10.6-7.8-11.1l-1-.6c-2.4-1.6-9.5-6.5-7.2-13.9 1.4-4.5 6-7.2 12.3-7.2h.8c4 .3 7.6 1.5 10.7 3.2-9.1-10.1-13.6-24.3-13.6-42.3 0-11.3 3.5-21.7 10.1-30.4A46.7 46.7 0 0 1 65 67.3a8.3 8.3 0 0 1 5-4.7c2.8-.9 13.3-2.7 33.2 9.9a105 105 0 0 1 50.5 0c19.9-12.6 30.4-10.8 33.2-9.9 2.3.7 4.1 2.4 5 4.7 5 12.7 4 23.2 2.6 29.4 6.7 8.7 10 18.9 10 30.4 0 42.6-25.8 54.7-43.6 58.7 1.4 4.1 2.2 8.8 2.2 13.7l-.1 23.4v2.3"/><path fill="none" stroke-width="16" d="M160.9 185.7c1.4 4.1 2.2 8.8 2.2 13.7l-.1 23.4v2.3A98.6 98.6 0 1 0 61.4 205c-1.4-2.1-11.3-17.5-11.8-17.8-2.4-1.6-9.5-6.5-7.2-13.9 1.4-4.5 6-7.2 12.3-7.2h.8c4 .3 7.6 1.5 10.7 3.2-9.1-10.1-13.6-24.3-13.6-42.3 0-11.3 3.5-21.7 10.1-30.4A46.4 46.4 0 0 1 65 67.3a8.3 8.3 0 0 1 5-4.7c2.8-.9 13.3-2.7 33.2 9.9a105 105 0 0 1 50.5 0c19.9-12.6 30.4-10.8 33.2-9.9 2.3.7 4.1 2.4 5 4.7 5 12.7 4 23.2 2.6 29.4 6.7 8.7 10 18.9 10 30.4.1 42.6-25.8 54.7-43.6 58.6z"/><path fill="none" stroke-width="18.7" d="m170.1 203.3 17.3-12 17.2-18.7 9.5-26.6v-27.9l-9.5-27.5" /><path fill="none" stroke-width="22.7" d="m92.1 57.3 23.3-4.6 18.7-1.4 29.3 5.4m-110 32.6-8 16-4 21.4.6 20.3 3.4 13" /><path fill="none" stroke-width="13.3" d="M28.8 133a100 100 0 0 0 66.9 94.4v-8.7c-22.4 1.8-33-11.5-35.6-19.8-3.4-8.6-7.8-11.4-8.5-11.8"/></g>`,
'twitch-logo': `<path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="M165 200h-42a8 8 0 0 0-5 2l-46 38v-40H48a8 8 0 0 1-8-8V48a8 8 0 0 1 8-8h160a8 8 0 0 1 8 8v108a8 8 0 0 1-3 6l-43 36a8 8 0 0 1-5 2Zm3-112v48m-48-48v48"/>`, "twitch-logo": `<path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="M165 200h-42a8 8 0 0 0-5 2l-46 38v-40H48a8 8 0 0 1-8-8V48a8 8 0 0 1 8-8h160a8 8 0 0 1 8 8v108a8 8 0 0 1-3 6l-43 36a8 8 0 0 1-5 2Zm3-112v48m-48-48v48"/>`,
'youtube-logo': `<path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="m160 128-48-32v64l48-32z"/><path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="M24 128c0 30 3 47 5 56a16 16 0 0 0 10 11c34 13 89 13 89 13s56 0 89-13a16 16 0 0 0 10-11c2-9 5-26 5-56s-3-47-5-56a16 16 0 0 0-10-11c-33-13-89-13-89-13s-55 0-89 13a16 16 0 0 0-10 11c-2 9-5 26-5 56Z"/>`, "youtube-logo": `<path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="m160 128-48-32v64l48-32z"/><path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="M24 128c0 30 3 47 5 56a16 16 0 0 0 10 11c34 13 89 13 89 13s56 0 89-13a16 16 0 0 0 10-11c2-9 5-26 5-56s-3-47-5-56a16 16 0 0 0-10-11c-33-13-89-13-89-13s-55 0-89 13a16 16 0 0 0-10 11c-2 9-5 26-5 56Z"/>`,
'dribbble-logo': `<circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="M71 205a160 160 0 0 1 137-77l16 1m-36-76a160 160 0 0 1-124 59 165 165 0 0 1-30-3"/><path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="M86 42a161 161 0 0 1 74 177"/>`, "dribbble-logo": `<circle cx="128" cy="128" r="96" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16"/><path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="M71 205a160 160 0 0 1 137-77l16 1m-36-76a160 160 0 0 1-124 59 165 165 0 0 1-30-3"/><path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="M86 42a161 161 0 0 1 74 177"/>`,
'discord-logo': `<circle stroke="none" cx="96" cy="144" r="12"/><circle stroke="none" cx="160" cy="144" r="12"/><path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="M74 80a175 175 0 0 1 54-8 175 175 0 0 1 54 8m0 96a175 175 0 0 1-54 8 175 175 0 0 1-54-8"/><path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="m155 182 12 24a8 8 0 0 0 9 4c25-6 46-16 61-30a8 8 0 0 0 3-8L206 59a8 8 0 0 0-5-5 176 176 0 0 0-30-9 8 8 0 0 0-9 5l-8 24m-53 108-12 24a8 8 0 0 1-9 4c-25-6-46-16-61-30a8 8 0 0 1-3-8L50 59a8 8 0 0 1 5-5 176 176 0 0 1 30-9 8 8 0 0 1 9 5l8 24"/>`, "discord-logo": `<circle stroke="none" cx="96" cy="144" r="12"/><circle stroke="none" cx="160" cy="144" r="12"/><path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="M74 80a175 175 0 0 1 54-8 175 175 0 0 1 54 8m0 96a175 175 0 0 1-54 8 175 175 0 0 1-54-8"/><path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="m155 182 12 24a8 8 0 0 0 9 4c25-6 46-16 61-30a8 8 0 0 0 3-8L206 59a8 8 0 0 0-5-5 176 176 0 0 0-30-9 8 8 0 0 0-9 5l-8 24m-53 108-12 24a8 8 0 0 1-9 4c-25-6-46-16-61-30a8 8 0 0 1-3-8L50 59a8 8 0 0 1 5-5 176 176 0 0 1 30-9 8 8 0 0 1 9 5l8 24"/>`,
'linkedin-logo': `<rect width="184" height="184" x="36" y="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" rx="8"/><path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="M120 112v64m-32-64v64m32-36a28 28 0 0 1 56 0v36"/><circle stroke="none" cx="88" cy="80" r="12"/>`, "linkedin-logo": `<rect width="184" height="184" x="36" y="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" rx="8"/><path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="M120 112v64m-32-64v64m32-36a28 28 0 0 1 56 0v36"/><circle stroke="none" cx="88" cy="80" r="12"/>`,
'instagram-logo': `<circle cx="128" cy="128" r="40" fill="none" stroke-miterlimit="10" stroke-width="16"/><rect width="184" height="184" x="36" y="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" rx="48"/><circle cx="180" cy="76" r="12" stroke="none" />`, "instagram-logo": `<circle cx="128" cy="128" r="40" fill="none" stroke-miterlimit="10" stroke-width="16"/><rect width="184" height="184" x="36" y="36" fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" rx="48"/><circle cx="180" cy="76" r="12" stroke="none" />`,
'tiktok-logo': `<path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="M168 106a96 96 0 0 0 56 18V84a56 56 0 0 1-56-56h-40v128a28 28 0 1 1-40-25V89a68 68 0 1 0 80 67Z"/>`, "tiktok-logo": `<path fill="none" stroke-linecap="round" stroke-linejoin="round" stroke-width="16" d="M168 106a96 96 0 0 0 56 18V84a56 56 0 0 1-56-56h-40v128a28 28 0 1 1-40-25V89a68 68 0 1 0 80 67Z"/>`,
}; };

View file

@ -1,14 +1,14 @@
import { defineCollection, z } from 'astro:content'; import { defineCollection, z } from "astro:content";
export const collections = { export const collections = {
work: defineCollection({ work: defineCollection({
schema: z.object({ schema: z.object({
title: z.string(), title: z.string(),
description: z.string(), description: z.string(),
publishDate: z.coerce.date(), publishDate: z.coerce.date(),
tags: z.array(z.string()), tags: z.array(z.string()),
img: z.string(), img: z.string(),
img_alt: z.string().optional(), img_alt: z.string().optional(),
}), }),
}), }),
}; };

1
src/env.d.ts vendored
View file

@ -1,2 +1,3 @@
// eslint-disable-next-line @typescript-eslint/triple-slash-reference
/// <reference path="../.astro/types.d.ts" /> /// <reference path="../.astro/types.d.ts" />
/// <reference types="astro/client" /> /// <reference types="astro/client" />

View file

@ -3,111 +3,120 @@
// https://docs.astro.build/en/core-concepts/layouts/ // https://docs.astro.build/en/core-concepts/layouts/
// Component Imports // Component Imports
import MainHead from '../components/MainHead.astro'; import MainHead from "../components/MainHead.astro";
import Nav from '../components/Nav.astro'; import Nav from "../components/Nav.astro";
import Footer from '../components/Footer.astro'; import Footer from "../components/Footer.astro";
interface Props { interface Props {
title?: string | undefined; title?: string | undefined;
description?: string | undefined; description?: string | undefined;
} }
const { title, description } = Astro.props; const { title, description } = Astro.props;
--- ---
<html lang="en"> <html lang="en">
<head> <head>
<MainHead title={title} description={description} /> <MainHead title={title} description={description} />
</head> </head>
<body> <body>
<div class="stack backgrounds"> <div class="stack backgrounds">
<Nav /> <Nav />
<slot /> <slot />
<Footer /> <Footer />
</div> </div>
<script> <script>
// Add “loaded” class once the document has completely loaded. // Add “loaded” class once the document has completely loaded.
addEventListener('load', () => document.documentElement.classList.add('loaded')); addEventListener("load", () =>
</script> document.documentElement.classList.add("loaded"),
);
</script>
<style> <style>
:root { :root {
--_placeholder-bg: linear-gradient(transparent, transparent); --_placeholder-bg: linear-gradient(transparent, transparent);
--bg-image-main: url('/assets/backgrounds/bg-main-light-800w.jpg'); --bg-image-main: url("/assets/backgrounds/bg-main-light-800w.jpg");
--bg-image-main-curves: url('/assets/backgrounds/bg-main-light.svg'); --bg-image-main-curves: url("/assets/backgrounds/bg-main-light.svg");
--bg-image-subtle-1: var(--_placeholder-bg); --bg-image-subtle-1: var(--_placeholder-bg);
--bg-image-subtle-2: var(--_placeholder-bg); --bg-image-subtle-2: var(--_placeholder-bg);
--bg-image-footer: var(--_placeholder-bg); --bg-image-footer: var(--_placeholder-bg);
--bg-svg-blend-mode: overlay; --bg-svg-blend-mode: overlay;
--bg-blend-mode: darken; --bg-blend-mode: darken;
--bg-image-aspect-ratio: 2.25; --bg-image-aspect-ratio: 2.25;
--bg-scale: 1.68; --bg-scale: 1.68;
--bg-aspect-ratio: calc(var(--bg-image-aspect-ratio) / var(--bg-scale)); --bg-aspect-ratio: calc(var(--bg-image-aspect-ratio) / var(--bg-scale));
--bg-gradient-size: calc(var(--bg-scale) * 100%); --bg-gradient-size: calc(var(--bg-scale) * 100%);
} }
:root.theme-dark { :root.theme-dark {
--bg-image-main: url('/assets/backgrounds/bg-main-dark-800w.jpg'); --bg-image-main: url("/assets/backgrounds/bg-main-dark-800w.jpg");
--bg-image-main-curves: url('/assets/backgrounds/bg-main-dark.svg'); --bg-image-main-curves: url("/assets/backgrounds/bg-main-dark.svg");
--bg-svg-blend-mode: darken; --bg-svg-blend-mode: darken;
--bg-blend-mode: lighten; --bg-blend-mode: lighten;
} }
/* These backgrounds are displayed below the fold, so we lazy load them /* These backgrounds are displayed below the fold, so we lazy load them once the `.loaded` class has been set. */
once the `.loaded` class has been set. */ :root.loaded {
:root.loaded { --bg-image-subtle-1: url("/assets/backgrounds/bg-subtle-1-light-800w.jpg");
--bg-image-subtle-1: url('/assets/backgrounds/bg-subtle-1-light-800w.jpg'); --bg-image-subtle-2: url("/assets/backgrounds/bg-subtle-2-light-800w.jpg");
--bg-image-subtle-2: url('/assets/backgrounds/bg-subtle-2-light-800w.jpg'); --bg-image-footer: url("/assets/backgrounds/bg-footer-light-800w.jpg");
--bg-image-footer: url('/assets/backgrounds/bg-footer-light-800w.jpg'); }
} :root.loaded.theme-dark {
:root.loaded.theme-dark { --bg-image-subtle-1: url("/assets/backgrounds/bg-subtle-1-dark-800w.jpg");
--bg-image-subtle-1: url('/assets/backgrounds/bg-subtle-1-dark-800w.jpg'); --bg-image-subtle-2: url("/assets/backgrounds/bg-subtle-2-dark-800w.jpg");
--bg-image-subtle-2: url('/assets/backgrounds/bg-subtle-2-dark-800w.jpg'); --bg-image-footer: url("/assets/backgrounds/bg-footer-dark-800w.jpg");
--bg-image-footer: url('/assets/backgrounds/bg-footer-dark-800w.jpg'); }
}
@media (min-width: 50em) { @media (min-width: 50em) {
:root { :root {
--bg-scale: 1; --bg-scale: 1;
--bg-image-main: url('/assets/backgrounds/bg-main-light-1440w.jpg'); --bg-image-main: url("/assets/backgrounds/bg-main-light-1440w.jpg");
} }
:root.theme-dark { :root.theme-dark {
--bg-image-main: url('/assets/backgrounds/bg-main-dark-1440w.jpg'); --bg-image-main: url("/assets/backgrounds/bg-main-dark-1440w.jpg");
} }
:root.loaded { :root.loaded {
--bg-image-subtle-1: url('/assets/backgrounds/bg-subtle-1-light-1440w.jpg'); --bg-image-subtle-1: url("/assets/backgrounds/bg-subtle-1-light-1440w.jpg");
--bg-image-subtle-2: url('/assets/backgrounds/bg-subtle-2-light-1440w.jpg'); --bg-image-subtle-2: url("/assets/backgrounds/bg-subtle-2-light-1440w.jpg");
--bg-image-footer: url('/assets/backgrounds/bg-footer-light-1440w.jpg'); --bg-image-footer: url("/assets/backgrounds/bg-footer-light-1440w.jpg");
} }
:root.loaded.theme-dark { :root.loaded.theme-dark {
--bg-image-subtle-1: url('/assets/backgrounds/bg-subtle-1-dark-1440w.jpg'); --bg-image-subtle-1: url("/assets/backgrounds/bg-subtle-1-dark-1440w.jpg");
--bg-image-subtle-2: url('/assets/backgrounds/bg-subtle-2-dark-1440w.jpg'); --bg-image-subtle-2: url("/assets/backgrounds/bg-subtle-2-dark-1440w.jpg");
--bg-image-footer: url('/assets/backgrounds/bg-footer-dark-1440w.jpg'); --bg-image-footer: url("/assets/backgrounds/bg-footer-dark-1440w.jpg");
} }
} }
.backgrounds { .backgrounds {
min-height: 100%; min-height: 100%;
isolation: isolate; isolation: isolate;
background: background:
/*noise*/ url('/assets/backgrounds/noise.png') top center/220px repeat, /*noise*/
/*footer*/ var(--bg-image-footer) bottom center/var(--bg-gradient-size) no-repeat, url("/assets/backgrounds/noise.png") top center/220px repeat,
/*header1*/ var(--bg-image-main-curves) top center/var(--bg-gradient-size) no-repeat, /*footer*/ var(--bg-image-footer) bottom
/*header2*/ var(--bg-image-main) top center/var(--bg-gradient-size) no-repeat, center/var(--bg-gradient-size) no-repeat,
/*base*/ var(--gray-999); /*header1*/ var(--bg-image-main-curves) top
background-blend-mode: /*noise*/ overlay, /*footer*/ var(--bg-blend-mode), center/var(--bg-gradient-size) no-repeat,
/*header1*/ var(--bg-svg-blend-mode), /*header2*/ normal, /*base*/ normal; /*header2*/ var(--bg-image-main) top center/var(--bg-gradient-size)
} no-repeat,
@media (forced-colors: active) { /*base*/ var(--gray-999);
/* Deactivate custom backgrounds for high contrast users. */ background-blend-mode: /*noise*/
.backgrounds { overlay,
background: none; /*footer*/ var(--bg-blend-mode),
background-blend-mode: none; /*header1*/ var(--bg-svg-blend-mode),
--bg-gradient-size: none; /*header2*/ normal,
} /*base*/ normal;
} }
</style> @media (forced-colors: active) {
</body> /* Deactivate custom backgrounds for high contrast users. */
.backgrounds {
background: none;
background-blend-mode: none;
--bg-gradient-size: none;
}
}
</style>
</body>
</html> </html>

View file

@ -1,8 +1,25 @@
/** @type {import('tailwindcss').Config} */ /** @type {import('tailwindcss').Config} */
const defaultTheme = require("tailwindcss/defaultTheme");
module.exports = { module.exports = {
content: ['./src/**/*.{astro,html,js,jsx,md,mdx,svelte,ts,tsx,vue}'], content: ["./src/**/*.{astro,html,js,jsx,md,mdx,svelte,ts,tsx,vue}"],
theme: { plugins: [require("@tailwindcss/typography")],
extend: {}, theme: {
}, extend: {
plugins: [], colors: {
primary: "var(--aw-color-primary)",
secondary: "var(--aw-color-secondary)",
accent: "var(--aw-color-accent)",
default: "var(--aw-color-text-default)",
muted: "var(--aw-color-text-muted)",
},
fontFamily: {
sans: ["var(--aw-font-sans)", ...defaultTheme.fontFamily.sans],
serif: ["var(--aw-font-serif)", ...defaultTheme.fontFamily.serif],
heading: ["var(--aw-font-heading)", ...defaultTheme.fontFamily.sans],
},
},
},
darkMode: "class",
}; };

View file

@ -1,26 +1,7 @@
{ {
"compilerOptions": { "extends": "astro/tsconfigs/base",
// Enable top-level await, and other modern ESM features. "compilerOptions": {
"target": "ESNext", "jsx": "react-jsx",
"module": "ESNext", "jsxImportSource": "react"
// Enable node-style module resolution, for things like npm package imports. }
"moduleResolution": "node",
// Enable JSON imports.
"resolveJsonModule": true,
// Enable stricter transpilation for better output.
"isolatedModules": true,
// Add type definitions for our Vite runtime.
// "types": ["vite/client"],
// Set up path mapping to be understood similar to vite aliases
"baseUrl": ".",
// "paths": {
// "@nz-components/*": ["src/components/*"],
// "@nz-layouts/*": ["src/layouts/*"],
// "@nz-pages/*": ["src/pages/*"],
// "@nz-scripts/*": ["src/scripts/*"],
// "@nz-styles/*": ["src/styles/*"]
// },
// "extends": "astro/tsconfigs/strict",
"strictNullChecks": true
}
} }

4869
yarn.lock

File diff suppressed because it is too large Load diff