Skip to main content
Skip table of contents

Web framework 5

5.0.0-rc.1 (2025-11-14)

API Docs

These release notes describe the changes since version 4.6.0.

Known issues

  • When rendering PDFs using a ReaderView Element that is inside a Shadow DOM, offscreen <canvas> elements may be added to document.body instead of the Shadow root. This will be fixed in 5.0.0-rc.2.

New features

  • Added the new renderer ContinuousScrollRenderer that shows all documents in a single vertical scrolling view.

  • Added ReaderView.getReadingAreaRange() . The Reading Area is a subset of the visible content that the renderer uses as the reference point for reading position calculations. Note that for paginated renderers the Reading Area range is the same as the visible range. Use the readingAreaRangeChanged engine event to detect when this value changes.

    • Note: We have marked ReaderView.getReadingAreaRange() and its corresponding listener readingAreaRangeChanged as experimental APIs as we may change the definition of the Reading Area based on your feedback.

  • Added support for rendering the ReaderView in a Shadow DOM. Previously, our styles were not reaching the viewElement if it was inside a Shadow DOM but that has now been fixed.

  • Added a new ReaderView.goTo() option scrollRendererScrollBehavior to control how scroll renderers behave when the target position is already visible in the ReaderView.

  • Scroll renderers can now smoothly scroll to nearby positions. The duration of the smooth scrolling can be controlled with the renderer options scrollAnimationDurationMs and scrollAnimationMaxDistance. Please refer to the API documentation for more information.

  • Added a new event, rendererScrollChanged, which is fired continuously while scroll renderers are scrolling.

  • It is now possible to determine whether scrolling was initiated by the user using the rendererScrollStarted event by inspecting the userGenerated property.

  • Added a new renderer option swipeNavigationGestureThreshold. This option can be used to configure the swipe distance required to perform a swipe navigation. Additionally, swipe animations have been refined to start more smoothly.

  • Added a new option to ReaderView.scrollBy() called setReadingPositionToReadingAreaStart. When set to true, the reading position moves to the start of the new Reading Area after scrolling, instead of staying until it leaves the visible range. This is now the default behavior of scrollBy()

  • Added support for EPUB switch/case elements.

Breaking changes

  • The minimum supported browser versions have changed to:

    • Safari 15

    • Firefox 128

    • Chrome 64

    • Edge 79

  • The distributed framework module files .mjs are now real ES modules instead of importing the common JS version of the module.

  • Typescript definition files are now built from Typescript 5.9.3

  • The distributed framework module files are now using ECMASCRIPT 2018 syntax.

  • Changed the rendererScrollStarted event type to IRendererScrollEngineEvent

  • ReaderView.scrollBy() now returns a Promise that resolves when the scrolling animation has finished.

  • The ContainerContentBlockType enum entry MATHML_SUB_SUPERSCRIPT was renamed to MATHML_SUBSUP_SCRIPT to be consistent with its value.

Changes to default options

  • IEpubReaderPublicationOptions.documentSectioningOptions.enabled has changed from false to true.

  • IReaderViewOptions.pageProgressionTimelineOptions.enabled has changed from true to false.

  • IReaderPublicationOptions.reflowOptions.unforcedTextBreak.widows.minLines has changed from 3 to 2.

If you are using PageProgressionTimeline, in addition to enabling it, you must also:

  • Set IEpubReaderPublicationOptions.documentSectioningOptions.enabled to false

or

  • Set IReaderViewOptions.pageProgressionTimelineOptions.forceCompleteRendition to true

Removed old deprecated types and members

  • Removed IReaderPublicationStorage.setStorageState() and IReaderPublicationStorage.getStorageState(). Please get the storage area instead using getStorageArea(), then use IReaderPublicationStorageArea.setItems() and IReaderPublicationStorageArea.getItems() instead.

  • Removed ISyncMediaPlayer.isPlaying(). Please use !isPaused() && isReady() instead.

  • Removed IReaderView.fetchRectsForVisibleContent(). Please use IVisiblePage.fetchRectsForVisibleContent() instead.

  • Removed ReadingSystemEngine.setOptions(). Pass options when calling new ReadingSystemEngine() instead.

  • Removed IReaderDocument.fetchContentBlocks() Please use IReaderDocument.fetchContentBlockTree() instead.

  • Removed IReaderDocument.fetchLocatorForContentBlockData(). Please use fetchContentBlockTree(), and use IContentBlock.getLocator() instead.

  • Removed the whole module colibrio-readingsystem-indexengine. Please use the API available at ReadingSystemEngine.getReaderDocumentSearch() instead.

Bugfixes

  • Fixed an issue with pinch-zooming in PDFs containing many links. Previously, if one finger was on a link, pinch-zooming failed.

  • Fixed an issue with publication CSS stylesheets not working on iOS 26.2 Beta 2.

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.