Scaffold CommiTea: yarn workspaces, Electron shell, core label schema, design system
- apps/desktop: electron-vite + React + Tailwind mapped onto design tokens (preflight off; tokens/base.css owns the reset); boots to a Reginald placeholder proving fonts/tokens/core wiring - packages/core: pure TS; gitea label schema (est/*, p/*, deadline/hard) with pessimistic conflict resolution + 15 unit tests - docs/design: full design handoff (tokens, 16 component contracts, interactive 14-screen prototype, Reginald voice rules) - docs/PLAN.md: product plan (purity rule, pm-state repo, deterministic scheduler + Monte Carlo, directive log) - Deliberate deviation from novelpad stack: no ElectricSQL/PGlite — local store is a rebuildable cache over gitea REST/webhooks (better-sqlite3 in main process, arriving in P1) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
67
apps/desktop/tailwind.config.js
Normal file
67
apps/desktop/tailwind.config.js
Normal file
@@ -0,0 +1,67 @@
|
||||
/**
|
||||
* Tailwind maps onto the design-token custom properties (src/renderer/src/design/tokens/)
|
||||
* and never redefines their values. Preflight is off — tokens/base.css owns the reset.
|
||||
* @type {import('tailwindcss').Config}
|
||||
*/
|
||||
export default {
|
||||
content: ['./src/renderer/index.html', './src/renderer/src/**/*.{ts,tsx}'],
|
||||
corePlugins: { preflight: false },
|
||||
theme: {
|
||||
extend: {
|
||||
colors: {
|
||||
paper: {
|
||||
0: 'var(--paper-0)',
|
||||
1: 'var(--paper-1)',
|
||||
2: 'var(--paper-2)',
|
||||
3: 'var(--paper-3)',
|
||||
},
|
||||
ink: {
|
||||
1: 'var(--ink-1)',
|
||||
2: 'var(--ink-2)',
|
||||
3: 'var(--ink-3)',
|
||||
inverse: 'var(--ink-inverse)',
|
||||
},
|
||||
line: {
|
||||
1: 'var(--line-1)',
|
||||
2: 'var(--line-2)',
|
||||
},
|
||||
accent: {
|
||||
DEFAULT: 'var(--accent)',
|
||||
hover: 'var(--accent-hover)',
|
||||
pressed: 'var(--accent-pressed)',
|
||||
tint: 'var(--accent-tint)',
|
||||
text: 'var(--accent-text)',
|
||||
},
|
||||
jade: {
|
||||
DEFAULT: 'var(--jade)',
|
||||
tint: 'var(--jade-tint)',
|
||||
},
|
||||
ok: { DEFAULT: 'var(--ok)', tint: 'var(--ok-tint)' },
|
||||
warn: { DEFAULT: 'var(--warn)', tint: 'var(--warn-tint)' },
|
||||
danger: { DEFAULT: 'var(--danger)', tint: 'var(--danger-tint)' },
|
||||
info: { DEFAULT: 'var(--info)', tint: 'var(--info-tint)' },
|
||||
},
|
||||
fontFamily: {
|
||||
display: ['Libre Caslon Display', 'serif'],
|
||||
agent: ['Libre Caslon Text', 'serif'],
|
||||
sans: ['Instrument Sans', 'system-ui', 'sans-serif'],
|
||||
mono: ['IBM Plex Mono', 'ui-monospace', 'monospace'],
|
||||
},
|
||||
borderRadius: {
|
||||
1: 'var(--radius-1)',
|
||||
2: 'var(--radius-2)',
|
||||
3: 'var(--radius-3)',
|
||||
},
|
||||
boxShadow: {
|
||||
1: 'var(--shadow-1)',
|
||||
2: 'var(--shadow-2)',
|
||||
3: 'var(--shadow-3)',
|
||||
'jade-line': 'var(--shadow-jade-line)',
|
||||
},
|
||||
transitionTimingFunction: {
|
||||
out: 'var(--ease-out)',
|
||||
},
|
||||
},
|
||||
},
|
||||
plugins: [],
|
||||
}
|
||||
Reference in New Issue
Block a user