Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
7e541ab
UN-4299 [MISC] Turn on skipLibCheck for v1: vitest 3.2 and @types/cha…
praveen-formido Oct 28, 2026
6f22f62
UN-4299 [FEAT] Add the v1 theme model: three modes, follow-system and…
praveen-formido Oct 28, 2026
7aa5bf4
UN-4299 [FEAT] Add the v1 portal container and the theme preference s…
praveen-formido Oct 28, 2026
0c85cd6
UN-4299 [FEAT] Add the v1 token source, the generator and tokens.css …
praveen-formido Oct 28, 2026
6393d31
UN-4299 [FIX] Prefix the spacing utilities in the token table so they…
praveen-formido Oct 28, 2026
4a05a26
UN-4299 [FEAT] Add cn() configured for the v1 utility prefix
praveen-formido Oct 28, 2026
a9307e7
UN-4299 [FIX] Pin the v1 prefix in cn() with a test that fails withou…
praveen-formido Oct 28, 2026
5a361ae
UN-4299 [FIX] Use "ui" as the v1 utility prefix: Tailwind accepts low…
praveen-formido Oct 28, 2026
0e2b7a0
UN-4299 [FEAT] Add the prefixed v1 Tailwind root with fonts, modes, t…
praveen-formido Oct 28, 2026
d737fa8
UN-4299 [FIX] Exclude the generated tokens.css from Biome formatting …
praveen-formido Oct 28, 2026
a9acf5e
UN-4299 [FIX] Sort the imports in cn.ts so biome ci passes
praveen-formido Oct 28, 2026
54469cb
UN-4299 [FIX] Make the root compile test fail on unscoped selector li…
praveen-formido Oct 28, 2026
43c9ced
UN-4299 [FEAT] Add ThemeProvider: the v1 root, follow-system binding …
praveen-formido Oct 28, 2026
cc6126c
UN-4299 [FIX] Apply the stored theme before first paint with useLayou…
praveen-formido Oct 28, 2026
0e13d94
UN-4299 [FEAT] Enforce the v1 styling policy: raw colours, pixels, in…
praveen-formido Oct 28, 2026
c3a703c
UN-4299 [FIX] Scope the styling lint to class strings and cover vh/vw…
praveen-formido Oct 28, 2026
a35da5b
UN-4299 [FIX] Keep v0's Tailwind scan out of src/v1, the lint scripts…
praveen-formido Oct 28, 2026
d6047e9
UN-4299 [FIX] Teach cn the type roles so a role and a text colour no …
praveen-formido Oct 28, 2026
b29503d
UN-4299 [FIX] Reject colour literals outside class strings, named-col…
praveen-formido Oct 28, 2026
e064614
UN-4299 [FIX] Keep the focus ring visible in forced-colors mode and s…
praveen-formido Oct 28, 2026
88354e1
UN-4299 [FIX] Create the portal container before the mode changes so …
praveen-formido Oct 28, 2026
a41e1ba
UN-4299 [FIX] Document the v0 rules that reach v1, the focus-ring usa…
praveen-formido Oct 28, 2026
8231919
UN-4299 [FIX] Name the theme storage key in the v1 README
praveen-formido Oct 28, 2026
d0c1be0
UN-4299 [MISC] Name the three theme modes in the v1 README
praveen-formido Oct 28, 2026
f8969a5
Merge remote-tracking branch 'origin/UN-4299-design-tokens-themes' in…
athul-rs Oct 28, 2026
d791573
UN-4290 Move the v1 menus onto the ui: prefix and design tokens
athul-rs Oct 28, 2026
bef9515
UN-4299 [FEAT] Let a v1 style attribute set CSS custom properties only
praveen-formido Oct 29, 2026
678efbb
UN-4299 [FIX] Make check-v1-styles.mjs executable to match its shebang
praveen-formido Oct 29, 2026
8028a73
UN-4299 [FIX] Type the custom-property keys a v1 style attribute may set
praveen-formido Oct 29, 2026
3d88fbf
Merge branch 'UN-4290-v1-account-menu' into UN-4290-v1-menus-tokens
athul-rs Oct 29, 2026
982c743
Merge remote-tracking branch 'origin/UN-4299-design-tokens-themes' in…
athul-rs Oct 29, 2026
d555e16
UN-4290 [FIX] Check the scroll classes by their ui: names
athul-rs Oct 29, 2026
8510dac
UN-4290 [FIX] Make the space before the new-tab hint explicit
athul-rs Oct 29, 2026
6202e5a
UN-4290 [FIX] Put the menus on the popover colour and match the switc…
athul-rs Oct 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions frontend/biome.json
Original file line number Diff line number Diff line change
Expand Up @@ -177,6 +177,10 @@
}
}
},
{
"includes": ["src/v1/styles/tokens.css"],
"formatter": { "enabled": false }
},
{
"includes": ["src/**", "!src/v1/**"],
"linter": {
Expand Down
7 changes: 3 additions & 4 deletions frontend/bun.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 3 additions & 1 deletion frontend/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -78,8 +78,9 @@
"lint:all": "biome check --write src/",
"lint:changed": "(git diff --name-only --diff-filter=ACMR; git ls-files --others --exclude-standard) | grep -E '\\.[jt]sx?$' | sed 's|^frontend/||' | sort -u | xargs -r biome check --write",
"typecheck": "tsc --noEmit",
"tokens:v1": "node scripts/build-v1-tokens.mjs",
"typecheck:v1": "node scripts/check-v1.mjs --files && tsc -p src/v1/tsconfig.json",
"lint:v1": "biome lint src/v1/ && node scripts/check-v1.mjs --code",
"lint:v1": "biome lint src/v1/ && node scripts/check-v1.mjs --code && node scripts/check-v1-styles.mjs",
"test:v1": "vitest run --dir src/v1 --passWithNoTests && node --test test-fixtures/v1-boundary/boundary.fixtures.mjs scripts/v1-plugins.fixtures.mjs"
},
"browserslist": {
Expand All @@ -96,6 +97,7 @@
},
"devDependencies": {
"@biomejs/biome": "^2.3.13",
"@tailwindcss/node": "4.3.3",
"@tailwindcss/postcss": "^4",
"@tailwindcss/typography": "^0.5.20",
"@tailwindcss/vite": "^4",
Expand Down
40 changes: 40 additions & 0 deletions frontend/scripts/build-v1-tokens.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
import fs from "node:fs";
import { registerHooks } from "node:module";
import path from "node:path";

// Node's ESM resolver needs file extensions; v1 source imports siblings without
// them (`./theme`), as Vite and tsc expect. Retry such relative imports as `.ts`.
registerHooks({
resolve(specifier, context, nextResolve) {
try {
return nextResolve(specifier, context);
} catch (error) {
if (specifier.startsWith(".") && !path.extname(specifier)) {
return nextResolve(`${specifier}.ts`, context);
}
throw error;
}
},
});

const { renderTokensCss } = await import("../src/v1/lib/tokens.ts");
const { TOKENS } = await import("../src/v1/styles/tokens.ts");
const out = path.join(
import.meta.dirname,
"..",
"src",
"v1",
"styles",
"tokens.css",
);
const css = renderTokensCss(TOKENS);
if (process.argv.includes("--check")) {
if (fs.readFileSync(out, "utf8") !== css) {
console.error(
"src/v1/styles/tokens.css is stale; run `bun run tokens:v1`.",
);
process.exit(1);
}
} else {
fs.writeFileSync(out, css);
}
Loading
Loading