From a519150e9f70aedb7c999fff6b1e197ce5ba1584 Mon Sep 17 00:00:00 2001 From: z0x Date: Tue, 14 Jan 2025 22:41:22 -0500 Subject: [PATCH] refactor(all): biomejs --- .vscode/launch.json | 18 +- astro.config.ts | 43 +- biome.json | 43 ++ bun.lockb | Bin 229876 -> 233444 bytes dist/artix-install-guide/index.html | 2 +- package.json | 58 +-- src/components/ArrowCard.astro | 4 +- src/components/BackToTop.astro | 4 - src/components/Callout.astro | 8 +- src/components/Container.astro | 4 - src/components/Footer.astro | 2 +- src/components/FormattedDate.astro | 2 +- src/components/Head.astro | 6 +- src/components/Link.astro | 18 +- src/components/TableOfContents.astro | 30 +- src/components/TableOfContentsHeading.astro | 2 +- src/consts.ts | 7 +- src/content.config.ts | 16 +- src/layouts/Layout.astro | 6 +- src/lib/utils.ts | 12 +- src/pages/404.astro | 2 +- src/pages/[...id].astro | 48 +- src/pages/index.astro | 26 +- src/pages/rss.xml.js | 33 +- src/styles/callout.css | 471 ++++++++++---------- src/styles/global.css | 114 ++--- src/types.ts | 8 +- tailwind.config.mjs | 22 +- tsconfig.json | 20 +- 29 files changed, 540 insertions(+), 489 deletions(-) create mode 100644 biome.json diff --git a/.vscode/launch.json b/.vscode/launch.json index d642209..230708d 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -1,11 +1,11 @@ { - "version": "0.2.0", - "configurations": [ - { - "command": "./node_modules/.bin/astro dev", - "name": "Development server", - "request": "launch", - "type": "node-terminal" - } - ] + "version": "0.2.0", + "configurations": [ + { + "command": "./node_modules/.bin/astro dev", + "name": "Development server", + "request": "launch", + "type": "node-terminal" + } + ] } diff --git a/astro.config.ts b/astro.config.ts index bc5be0b..0c14c5c 100644 --- a/astro.config.ts +++ b/astro.config.ts @@ -1,28 +1,25 @@ -import { defineConfig } from "astro/config"; +import sitemap from "@astrojs/sitemap"; import tailwind from "@astrojs/tailwind"; import remarkCallout from "@r4ai/remark-callout"; -import sitemap from "@astrojs/sitemap"; import umami from "@yeskunall/astro-umami"; - +import { defineConfig } from "astro/config"; export default defineConfig({ - site: "https://blog.z0x.ca", - integrations: [ - tailwind({ - nesting: true, - }), - umami({ - id: "b691181e-cad7-4c23-b16a-709872a0a7ab", - endpointUrl: "https://umami.z0x.ca", - }), - sitemap(), - ], - markdown: { - shikiConfig: { - theme: "css-variables", - }, - remarkPlugins: [ - remarkCallout, - ], - } -}); \ No newline at end of file + site: "https://blog.z0x.ca", + integrations: [ + tailwind({ + nesting: true, + }), + umami({ + id: "b691181e-cad7-4c23-b16a-709872a0a7ab", + endpointUrl: "https://umami.z0x.ca", + }), + sitemap(), + ], + markdown: { + shikiConfig: { + theme: "css-variables", + }, + remarkPlugins: [remarkCallout], + }, +}); diff --git a/biome.json b/biome.json new file mode 100644 index 0000000..427986d --- /dev/null +++ b/biome.json @@ -0,0 +1,43 @@ +{ + "$schema": "https://biomejs.dev/schemas/1.9.4/schema.json", + "vcs": { + "enabled": false, + "clientKind": "git", + "useIgnoreFile": false + }, + "files": { + "ignoreUnknown": false, + "ignore": ["node_modules", "dist"] + }, + "formatter": { + "enabled": true, + "indentStyle": "tab" + }, + "organizeImports": { + "enabled": true + }, + "linter": { + "enabled": true, + "rules": { + "recommended": true + } + }, + "javascript": { + "formatter": { + "quoteStyle": "double" + } + }, + "overrides": [ + { + "include": ["*.astro"], + "linter": { + "rules": { + "style": { + "useConst": "off", + "useImportType": "off" + } + } + } + } + ] +} diff --git a/bun.lockb b/bun.lockb index a083ab20a22bf87469dc3ef12d2ac1bb21d54cef..a331ca4350149f04961cf40f5225d87c9f6f77ee 100755 GIT binary patch delta 34509 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
+
10 min read

Artix Linux install guide

Table of Contents

Introduction

diff --git a/package.json b/package.json index fc232d0..8fd26ed 100644 --- a/package.json +++ b/package.json @@ -1,30 +1,32 @@ { - "name": "blog.z0x.ca", - "type": "module", - "version": "1.0.0", - "scripts": { - "dev": "astro dev", - "start": "astro dev", - "build": "astro check && astro build", - "preview": "astro preview", - "astro": "astro" - }, - "dependencies": { - "@astrojs/check": "^0.9.4", - "@astrojs/rss": "^4.0.11", - "@astrojs/sitemap": "^3.2.1", - "@astrojs/tailwind": "^5.1.4", - "@fontsource/geist-mono": "^5.1.1", - "@fontsource/geist-sans": "^5.1.0", - "@r4ai/remark-callout": "^0.6.2", - "@yeskunall/astro-umami": "^0.0.3", - "astro": "^5.1.5", - "clsx": "^2.1.1", - "tailwind-merge": "^2.6.0", - "tailwindcss": "^3.4.17", - "typescript": "^5.7.3" - }, - "devDependencies": { - "@tailwindcss/typography": "^0.5.16" - } + "name": "blog.z0x.ca", + "type": "module", + "version": "1.0.0", + "scripts": { + "dev": "astro dev", + "start": "astro dev", + "build": "astro check && astro build", + "preview": "astro preview", + "astro": "astro" + }, + "dependencies": { + "@astrojs/check": "^0.9.4", + "@astrojs/rss": "^4.0.11", + "@astrojs/sitemap": "^3.2.1", + "@astrojs/tailwind": "^5.1.4", + "@fontsource/geist-mono": "^5.1.1", + "@fontsource/geist-sans": "^5.1.0", + "@r4ai/remark-callout": "^0.6.2", + "@yeskunall/astro-umami": "^0.0.3", + "astro": "^5.1.5", + "clsx": "^2.1.1", + "tailwind-merge": "^2.6.0", + "tailwindcss": "^3.4.17", + "typescript": "^5.7.3" + }, + "devDependencies": { + "@biomejs/biome": "1.9.4", + "@tailwindcss/typography": "^0.5.16" + }, + "trustedDependencies": ["@biomejs/biome"] } diff --git a/src/components/ArrowCard.astro b/src/components/ArrowCard.astro index 9574dc9..7bd7db5 100644 --- a/src/components/ArrowCard.astro +++ b/src/components/ArrowCard.astro @@ -2,11 +2,11 @@ import type { CollectionEntry } from "astro:content"; type Props = { - entry: CollectionEntry<"blog">; + entry: CollectionEntry<"blog">; }; const { entry } = Astro.props as { - entry: CollectionEntry<"blog">; + entry: CollectionEntry<"blog">; }; --- diff --git a/src/components/BackToTop.astro b/src/components/BackToTop.astro index 829f124..ba20fd2 100644 --- a/src/components/BackToTop.astro +++ b/src/components/BackToTop.astro @@ -1,7 +1,3 @@ ---- - ---- -
diff --git a/src/components/Footer.astro b/src/components/Footer.astro index 239f038..8bc26f1 100644 --- a/src/components/Footer.astro +++ b/src/components/Footer.astro @@ -1,6 +1,6 @@ --- -import Container from "@components/Container.astro"; import BackToTop from "@components/BackToTop.astro"; +import Container from "@components/Container.astro"; import { SITE } from "@consts"; --- diff --git a/src/components/FormattedDate.astro b/src/components/FormattedDate.astro index ee266ae..2c43400 100644 --- a/src/components/FormattedDate.astro +++ b/src/components/FormattedDate.astro @@ -1,6 +1,6 @@ --- interface Props { - date: Date; + date: Date; } const { date } = Astro.props; diff --git a/src/components/Head.astro b/src/components/Head.astro index 8796e5c..0c30419 100644 --- a/src/components/Head.astro +++ b/src/components/Head.astro @@ -24,9 +24,9 @@ import "@fontsource/geist-mono/800.css"; import "@fontsource/geist-mono/900.css"; interface Props { - title: string; - description: string; - image?: string; + title: string; + description: string; + image?: string; } const { title, description, image = "/blog-placeholder-1.jpg" } = Astro.props; diff --git a/src/components/Link.astro b/src/components/Link.astro index d4ed5e8..414e5a3 100644 --- a/src/components/Link.astro +++ b/src/components/Link.astro @@ -2,18 +2,18 @@ import { cn } from "@lib/utils"; type Props = { - href: string; - external?: boolean; - underline?: boolean; - group?: boolean; + href: string; + external?: boolean; + underline?: boolean; + group?: boolean; }; const { - href, - external, - underline = true, - group = false, - ...rest + href, + external, + underline = true, + group = false, + ...rest } = Astro.props; --- diff --git a/src/components/TableOfContents.astro b/src/components/TableOfContents.astro index cd36334..9578fb2 100644 --- a/src/components/TableOfContents.astro +++ b/src/components/TableOfContents.astro @@ -5,24 +5,24 @@ const { headings } = Astro.props; const toc = buildToc(headings); export interface Heading { - depth: number; - id: string; - text: string; + depth: number; + id: string; + text: string; } function buildToc(headings: Heading[]) { - const toc: Heading[] = []; - const parentHeadings = new Map(); - headings.forEach((h) => { - const heading = { ...h, subheadings: [] }; - parentHeadings.set(heading.depth, heading); - if (heading.depth === 2) { - toc.push(heading); - } else { - parentHeadings.get(heading.depth - 1).subheadings.push(heading); - } - }); - return toc; + const toc: Heading[] = []; + const parentHeadings = new Map(); + headings.forEach((h) => { + const heading = { ...h, subheadings: [] }; + parentHeadings.set(heading.depth, heading); + if (heading.depth === 2) { + toc.push(heading); + } else { + parentHeadings.get(heading.depth - 1).subheadings.push(heading); + } + }); + return toc; } --- diff --git a/src/components/TableOfContentsHeading.astro b/src/components/TableOfContentsHeading.astro index 1b8931f..bb4a591 100644 --- a/src/components/TableOfContentsHeading.astro +++ b/src/components/TableOfContentsHeading.astro @@ -1,6 +1,6 @@ --- -import type { Heading } from "./TableOfContents.astro"; import Link from "./Link.astro"; +import type { Heading } from "./TableOfContents.astro"; const { heading } = Astro.props; --- diff --git a/src/consts.ts b/src/consts.ts index 60718a7..b6f3379 100644 --- a/src/consts.ts +++ b/src/consts.ts @@ -1,9 +1,8 @@ import type { Metadata, Site } from "@types"; export const SITE: Site = { - TITLE: "z0x", - DESCRIPTION: "z0x's blog", + TITLE: "z0x", + DESCRIPTION: "z0x's blog", }; export const HOME: Metadata = { - TITLE: "blog", + TITLE: "blog", }; - diff --git a/src/content.config.ts b/src/content.config.ts index 6163f73..1a99685 100644 --- a/src/content.config.ts +++ b/src/content.config.ts @@ -1,14 +1,14 @@ import { defineCollection, z } from "astro:content"; -import { glob } from 'astro/loaders'; +import { glob } from "astro/loaders"; const blog = defineCollection({ - loader: glob({ pattern: '**/*.{md,mdx}', base: "./src/content" }), - schema: z.object({ - title: z.string(), - description: z.string(), - date: z.coerce.date(), - draft: z.boolean().optional(), - }), + loader: glob({ pattern: "**/*.{md,mdx}", base: "./src/content" }), + schema: z.object({ + title: z.string(), + description: z.string(), + date: z.coerce.date(), + draft: z.boolean().optional(), + }), }); export const collections = { blog }; diff --git a/src/layouts/Layout.astro b/src/layouts/Layout.astro index a4d8bcc..a5cdc3e 100644 --- a/src/layouts/Layout.astro +++ b/src/layouts/Layout.astro @@ -1,11 +1,11 @@ --- -import Head from "@components/Head.astro"; import Footer from "@components/Footer.astro"; +import Head from "@components/Head.astro"; import { SITE } from "@consts"; type Props = { - title: string; - description: string; + title: string; + description: string; }; const { title, description } = Astro.props; diff --git a/src/lib/utils.ts b/src/lib/utils.ts index 294b335..39246bf 100644 --- a/src/lib/utils.ts +++ b/src/lib/utils.ts @@ -1,13 +1,13 @@ -import { clsx, type ClassValue } from "clsx"; +import { type ClassValue, clsx } from "clsx"; import { twMerge } from "tailwind-merge"; export function cn(...inputs: ClassValue[]) { - return twMerge(clsx(inputs)); + return twMerge(clsx(inputs)); } export function readingTime(html: string) { - const textOnly = html.replace(/<[^>]+>/g, ""); - const wordCount = textOnly.split(/\s+/).length; - const readingTimeMinutes = (wordCount / 200 + 1).toFixed(); - return `${readingTimeMinutes} min read`; + const textOnly = html.replace(/<[^>]+>/g, ""); + const wordCount = textOnly.split(/\s+/).length; + const readingTimeMinutes = (wordCount / 200 + 1).toFixed(); + return `${readingTimeMinutes} min read`; } diff --git a/src/pages/404.astro b/src/pages/404.astro index 04dd251..faa21f4 100644 --- a/src/pages/404.astro +++ b/src/pages/404.astro @@ -1,7 +1,7 @@ --- -import Layout from "@layouts/Layout.astro"; import Container from "@components/Container.astro"; import { SITE } from "@consts"; +import Layout from "@layouts/Layout.astro"; --- diff --git a/src/pages/[...id].astro b/src/pages/[...id].astro index 4ed3241..6a86ae2 100644 --- a/src/pages/[...id].astro +++ b/src/pages/[...id].astro @@ -1,41 +1,45 @@ --- import { type CollectionEntry, getCollection, render } from "astro:content"; -import Layout from "@layouts/Layout.astro"; import Container from "@components/Container.astro"; import FormattedDate from "@components/FormattedDate.astro"; -import { readingTime } from "@lib/utils"; import PostNavigation from "@components/PostNavigation.astro"; import TableOfContents from "@components/TableOfContents.astro"; +import Layout from "@layouts/Layout.astro"; +import { readingTime } from "@lib/utils"; export async function getStaticPaths() { - const posts = (await getCollection("blog")).filter((post) => !post.data.draft).sort((a, b) => b.data.date.valueOf() - a.data.date.valueOf()); - return posts.map((post) => ({ - params: { id: post.id }, - props: post, - })); + const posts = (await getCollection("blog")) + .filter((post) => !post.data.draft) + .sort((a, b) => b.data.date.valueOf() - a.data.date.valueOf()); + return posts.map((post) => ({ + params: { id: post.id }, + props: post, + })); } type Props = CollectionEntry<"blog">; -const posts = (await getCollection("blog")).filter((post) => !post.data.draft).sort((a, b) => b.data.date.valueOf() - a.data.date.valueOf()); +const posts = (await getCollection("blog")) + .filter((post) => !post.data.draft) + .sort((a, b) => b.data.date.valueOf() - a.data.date.valueOf()); function getNextPost() { - let postIndex; - for (const post of posts) { - if (post.id === Astro.params.id) { - postIndex = posts.indexOf(post); - return posts[postIndex + 1]; - } - } + let postIndex; + for (const post of posts) { + if (post.id === Astro.params.id) { + postIndex = posts.indexOf(post); + return posts[postIndex + 1]; + } + } } function getPrevPost() { - let postIndex; - for (const post of posts) { - if (post.id === Astro.params.id) { - postIndex = posts.indexOf(post); - return posts[postIndex - 1]; - } - } + let postIndex; + for (const post of posts) { + if (post.id === Astro.params.id) { + postIndex = posts.indexOf(post); + return posts[postIndex - 1]; + } + } } const nextPost = getNextPost(); diff --git a/src/pages/index.astro b/src/pages/index.astro index 2061916..2a8c6ae 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -1,27 +1,31 @@ --- import { type CollectionEntry, getCollection } from "astro:content"; -import Layout from "@layouts/Layout.astro"; -import Container from "@components/Container.astro"; import ArrowCard from "@components/ArrowCard.astro"; +import Container from "@components/Container.astro"; import { SITE } from "@consts"; import { HOME } from "@consts"; +import Layout from "@layouts/Layout.astro"; -const data = (await getCollection("blog")).filter((post) => !post.data.draft).sort((a, b) => b.data.date.valueOf() - a.data.date.valueOf()); +const data = (await getCollection("blog")) + .filter((post) => !post.data.draft) + .sort((a, b) => b.data.date.valueOf() - a.data.date.valueOf()); type Acc = { - [year: string]: CollectionEntry<"blog">[]; + [year: string]: CollectionEntry<"blog">[]; }; const posts = data.reduce((acc: Acc, post) => { - const year = post.data.date.getFullYear().toString(); - if (!acc[year]) { - acc[year] = []; - } - acc[year].push(post); - return acc; + const year = post.data.date.getFullYear().toString(); + if (!acc[year]) { + acc[year] = []; + } + acc[year].push(post); + return acc; }, {}); -const years = Object.keys(posts).sort((a, b) => parseInt(b) - parseInt(a)); +const years = Object.keys(posts).sort( + (a, b) => Number.parseInt(b) - Number.parseInt(a), +); --- diff --git a/src/pages/rss.xml.js b/src/pages/rss.xml.js index abd5110..7b21164 100644 --- a/src/pages/rss.xml.js +++ b/src/pages/rss.xml.js @@ -1,24 +1,23 @@ +import { getCollection } from "astro:content"; import rss from "@astrojs/rss"; import { SITE } from "@consts"; -import { getCollection } from "astro:content"; export async function GET(context) { - const blog = (await getCollection("blog")).filter((post) => !post.data.draft); + const blog = (await getCollection("blog")).filter((post) => !post.data.draft); + const items = [...blog].sort( + (a, b) => new Date(b.data.date).valueOf() - new Date(a.data.date).valueOf(), + ); - const items = [...blog].sort( - (a, b) => new Date(b.data.date).valueOf() - new Date(a.data.date).valueOf(), - ); - - return rss({ - title: SITE.TITLE, - description: SITE.DESCRIPTION, - site: context.site, - items: items.map((item) => ({ - title: item.data.title, - description: item.data.description, - pubDate: item.data.date, - link: `/${item.id}/`, - })), - }); + return rss({ + title: SITE.TITLE, + description: SITE.DESCRIPTION, + site: context.site, + items: items.map((item) => ({ + title: item.data.title, + description: item.data.description, + pubDate: item.data.date, + link: `/${item.id}/`, + })), + }); } diff --git a/src/styles/callout.css b/src/styles/callout.css index 98cfacb..5529635 100644 --- a/src/styles/callout.css +++ b/src/styles/callout.css @@ -1,384 +1,395 @@ [data-callout] { - & { - @apply my-6 space-y-2 rounded-lg border border-blue-600/20 bg-blue-400/20 p-4 pb-5 dark:border-blue-800/20 dark:bg-blue-600/10; - } + & { + @apply my-6 space-y-2 rounded-lg border border-blue-600/20 bg-blue-400/20 p-4 pb-5 dark:border-blue-800/20 dark:bg-blue-600/10; + } - & > [data-callout-title] { - & { - @apply flex flex-row items-start gap-2 p-0 font-bold text-blue-500; - } + & > [data-callout-title] { + & { + @apply flex flex-row items-start gap-2 p-0 font-bold text-blue-500; + } - &:not:only-child { - @apply mb-2; - } + &:not:only-child { + @apply mb-2; + } - &:empty::after { - content: "Note"; - } + &:empty::after { + content: "Note"; + } - &::before { - @apply mt-1 block h-5 w-5 bg-current content-[""]; - mask-repeat: no-repeat; - mask-size: cover; + &::before { + @apply mt-1 block h-5 w-5 bg-current content-[""]; + mask-repeat: no-repeat; + mask-size: cover; - /* lucide-pencil */ - mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiIgZD0iTTE3IDNhMi44NSAyLjgzIDAgMSAxIDQgNEw3LjUgMjAuNUwyIDIybDEuNS01LjVabS0yIDJsNCA0Ii8+PC9zdmc+"); - } - } + /* lucide-pencil */ + mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiIgZD0iTTE3IDNhMi44NSAyLjgzIDAgMSAxIDQgNEw3LjUgMjAuNUwyIDIybDEuNS01LjVabS0yIDJsNCA0Ii8+PC9zdmc+"); + } + } - & > [data-callout-body] { - & { - @apply space-y-2; - } + & > [data-callout-body] { + & { + @apply space-y-2; + } - & > * { - @apply m-0; - } - } + & > * { + @apply m-0; + } + } } details[data-callout] > summary[data-callout-title] { - & { - @apply cursor-pointer; - } + & { + @apply cursor-pointer; + } - &::after { - @apply w-full bg-right bg-no-repeat; - content: ""; + &::after { + @apply w-full bg-right bg-no-repeat; + content: ""; - /* lucide:chevron-right */ - background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzg4ODg4OCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjIiIGQ9Im05IDE4bDYtNmwtNi02Ii8+PC9zdmc+"); - background-size: 1.5rem; - } + /* lucide:chevron-right */ + background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzg4ODg4OCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjIiIGQ9Im05IDE4bDYtNmwtNi02Ii8+PC9zdmc+"); + background-size: 1.5rem; + } - &:not(:empty)::after { - @apply my-auto ml-auto h-6 w-6; - } + &:not(:empty)::after { + @apply my-auto ml-auto h-6 w-6; + } } details[data-callout][open] > summary[data-callout-title]::after { - /* lucide:chevron-down */ - background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzg4ODg4OCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjIiIGQ9Im02IDlsNiA2bDYtNiIvPjwvc3ZnPg=="); + /* lucide:chevron-down */ + background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzg4ODg4OCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjIiIGQ9Im02IDlsNiA2bDYtNiIvPjwvc3ZnPg=="); } [data-callout][data-callout-type="info"] { - & { - @apply border-blue-600/20 bg-blue-400/20 dark:border-blue-800/20 dark:bg-blue-600/10; - } + & { + @apply border-blue-600/20 bg-blue-400/20 dark:border-blue-800/20 dark:bg-blue-600/10; + } - & > [data-callout-title] { - & { - @apply text-blue-500; - } + & > [data-callout-title] { + & { + @apply text-blue-500; + } - &:empty::after { - content: "Info"; - } + &:empty::after { + content: "Info"; + } - &::before { - /* lucide:info */ - mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxnIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzg4ODg4OCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjIiPjxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEwIi8+PHBhdGggZD0iTTEyIDE2di00bTAtNGguMDEiLz48L2c+PC9zdmc+"); - } - } + &::before { + /* lucide:info */ + mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxnIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzg4ODg4OCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjIiPjxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEwIi8+PHBhdGggZD0iTTEyIDE2di00bTAtNGguMDEiLz48L2c+PC9zdmc+"); + } + } } [data-callout][data-callout-type="todo"] { - & { - @apply border-blue-600/20 bg-blue-400/20 dark:border-blue-800/20 dark:bg-blue-600/10; - } + & { + @apply border-blue-600/20 bg-blue-400/20 dark:border-blue-800/20 dark:bg-blue-600/10; + } - & > [data-callout-title] { - & { - @apply text-blue-500; - } + & > [data-callout-title] { + & { + @apply text-blue-500; + } - &:empty::after { - content: "ToDo"; - } + &:empty::after { + content: "ToDo"; + } - &::before { - /* lucide:circle-check-big */ - mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxnIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzg4ODg4OCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjIiPjxwYXRoIGQ9Ik0yMiAxMS4wOFYxMmExMCAxMCAwIDEgMS01LjkzLTkuMTQiLz48cGF0aCBkPSJtOSAxMWwzIDNMMjIgNCIvPjwvZz48L3N2Zz4="); - } - } + &::before { + /* lucide:circle-check-big */ + mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxnIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzg4ODg4OCIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbGluZWpvaW49InJvdW5kIiBzdHJva2Utd2lkdGg9IjIiPjxwYXRoIGQ9Ik0yMiAxMS4wOFYxMmExMCAxMCAwIDEgMS01LjkzLTkuMTQiLz48cGF0aCBkPSJtOSAxMWwzIDNMMjIgNCIvPjwvZz48L3N2Zz4="); + } + } } [data-callout][data-callout-type="abstract"], [data-callout][data-callout-type="summary"], [data-callout][data-callout-type="tldr"] { - & { - @apply border-cyan-600/20 bg-cyan-400/20 dark:border-cyan-800/20 dark:bg-cyan-600/10; - } + & { + @apply border-cyan-600/20 bg-cyan-400/20 dark:border-cyan-800/20 dark:bg-cyan-600/10; + } - & > [data-callout-title] { - & { - @apply text-cyan-500; - } + & > [data-callout-title] { + & { + @apply text-cyan-500; + } - &::before { - /* lucide:clipboard-list */ - mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxnIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiI+PHJlY3Qgd2lkdGg9IjgiIGhlaWdodD0iNCIgeD0iOCIgeT0iMiIgcng9IjEiIHJ5PSIxIi8+PHBhdGggZD0iTTE2IDRoMmEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgybTQgN2g0bS00IDVoNG0tOC01aC4wMU04IDE2aC4wMSIvPjwvZz48L3N2Zz4="); - } - } + &::before { + /* lucide:clipboard-list */ + mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxnIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiI+PHJlY3Qgd2lkdGg9IjgiIGhlaWdodD0iNCIgeD0iOCIgeT0iMiIgcng9IjEiIHJ5PSIxIi8+PHBhdGggZD0iTTE2IDRoMmEyIDIgMCAwIDEgMiAydjE0YTIgMiAwIDAgMS0yIDJINmEyIDIgMCAwIDEtMi0yVjZhMiAyIDAgMCAxIDItMmgybTQgN2g0bS00IDVoNG0tOC01aC4wMU04IDE2aC4wMSIvPjwvZz48L3N2Zz4="); + } + } } -[data-callout][data-callout-type="abstract"] > [data-callout-title]:empty::after { - content: "Abstract"; +[data-callout][data-callout-type="abstract"] + > [data-callout-title]:empty::after { + content: "Abstract"; } -[data-callout][data-callout-type="summary"] > [data-callout-title]:empty::after { - content: "Summary"; +[data-callout][data-callout-type="summary"] + > [data-callout-title]:empty::after { + content: "Summary"; } [data-callout][data-callout-type="tldr"] > [data-callout-title]:empty::after { - content: "TL;DR"; + content: "TL;DR"; } [data-callout][data-callout-type="tip"], [data-callout][data-callout-type="hint"], [data-callout][data-callout-type="important"] { - & { - @apply border-cyan-600/20 bg-cyan-400/20 dark:border-cyan-800/20 dark:bg-cyan-600/10; - } + & { + @apply border-cyan-600/20 bg-cyan-400/20 dark:border-cyan-800/20 dark:bg-cyan-600/10; + } - & > [data-callout-title] { - & { - @apply text-cyan-500; - } + & > [data-callout-title] { + & { + @apply text-cyan-500; + } - &::before { - /* lucide:flame */ - mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiIgZD0iTTguNSAxNC41QTIuNSAyLjUgMCAwIDAgMTEgMTJjMC0xLjM4LS41LTItMS0zYy0xLjA3Mi0yLjE0My0uMjI0LTQuMDU0IDItNmMuNSAyLjUgMiA0LjkgNCA2LjVjMiAxLjYgMyAzLjUgMyA1LjVhNyA3IDAgMSAxLTE0IDBjMC0xLjE1My40MzMtMi4yOTQgMS0zYTIuNSAyLjUgMCAwIDAgMi41IDIuNSIvPjwvc3ZnPg=="); - } - } + &::before { + /* lucide:flame */ + mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiIgZD0iTTguNSAxNC41QTIuNSAyLjUgMCAwIDAgMTEgMTJjMC0xLjM4LS41LTItMS0zYy0xLjA3Mi0yLjE0My0uMjI0LTQuMDU0IDItNmMuNSAyLjUgMiA0LjkgNCA2LjVjMiAxLjYgMyAzLjUgMyA1LjVhNyA3IDAgMSAxLTE0IDBjMC0xLjE1My40MzMtMi4yOTQgMS0zYTIuNSAyLjUgMCAwIDAgMi41IDIuNSIvPjwvc3ZnPg=="); + } + } } [data-callout][data-callout-type="tip"] > [data-callout-title]:empty::after { - content: "Tip"; + content: "Tip"; } [data-callout][data-callout-type="hint"] > [data-callout-title]:empty::after { - content: "Hint"; + content: "Hint"; } -[data-callout][data-callout-type="important"] > [data-callout-title]:empty::after { - content: "Important"; +[data-callout][data-callout-type="important"] + > [data-callout-title]:empty::after { + content: "Important"; } [data-callout][data-callout-type="success"], [data-callout][data-callout-type="check"], [data-callout][data-callout-type="done"] { - & { - @apply border-green-600/20 bg-green-400/20 dark:border-green-800/20 dark:bg-green-600/10; - } + & { + @apply border-green-600/20 bg-green-400/20 dark:border-green-800/20 dark:bg-green-600/10; + } - & > [data-callout-title] { - & { - @apply text-green-500; - } + & > [data-callout-title] { + & { + @apply text-green-500; + } - &::before { - /* lucide:check */ - mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiIgZD0iTTIwIDZMOSAxN2wtNS01Ii8+PC9zdmc+"); - } - } + &::before { + /* lucide:check */ + mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiIgZD0iTTIwIDZMOSAxN2wtNS01Ii8+PC9zdmc+"); + } + } } -[data-callout][data-callout-type="success"] > [data-callout-title]:empty::after { - content: "Success"; +[data-callout][data-callout-type="success"] + > [data-callout-title]:empty::after { + content: "Success"; } [data-callout][data-callout-type="check"] > [data-callout-title]:empty::after { - content: "Check"; + content: "Check"; } [data-callout][data-callout-type="done"] > [data-callout-title]:empty::after { - content: "Done"; + content: "Done"; } [data-callout][data-callout-type="question"], [data-callout][data-callout-type="help"], [data-callout][data-callout-type="faq"] { - & { - @apply border-orange-600/20 bg-orange-400/20 dark:border-orange-800/20 dark:bg-orange-600/10; - } + & { + @apply border-orange-600/20 bg-orange-400/20 dark:border-orange-800/20 dark:bg-orange-600/10; + } - & > [data-callout-title] { - & { - @apply text-orange-500; - } + & > [data-callout-title] { + & { + @apply text-orange-500; + } - &::before { - /* lucide:circle-help */ - mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxnIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiI+PGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMTAiLz48cGF0aCBkPSJNOS4wOSA5YTMgMyAwIDAgMSA1LjgzIDFjMCAyLTMgMy0zIDNtLjA4IDRoLjAxIi8+PC9nPjwvc3ZnPg=="); - } - } + &::before { + /* lucide:circle-help */ + mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxnIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiI+PGNpcmNsZSBjeD0iMTIiIGN5PSIxMiIgcj0iMTAiLz48cGF0aCBkPSJNOS4wOSA5YTMgMyAwIDAgMSA1LjgzIDFjMCAyLTMgMy0zIDNtLjA4IDRoLjAxIi8+PC9nPjwvc3ZnPg=="); + } + } } -[data-callout][data-callout-type="question"] > [data-callout-title]:empty::after { - content: "Question"; +[data-callout][data-callout-type="question"] + > [data-callout-title]:empty::after { + content: "Question"; } [data-callout][data-callout-type="help"] > [data-callout-title]:empty::after { - content: "Help"; + content: "Help"; } [data-callout][data-callout-type="faq"] > [data-callout-title]:empty::after { - content: "FAQ"; + content: "FAQ"; } [data-callout][data-callout-type="warning"], [data-callout][data-callout-type="caution"], [data-callout][data-callout-type="attention"] { - & { - @apply border-orange-600/20 bg-orange-400/20 dark:border-orange-800/20 dark:bg-orange-600/10; - } + & { + @apply border-orange-600/20 bg-orange-400/20 dark:border-orange-800/20 dark:bg-orange-600/10; + } - & > [data-callout-title] { - & { - @apply text-orange-500; - } + & > [data-callout-title] { + & { + @apply text-orange-500; + } - &::before { - /* lucide:triangle-alert */ - mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiIgZD0ibTIxLjczIDE4bC04LTE0YTIgMiAwIDAgMC0zLjQ4IDBsLTggMTRBMiAyIDAgMCAwIDQgMjFoMTZhMiAyIDAgMCAwIDEuNzMtM00xMiA5djRtMCA0aC4wMSIvPjwvc3ZnPg=="); - } - } + &::before { + /* lucide:triangle-alert */ + mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiIgZD0ibTIxLjczIDE4bC04LTE0YTIgMiAwIDAgMC0zLjQ4IDBsLTggMTRBMiAyIDAgMCAwIDQgMjFoMTZhMiAyIDAgMCAwIDEuNzMtM00xMiA5djRtMCA0aC4wMSIvPjwvc3ZnPg=="); + } + } } -[data-callout][data-callout-type="warning"] > [data-callout-title]:empty::after { - content: "Warning"; +[data-callout][data-callout-type="warning"] + > [data-callout-title]:empty::after { + content: "Warning"; } -[data-callout][data-callout-type="caution"] > [data-callout-title]:empty::after { - content: "Caution"; +[data-callout][data-callout-type="caution"] + > [data-callout-title]:empty::after { + content: "Caution"; } -[data-callout][data-callout-type="attention"] > [data-callout-title]:empty::after { - content: "Attention"; +[data-callout][data-callout-type="attention"] + > [data-callout-title]:empty::after { + content: "Attention"; } [data-callout][data-callout-type="failure"], [data-callout][data-callout-type="fail"], [data-callout][data-callout-type="missing"] { - & { - @apply border-red-600/20 bg-red-400/20 dark:border-red-800/20 dark:bg-red-600/10; - } + & { + @apply border-red-600/20 bg-red-400/20 dark:border-red-800/20 dark:bg-red-600/10; + } - & > [data-callout-title] { - & { - @apply text-red-500; - } + & > [data-callout-title] { + & { + @apply text-red-500; + } - &::before { - /* lucide:check */ - mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiIgZD0iTTIwIDZMOSAxN2wtNS01Ii8+PC9zdmc+"); - } - } + &::before { + /* lucide:check */ + mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiIgZD0iTTIwIDZMOSAxN2wtNS01Ii8+PC9zdmc+"); + } + } } -[data-callout][data-callout-type="failure"] > [data-callout-title]:empty::after { - content: "Failure"; +[data-callout][data-callout-type="failure"] + > [data-callout-title]:empty::after { + content: "Failure"; } [data-callout][data-callout-type="fail"] > [data-callout-title]:empty::after { - content: "Fail"; + content: "Fail"; } -[data-callout][data-callout-type="missing"] > [data-callout-title]:empty::after { - content: "Missing"; +[data-callout][data-callout-type="missing"] + > [data-callout-title]:empty::after { + content: "Missing"; } [data-callout][data-callout-type="danger"], [data-callout][data-callout-type="error"] { - & { - @apply border-red-600/20 bg-red-400/20 dark:border-red-800/20 dark:bg-red-600/10; - } + & { + @apply border-red-600/20 bg-red-400/20 dark:border-red-800/20 dark:bg-red-600/10; + } - & > [data-callout-title] { - & { - @apply text-red-500; - } + & > [data-callout-title] { + & { + @apply text-red-500; + } - &::before { - /* lucide:zap */ - mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJsdWNpZGUgbHVjaWRlLXphcCI+PHBhdGggZD0iTTQgMTRhMSAxIDAgMCAxLS43OC0xLjYzbDkuOS0xMC4yYS41LjUgMCAwIDEgLjg2LjQ2bC0xLjkyIDYuMDJBMSAxIDAgMCAwIDEzIDEwaDdhMSAxIDAgMCAxIC43OCAxLjYzbC05LjkgMTAuMmEuNS41IDAgMCAxLS44Ni0uNDZsMS45Mi02LjAyQTEgMSAwIDAgMCAxMSAxNHoiLz48L3N2Zz4="); - } - } + &::before { + /* lucide:zap */ + mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJsdWNpZGUgbHVjaWRlLXphcCI+PHBhdGggZD0iTTQgMTRhMSAxIDAgMCAxLS43OC0xLjYzbDkuOS0xMC4yYS41LjUgMCAwIDEgLjg2LjQ2bC0xLjkyIDYuMDJBMSAxIDAgMCAwIDEzIDEwaDdhMSAxIDAgMCAxIC43OCAxLjYzbC05LjkgMTAuMmEuNS41IDAgMCAxLS44Ni0uNDZsMS45Mi02LjAyQTEgMSAwIDAgMCAxMSAxNHoiLz48L3N2Zz4="); + } + } } [data-callout][data-callout-type="danger"] > [data-callout-title]:empty::after { - content: "Danger"; + content: "Danger"; } [data-callout][data-callout-type="error"] > [data-callout-title]:empty::after { - content: "Error"; + content: "Error"; } [data-callout][data-callout-type="bug"] { - & { - @apply border-red-600/20 bg-red-400/20 dark:border-red-800/20 dark:bg-red-600/10; - } + & { + @apply border-red-600/20 bg-red-400/20 dark:border-red-800/20 dark:bg-red-600/10; + } - & > [data-callout-title] { - & { - @apply text-red-500; - } + & > [data-callout-title] { + & { + @apply text-red-500; + } - &::before { - /* lucide:bug */ - mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxnIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiI+PHBhdGggZD0ibTggMmwxLjg4IDEuODhtNC4yNCAwTDE2IDJNOSA3LjEzdi0xYTMuMDAzIDMuMDAzIDAgMSAxIDYgMHYxIi8+PHBhdGggZD0iTTEyIDIwYy0zLjMgMC02LTIuNy02LTZ2LTNhNCA0IDAgMCAxIDQtNGg0YTQgNCAwIDAgMSA0IDR2M2MwIDMuMy0yLjcgNi02IDZtMCAwdi05Ii8+PHBhdGggZD0iTTYuNTMgOUM0LjYgOC44IDMgNy4xIDMgNW0zIDhIMm0xIDhjMC0yLjEgMS43LTMuOSAzLjgtNE0yMC45NyA1YzAgMi4xLTEuNiAzLjgtMy41IDRNMjIgMTNoLTRtLS44IDRjMi4xLjEgMy44IDEuOSAzLjggNCIvPjwvZz48L3N2Zz4="); - } - } + &::before { + /* lucide:bug */ + mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxnIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiI+PHBhdGggZD0ibTggMmwxLjg4IDEuODhtNC4yNCAwTDE2IDJNOSA3LjEzdi0xYTMuMDAzIDMuMDAzIDAgMSAxIDYgMHYxIi8+PHBhdGggZD0iTTEyIDIwYy0zLjMgMC02LTIuNy02LTZ2LTNhNCA0IDAgMCAxIDQtNGg0YTQgNCAwIDAgMSA0IDR2M2MwIDMuMy0yLjcgNi02IDZtMCAwdi05Ii8+PHBhdGggZD0iTTYuNTMgOUM0LjYgOC44IDMgNy4xIDMgNW0zIDhIMm0xIDhjMC0yLjEgMS43LTMuOSAzLjgtNE0yMC45NyA1YzAgMi4xLTEuNiAzLjgtMy41IDRNMjIgMTNoLTRtLS44IDRjMi4xLjEgMy44IDEuOSAzLjggNCIvPjwvZz48L3N2Zz4="); + } + } } [data-callout][data-callout-type="bug"] > [data-callout-title]:empty::after { - content: "Bug"; + content: "Bug"; } [data-callout][data-callout-type="example"] { - & { - @apply border-purple-600/20 bg-purple-400/20 dark:border-purple-800/20 dark:bg-purple-600/10; - } + & { + @apply border-purple-600/20 bg-purple-400/20 dark:border-purple-800/20 dark:bg-purple-600/10; + } - & > [data-callout-title] { - & { - @apply text-purple-500; - } + & > [data-callout-title] { + & { + @apply text-purple-500; + } - &::before { - /* lucide:list */ - mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiIgZD0iTTggNmgxM004IDEyaDEzTTggMThoMTNNMyA2aC4wMU0zIDEyaC4wMU0zIDE4aC4wMSIvPjwvc3ZnPg=="); - } - } + &::before { + /* lucide:list */ + mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiIgZD0iTTggNmgxM004IDEyaDEzTTggMThoMTNNMyA2aC4wMU0zIDEyaC4wMU0zIDE4aC4wMSIvPjwvc3ZnPg=="); + } + } } -[data-callout][data-callout-type="example"] > [data-callout-title]:empty::after { - content: "Example"; +[data-callout][data-callout-type="example"] + > [data-callout-title]:empty::after { + content: "Example"; } [data-callout][data-callout-type="quote"], [data-callout][data-callout-type="cite"] { - & { - @apply border-zinc-600/20 bg-zinc-400/20 dark:border-zinc-800/20 dark:bg-zinc-600/15; - } + & { + @apply border-zinc-600/20 bg-zinc-400/20 dark:border-zinc-800/20 dark:bg-zinc-600/15; + } - & > [data-callout-title] { - & { - @apply text-zinc-500; - } + & > [data-callout-title] { + & { + @apply text-zinc-500; + } - &::before { - /* lucide:quote */ - mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiIgZD0iTTMgMjFjMyAwIDctMSA3LThWNWMwLTEuMjUtLjc1Ni0yLjAxNy0yLTJINGMtMS4yNSAwLTIgLjc1LTIgMS45NzJWMTFjMCAxLjI1Ljc1IDIgMiAyYzEgMCAxIDAgMSAxdjFjMCAxLTEgMi0yIDJzLTEgLjAwOC0xIDEuMDMxVjIwYzAgMSAwIDEgMSAxbTEyIDBjMyAwIDctMSA3LThWNWMwLTEuMjUtLjc1Ny0yLjAxNy0yLTJoLTRjLTEuMjUgMC0yIC43NS0yIDEuOTcyVjExYzAgMS4yNS43NSAyIDIgMmguNzVjMCAyLjI1LjI1IDQtMi43NSA0djNjMCAxIDAgMSAxIDEiLz48L3N2Zz4="); - } - } + &::before { + /* lucide:quote */ + mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjQgMjQiPjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iY3VycmVudENvbG9yIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIHN0cm9rZS13aWR0aD0iMiIgZD0iTTMgMjFjMyAwIDctMSA3LThWNWMwLTEuMjUtLjc1Ni0yLjAxNy0yLTJINGMtMS4yNSAwLTIgLjc1LTIgMS45NzJWMTFjMCAxLjI1Ljc1IDIgMiAyYzEgMCAxIDAgMSAxdjFjMCAxLTEgMi0yIDJzLTEgLjAwOC0xIDEuMDMxVjIwYzAgMSAwIDEgMSAxbTEyIDBjMyAwIDctMSA3LThWNWMwLTEuMjUtLjc1Ny0yLjAxNy0yLTJoLTRjLTEuMjUgMC0yIC43NS0yIDEuOTcyVjExYzAgMS4yNS43NSAyIDIgMmguNzVjMCAyLjI1LjI1IDQtMi43NSA0djNjMCAxIDAgMSAxIDEiLz48L3N2Zz4="); + } + } } [data-callout][data-callout-type="quote"] > [data-callout-title]:empty::after { - content: "Quote"; + content: "Quote"; } [data-callout][data-callout-type="cite"] > [data-callout-title]:empty::after { - content: "Cite"; -} \ No newline at end of file + content: "Cite"; +} diff --git a/src/styles/global.css b/src/styles/global.css index cfffdfa..0f1c3b0 100644 --- a/src/styles/global.css +++ b/src/styles/global.css @@ -3,114 +3,114 @@ @tailwind utilities; html { - overflow-y: auto; - color-scheme: light; - scroll-padding-top: 100px; + overflow-y: auto; + color-scheme: light; + scroll-padding-top: 100px; } html.dark { - color-scheme: dark; + color-scheme: dark; } html, body { - @apply size-full; + @apply size-full; } body { - @apply font-sans antialiased; - @apply flex flex-col; - @apply bg-neutral-100 dark:bg-neutral-900; - @apply text-black/75 dark:text-white/75; + @apply font-sans antialiased; + @apply flex flex-col; + @apply bg-neutral-100 dark:bg-neutral-900; + @apply text-black/75 dark:text-white/75; } header { - @apply fixed left-0 right-0 top-0 z-50 py-6; - @apply bg-neutral-100/75 dark:bg-neutral-900/75; - @apply saturate-200 backdrop-blur-sm; + @apply fixed left-0 right-0 top-0 z-50 py-6; + @apply bg-neutral-100/75 dark:bg-neutral-900/75; + @apply saturate-200 backdrop-blur-sm; } main { - @apply flex-1 py-10; + @apply flex-1 py-10; } footer { - @apply py-6 text-sm; + @apply py-6 text-sm; } article { - @apply prose prose-neutral max-w-full dark:prose-invert prose-img:mx-auto prose-img:my-auto; - @apply prose-headings:font-semibold; - @apply prose-headings:text-black prose-headings:dark:text-white; + @apply prose prose-neutral max-w-full dark:prose-invert prose-img:mx-auto prose-img:my-auto; + @apply prose-headings:font-semibold; + @apply prose-headings:text-black prose-headings:dark:text-white; } @layer utilities { - article a { - @apply font-sans text-current underline underline-offset-[3px]; - @apply decoration-black/30 dark:decoration-white/30; - @apply transition-colors duration-300 ease-in-out; - } - article a:hover { - @apply text-black dark:text-white; - @apply decoration-black/50 dark:decoration-white/50; - } + article a { + @apply font-sans text-current underline underline-offset-[3px]; + @apply decoration-black/30 dark:decoration-white/30; + @apply transition-colors duration-300 ease-in-out; + } + article a:hover { + @apply text-black dark:text-white; + @apply decoration-black/50 dark:decoration-white/50; + } } .animate { - @apply -translate-y-3 opacity-0; - @apply transition-all duration-300 ease-out; + @apply -translate-y-3 opacity-0; + @apply transition-all duration-300 ease-out; } .animate.show { - @apply translate-y-0 opacity-100; + @apply translate-y-0 opacity-100; } html #back-to-top { - @apply pointer-events-none opacity-0; + @apply pointer-events-none opacity-0; } html.scrolled #back-to-top { - @apply pointer-events-auto opacity-100; + @apply pointer-events-auto opacity-100; } pre { - @apply border border-black/15 py-5 dark:border-white/20; + @apply border border-black/15 py-5 dark:border-white/20; } :root { - --astro-code-foreground: #09090b; - --astro-code-background: #fafafa; - --astro-code-token-comment: #a19595; - --astro-code-token-keyword: #f47067; - --astro-code-token-string: #00a99a; - --astro-code-token-function: #429996; - --astro-code-token-constant: #2b70c5; - --astro-code-token-parameter: #4e8fdf; - --astro-code-token-string-expression: #ae42a0; - --astro-code-token-punctuation: #8996a3; - --astro-code-token-link: #8d85ff; + --astro-code-foreground: #09090b; + --astro-code-background: #fafafa; + --astro-code-token-comment: #a19595; + --astro-code-token-keyword: #f47067; + --astro-code-token-string: #00a99a; + --astro-code-token-function: #429996; + --astro-code-token-constant: #2b70c5; + --astro-code-token-parameter: #4e8fdf; + --astro-code-token-string-expression: #ae42a0; + --astro-code-token-punctuation: #8996a3; + --astro-code-token-link: #8d85ff; } .dark { - --astro-code-foreground: #fafafa; - --astro-code-background: #09090b; - --astro-code-token-comment: #a19595; - --astro-code-token-keyword: #f47067; - --astro-code-token-string: #00a99a; - --astro-code-token-function: #6eafad; - --astro-code-token-constant: #b3cceb; - --astro-code-token-parameter: #4e8fdf; - --astro-code-token-string-expression: #bf7db6; - --astro-code-token-punctuation: #8996a3; - --astro-code-token-link: #8d85ff; + --astro-code-foreground: #fafafa; + --astro-code-background: #09090b; + --astro-code-token-comment: #a19595; + --astro-code-token-keyword: #f47067; + --astro-code-token-string: #00a99a; + --astro-code-token-function: #6eafad; + --astro-code-token-constant: #b3cceb; + --astro-code-token-parameter: #4e8fdf; + --astro-code-token-string-expression: #bf7db6; + --astro-code-token-punctuation: #8996a3; + --astro-code-token-link: #8d85ff; } .copy-code { - @apply absolute right-3 top-3 grid size-9 place-content-center rounded border border-black/15 bg-neutral-100 text-center duration-300 ease-in-out dark:border-white/20 dark:bg-neutral-900; + @apply absolute right-3 top-3 grid size-9 place-content-center rounded border border-black/15 bg-neutral-100 text-center duration-300 ease-in-out dark:border-white/20 dark:bg-neutral-900; } .copy-code:hover { - @apply bg-[#E9E9E9] transition-colors dark:bg-[#232323]; + @apply bg-[#E9E9E9] transition-colors dark:bg-[#232323]; } .copy-code:active { - @apply scale-90 transition-transform; + @apply scale-90 transition-transform; } diff --git a/src/types.ts b/src/types.ts index 11b6c55..8e08d91 100644 --- a/src/types.ts +++ b/src/types.ts @@ -1,7 +1,7 @@ export type Site = { - TITLE: string; - DESCRIPTION: string; + TITLE: string; + DESCRIPTION: string; }; export type Metadata = { - TITLE: string; -}; \ No newline at end of file + TITLE: string; +}; diff --git a/tailwind.config.mjs b/tailwind.config.mjs index 25f1f15..fd16b4b 100644 --- a/tailwind.config.mjs +++ b/tailwind.config.mjs @@ -1,15 +1,15 @@ import defaultTheme from "tailwindcss/defaultTheme"; /** @type {import('tailwindcss').Config} */ export default { - darkMode: "class", - content: ["./src/**/*.{astro,html,js,jsx,md,mdx,svelte,ts,tsx,vue}"], - theme: { - extend: { - fontFamily: { - sans: ["Geist Sans", ...defaultTheme.fontFamily.sans], - mono: ["Geist Mono", ...defaultTheme.fontFamily.mono], - }, - }, - }, - plugins: [require("@tailwindcss/typography")], + darkMode: "class", + content: ["./src/**/*.{astro,html,js,jsx,md,mdx,svelte,ts,tsx,vue}"], + theme: { + extend: { + fontFamily: { + sans: ["Geist Sans", ...defaultTheme.fontFamily.sans], + mono: ["Geist Mono", ...defaultTheme.fontFamily.mono], + }, + }, + }, + plugins: [require("@tailwindcss/typography")], }; diff --git a/tsconfig.json b/tsconfig.json index 101caaa..d0935a9 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,12 +1,12 @@ { - "extends": "astro/tsconfigs/strict", - "include": [".astro/types.d.ts", "**/*"], - "exclude": ["dist"], - "compilerOptions": { - "strictNullChecks": true, - "baseUrl": ".", - "paths": { - "@*": ["./src/*"] - } - } + "extends": "astro/tsconfigs/strict", + "include": [".astro/types.d.ts", "**/*"], + "exclude": ["dist"], + "compilerOptions": { + "strictNullChecks": true, + "baseUrl": ".", + "paths": { + "@*": ["./src/*"] + } + } }