mirror of
https://github.com/jimeh/commonflow.org.git
synced 2026-02-19 05:46:40 +00:00
Compare commits
16 Commits
19a5bafeec
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 52cb73be47 | |||
|
|
3e689ed0b2 | ||
| 5d7068ae1d | |||
|
|
201700f27b | ||
| 540efeac89 | |||
| 0ff81cccbd | |||
| 501f89d3a0 | |||
| ba92e6c212 | |||
| 7bed32b60a | |||
|
9652714455
|
|||
|
|
b33a02991c | ||
|
|
fc393caa5b | ||
|
|
b6dfa4b787 | ||
|
|
c4bb1ae3f1 | ||
| 3a64fee42e | |||
|
e5d2604edc
|
4
.github/workflows/update-specs.yml
vendored
4
.github/workflows/update-specs.yml
vendored
@@ -15,12 +15,12 @@ jobs:
|
||||
private-key: ${{ secrets.BOT_PRIVATE_KEY }}
|
||||
|
||||
- name: Checkout
|
||||
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
||||
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
|
||||
with:
|
||||
token: ${{ steps.app-token.outputs.token }}
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
|
||||
uses: actions/setup-node@6044e13b5dc448c55e2357c09f80417699197238 # v6.2.0
|
||||
with:
|
||||
node-version-file: ".node-version"
|
||||
cache: "npm"
|
||||
|
||||
@@ -47,7 +47,7 @@ The site is built to `dist/` and deployed to Cloudflare Workers.
|
||||
|
||||
- **Astro 5.x** static site generator
|
||||
- **Tailwind CSS 4.x** for styling with dark mode support
|
||||
- **astro-icon** with Heroicons and Simple Icons for icons
|
||||
- **astro-icon** with Heroicons, Simple Icons, and custom local SVGs (`src/icons/`)
|
||||
- **Content Collections** for spec markdown files
|
||||
- **TypeScript** throughout
|
||||
- **Node.js** as JavaScript runtime (managed via mise)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { defineConfig } from "astro/config";
|
||||
import { defineConfig, fontProviders } from "astro/config";
|
||||
import tailwindcss from "@tailwindcss/vite";
|
||||
import sitemap from "@astrojs/sitemap";
|
||||
import icon from "astro-icon";
|
||||
@@ -10,4 +10,29 @@ export default defineConfig({
|
||||
vite: {
|
||||
plugins: [tailwindcss()],
|
||||
},
|
||||
experimental: {
|
||||
fonts: [
|
||||
{
|
||||
provider: fontProviders.fontsource(),
|
||||
name: "Bricolage Grotesque",
|
||||
cssVariable: "--font-bricolage",
|
||||
weights: ["200 800"],
|
||||
fallbacks: ["system-ui", "sans-serif"],
|
||||
},
|
||||
{
|
||||
provider: fontProviders.fontsource(),
|
||||
name: "DM Sans",
|
||||
cssVariable: "--font-dm-sans",
|
||||
weights: ["100 1000"],
|
||||
fallbacks: ["system-ui", "sans-serif"],
|
||||
},
|
||||
{
|
||||
provider: fontProviders.fontsource(),
|
||||
name: "JetBrains Mono",
|
||||
cssVariable: "--font-jetbrains",
|
||||
weights: ["100 800"],
|
||||
fallbacks: ["SF Mono", "Consolas", "monospace"],
|
||||
},
|
||||
],
|
||||
},
|
||||
});
|
||||
|
||||
926
package-lock.json
generated
926
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
21
package.json
21
package.json
@@ -14,13 +14,10 @@
|
||||
"astro": "astro"
|
||||
},
|
||||
"dependencies": {
|
||||
"@astrojs/sitemap": "^3.6.1",
|
||||
"@fontsource-variable/bricolage-grotesque": "^5.2.10",
|
||||
"@fontsource-variable/dm-sans": "^5.2.8",
|
||||
"@fontsource-variable/jetbrains-mono": "^5.2.8",
|
||||
"@astrojs/sitemap": "^3.7.0",
|
||||
"@iconify-json/heroicons": "^1.2.3",
|
||||
"@iconify-json/simple-icons": "^1.2.65",
|
||||
"astro": "^5.16.11",
|
||||
"@iconify-json/simple-icons": "^1.2.69",
|
||||
"astro": "^5.17.1",
|
||||
"astro-icon": "^1.1.5",
|
||||
"rehype-autolink-headings": "^7.1.0",
|
||||
"rehype-slug": "^6.0.0",
|
||||
@@ -32,18 +29,18 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@astrojs/check": "^0.9.6",
|
||||
"@eslint/js": "^9.39.2",
|
||||
"@eslint/js": "^10.0.1",
|
||||
"@tailwindcss/typography": "^0.5.19",
|
||||
"@tailwindcss/vite": "^4.1.18",
|
||||
"@tailwindcss/vite": "^4.2.0",
|
||||
"@types/semver": "^7.7.1",
|
||||
"eslint": "^9.39.2",
|
||||
"eslint-plugin-astro": "^1.5.0",
|
||||
"prettier": "^3.7.4",
|
||||
"eslint": "^10.0.0",
|
||||
"eslint-plugin-astro": "^1.6.0",
|
||||
"prettier": "^3.8.1",
|
||||
"prettier-plugin-astro": "^0.14.1",
|
||||
"svgo": "^4.0.0",
|
||||
"tailwindcss": "^4.1.18",
|
||||
"tsx": "^4.21.0",
|
||||
"typescript": "^5.9.3",
|
||||
"typescript-eslint": "^8.52.0"
|
||||
"typescript-eslint": "^8.56.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,11 +14,7 @@ import { Icon } from "astro-icon/components";
|
||||
>
|
||||
<Icon name="heroicons:sun" data-theme-icon="light" class="hidden w-5 h-5" />
|
||||
<Icon name="heroicons:moon" data-theme-icon="dark" class="hidden w-5 h-5" />
|
||||
<Icon
|
||||
name="heroicons:computer-desktop"
|
||||
data-theme-icon="auto"
|
||||
class="hidden w-5 h-5"
|
||||
/>
|
||||
<Icon name="sun-moon" data-theme-icon="auto" class="hidden w-5 h-5" />
|
||||
</button>
|
||||
<!-- Tooltip -->
|
||||
<div
|
||||
|
||||
8
src/icons/sun-moon.svg
Normal file
8
src/icons/sun-moon.svg
Normal file
@@ -0,0 +1,8 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24">
|
||||
<!-- Circle outline -->
|
||||
<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M15.75 12a3.75 3.75 0 1 1-7.5 0 3.75 3.75 0 0 1 7.5 0Z"/>
|
||||
<!-- Right half filled (dark/moon side) -->
|
||||
<path fill="currentColor" d="M12 8.25a3.75 3.75 0 0 1 0 7.5z"/>
|
||||
<!-- Left-side sun rays (top, top-left, left, bottom-left, bottom) -->
|
||||
<path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="M12 3v2.25M7.227 7.227 5.636 5.636M5.25 12H3M7.227 16.773l-1.591 1.591M12 18.75V21"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 633 B |
@@ -1,7 +1,5 @@
|
||||
---
|
||||
import "@fontsource-variable/bricolage-grotesque";
|
||||
import "@fontsource-variable/dm-sans";
|
||||
import "@fontsource-variable/jetbrains-mono";
|
||||
import { Font } from "astro:assets";
|
||||
import "../styles/global.css";
|
||||
import { config } from "../config";
|
||||
|
||||
@@ -44,6 +42,14 @@ const canonicalUrl = Astro.url.href;
|
||||
<link rel="icon" href="/favicon.svg" type="image/svg+xml" />
|
||||
<link rel="apple-touch-icon" href="/apple-touch-icon.png" />
|
||||
|
||||
<!-- Fonts -->
|
||||
<Font
|
||||
cssVariable="--font-bricolage"
|
||||
preload={[{ weight: "700" }, { weight: "800" }]}
|
||||
/>
|
||||
<Font cssVariable="--font-dm-sans" preload={[{ weight: "400" }]} />
|
||||
<Font cssVariable="--font-jetbrains" preload={[{ weight: "400" }]} />
|
||||
|
||||
<!-- Slot for page-specific head content -->
|
||||
<slot name="head" />
|
||||
|
||||
|
||||
@@ -8,10 +8,10 @@
|
||||
--color-accent: theme(colors.sky.500);
|
||||
--color-accent-light: theme(colors.sky.400);
|
||||
|
||||
/* Fonts - self-hosted via fontsource */
|
||||
--font-display: "Bricolage Grotesque Variable", system-ui, sans-serif;
|
||||
--font-sans: "DM Sans Variable", system-ui, sans-serif;
|
||||
--font-mono: "JetBrains Mono Variable", "SF Mono", Consolas, monospace;
|
||||
/* Fonts - via Astro experimental font API (fontsource provider) */
|
||||
--font-display: var(--font-bricolage);
|
||||
--font-sans: var(--font-dm-sans);
|
||||
--font-mono: var(--font-jetbrains);
|
||||
|
||||
/* Sizing */
|
||||
--header-height: 4rem;
|
||||
|
||||
Reference in New Issue
Block a user