Skip to content

fix(settings): user-configurable typography controls for chat and input#172

Merged
quiet-node merged 7 commits into
mainfrom
worktree-proud-tinkering-puppy
May 15, 2026
Merged

fix(settings): user-configurable typography controls for chat and input#172
quiet-node merged 7 commits into
mainfrom
worktree-proud-tinkering-puppy

Conversation

@quiet-node
Copy link
Copy Markdown
Owner

Summary

  • Adds four user-configurable typography tunables under [window] in config.toml: text_base_px, text_line_height, text_letter_spacing_px, and text_font_weight
  • Exposes sliders for all four in Settings > Display, with descriptive labels for font weight (Regular/Medium/Semi-bold/Bold)
  • Drives the existing CSS variables (--thuki-text-base, --thuki-text-line-height, --thuki-text-letter-spacing, --thuki-text-font-weight) from the resolved config via a new useEffect in App.tsx
  • Fixes a regression in patch_document where whole-number JSON saves into missing float fields were persisted as TOML Integer instead of Float, causing the next fractional save to fail with a type mismatch; schema-derived template is now the authoritative type source

Architecture

Follows the documented config checklist exactly: defaults in config/defaults.rs, schema in schema.rs, validation/clamping in loader.rs, frontend projection in ConfigContext, and full test coverage at every layer.

Test plan

  • Run bun run test:all:coverage - all 1295 frontend tests + 858 backend tests pass, both coverage gates green
  • Run bun run validate-build - lint, format, typecheck, and production build all clean
  • Launch app, open Settings > Display, verify all four sliders appear and persist across restarts
  • Verify fractional font-size saves (e.g. 15.5 px) succeed after a whole-number save on a fresh config

Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
…quick keystroke

Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
…ng field

Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
…ching config

Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
…graphy controls

Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
…tive labels

Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
…rns, and coverage gaps

Signed-off-by: Logan Nguyen <lg.131.dev@gmail.com>
@quiet-node quiet-node changed the title feat(settings): user-configurable typography controls for chat and input fix(settings): user-configurable typography controls for chat and input May 15, 2026
@quiet-node quiet-node merged commit 03e523c into main May 15, 2026
3 checks passed
@quiet-node quiet-node deleted the worktree-proud-tinkering-puppy branch May 15, 2026 05:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant