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 a083ab2..a331ca4 100755
Binary files a/bun.lockb and b/bun.lockb differ
diff --git a/dist/artix-install-guide/index.html b/dist/artix-install-guide/index.html
index ec50e88..1dab97e 100644
--- a/dist/artix-install-guide/index.html
+++ b/dist/artix-install-guide/index.html
@@ -209,7 +209,7 @@
var head = document.querySelector("head")
head.appendChild(script)
})()
-
+
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/*"]
+ }
+ }
}