feat(gitea): add custom brand themes for gitea instance
- add dark theme (nicholai) with high contrast text - add light theme (nicholai-light) matching site design - include Sora + IBM Plex Mono font imports - add contribution graph alpha tokens - remove tracked .fuse_hidden temp files - gitignore .fuse_hidden files going forward
This commit is contained in:
parent
4445584353
commit
fc4af6f15e
@ -1,48 +0,0 @@
|
||||
{
|
||||
"permissions": {
|
||||
"allow": [
|
||||
"WebFetch(domain:openrouter.ai)",
|
||||
"Bash(node:*)",
|
||||
"Bash(curl:*)",
|
||||
"Bash(pnpm build:*)",
|
||||
"Bash(find:*)",
|
||||
"Bash(pnpm add:*)",
|
||||
"WebFetch(domain:substance.biohazardvfx.com)",
|
||||
"WebFetch(domain:substrate.biohazardvfx.com)",
|
||||
"Bash(pnpm dev:*)",
|
||||
"Bash(pnpm astro check:*)",
|
||||
"Bash(pkill:*)",
|
||||
"mcp__plugin_playwright_playwright__browser_navigate",
|
||||
"mcp__plugin_playwright_playwright__browser_click",
|
||||
"mcp__plugin_playwright_playwright__browser_evaluate",
|
||||
"mcp__plugin_playwright_playwright__browser_take_screenshot",
|
||||
"mcp__plugin_playwright_playwright__browser_press_key",
|
||||
"mcp__plugin_playwright_playwright__browser_resize",
|
||||
"mcp__plugin_playwright_playwright__browser_wait_for",
|
||||
"WebFetch(domain:www.shadcn.io)",
|
||||
"WebSearch",
|
||||
"WebFetch(domain:ui.shadcn.com)",
|
||||
"WebFetch(domain:shadcn-chatbot-kit.vercel.app)",
|
||||
"WebFetch(domain:shadcn-chat.vercel.app)",
|
||||
"WebFetch(domain:github.com)",
|
||||
"WebFetch(domain:www.prompt-kit.com)",
|
||||
"WebFetch(domain:docs-shadcn-chat.vercel.app)",
|
||||
"mcp__plugin_playwright_playwright__browser_type",
|
||||
"mcp__plugin_playwright_playwright__browser_snapshot",
|
||||
"mcp__plugin_playwright_playwright__browser_console_messages",
|
||||
"mcp__plugin_playwright_playwright__browser_network_requests",
|
||||
"mcp__plugin_playwright_playwright__browser_close",
|
||||
"mcp__plugin_playwright_playwright__browser_hover",
|
||||
"mcp__plugin_playwright_playwright__browser_run_code",
|
||||
"Bash(ls:*)",
|
||||
"Bash(npx wrangler:*)",
|
||||
"Bash(pnpm run deploy)",
|
||||
"Bash(git add:*)",
|
||||
"Bash(git commit -m \"$\\(cat <<''EOF''\nAdd D1 database ID for hubert-conversations\n\nCreated D1 database and updated wrangler.jsonc with actual database UUID.\n\nCo-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>\nEOF\n\\)\")",
|
||||
"Bash(git push)",
|
||||
"Bash(git commit:*)"
|
||||
],
|
||||
"deny": [],
|
||||
"ask": []
|
||||
}
|
||||
}
|
||||
@ -1,16 +0,0 @@
|
||||
{
|
||||
"permissions": {
|
||||
"allow": [
|
||||
"WebFetch(domain:openrouter.ai)",
|
||||
"Bash(node:*)",
|
||||
"Bash(curl:*)",
|
||||
"Bash(pnpm build:*)",
|
||||
"Bash(find:*)",
|
||||
"Bash(pnpm add:*)",
|
||||
"WebFetch(domain:substance.biohazardvfx.com)",
|
||||
"WebFetch(domain:substrate.biohazardvfx.com)"
|
||||
],
|
||||
"deny": [],
|
||||
"ask": []
|
||||
}
|
||||
}
|
||||
@ -1,49 +0,0 @@
|
||||
{
|
||||
"name": "nicholai-work-2026",
|
||||
"type": "module",
|
||||
"version": "0.0.1",
|
||||
"scripts": {
|
||||
"dev": "astro dev",
|
||||
"build": "astro build",
|
||||
"preview": "astro build && wrangler pages dev",
|
||||
"astro": "astro",
|
||||
"deploy": "astro build && wrangler pages deploy",
|
||||
"cf-typegen": "wrangler types",
|
||||
"convert:avif": "node src/utils/convert-to-avif.js",
|
||||
"convert:avif:all": "node src/utils/convert-to-avif.js --all",
|
||||
"convert:avif:jpeg": "node src/utils/convert-to-avif.js --jpeg",
|
||||
"convert:avif:png": "node src/utils/convert-to-avif.js --png",
|
||||
"commit": "node src/utils/git-commit.js",
|
||||
"notepad": "node src/utils/notepad.js"
|
||||
},
|
||||
"dependencies": {
|
||||
"@astrojs/cloudflare": "^12.6.12",
|
||||
"@astrojs/mdx": "^4.3.12",
|
||||
"@astrojs/react": "^4.4.2",
|
||||
"@astrojs/rss": "^4.0.14",
|
||||
"@astrojs/sitemap": "^3.6.0",
|
||||
"@langchain/cloudflare": "^1.0.1",
|
||||
"@langchain/core": "^1.1.8",
|
||||
"@langchain/langgraph": "^1.0.7",
|
||||
"@langchain/openai": "^1.2.0",
|
||||
"@tailwindcss/typography": "^0.5.19",
|
||||
"@tailwindcss/vite": "^4.1.17",
|
||||
"@types/react": "^19.2.7",
|
||||
"@types/react-dom": "^19.2.3",
|
||||
"astro": "^5.16.4",
|
||||
"dompurify": "^3.3.1",
|
||||
"framer-motion": "^12.26.2",
|
||||
"lunr": "^2.3.9",
|
||||
"marked": "^17.0.1",
|
||||
"react": "^19.2.1",
|
||||
"react-dom": "^19.2.1",
|
||||
"sharp": "^0.34.3",
|
||||
"tailwindcss": "^4.1.17",
|
||||
"zod": "^4.3.4"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/dompurify": "^3.2.0",
|
||||
"@types/node": "^24.10.1",
|
||||
"wrangler": "^4.53.0"
|
||||
}
|
||||
}
|
||||
4
.gitignore
vendored
4
.gitignore
vendored
@ -50,3 +50,7 @@ GEMINI.md
|
||||
|
||||
# dev notes and scratch work
|
||||
dev/
|
||||
|
||||
# FUSE filesystem temp files
|
||||
.fuse_hidden*
|
||||
**/.fuse_hidden*
|
||||
|
||||
161
gitea-themes/theme-nicholai-light.css
Normal file
161
gitea-themes/theme-nicholai-light.css
Normal file
@ -0,0 +1,161 @@
|
||||
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=Sora:wght@400;500;600;700&display=swap');
|
||||
|
||||
gitea-theme-meta-info {
|
||||
--theme-display-name: "Nicholai Work Light";
|
||||
}
|
||||
|
||||
:root {
|
||||
--is-dark-theme: false;
|
||||
color-scheme: light;
|
||||
|
||||
/* fonts */
|
||||
--fonts-regular: 'Sora', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', sans-serif;
|
||||
--fonts-monospace: 'IBM Plex Mono', 'SFMono-Regular', 'Menlo', 'Monaco', 'Consolas', 'Liberation Mono', monospace;
|
||||
|
||||
/* primary accent - nicholai.work red */
|
||||
--color-primary: #dd4132;
|
||||
--color-primary-contrast: #ffffff;
|
||||
--color-primary-dark-1: #c73a2d;
|
||||
--color-primary-dark-2: #b13328;
|
||||
--color-primary-light-1: #e35d50;
|
||||
--color-primary-light-2: #e9796e;
|
||||
|
||||
/* contribution graph alpha tokens */
|
||||
--color-primary-alpha-10: rgba(221, 65, 50, 0.15);
|
||||
--color-primary-alpha-20: rgba(221, 65, 50, 0.30);
|
||||
--color-primary-alpha-40: rgba(221, 65, 50, 0.50);
|
||||
--color-primary-alpha-60: rgba(221, 65, 50, 0.70);
|
||||
--color-primary-alpha-80: rgba(221, 65, 50, 0.85);
|
||||
|
||||
/* backgrounds - nicholai.work light palette */
|
||||
--color-body: #FAFAFA;
|
||||
--color-box-body: #F1F3F5;
|
||||
--color-box-body-highlight: #E9ECEF;
|
||||
--color-box-header: #E9ECEF;
|
||||
--color-secondary: #DEE2E6;
|
||||
--color-secondary-dark-1: #CED4DA;
|
||||
--color-secondary-dark-2: #ADB5BD;
|
||||
--color-secondary-light-1: #E9ECEF;
|
||||
--color-secondary-light-2: #F1F3F5;
|
||||
|
||||
/* text colors - WCAG AA compliant on light backgrounds */
|
||||
--color-text-dark: #0B0D11;
|
||||
--color-text: #475569;
|
||||
--color-text-light: #64748B;
|
||||
--color-text-light-2: #94A3B8;
|
||||
--color-text-light-3: #CBD5E1;
|
||||
|
||||
/* borders */
|
||||
--color-border: #DEE2E6;
|
||||
--color-light-border: #E9ECEF;
|
||||
--color-input-border: #CED4DA;
|
||||
--color-input-border-hover: #dd4132;
|
||||
|
||||
/* semantic colors */
|
||||
--color-success: #059669;
|
||||
--color-success-text: #047857;
|
||||
--color-success-bg: rgba(16, 185, 129, 0.1);
|
||||
--color-success-border: rgba(16, 185, 129, 0.3);
|
||||
|
||||
--color-warning: #D97706;
|
||||
--color-warning-text: #B45309;
|
||||
--color-warning-bg: rgba(245, 158, 11, 0.1);
|
||||
--color-warning-border: rgba(245, 158, 11, 0.3);
|
||||
|
||||
--color-error: #DC2626;
|
||||
--color-error-text: #B91C1C;
|
||||
--color-error-bg: rgba(239, 68, 68, 0.1);
|
||||
--color-error-border: rgba(239, 68, 68, 0.3);
|
||||
|
||||
--color-info: #2563EB;
|
||||
--color-info-text: #1D4ED8;
|
||||
--color-info-bg: rgba(59, 130, 246, 0.1);
|
||||
--color-info-border: rgba(59, 130, 246, 0.3);
|
||||
|
||||
/* diff colors */
|
||||
--color-diff-removed-word-bg: rgba(239, 68, 68, 0.3);
|
||||
--color-diff-added-word-bg: rgba(16, 185, 129, 0.3);
|
||||
--color-diff-removed-row-bg: rgba(239, 68, 68, 0.08);
|
||||
--color-diff-moved-row-bg: rgba(245, 158, 11, 0.08);
|
||||
--color-diff-added-row-bg: rgba(16, 185, 129, 0.08);
|
||||
--color-diff-removed-row-border: rgba(239, 68, 68, 0.2);
|
||||
--color-diff-moved-row-border: rgba(245, 158, 11, 0.2);
|
||||
--color-diff-added-row-border: rgba(16, 185, 129, 0.2);
|
||||
|
||||
/* code/syntax */
|
||||
--color-code-bg: #F1F3F5;
|
||||
--color-code-sidebar-bg: #FAFAFA;
|
||||
|
||||
/* interactive states */
|
||||
--color-hover: rgba(221, 65, 50, 0.08);
|
||||
--color-active: rgba(221, 65, 50, 0.15);
|
||||
--color-focus: rgba(221, 65, 50, 0.2);
|
||||
|
||||
/* shadows */
|
||||
--color-shadow: rgba(0, 0, 0, 0.1);
|
||||
|
||||
/* buttons */
|
||||
--color-button: #E9ECEF;
|
||||
--color-button-hover: #DEE2E6;
|
||||
|
||||
/* navbar */
|
||||
--color-nav-bg: #FAFAFA;
|
||||
--color-nav-text: #475569;
|
||||
--color-nav-hover-bg: #F1F3F5;
|
||||
|
||||
/* labels */
|
||||
--color-label-bg: #E9ECEF;
|
||||
--color-label-text: #475569;
|
||||
--color-label-hover-bg: #DEE2E6;
|
||||
|
||||
/* menu */
|
||||
--color-menu: #FFFFFF;
|
||||
--color-menu-hover: #F1F3F5;
|
||||
--color-menu-active: #E9ECEF;
|
||||
|
||||
/* markdown */
|
||||
--color-markdown-code-block: #F1F3F5;
|
||||
--color-markdown-table-row: #FAFAFA;
|
||||
|
||||
/* reaction */
|
||||
--color-reaction-bg: #F1F3F5;
|
||||
--color-reaction-hover-bg: #E9ECEF;
|
||||
--color-reaction-active-bg: rgba(221, 65, 50, 0.15);
|
||||
|
||||
/* placeholder/input */
|
||||
--color-placeholder-text: #94A3B8;
|
||||
--color-input-text: #475569;
|
||||
--color-input-background: #FFFFFF;
|
||||
|
||||
/* accent shades for various UI elements */
|
||||
--color-accent: #dd4132;
|
||||
--color-small-accent: #dd4132;
|
||||
|
||||
/* link colors */
|
||||
--color-link: #dd4132;
|
||||
--color-link-hover: #c73a2d;
|
||||
}
|
||||
|
||||
/* font overrides */
|
||||
body,
|
||||
.ui,
|
||||
.ui.menu,
|
||||
.ui.text,
|
||||
.ui.header,
|
||||
.ui.message,
|
||||
.ui.button,
|
||||
input,
|
||||
textarea,
|
||||
select {
|
||||
font-family: 'Sora', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
|
||||
}
|
||||
|
||||
code,
|
||||
pre,
|
||||
.mono,
|
||||
.codebox,
|
||||
.CodeMirror,
|
||||
.code-view,
|
||||
.file-view {
|
||||
font-family: 'IBM Plex Mono', 'SFMono-Regular', 'Menlo', monospace !important;
|
||||
}
|
||||
161
gitea-themes/theme-nicholai.css
Normal file
161
gitea-themes/theme-nicholai.css
Normal file
@ -0,0 +1,161 @@
|
||||
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=Sora:wght@400;500;600;700&display=swap');
|
||||
|
||||
gitea-theme-meta-info {
|
||||
--theme-display-name: "Nicholai Work";
|
||||
}
|
||||
|
||||
:root {
|
||||
--is-dark-theme: true;
|
||||
color-scheme: dark;
|
||||
|
||||
/* fonts */
|
||||
--fonts-regular: 'Sora', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', sans-serif;
|
||||
--fonts-monospace: 'IBM Plex Mono', 'SFMono-Regular', 'Menlo', 'Monaco', 'Consolas', 'Liberation Mono', monospace;
|
||||
|
||||
/* primary accent - nicholai.work red */
|
||||
--color-primary: #dd4132;
|
||||
--color-primary-contrast: #ffffff;
|
||||
--color-primary-dark-1: #c73a2d;
|
||||
--color-primary-dark-2: #b13328;
|
||||
--color-primary-light-1: #e35d50;
|
||||
--color-primary-light-2: #e9796e;
|
||||
|
||||
/* contribution graph alpha tokens */
|
||||
--color-primary-alpha-10: rgba(221, 65, 50, 0.15);
|
||||
--color-primary-alpha-20: rgba(221, 65, 50, 0.30);
|
||||
--color-primary-alpha-40: rgba(221, 65, 50, 0.50);
|
||||
--color-primary-alpha-60: rgba(221, 65, 50, 0.70);
|
||||
--color-primary-alpha-80: rgba(221, 65, 50, 0.85);
|
||||
|
||||
/* backgrounds - nicholai.work dark palette */
|
||||
--color-body: #0B0D11;
|
||||
--color-box-body: #111318;
|
||||
--color-box-body-highlight: #171B22;
|
||||
--color-box-header: #1A1F28;
|
||||
--color-secondary: #1E242E;
|
||||
--color-secondary-dark-1: #171B22;
|
||||
--color-secondary-dark-2: #111318;
|
||||
--color-secondary-light-1: #252C38;
|
||||
--color-secondary-light-2: #2C3542;
|
||||
|
||||
/* text colors - high contrast for readability */
|
||||
--color-text-dark: #FFFFFF;
|
||||
--color-text: #D1D9E6; /* ~11:1 - primary text, very readable */
|
||||
--color-text-light: #B0BFD0; /* ~8:1 - secondary text */
|
||||
--color-text-light-2: #94A3B8; /* ~6.5:1 - tertiary text */
|
||||
--color-text-light-3: #7A8A9D; /* ~4.8:1 - muted text */
|
||||
|
||||
/* borders */
|
||||
--color-border: #2C3542;
|
||||
--color-light-border: #1E242E;
|
||||
--color-input-border: #2C3542;
|
||||
--color-input-border-hover: #dd4132;
|
||||
|
||||
/* semantic colors */
|
||||
--color-success: #10B981;
|
||||
--color-success-text: #34D399;
|
||||
--color-success-bg: rgba(16, 185, 129, 0.1);
|
||||
--color-success-border: rgba(16, 185, 129, 0.3);
|
||||
|
||||
--color-warning: #F59E0B;
|
||||
--color-warning-text: #FBBF24;
|
||||
--color-warning-bg: rgba(245, 158, 11, 0.1);
|
||||
--color-warning-border: rgba(245, 158, 11, 0.3);
|
||||
|
||||
--color-error: #EF4444;
|
||||
--color-error-text: #F87171;
|
||||
--color-error-bg: rgba(239, 68, 68, 0.1);
|
||||
--color-error-border: rgba(239, 68, 68, 0.3);
|
||||
|
||||
--color-info: #3B82F6;
|
||||
--color-info-text: #60A5FA;
|
||||
--color-info-bg: rgba(59, 130, 246, 0.1);
|
||||
--color-info-border: rgba(59, 130, 246, 0.3);
|
||||
|
||||
/* diff colors */
|
||||
--color-diff-removed-word-bg: rgba(239, 68, 68, 0.4);
|
||||
--color-diff-added-word-bg: rgba(16, 185, 129, 0.4);
|
||||
--color-diff-removed-row-bg: rgba(239, 68, 68, 0.1);
|
||||
--color-diff-moved-row-bg: rgba(245, 158, 11, 0.1);
|
||||
--color-diff-added-row-bg: rgba(16, 185, 129, 0.1);
|
||||
--color-diff-removed-row-border: rgba(239, 68, 68, 0.3);
|
||||
--color-diff-moved-row-border: rgba(245, 158, 11, 0.3);
|
||||
--color-diff-added-row-border: rgba(16, 185, 129, 0.3);
|
||||
|
||||
/* code/syntax */
|
||||
--color-code-bg: #111318;
|
||||
--color-code-sidebar-bg: #0B0D11;
|
||||
|
||||
/* interactive states */
|
||||
--color-hover: rgba(221, 65, 50, 0.1);
|
||||
--color-active: rgba(221, 65, 50, 0.2);
|
||||
--color-focus: rgba(221, 65, 50, 0.3);
|
||||
|
||||
/* shadows */
|
||||
--color-shadow: rgba(0, 0, 0, 0.5);
|
||||
|
||||
/* buttons */
|
||||
--color-button: #252C38;
|
||||
--color-button-hover: #2C3542;
|
||||
|
||||
/* navbar */
|
||||
--color-nav-bg: #0B0D11;
|
||||
--color-nav-text: #D1D9E6;
|
||||
--color-nav-hover-bg: #1A1F28;
|
||||
|
||||
/* labels */
|
||||
--color-label-bg: #252C38;
|
||||
--color-label-text: #D1D9E6;
|
||||
--color-label-hover-bg: #2C3542;
|
||||
|
||||
/* menu */
|
||||
--color-menu: #111318;
|
||||
--color-menu-hover: #1A1F28;
|
||||
--color-menu-active: #1E242E;
|
||||
|
||||
/* markdown */
|
||||
--color-markdown-code-block: #111318;
|
||||
--color-markdown-table-row: #171B22;
|
||||
|
||||
/* reaction */
|
||||
--color-reaction-bg: #1A1F28;
|
||||
--color-reaction-hover-bg: #252C38;
|
||||
--color-reaction-active-bg: rgba(221, 65, 50, 0.2);
|
||||
|
||||
/* placeholder/input */
|
||||
--color-placeholder-text: #7A8A9D;
|
||||
--color-input-text: #D1D9E6;
|
||||
--color-input-background: #111318;
|
||||
|
||||
/* accent shades for various UI elements */
|
||||
--color-accent: #dd4132;
|
||||
--color-small-accent: #dd4132;
|
||||
|
||||
/* link colors */
|
||||
--color-link: #dd4132;
|
||||
--color-link-hover: #e35d50;
|
||||
}
|
||||
|
||||
/* font overrides */
|
||||
body,
|
||||
.ui,
|
||||
.ui.menu,
|
||||
.ui.text,
|
||||
.ui.header,
|
||||
.ui.message,
|
||||
.ui.button,
|
||||
input,
|
||||
textarea,
|
||||
select {
|
||||
font-family: 'Sora', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
|
||||
}
|
||||
|
||||
code,
|
||||
pre,
|
||||
.mono,
|
||||
.codebox,
|
||||
.CodeMirror,
|
||||
.code-view,
|
||||
.file-view {
|
||||
font-family: 'IBM Plex Mono', 'SFMono-Regular', 'Menlo', monospace !important;
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user