diff options
| author | Fuwn <[email protected]> | 2026-02-07 05:45:41 -0800 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2026-02-07 05:45:41 -0800 |
| commit | 6368c74432ced80e0ac6ad2c5fe9c2495d1bc6ae (patch) | |
| tree | c8b583a21bd489170b8f664e8c028fbbd9d95d49 /apps/web/app/reader/settings/_components | |
| parent | fix: resolve 6 pre-ship audit bugs (diff) | |
| download | asa.news-6368c74432ced80e0ac6ad2c5fe9c2495d1bc6ae.tar.xz asa.news-6368c74432ced80e0ac6ad2c5fe9c2495d1bc6ae.zip | |
feat: resolve 7 pre-ship QoL items
- Space/Shift+Space: page down/up in detail panel (80% scroll)
- Content font: sans-serif/serif/monospace selector in appearance
settings, applied to article content in detail panel
- Accessibility: entry-list-item uses button instead of div, folder
toggles have aria-expanded, shortcut keys have aria-labels
- Share notes: replaced window.prompt with proper modal dialog
matching existing UI patterns
- Worker .env.example: template with all 10 environment variables
- Worker poisoned messages: archive unprocessable queue messages
instead of leaving them stuck forever
- Worker pool Submit: check return value, reschedule dropped feeds
30s into the future, log warnings for rejected submissions
Diffstat (limited to 'apps/web/app/reader/settings/_components')
| -rw-r--r-- | apps/web/app/reader/settings/_components/appearance-settings.tsx | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/apps/web/app/reader/settings/_components/appearance-settings.tsx b/apps/web/app/reader/settings/_components/appearance-settings.tsx index 6c04f00..508051f 100644 --- a/apps/web/app/reader/settings/_components/appearance-settings.tsx +++ b/apps/web/app/reader/settings/_components/appearance-settings.tsx @@ -31,6 +31,10 @@ export function AppearanceSettings() { ) const fontSize = useUserInterfaceStore((state) => state.fontSize) const setFontSize = useUserInterfaceStore((state) => state.setFontSize) + const contentFont = useUserInterfaceStore((state) => state.contentFont) + const setContentFont = useUserInterfaceStore( + (state) => state.setContentFont + ) const timeDisplayFormat = useUserInterfaceStore( (state) => state.timeDisplayFormat ) @@ -155,6 +159,25 @@ export function AppearanceSettings() { </select> </div> <div className="mb-6"> + <h3 className="mb-2 text-text-primary">content font</h3> + <p className="mb-3 text-text-dim"> + controls the typeface used for article content + </p> + <select + value={contentFont} + onChange={(event) => + setContentFont( + event.target.value as "sans-serif" | "serif" | "monospace" + ) + } + className="border border-border bg-background-primary px-3 py-2 text-text-primary outline-none focus:border-text-dim" + > + <option value="sans-serif">sans-serif</option> + <option value="serif">serif</option> + <option value="monospace">monospace</option> + </select> + </div> + <div className="mb-6"> <h3 className="mb-2 text-text-primary">time display</h3> <p className="mb-3 text-text-dim"> choose between relative timestamps (e.g. “2h ago”) or |