feat(ui): add month view with income entry and post table
Negative remaining balances are shown in a warning treatment; nothing blocks going over budget. Applies the Tasks 18-23 design contract: --paper/--ink/--rule/--accent/ --surplus/--overspend tokens and the three type-role font variables in src/index.css, --font-money on every money figure, and the carry meter (a 3px hard-stopped gradient beneath each PostTable row) encoding carried-in surplus, allocation track, spend fill and overrun. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
ccb97818d7
commit
dd612565cb
16 files changed
+914
-75
No files matched your search
@@ -1,5 +1,25 @@
|
||||
@import "../styles/globals.css";
|
||||
|
||||
/*
|
||||
* Design contract tokens (Tasks 18-23).
|
||||
* See .superpowers/sdd/2026-09-01-budget-app/design-contract.md
|
||||
*
|
||||
* Deliberately unlayered (not inside @layer base) so it wins the cascade
|
||||
* over the shadcn defaults imported above, which are also unlayered.
|
||||
*/
|
||||
:root {
|
||||
--paper: #f2f4f6; /* cool statement-paper ground, NOT cream */
|
||||
--ink: #16212b; /* ink navy, primary text */
|
||||
--rule: #d8dee4; /* hairlines, table borders */
|
||||
--accent: #0f6e63; /* muted teal: links, primary actions, spend fill */
|
||||
--surplus: #2f6f4e; /* carried-forward surplus */
|
||||
--overspend: #a6402b; /* ochre-red: negative balances only */
|
||||
|
||||
--font-display: ui-sans-serif, "Segoe UI Variable Display", system-ui, sans-serif;
|
||||
--font-body: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
|
||||
--font-money: ui-monospace, "SF Mono", "Cascadia Mono", "Roboto Mono", monospace;
|
||||
}
|
||||
|
||||
@layer base {
|
||||
:root {
|
||||
@apply font-sans;
|
||||
@@ -7,6 +27,34 @@
|
||||
|
||||
body {
|
||||
@apply grid place-items-center min-w-[320px] min-h-screen relative m-0 bg-background text-foreground;
|
||||
font-family: var(--font-body);
|
||||
}
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4,
|
||||
h5,
|
||||
h6 {
|
||||
font-family: var(--font-display);
|
||||
font-weight: 650;
|
||||
letter-spacing: -0.02em;
|
||||
}
|
||||
}
|
||||
|
||||
@layer utilities {
|
||||
/* Applied to every money figure: mono face, tabular digits. */
|
||||
.font-money {
|
||||
font-family: var(--font-money);
|
||||
font-variant-numeric: tabular-nums;
|
||||
}
|
||||
|
||||
.text-overspend {
|
||||
color: var(--overspend);
|
||||
}
|
||||
|
||||
.text-surplus {
|
||||
color: var(--surplus);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user