Apply the Kestrove design system to the desktop UI

- src/ui: tokens.css (generated from the design system's tokens.json), kv.css components, fonts.css with
  the bundled Inter and JetBrains Mono woff2, kv.ts DOM builders (icons, tiles, item rows, secrets,
  codes, TOTP ring, pills, banners). The browser extension uses the same module.
- Layout: custom title bar in bg (macOS overlay title bar, traffic lights kept), left rail, list and detail.
- Item detail: field rows with 10-dot masking, coloured digits/symbols on reveal (re-masks after 30 s),
  copy turns into a check for 1.5 s, TOTP in code-lg with the ring.
- Add-a-device QR card, Use my phone QR with countdown and confirmation code, approve sheet.
- Status pills, banners and the integrity alert; Light / Dark / System in Settings (also sets the window theme).
- totp command returns the period for the ring.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
2026-10-20 16:35:58 +09:00
co-authored by Claude Opus 5.5
parent f406bf76ec
commit 19c4ce1899
13 changed files with 1225 additions and 427 deletions
+15
View File
@@ -0,0 +1,15 @@
/* Bundled fonts (SIL OFL 1.1): Inter and JetBrains Mono, variable, Latin + Latin Extended. */
@font-face {
font-family: "Inter"; font-style: normal; font-display: swap; font-weight: 100 900;
src: url("./fonts/Inter-Latin.woff2") format("woff2");
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
font-family: "Inter"; font-style: normal; font-display: swap; font-weight: 100 900;
src: url("./fonts/Inter-LatinExt.woff2") format("woff2");
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: "JetBrains Mono"; font-style: normal; font-display: swap; font-weight: 100 800;
src: url("./fonts/JetBrainsMono-Latin.woff2") format("woff2");
}