Skip to content

Release notes iOS Framework 5 release candidate

For more information about release candidates, see Release Candidates.

5.0.0-rc.3 2026-04-02

API Docs

New features

  • Added support for publications utilizing CSS nesting.

  • Introduced explicit focus targeting for ReaderView.focusOnReadingPosition. You can now select the nearest element, character, word, or sentence, significantly improving precision for accessibility and reading-position workflows.

  • Added a new insets option to the various renderer options classes. This allows for extra padding inside the renderer's scrolling container, ensuring content can be scrolled comfortably below system UI elements like device notches or status bars.

    Note: This option is currently experimental and its behavior may change prior to the final 5.0.0 release.

  • Upgraded PDF.js to version 5.4.530, delivering enhanced performance and broader document compatibility.

Deprecations

  • Deprecated focusNearContentLocation in FocusOnReadingPositionOptions. Please use focusTargetOptions instead.

Improvements

  • Changed the default value of EpubSelectorDocumentSectioningAlgorithm.minimumCharactersPerSection from 10000 to 20000.
  • Selectors defined in EpubReflowOptions.fragmentableElements.blacklistSelectors are now also used when performing document sectioning breaks.
  • Elements that trigger document sectioning breaks are now marked with the attribute data-colibrio-document-sectioning-break. The attribute value is set to either BEFORE or AFTER depending on the rule that triggered the document sectioning break.
  • Improved support for PDF Character Maps (CMap), enabling improved text support for complex scripts and various languages.

Bugfixes

  • Fixed an issue that could cause publication content with position: absolute to overflow in paginated renderers without being able to scroll the content.
  • Resolved an issue where :nth- pseudo-class selectors using An+B syntax like :nth-child(2n+1) sometimes were not preserved correctly.
  • Fixed an EPUB rendering issue where overflow mitigations could override publication-defined CSS transforms in reflowable content documents.
  • Fixed several issues where selecting text in PDF documents would fail or behave unexpectedly.
  • Fixed an issue that could cause SearchResultItemIterator.takeRemaining() to fail on a large set of search results.

5.0.0-rc.2 2026-01-23

API Docs

Bugfixes

  • Fixed an issue in the ContinuousScrollRenderer where starting your swipe action horizontally before swiping vertically would not let you scroll.
  • Fixed an issue where calling ReaderView.goTo twice in quick succession (causing the first call to be aborted) could leave pages stuck in a "Loading" state or cause rendering glitches.
  • Fixed an issue where nested CSS @import declarations used the wrong base URL. Relative URLs inside imported CSS files located in a different directory than the parent CSS file now resolve correctly.

5.0.0-rc.1 2025-11-14

API Docs

NOTE

These release notes describe the changes since version 4.6.1

New features

  • Added the new renderer ContinuousScrollRenderer that shows all documents in a single vertical scrolling view.
  • Added a new event listener for the ReaderView, OnReadingAreaRangeChangedListener, which you can use to get notified when the reading area range changes. You can retrieve the updated value using the new property, ReaderView.readingAreaRange. Note that for paginated renderers the reading area range is the same as the visible range.
    • Note: We have marked ReaderView.readingAreaRange and its corresponding listener OnReadingAreaRangeChangedListener as experimental APIs as we may change the definition of the Reading Area based on your feedback.
  • 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 listener method, OnRendererScrollEventListener.onRendererScrollChanged(event:), which is called continuously while scroll renderers are scrolling.
  • Changed the OnRendererScrollEventListener.onRendererScrollStarted(event:) parameter type to RendererScrollEngineEventData. It is now possible to determine whether scrolling was initiated by the user 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 ReaderViewScrollByOptions argument to ReaderView.scrollBy(length:options). When the option setReadingPositionToReadingAreaStart is 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

  • Bumped minimum iOS version to iOS 15.
  • Reordered initializer arguments alphabetically in all Renderer options:
    • FlipBookRendererOptions
    • SingleDocumentScrollRendererOptions
    • SinglePageSwipeRendererOptions
    • SpreadSwipeRendererOptions
    • StackRendererOptions
  • All async interactions that communicate with the web view are now @MainActor isolated.
  • The ContainerContentBlockType enum entry .MATHML_SUB_SUPERSCRIPT was renamed to MATHML_SUBSUP_SCRIPT to be consistent with its value.

Changes to default options

  • EpubReaderPublicationOptions.documentSectioningOptions.enabled has changed from false to true.
  • ReaderViewOptions.pageProgressionTimelineOptions.enabled has changed from true to false.
  • ReaderPublicationOptions.reflowOptions.unforcedTextBreak.widows.minLines has changed from 3 to 2.
  • If you are using PageProgressionTimeline, in addition to enabling it, you must also:
    • Set EpubReaderPublicationOptions.documentSectioningOptions.enabled to false, or
    • Set ReaderViewOptions.pageProgressionTimelineOptions.forceCompleteRendition to true

Removed old deprecated types and members

  • Removed ColibrioAudioPlayer.setMediaSessoinMetaData(mediaSessionMetadata:). Please use the setter on ColibrioAudioPlayer.mediaSession.metaData instead.
  • Removed ColibrioAudioPlayer.setMediaCommands(mediaCommands:). Please use the setter on ColibrioAudioPlayer.mediaSession.mediaCommands instead.
  • Removed typealias FetchNavigationItemReferencesResultData. Please use FetchNavigationItemReferencesResult instead.
  • Removed typealias ReaderPublicationNavigationData. Please use ReaderPublicationNavigation instead.
  • Removed typealias ReaderPublicationNavigationCollectionData. Please use ReaderPublicationNavigationCollection instead.
  • Removed typealias ReaderPublicationNavigationItemData. Please use ReaderPublicationNavigationItem instead.
  • Removed typealias ReaderPublicationNavigationItemReferenceData. Please use ReaderPublicationNavigationItemReference instead.
  • Removed typealias ColibrioView. Please use ColibrioReadingSystemView instead.
  • Removed SyncMediaPlayer.approximateElapsedTime. Please use SyncMediaPlayer.approximateElapsedTimeMs instead.
  • Removed SyncMediaPlayer.playing. Please use !(SyncMediaPlayer.paused) && (SyncMediaPlayer.ready) instead.
  • Removed typealias VisiblePageData. Please use VisiblePage instead.
  • Removed ReaderView.fetchRectsForVisibleContent(visiblePage:locator:options:completion). Please use VisiblePage.fetchRectsForVisibleContent(locator:options:completion:) instead.
  • Removed ReaderView.fetchRectsForVisibleContent(visiblePage:locator:options) async. Please use VisiblePage.fetchRectsForVisibleContent(locator:options:) async instead.
  • Removed ReaderView.syncMediaPlayer (set). Please use ReaderView.setSyncMediaPlayer(syncMediaPlayer:initialSyncMethod:) instead.
  • Removed ReadingSystemEngine.addOnLicenseEventListener(_:). Please use ColibrioReaderFramework.addOnLicenseEventListener(_:) instead.
  • Removed ReadingSystemEngine.removeOnLicenseEventListener(_:). Please use ColibrioReaderFramework.removeOnLicenseEventListener(_:) instead.
  • Removed ReadingSystemEngine.createZipResourceProvider(dataSource:options:completion). Please use ZipResourceProvider.create(dataSource:zipResourceProviderOptions:) instead.
  • Removed ReadingSystemEngine.createZipResourceProvider(dataSource:options:) async. Please use ZipResourceProvider.create(dataSource:zipResourceProviderOptions:) async instead.
  • Removed ZipResourceProvider.create(dataSource:serializedZipArchiveInformation:chunkCacheSize:completion). Please use ZipResourceProvider.create(dataSource:zipResourceProviderOptions:) instead.

Improvements

  • Most data types now conform to the Sendable protocol.

Deprecations

  • Deprecated ignoreAspectRatio in all renderer options. Please use ReaderView.options.contentDisplayAreaOptions 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.