XingfenD
|
996f492083
|
feat(frontend): reading stats store (TDD) + session heartbeat hook (B0)
|
2026-09-16 15:22:38 +08:00 |
|
XingfenD
|
64cc293878
|
feat(frontend): readerPrefs v2 unified structure (TDD)
|
2026-09-16 15:15:08 +08:00 |
|
XingfenD
|
a3755bcfab
|
test(frontend): sample component tests for button/dialog/theme-toggle (B2)
|
2026-09-15 11:54:56 +08:00 |
|
XingfenD
|
ca419410b4
|
test(frontend): component testing infra (jsdom + testing-library + vitest projects)
|
2026-09-15 11:46:20 +08:00 |
|
XingfenD
|
29167d3cea
|
style(frontend): prettier baseline format (no logic change)
|
2026-09-15 11:27:54 +08:00 |
|
XingfenD
|
6fbe3b0794
|
fix(web): active lib highlight, rail a11y names, card focus ring, AA accent + destructive tokens, touch-reachable menu, brand wordmark, chrome unify
|
2026-09-08 20:37:20 +08:00 |
|
XingfenD
|
913f3286bb
|
feat(lib): shelf sort/section pure helpers + formatSize extraction, table tests
|
2026-09-08 17:29:07 +08:00 |
|
XingfenD
|
cd251b940c
|
feat(cbz): pure chapter-window helpers (chapterIndexAt/chapterWin) with table tests
|
2026-09-08 14:56:46 +08:00 |
|
XingfenD
|
32b9d3a136
|
feat(ui): content-first shelf redesign — responsive cover grid, hover overlays, format badges, skeletons, sticky blurred top bar, brand login, SVG icon set, animated toasts
|
2026-09-08 13:05:40 +08:00 |
|
XingfenD
|
c6dfb92c76
|
fix(cbz): smooth scrollbar/slider dragging — rAF-coalesce scroll handler, idle-debounced prefetch, frame-batched height corrections, PageHeights.setEst converges unseen pages to the first measured page size, page slider seeks instantly while scrubbing (no per-notch smooth-animation restart); restore lost ### Fixed header in changelog
|
2026-09-07 23:13:04 +08:00 |
|
XingfenD
|
065fde5b56
|
feat(reader): immersive chrome + WeChat-Read/Mihon-style bottom sheets — tap-center toggles header/toolbar, progress & page sliders seek anywhere, WYSIWYG theme swatches, A± font size; CBZ gains 连读/整页/适高 modes, edge-tap & arrow-key paging, persisted mode (seekChapter helper + test)
|
2026-09-07 23:03:26 +08:00 |
|
XingfenD
|
7e63c21902
|
feat(reader): stop detecting 卷 in txt splitting (volume lines stay body text, volume-only books fall back to pseudo-sections); replace chapter dropdown with a 目录 sidebar overlay (active row highlighted + centered, click-away/pick to close)
|
2026-09-07 22:42:10 +08:00 |
|
XingfenD
|
f47f2a6199
|
fix(reader): split large txt into chapters (章 as boundaries, 卷 as optgroup labels, pseudo-sections when unmarked) rendered one at a time so the browser stops freezing; decode via strict-UTF-8-then-GB18030 with UTF-16 BOM sniffing to kill mojibake; progress locator {ch,scrollFraction} with old global-fraction fallback
|
2026-09-07 22:21:29 +08:00 |
|
XingfenD
|
961de429f9
|
fix(deploy): pin distinct image tags per compose (booklib/{api,web}:{dev,prod}); same project name shared default tags so dev up without --build ran the prod image
|
2026-09-07 21:24:33 +08:00 |
|