mmomm-org_obsidian-newtab/test
Marcus Breiden 2db53f5fb8 feat(styles): add customizable text styles for new-tab elements
Closes #41 (phase 1). Adds reusable, named text styles (font family,
size %, weight, italic, color) that can be assigned per element (time,
greeting, recent files, bookmarks, inline search, quote).

- Styles are applied via --nt-* CSS variables on each element's
  container; App.scss reads them with the original values as fallbacks,
  so the built-in Default style reproduces the current look exactly
  (quote line proportions and responsive sizing preserved via a shared
  size scale).
- Font picking uses the Local Font Access API (queryLocalFonts) with
  live per-option preview on desktop, falling back to free-text entry
  on mobile / when unavailable.
- Settings gain a "Text styles" section: add/remove styles with
  safe-delete (assignments fall back to Default) and per-element
  assignment dropdowns.
- normalizeStyleSettings backfills the fields for existing installs and
  guarantees a Default style is always present.

Pure style logic lives in light, Obsidian-free modules (textStyles,
resolveTextStyles, systemFonts, cssFontFamily) with unit tests.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-23 12:07:46 +00:00
..
__mocks__ test: cover quote logic (getQuote, getVaultQuotes, CustomQuotesModel) 2026-06-14 11:05:46 +00:00
NewTab feat: add vault notes as a combinable quote source (#7) 2026-06-10 20:22:37 +00:00
beautitab.test.ts fix: use a valid secret id for the imported Unsplash key (#33) 2026-06-13 12:17:03 +02:00
cssFontFamily.test.ts feat(styles): add customizable text styles for new-tab elements 2026-06-23 12:07:46 +00:00
CustomQuotesModel.test.ts test: cover quote logic (getQuote, getVaultQuotes, CustomQuotesModel) 2026-06-14 11:05:46 +00:00
example.test.ts feat: scaffold New Tab plugin (beautitab fork) on MiYo build pipeline 2026-06-10 12:27:44 +02:00
getBackground.test.ts test: cover getBackground (seasonal tags, theme dispatch, Unsplash) 2026-06-14 11:09:48 +00:00
getBookmarks.test.ts test: cover getBookmarks (flatten, group lookup, resolution) 2026-06-14 11:07:33 +00:00
getEasterDate.test.ts fix(easter): use correct Gregorian computus algorithm 2026-06-14 11:02:43 +00:00
getLeafHistory.test.ts feat(navigation): add back/forward buttons to the new tab 2026-06-17 18:47:11 +00:00
getQuote.test.ts test: cover quote logic (getQuote, getVaultQuotes, CustomQuotesModel) 2026-06-14 11:05:46 +00:00
getTime.test.ts test: cover getTime and greeting utils 2026-06-14 11:02:48 +00:00
getVaultQuotes.test.ts test: cover quote logic (getQuote, getVaultQuotes, CustomQuotesModel) 2026-06-14 11:05:46 +00:00
greetings.test.ts test: cover getTime and greeting utils 2026-06-14 11:02:48 +00:00
normalizeStyleSettings.test.ts feat(styles): add customizable text styles for new-tab elements 2026-06-23 12:07:46 +00:00
resolveLocalBackgrounds.test.ts feat: store local backgrounds in a vault folder instead of base64 (#6) 2026-06-11 10:05:50 +00:00
resolveTextStyles.test.ts feat(styles): add customizable text styles for new-tab elements 2026-06-23 12:07:46 +00:00
systemFonts.test.ts feat(styles): add customizable text styles for new-tab elements 2026-06-23 12:07:46 +00:00