Theme system:
- Two-layer architecture: mode (light/dark/system via next-themes) + theme family (color palette via CSS variables)
- 12 theme families: Default, GitHub, Rosé Pine, Tokyo Night, Everforest, Nord, Kanagawa, Night Owl, Poimandres, Vesper, Horizon, SynthWave '84
- Per-family code block highlighting for Prism, HLJS, and Shiki (no more generic oneLight/oneDark fallback)
- Anti-FOUC: synchronous script in <head> reads localStorage and sets data-theme-family before paint
- Theme JSON files in themes/ directory, auto-discovered by server-side loader
- OKLCH color space for all values; CSS specificity html[data-theme-family] beats :root
UI changes:
- NavRail: moved Settings to bottom (replacing theme toggle), removed light/dark toggle button
- Settings: merged General controls into one card with dividers; Appearance section with live Shiki code preview
- Replaced hardcoded blue-500/blue-600 with primary/primary-foreground across 19 components
- Appearance settings: pill mode selector (light/dark/system), theme family dropdown, live code preview
New files:
- src/lib/theme/{types,loader,render-css,context,code-themes}.ts — core theme infrastructure
- src/components/layout/ThemeFamilyProvider.tsx — client context provider
- src/components/settings/AppearanceSection.tsx — appearance settings UI
- src/hooks/useAppTheme.ts — combined theme hook
- themes/*.json — 12 theme family definitions
- docs/handover/theme-system.md — handover documentation
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
93 lines
2.0 KiB
YAML
93 lines
2.0 KiB
YAML
appId: com.codepilot.app
|
|
productName: CodePilot
|
|
publish:
|
|
provider: github
|
|
owner: op7418
|
|
repo: CodePilot
|
|
directories:
|
|
output: release
|
|
files:
|
|
- dist-electron/**/*
|
|
- "!node_modules"
|
|
- "!src"
|
|
- "!electron"
|
|
- "!.next"
|
|
- "!build"
|
|
- "!scripts"
|
|
- "!docs"
|
|
- "!release"
|
|
- "!data"
|
|
extraResources:
|
|
- from: .next/standalone/
|
|
to: standalone/
|
|
filter:
|
|
- "**/*"
|
|
- "!node_modules"
|
|
- "!release"
|
|
- from: .next/standalone/node_modules/
|
|
to: standalone/node_modules/
|
|
filter: ["**/*"]
|
|
- from: .next/standalone/.next/
|
|
to: standalone/.next/
|
|
filter: ["**/*"]
|
|
- from: .next/static/
|
|
to: standalone/.next/static/
|
|
filter: ["**/*"]
|
|
- from: public/
|
|
to: standalone/public/
|
|
filter: ["**/*"]
|
|
- from: themes/
|
|
to: standalone/themes/
|
|
filter: ["*.json"]
|
|
- from: build/
|
|
to: .
|
|
filter: ["icon.*"]
|
|
afterPack: scripts/after-pack.js
|
|
afterSign: scripts/after-sign.js
|
|
asarUnpack:
|
|
- "**/*.node"
|
|
- "**/better-sqlite3/**"
|
|
mac:
|
|
icon: build/icon.icns
|
|
category: public.app-category.developer-tools
|
|
artifactName: "${productName}-${version}-${arch}.${ext}"
|
|
hardenedRuntime: true
|
|
gatekeeperAssess: false
|
|
entitlements: build/entitlements.mac.plist
|
|
entitlementsInherit: build/entitlements.mac.inherit.plist
|
|
notarize: false
|
|
target:
|
|
- target: dmg
|
|
arch: [x64, arm64]
|
|
- target: zip
|
|
arch: [x64, arm64]
|
|
win:
|
|
icon: build/icon.ico
|
|
target:
|
|
- target: nsis
|
|
arch: [x64, arm64]
|
|
nsis:
|
|
oneClick: false
|
|
perMachine: false
|
|
allowToChangeInstallationDirectory: false
|
|
createDesktopShortcut: true
|
|
createStartMenuShortcut: true
|
|
deleteAppDataOnUninstall: false
|
|
linux:
|
|
icon: build/icon.png
|
|
category: Development
|
|
artifactName: "${productName}-${version}-${arch}.${ext}"
|
|
desktop:
|
|
entry:
|
|
Name: CodePilot
|
|
Comment: A native desktop GUI for Claude Code
|
|
Categories: Development;IDE;
|
|
StartupWMClass: codepilot
|
|
target:
|
|
- target: AppImage
|
|
arch: [x64, arm64]
|
|
- target: deb
|
|
arch: [x64, arm64]
|
|
- target: rpm
|
|
arch: [x64, arm64]
|