Skip to content

Release: scrolled reading, vertical layout and Chromium 156 line layout - #55

Merged
Ringyuki merged 159 commits into
masterfrom
dev
Nov 4, 2026
Merged

Ringyuki merged 159 commits into
masterfrom
dev

Conversation

@Ringyuki

@Ringyuki Ringyuki commented Nov 4, 2026

Copy link
Copy Markdown
Owner

Scrolled reading, vertical-rl layout and the line layout of Chromium 156, with the reader app reading pages and scrolled on one reader.

  • @ritojs/core (minor): spread: 'scrolled' lays each chapter out as one continuous strip read through viewport-sized windows (getScrollLayout(), a located page's blockOffset), leftwards for an rtl book. Vertical-rl chapters are laid out in their writing mode: box edges and sizes, upright glyphs in their vertical forms with vhal trimming, text-combine-upright, text-emphasis, vertical ruby and orthogonal inline boxes; their records are physical (reader protocol 9). Line breaking, closer trimming, ruby annotation space, inline-blocks as atomic inlines and block sizes follow Chromium 156.
  • @ritojs/kit (minor): createScrollController shows the windows end to end on one canvas, moved by replaceable physics, with selection, app highlights and their hit-testing (tap.highlight, highlightHover), a screen-reader mirror and pageLength. The page controller's suspend() / resume() hand one reader between the page view and a scroll view.
  • @ritojs/react (minor): useRitoScrollReader, useRitoScrollView (a page controller's book read scrolled on the same reader), useScrollSelectionHandles and ScrollSelectionHandles; useAnnotations starts from the records a controller already holds.
  • rito_flutter (Unreleased section): RitoScrollReaderView and RitoScrollReaderController for scrolled reading, vertical layout from the shared engine.
  • Reader app: Layout → Scrolled switches on the same reader (no reopening the book), with the floating selection toolbar, the annotation tooltip and editor, and the context menu in scrolled mode. The deployed demo's Sharded Demo is now packed in the Pages build.
  • Dependencies: vite 6.4.5; happy-dom 21 declared by kit and react (high audit advisories).

Local gates on 9f8c520: rust:check, wasm check + build + test, audit (no high), test:ci, release:pack-check, reader e2e (49 passed, 6 skipped), golden pixel and coverage, all green. Flutter's flutter test last ran at d476ddc; nothing in crates/, packages/rito, packages/rito-core-wasm or packages/rito_flutter changed since.

Merging deploys the reader demo and opens the version PR; packages are published only when that PR is merged.

…mes before any soft one, and a run past 64 KiB keeps its clusters' text
…rleaved trims and separated pairs against Chromium
… spreads, band lines, cancellation and held widths across both drivers
…, and a pass decides from the first line that does
…ss element boundaries and taking inline box edges as open and close tags
…, launched through one oracle entry that requires an English browser
…in windows that tile it on whole device rows
… in its first viewport, the initial containing block
…f its strip and resolves a locator to the line it puts on the reading line
…dow's target line offset and each chapter's extent, and a scrolled session holds more live windows
…, and each window's text is laid out around it when the window is read
…ards, its vertical chapters as strips and its other chapters a page a window
…in inside its container, as Chromium places a block cleared past adjoining floats
…tever its element, at its own size, empty or holding blocks
…the margins at the break are discarded, as Chromium fragments
…ct-fit and snapped to whole pixels like any inline image
… layout unit grid, as Chromium stores a used size
… measuring it no longer changes how the truth rasters it
… line in the max-content width, as Chromium measures it
… parent's x-height above the baseline, as Chromium places it
…es it back, painting, turning and answering layouts no more meanwhile
…a layout that numbers the windows anew, and can be moved before it is mounted
…d on the same reader, from where the pages were and back
… selection, and holds the whole-book layout while a selection is made
…ows its tooltip under the mouse, as on a page
…enu, its selection items and a page of the strip back and on
…hrough paints with the canvas pen, as no GPU
@Ringyuki
Ringyuki merged commit b2ad29d into master Nov 4, 2026
12 checks passed
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