Skip to content
Jiminy Panoz edited this page Jul 8, 2017 · 4 revisions

Reading systems have to deal with extra issues authors might not know of.

Performance, cross-platform implementations, number of platforms supported, CSS and JS support, styles’ scoping, the box model, user settings, etc. are many problems we have to take into account.

As a consequence, design and development often results in technical compromises.

We’ll try to explain our design choices and the compromises we have to made as regularly as possible.

Scope of the project

As stated in the Readium Baseline repository, what we have to manage:

  • CSS Reset for the (web) app
  • Pagination (will probably require normalization in some places)
  • Default CSS (books w/o styles)
  • Handling Overrides (including themes)
  • Reading Mode
  • Media Overlays
  • Highlighting

Design & Implementation

Insofar as possible, the CSS design and implementation should be:

  1. simple;
  2. modular;
  3. relying on stylesheets (and not inline styles so that we can use the cascade) ;
  4. documented.

The idea is to make it accessible and customizable enough so that implementers and authors can share a sound basis instead of dealing with collateral damage and playing cat and mouse around overrides.

Overrides should apply if and only if:

  1. they normalize pagination (to get the result the author expects);
  2. they are user settings.