Commit Graph
115 Commits
Author SHA1 Message Date
Kiro Agent c30e07c270 feat(reader): reading papers as a reader setting
白纸 / 暖黄 / 浅绿 / 灰调 / 夜间 (prototypes 4 and 23) tint only the reading
page — paper, ink, readouts — while the chrome keeps the reading theme.
Stored per device in AppSettings (paper, paperFollowsDark), set from the
reader's 外观 sheet or 外观与主题. 夜间 makes the reader dark; a light paper
gives way to the theme's dark values while the app is dark unless
跟随系统深色模式 is off. Old sepia/green/dark page themes migrate to the
matching paper. Tokens are mirrored in TS and CSS and held to contrast by
theme-tokens.test.ts.
2026-10-20 04:26:51 +00:00
Kiro Agent 858a7479bf feat(theme): V3.1 semantic tokens, four themes and a reading theme
Implements docs/prototypes/Reader V3 主题语义令牌.md (v3.1):

- 暖陶 (default), 雾蓝, 青绿 app themes plus the reading-only 黑白灰, each
  light and dark. Components read --color-* tokens from
  styles/theme-tokens.css, selected by data-theme + data-mode; the
  TypeScript mirror lives in shared/theme/theme.ts.
- Brand is split per the spec: brand/ch-* only fill (with on-brand/on-ch on
  top), brand-text/ch-*-text for text. --reader-accent/--media-accent are now
  brand text; --reader-fill/--media-fill are brand fills. Selected segmented
  controls use brand-soft + brand-text.
- One preference per server+account (reader.theme.v2): app theme, mode
  (system/light/dark), the follow-system light/dark pair, and the reading
  theme. V3 choices migrate per spec §8 (rose falls back to 暖陶 light).
- 外观与主题 rebuilt from prototype 23: follow-system switch with the
  light/dark pair, app-theme cards with light/dark previews, and the
  reading theme (跟随应用 / 黑白灰).
- Reader: 黑白灰 is set on the reader container only; the appearance panel
  offers 跟随应用/黑白灰 and 明暗; day/night sets the mode; the e-ink preset
  uses 黑白灰 light.
- Video and music players wear the current theme's dark values (§4.7).
- Removed the legacy light/sepia/green/dark palettes and the
  <html data-theme> writes from reader settings, which would now collide
  with data-theme="green".
- Tests: theme-tokens.test.ts keeps CSS and TS values identical and checks
  the §5 contrast pairs for all 8 palettes; theme.test.tsx covers migration,
  resolution, the controller and the settings page.
2026-10-20 04:05:35 +00:00
hectorqin be0f20064f 新增V3原型和主题语义令牌 2026-10-20 10:20:32 +08:00
hectorqin 5ffee3db51 feat(media): add play modes and customizable system themes 2026-10-20 10:17:18 +08:00
Claude db6ea15727 docs(ui): shell sidebar breakpoint is 701px 2026-10-19 22:33:29 +08:00
Claude c0dc54efab feat(reader): one theme for reading and media, V3 reader chrome
The book now wears the same six app themes as every other page (plus
follow-system); the separate white/sepia/green/dark reading themes are gone.
The 外观 sheet's swatches are the app themes drawn in their own colours and
the day/night rail button switches between 暖纸 and 深夜. The bottom bar
becomes a rounded sheet. 界面 is renamed 外观 in the bar, panel, review
scripts and spec.

Shelf title is 书架 in the serif face and loses the now-redundant headphones
link. docs/ui.md gains the V3 shell section.
2026-10-19 22:33:27 +08:00
Claude bf325ec072 feat(reader): reorder appearance and read-aloud sheets by use
Appearance: font size, line height, theme (drawn as swatches in each theme's
own paper and ink) and brightness now fill the first screen. Margins,
alignment, font, TXT rows and the four readouts move into closed <details>.

Read aloud: the start button is first and primary; rate gains preset steps;
pitch and volume are folded under 更多. Capability hiding is unchanged.

Spec updated in docs/ui.md; chrome tests cover order, folds and swatches.
2026-10-19 22:33:17 +08:00
hectorqin 875fec84dd fix(media): sync prototype routes and review tooling 2026-10-08 09:51:42 +08:00
hectorqin 8584d7b4e3 fix(web): align React UI with legacy reader UX
Unify media secondary page chrome, loading states, playback controls, favorites filtering, and source/library screens with the legacy reader experience.
2026-10-05 13:23:27 +08:00
hectorqin 007cc3c754 fix(web): finish media UX alignment
Align the React media detail, player, history, queue, shelf, and resource flows with the legacy UX. Refresh the migration validation record and add focused route, resource, and shelf parity coverage.
2026-10-04 11:02:23 +08:00
hectorqin c0af84a00f test(web): verify React media flows against legacy UX 2026-10-03 20:19:52 +08:00
hectorqin 050b8e89db refactor(web): finish media feature migration 2026-10-03 15:04:34 +08:00
hectorqin 2aaa4280c7 refactor(web): migrate client to React architecture 2026-10-03 12:12:30 +08:00
hectorqin 80124d8c4e chore: commit current workspace changes 2026-10-02 11:24:25 +08:00
hectorqin 385e68de78 feat(media): add directory recognition rules and reviewed reidentification 2026-09-28 17:53:30 +08:00
hectorqin f583b32e46 feat(media): clean missing resources by directory 2026-09-28 17:24:04 +08:00
hectorqin 5db43d2da0 fix(media): recover blocked direct playback through CORS and proxy 2026-09-28 14:43:26 +08:00
hectorqin 501ca71f6b fix(media): prefer OpenList direct playback and open player before buffering 2026-09-28 13:39:47 +08:00
hectorqin ff976a4cf6 feat(settings): manage business configuration from admin pages 2026-09-28 12:38:54 +08:00
hectorqin dec8ec8c44 docs: document media features and remove remote source plugin guides 2026-09-28 10:32:52 +08:00
hectorqin 001dc3ddbe feat(pwa): allow immediate updates after saving reading progress 2026-09-28 10:32:34 +08:00
hectorqin 73f9eb6e20 feat(media): add isolated media libraries and playback
Support local and OpenList libraries, metadata, independent media navigation, themes, and audio/video playback. Preserve approved v2 prototypes and current documentation; archive superseded review artifacts and keep generated validation output outside version control.
2026-09-27 18:22:51 +08:00
hectorqin 902bc8c8d3 refactor(settings): separate system administration from shelf preferences 2026-09-24 17:34:06 +08:00
hectorqin 06b3d09e22 feat(admin): manage users and invite-based registration 2026-09-24 17:19:48 +08:00
hectorqin 316dd72611 fix(auth): retain renewable sessions and support LAN annotations 2026-09-24 16:59:28 +08:00
hectorqin 1d86efab34 feat(reader): add selection annotations and server-side book search 2026-09-24 16:03:35 +08:00
hectorqin 0b7f901db5 chore(server): change default listening port to 5888 2026-09-24 14:50:13 +08:00
hectorqin 2d85c39756 feat(search): log stream termination reasons and plugin diagnostics 2026-09-24 11:48:42 +08:00
hectorqin 524d015b35 feat(plugins): load dependent forms on tab and selection changes 2026-09-24 11:26:57 +08:00
hectorqin 4cc7bff5f0 feat(plugins): add rule debugging workbench layout 2026-09-24 11:09:27 +08:00
hectorqin aa7aee051d feat(sources): organize source login and plugin management 2026-09-24 10:32:47 +08:00
hectorqin 05877aa4f5 fix(web): move external reader access into shelf settings 2026-09-24 09:43:33 +08:00
hectorqin 86d6b54e4e docs: normalize archived issue formatting 2026-09-24 07:47:53 +08:00
hectorqin 7bff77eaf8 feat(reader): deliver P0-P2 reading tools and ecosystem integrations
Add reliable reading progress, verified backup and restore, reading tools, offline downloads, source quality checks, personal credential status, OPDS serving and verified WebDAV backup uploads.
2026-09-24 07:47:32 +08:00
hectorqin e3cabf4b1f feat(web): add PWA installation and offline app shell 2026-09-24 06:34:21 +08:00
hectorqin 95cb3134db feat(sources): support default source and refine switching UI 2026-09-23 15:16:15 +08:00
hectorqin f773b6e1fc feat(search): group books by title and authors with source selection 2026-09-23 13:40:38 +08:00
hectorqin 4896e5efc7 feat(reader): stream alternative sources and refresh current chapters
Add book information dialogs and compact toolbar actions with source provenance. Reuse Streamable HTTP for alternative discovery and preserve cached text when a forced refresh fails.
2026-09-23 13:16:54 +08:00
hectorqin 0a468992be feat(plugins): update installed packages while preserving source data 2026-09-23 12:42:14 +08:00
hectorqin cb96d48d62 fix(search): stop on stream disconnect and allow concurrent book actions 2026-09-23 11:41:24 +08:00
hectorqin a852682e0c fix(plugins): isolate all request timeouts and cancellations 2026-09-23 11:14:41 +08:00
hectorqin 47baee014e feat(ui): unify page feedback with global Notyf notifications
Route login, shelf, library, file operations, reading, sources and extension feedback through one compact themed notification host. Keep native modal feedback in the top layer, escape remote text, update progress in place and let reading controls receive clicks beneath message text. Cover lifecycle, error handling and layout with unit and Chromium checks.
2026-09-23 10:13:03 +08:00
hectorqin 0782202dae fix(plugins): isolate search stop failures and float operation feedback
A searchCancel deadline previously killed the shared plugin process and prevented subsequent acquisition. Release only the stop request and allow late cleanup to finish. Keep ordinary hard cancellation unchanged. Cover process and HTTP acquisition regressions and compact extension feedback without layout shifts.
2026-09-23 09:46:02 +08:00
hectorqin d7ebc3c898 feat(plugins): support web npm and tgz installation 2026-09-22 19:21:37 +08:00
hectorqin dcf94c6709 test: validate generic host source extensions end to end 2026-09-22 18:10:46 +08:00
hectorqin 72c4405435 chore: keep host repository plugin agnostic 2026-09-22 17:47:21 +08:00
hectorqin 5772014d3f docs: split bilingual readme and getting started guides 2026-09-22 17:12:49 +08:00
hectorqin 4af639d3b8 docs: document streamed source search and upload semantics 2026-09-22 16:54:18 +08:00
hectorqin be219e5090 docs: align library write model and deployment guidance 2026-09-22 16:49:06 +08:00
hectorqin a131a8cc45 feat(plugins): add bounded diagnostic output 2026-09-22 15:56:22 +08:00