Files
CodePilot/electron-builder.yml
T
7418andClaude Opus 4.6 4da188bfe5 feat: theme family system with 12 color palettes + NavRail redesign
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>
2026-03-09 11:15:01 +08:00

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]