diff --git a/astro.config.mjs b/astro.config.mjs index 9109be1..dd22baa 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -2,7 +2,7 @@ import { defineConfig } from 'astro/config'; import db from '@astrojs/db'; import node from '@astrojs/node'; -import { modifiedTime } from './last-modified.mjs'; +import { modifiedTime } from './src/utils/last-modified.mjs'; // https://astro.build/config export default defineConfig({ @@ -12,6 +12,6 @@ export default defineConfig({ }, integrations: [db()], adapter: node({ - mode: 'standalone' - }) + mode: 'standalone', + }), }); \ No newline at end of file diff --git a/public/fonts/sq.woff2 b/public/fonts/sq.woff2 new file mode 100644 index 0000000..33d5e32 Binary files /dev/null and b/public/fonts/sq.woff2 differ diff --git a/public/fonts/sqb.woff2 b/public/fonts/sqb.woff2 new file mode 100644 index 0000000..074db18 Binary files /dev/null and b/public/fonts/sqb.woff2 differ diff --git a/src/assets/images/guild-bbs-content.png b/src/assets/images/guild-bbs-content.png index 7693ae1..f9cc563 100644 Binary files a/src/assets/images/guild-bbs-content.png and b/src/assets/images/guild-bbs-content.png differ diff --git a/src/assets/images/guild-bbs-list.png b/src/assets/images/guild-bbs-list.png new file mode 100644 index 0000000..b985d75 Binary files /dev/null and b/src/assets/images/guild-bbs-list.png differ diff --git a/src/assets/images/guild-bbs.png b/src/assets/images/guild-bbs.png index a7e45df..73d00f8 100644 Binary files a/src/assets/images/guild-bbs.png and b/src/assets/images/guild-bbs.png differ diff --git a/src/assets/styles/base.css b/src/assets/styles/base.css index e3ed799..1492e2f 100644 --- a/src/assets/styles/base.css +++ b/src/assets/styles/base.css @@ -2,17 +2,57 @@ @import url("./fonts.css"); :root { - --body-font: "Wonder Mail", system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; + color-scheme: light dark; + --body-font: "sq", system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; --title-font: "Kiwi Soda", Impact, Haettenschweiler, 'Arial Narrow Bold', sans-serif; --mono-font: "Departure Mono", ui-monospace, 'Cascadia Code', 'Source Code Pro', Menlo, Consolas, 'DejaVu Sans Mono', monospace; --serif-font: "Redaction 35", 'Iowan Old Style', 'Palatino Linotype', 'URW Palladio L', P052, serif; --sans-font: "MLSS", 'Lucida Sans', 'Lucida Sans Regular', 'Lucida Grande', 'Lucida Sans Unicode', Geneva, Verdana, sans-serif; --arial-font: "Arial Pixel", Arial, Helvetica, sans-serif; + --pmd-font: "Wonder Mail", Inter, Roboto, 'Helvetica Neue', 'Arial Nova', 'Nimbus Sans', Arial, sans-serif; + + @media screen and (prefers-color-scheme: light) { + --bg-color: #e6f2ef; + --fg-color: #151640; + --accent-color: #f783b0; + --secondary-color: #3f6d9e; + } + + @media screen and (prefers-color-scheme: dark) { + --bg-color: #555568; + --fg-color: #f3eded; + --accent-color: #eeb9c7; + --secondary-color: #b9eedc; + } +} + +.light { + --bg-color: #e6f2ef; + --fg-color: #151640; + --accent-color: #f783b0; + --secondary-color: #3f6d9e; +} + +.dark { + --bg-color: #555568; + --fg-color: #f3eded; + --accent-color: #eeb9c7; + --secondary-color: #b9eedc; } body { font-family: var(--body-font); - font-size: 2rem; + font-size: calc((1rem - 1px) * 2); + background-color: var(--bg-color); + color: var(--fg-color); +} + +a { + color: var(--secondary-color); + + &:hover { + text-decoration: none; + } } h1, h2, h3, h4, h5, h6 { @@ -39,4 +79,55 @@ input, button, textarea, select { /* @media screen and (max-width: 48em) { font-size: 11px; } */ +} + +input, textarea { + background-color: var(--bg-color); + color: var(--fg-color); + border: 2px solid var(--fg-color); + box-shadow: inset 0 2px hsl(from var(--fg-color) h s l / 0.25); + + &:focus { outline: 2px solid var(--secondary-color); } +} + +button { + background-color: hsl(from var(--accent-color) h calc(s - 20) calc(l - 20)); + color: var(--bg-color); + border: 2px solid var(--fg-color); + box-shadow: 0 4px 0 var(--fg-color); + transform: translateY(-4px); + cursor: pointer; + transition: transform 0.25s, box-shadow 0.5s ease; + + &:hover { + background-color: var(--accent-color); + color: var(--fg-color); + } + + &:active, &:focus { + background-color: var(--secondary-color); + color: var(--bg-color); + border-color: var(--bg-color); + outline: 2px solid var(--secondary-color); + box-shadow: 0 0 0 var(--fg-color); + transform: translateY(0); + } +} + +.dark { + button { + background-color: var(--accent-color); + color: var(--bg-color); + + &:hover { + background-color: hsl(from var(--accent-color) h s calc(l - 10)); + color: var(--bg-color); + } + + &:active, &:focus { + color: var(--bg-color); + background-color: var(--secondary-color); + border-color: var(--bg-color); + } + } } \ No newline at end of file diff --git a/src/assets/styles/fonts.css b/src/assets/styles/fonts.css index a3a8c42..c873ec2 100644 --- a/src/assets/styles/fonts.css +++ b/src/assets/styles/fonts.css @@ -49,6 +49,18 @@ font-style: normal; } +@font-face { + font-family: "sq"; + src: url("/fonts/sq.woff2") format("woff2"); + font-weight: normal; +} + +@font-face { + font-family: "sq"; + src: url("/fonts/sqb.woff2") format("woff2"); + font-weight: bold; +} + @font-face { font-family: "Wonder Mail"; src: url("/fonts/wondermail.woff2") format("woff2"); diff --git a/src/components/Navbar.astro b/src/components/Navbar.astro index efc242a..a976002 100644 --- a/src/components/Navbar.astro +++ b/src/components/Navbar.astro @@ -1,4 +1,6 @@ --- +import ThemeSwitch from "./ThemeSwitch.astro"; + const links = [ "about", "blog", @@ -14,6 +16,8 @@ const links = [