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:
65
docs/design/tokens/fonts.css
Normal file
65
docs/design/tokens/fonts.css
Normal file
@@ -0,0 +1,65 @@
|
||||
/* CommiTea webfonts — self-hosted, latin subsets */
|
||||
|
||||
@font-face {
|
||||
font-family: 'Libre Caslon Display';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-display: swap;
|
||||
src: url(../assets/fonts/caslon-display-normal-400.woff2) format('woff2');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'Libre Caslon Text';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-display: swap;
|
||||
src: url(../assets/fonts/caslon-text-normal-400.woff2) format('woff2');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'Libre Caslon Text';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
font-display: swap;
|
||||
src: url(../assets/fonts/caslon-text-italic-400.woff2) format('woff2');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'Libre Caslon Text';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
font-display: swap;
|
||||
src: url(../assets/fonts/caslon-text-normal-700.woff2) format('woff2');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'Instrument Sans';
|
||||
font-style: normal;
|
||||
font-weight: 400 700;
|
||||
font-display: swap;
|
||||
src: url(../assets/fonts/instrument-sans-normal-400-700.woff2) format('woff2');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'Instrument Sans';
|
||||
font-style: italic;
|
||||
font-weight: 400 700;
|
||||
font-display: swap;
|
||||
src: url(../assets/fonts/instrument-sans-italic-400-700.woff2) format('woff2');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'IBM Plex Mono';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
font-display: swap;
|
||||
src: url(../assets/fonts/plex-mono-normal-400.woff2) format('woff2');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'IBM Plex Mono';
|
||||
font-style: normal;
|
||||
font-weight: 500;
|
||||
font-display: swap;
|
||||
src: url(../assets/fonts/plex-mono-normal-500.woff2) format('woff2');
|
||||
}
|
||||
@font-face {
|
||||
font-family: 'IBM Plex Mono';
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
font-display: swap;
|
||||
src: url(../assets/fonts/plex-mono-normal-600.woff2) format('woff2');
|
||||
}
|
||||
Reference in New Issue
Block a user