diff --git a/.astro/content-assets.mjs b/.astro/content-assets.mjs index f4a5e5e..99ae6ce 100644 --- a/.astro/content-assets.mjs +++ b/.astro/content-assets.mjs @@ -1,10 +1,10 @@ +import __ASTRO_IMAGE_IMPORT_3KcDr from "src/assets/blog/my-ai-portrait.jpg?astroContentImageFlag=&importer=src%2Fcontent%2Fblog%2F2022%2Fcreating-a-dating-profile-with-ai.md"; import __ASTRO_IMAGE_IMPORT_1G57ng from "src/assets/blog/ileopard/mac-os-10-1.png?astroContentImageFlag=&importer=src%2Fcontent%2Fblog%2F2022%2Fileopard-a-retrospective.md"; import __ASTRO_IMAGE_IMPORT_Z1ESWoO from "src/assets/blog/ileopard/itunes-7.gif?astroContentImageFlag=&importer=src%2Fcontent%2Fblog%2F2022%2Fileopard-a-retrospective.md"; import __ASTRO_IMAGE_IMPORT_rrnp from "src/assets/blog/ileopard/ileopard-2-0-1.png?astroContentImageFlag=&importer=src%2Fcontent%2Fblog%2F2022%2Fileopard-a-retrospective.md"; -import __ASTRO_IMAGE_IMPORT_3KcDr from "src/assets/blog/my-ai-portrait.jpg?astroContentImageFlag=&importer=src%2Fcontent%2Fblog%2F2022%2Fcreating-a-dating-profile-with-ai.md"; import __ASTRO_IMAGE_IMPORT_Zi2DqH from "src/assets/blog/gunpla/box.jpg?astroContentImageFlag=&importer=src%2Fcontent%2Fblog%2F2023%2Fmy-gunpla-adventure.md"; import __ASTRO_IMAGE_IMPORT_1OkzEl from "src/assets/blog/gunpla/all-the-parts.jpg?astroContentImageFlag=&importer=src%2Fcontent%2Fblog%2F2023%2Fmy-gunpla-adventure.md"; import __ASTRO_IMAGE_IMPORT_FYQiW from "src/assets/blog/gunpla/final.jpg?astroContentImageFlag=&importer=src%2Fcontent%2Fblog%2F2023%2Fmy-gunpla-adventure.md"; -export default new Map([["src/assets/blog/ileopard/mac-os-10-1.png?astroContentImageFlag=&importer=src%2Fcontent%2Fblog%2F2022%2Fileopard-a-retrospective.md", __ASTRO_IMAGE_IMPORT_1G57ng], ["src/assets/blog/ileopard/itunes-7.gif?astroContentImageFlag=&importer=src%2Fcontent%2Fblog%2F2022%2Fileopard-a-retrospective.md", __ASTRO_IMAGE_IMPORT_Z1ESWoO], ["src/assets/blog/ileopard/ileopard-2-0-1.png?astroContentImageFlag=&importer=src%2Fcontent%2Fblog%2F2022%2Fileopard-a-retrospective.md", __ASTRO_IMAGE_IMPORT_rrnp], ["src/assets/blog/my-ai-portrait.jpg?astroContentImageFlag=&importer=src%2Fcontent%2Fblog%2F2022%2Fcreating-a-dating-profile-with-ai.md", __ASTRO_IMAGE_IMPORT_3KcDr], ["src/assets/blog/gunpla/box.jpg?astroContentImageFlag=&importer=src%2Fcontent%2Fblog%2F2023%2Fmy-gunpla-adventure.md", __ASTRO_IMAGE_IMPORT_Zi2DqH], ["src/assets/blog/gunpla/all-the-parts.jpg?astroContentImageFlag=&importer=src%2Fcontent%2Fblog%2F2023%2Fmy-gunpla-adventure.md", __ASTRO_IMAGE_IMPORT_1OkzEl], ["src/assets/blog/gunpla/final.jpg?astroContentImageFlag=&importer=src%2Fcontent%2Fblog%2F2023%2Fmy-gunpla-adventure.md", __ASTRO_IMAGE_IMPORT_FYQiW]]); +export default new Map([["src/assets/blog/my-ai-portrait.jpg?astroContentImageFlag=&importer=src%2Fcontent%2Fblog%2F2022%2Fcreating-a-dating-profile-with-ai.md", __ASTRO_IMAGE_IMPORT_3KcDr], ["src/assets/blog/ileopard/mac-os-10-1.png?astroContentImageFlag=&importer=src%2Fcontent%2Fblog%2F2022%2Fileopard-a-retrospective.md", __ASTRO_IMAGE_IMPORT_1G57ng], ["src/assets/blog/ileopard/itunes-7.gif?astroContentImageFlag=&importer=src%2Fcontent%2Fblog%2F2022%2Fileopard-a-retrospective.md", __ASTRO_IMAGE_IMPORT_Z1ESWoO], ["src/assets/blog/ileopard/ileopard-2-0-1.png?astroContentImageFlag=&importer=src%2Fcontent%2Fblog%2F2022%2Fileopard-a-retrospective.md", __ASTRO_IMAGE_IMPORT_rrnp], ["src/assets/blog/gunpla/box.jpg?astroContentImageFlag=&importer=src%2Fcontent%2Fblog%2F2023%2Fmy-gunpla-adventure.md", __ASTRO_IMAGE_IMPORT_Zi2DqH], ["src/assets/blog/gunpla/all-the-parts.jpg?astroContentImageFlag=&importer=src%2Fcontent%2Fblog%2F2023%2Fmy-gunpla-adventure.md", __ASTRO_IMAGE_IMPORT_1OkzEl], ["src/assets/blog/gunpla/final.jpg?astroContentImageFlag=&importer=src%2Fcontent%2Fblog%2F2023%2Fmy-gunpla-adventure.md", __ASTRO_IMAGE_IMPORT_FYQiW]]); \ No newline at end of file diff --git a/astro.config.mjs b/astro.config.mjs index ef3eedd..8d47bc7 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -9,7 +9,7 @@ export default defineConfig({ site: "https://ghall.space", output: "static", - integrations: [mdx(), alpinejs()], + integrations: [mdx(), alpinejs({ entrypoint: "/src/entrypoint" })], redirects: { "/posts/[...slug]": "/blog/[...slug]", "/blog": "/blog/page/1", diff --git a/bun.lock b/bun.lock index a2d3b28..35014aa 100644 --- a/bun.lock +++ b/bun.lock @@ -4,6 +4,7 @@ "": { "name": "ghall.blog", "dependencies": { + "@alpinejs/persist": "^3.15.1", "@astrojs/alpinejs": "^0.4.9", "@astrojs/mdx": "^4.3.7", "@astrojs/rss": "^4.0.12", @@ -21,6 +22,7 @@ "devDependencies": { "@astrojs/ts-plugin": "^1.10.4", "@biomejs/biome": "2.3.2", + "@types/alpinejs__persist": "^3.13.4", "bun-types": "1.3.0", }, "peerDependencies": { @@ -29,6 +31,8 @@ }, }, "packages": { + "@alpinejs/persist": ["@alpinejs/persist@3.15.1", "", {}, "sha512-EtK4s7I0xhRTJsLaYjhJ4SyQan8+gkGaRYvzFw+ndg7rzrjSHzhgRmQ20GZbnjj+eDg77fPMTvzvngX6yAExbg=="], + "@astrojs/alpinejs": ["@astrojs/alpinejs@0.4.9", "", { "peerDependencies": { "@types/alpinejs": "^3.0.0", "alpinejs": "^3.0.0" } }, "sha512-fvKBAugn7yIngEKfdk6vL3ZlcVKtQvFXCZznG28OikGanKN5W+PkRPIdKaW/0gThRU2FyCemgzyHgyFjsH8dTA=="], "@astrojs/compiler": ["@astrojs/compiler@2.10.3", "", {}, "sha512-bL/O7YBxsFt55YHU021oL+xz+B/9HvGNId3F9xURN16aeqDK9juHGktdkCSXz+U4nqFACq6ZFvWomOzhV+zfPw=="], @@ -261,6 +265,8 @@ "@types/alpinejs": ["@types/alpinejs@3.13.11", "", {}, "sha512-3KhGkDixCPiLdL3Z/ok1GxHwLxEWqQOKJccgaQL01wc0EVM2tCTaqlC3NIedmxAXkVzt/V6VTM8qPgnOHKJ1MA=="], + "@types/alpinejs__persist": ["@types/alpinejs__persist@3.13.4", "", { "dependencies": { "@types/alpinejs": "*" } }, "sha512-H+cW7294EV5fGmIGD3BCJme54//KyWxZcP4uI9pk6W7fECR5hEwdO7j7wogz0o4vapS/kXiXiAjuqC9F+W0Vpw=="], + "@types/debug": ["@types/debug@4.1.12", "", { "dependencies": { "@types/ms": "*" } }, "sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ=="], "@types/estree": ["@types/estree@1.0.8", "", {}, "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w=="], diff --git a/package.json b/package.json index 898f0a7..dce7fab 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,7 @@ "fix": "bunx biome lint --write" }, "dependencies": { + "@alpinejs/persist": "^3.15.1", "@astrojs/alpinejs": "^0.4.9", "@astrojs/mdx": "^4.3.7", "@astrojs/rss": "^4.0.12", @@ -32,6 +33,7 @@ "devDependencies": { "@astrojs/ts-plugin": "^1.10.4", "@biomejs/biome": "2.3.2", + "@types/alpinejs__persist": "^3.13.4", "bun-types": "1.3.0" }, "module": "index.ts", diff --git a/src/assets/svg/moon.svg b/src/assets/svg/moon.svg new file mode 100644 index 0000000..588b57a --- /dev/null +++ b/src/assets/svg/moon.svg @@ -0,0 +1,3 @@ + diff --git a/src/assets/svg/sun.svg b/src/assets/svg/sun.svg new file mode 100644 index 0000000..1a161b8 --- /dev/null +++ b/src/assets/svg/sun.svg @@ -0,0 +1,3 @@ + diff --git a/src/components/Header/Drawer.astro b/src/components/Header/Drawer.astro index d83b778..1101232 100644 --- a/src/components/Header/Drawer.astro +++ b/src/components/Header/Drawer.astro @@ -1,7 +1,6 @@ --- import BarsIcon from "../../assets/svg/bars.svg"; import CloseIcon from "../../assets/svg/xmark.svg"; - import { navLinks } from "../../data/nav-links"; --- @@ -40,10 +39,6 @@ import { navLinks } from "../../data/nav-links"; diff --git a/src/components/Header/ThemeToggle.astro b/src/components/Header/ThemeToggle.astro new file mode 100644 index 0000000..6b1e159 --- /dev/null +++ b/src/components/Header/ThemeToggle.astro @@ -0,0 +1,28 @@ +--- +import BrushIcon from "../../assets/svg/paintbrush.svg"; +--- + + + + diff --git a/src/entrypoint.ts b/src/entrypoint.ts new file mode 100644 index 0000000..4c12bba --- /dev/null +++ b/src/entrypoint.ts @@ -0,0 +1,6 @@ +import persist from "@alpinejs/persist"; +import type { Alpine } from "alpinejs"; + +export default (Alpine: Alpine) => { + Alpine.plugin(persist); +}; diff --git a/src/global.css b/src/global.css index a928a4a..eaa7e3e 100644 --- a/src/global.css +++ b/src/global.css @@ -20,28 +20,24 @@ --radius: 5px; --border: 1px solid #ced3f1; --max-page-width: 800px; + --transition: all 0.3s ease-in-out; } -@media (prefers-color-scheme: dark) { - :root { - --blue: #89b4fa; - --sky: #89dceb; - --red: #f38ba8; - --orange: #fab387; - --text: #cdd6f4; - --background: #1e1e2e; - --border: 1px solid #505160; - } +.theme-dark { + --blue: #89b4fa; + --sky: #89dceb; + --red: #f38ba8; + --orange: #fab387; + --text: #cdd6f4; + --background: #1e1e2e; + --border: 1px solid #505160; } -html { +body { color: var(--text); background-color: var(--background); font-family: "Noto Sans", sans-serif; font-size: 1.1rem; -} - -body { margin: 0; padding: 0; } diff --git a/src/layouts/Layout.astro b/src/layouts/Layout.astro index f399caf..c2fade5 100644 --- a/src/layouts/Layout.astro +++ b/src/layouts/Layout.astro @@ -35,8 +35,11 @@ const title = Astro.props.title || Astro.props.frontmatter?.title || "Unknown";