Readium CSS Implementers’ doc
Readium CSS Implementers’ doc
Readium CSS Fundamental Concepts
1. We’re the User Agent
2. Aim at Interoperability
3. Leverage Modern CSS
4. Openness and Transparency
Quickstart
Important info
How To
Customize
Build dist stylesheets
Manage User Settings
Create Themes
Inject and paginate EPUB contents
Injection
Pagination
How the multicolumn layout works
Introduction
The multi-column model
The number and width of columns
Column gaps and rules
Fragmentation (column break)
Column span
Filling columns
Overflow
Reflow
Notorious limitations
Notes
Reading Systems Requirements for reflowable text
CSS Snapshot
Prefixed properties
HTML Suggested Rendering
Reading System Overrides
Notes
Order in which to append Readium CSS reflowable modules
Dist stylesheets
Src modules
How to use CSS custom properties (a.k.a. variables)
What are CSS variables?
Cascade and inheritance
Fallback
Using CSS variables in JavaScript
Interesting hacks
Defaults
Base
Day Mode
Default
OS’ a11y modes
Typefaces and font-stacks
Test files
Fundamentals
UI
Latin
Amharic (am)
Arabic (ar)
Bengali/Bangla (bn)
Tibetan (bo)
Cherokee (chr)
Persian (fa)
Gujarati (gu)
Hebrew (he)
Hindi (hi)
Armenian (hy)
Inuktitut (iu)
Japanese (ja)
Khmer (km)
Kannada (kn)
Korean (ko)
Lao (lo)
Malayalam (ml)
Oriya (or)
Punjabi (pa)
Sinhalese (si)
Tamil (ta)
Telugu (te)
Thai (th)
Chinese (zh-CN)
Chinese – Hong Kong (zh-HK)
Chinese – Taiwan (zh-TW)
Dyslexic
Math
EBPAJ patch for Japanese
Open Source and Libre Fonts We Can Recommend
How were those fonts reviewed
Results
Recommended Typefaces
Recommended fonts for Accessibility
Recommended fonts for CJK
Recommended fonts for Hebrew
Recommended fonts for Arabic and Persian
Recommended fonts for Indic
User Overrides’ Classification
Chrome
Chrome advanced
User overrides
User overrides advanced
User Settings, Reading Modes and Themes
Mechanism for user settings
Flags
List of variables
Themes
Alternative options
User settings can be language-specific
Baseline for a11y-related user settings
OS settings
Current a11y Features on the market
Vestibular disorders
Internationalization
Recommendations for User Settings Management
Managing conflicts
!important
Number of columns
Page margins
Reading modes
Font family (typeface)
Font size
Line height (leading)
Text align (justification)
Hyphenation
Paragraphs’ formatting
Characters’ spacing
Ligatures (Arabic & Persian scripts)
User preferences’ insights
User Settings
Typography
Internationalization
The current situation
Resources
What implementers need
How authors can help
Overarching issues
Out of scope
Glossary
Internationalization – A Typography Primer
Abstract
Fonts
Text decoration
Emphasis
Line breaking
Hyphenation
Justification
Indents
Vertical text
Readium CSS Further Details: Explaining the CSS Voodoo
The Internal Framework
Font Size Normalize and the Type Scale
Dynamic leading
Conditional Selectors for user settings
Themes
Readium CSS Variables API
How to set and remove user preferences
Customizable medias
Customizable flags
Reading System Styles
Reading Modes
User Settings
List of proposals and specs impacting Readium CSS
Media Queries Level 5
Logical Properties and Values
CSS Extensions
Calc notation: min() and max()
User Agent Properties
CSS Rhythmic Sizing
CSS Fonts Module Level 4
COGA Semantics to Enable Personalization
Multicol editing
W3C i18n
CSSOM (a.k.a. Houdini)
EPUB Compatibility
Introduction
CSS At-rules
Non-standard Kindle Media queries
Interactive and Fixed-layout EPUB 2
Metadata
Attributes
Webkit’s CSS multi-column extensions
Non-standard CSS properties
EPUB properties
Install, test and build Readium CSS
Install and init references for regression tests
Build
Test
Fixed-layouts’ Reading Systems Requirements
Styling
Scaling
Notes
E-production feedback and requests
CSS Authors’ typical profile
Workflow and authoring
Worries and issues
Popular requests
Interoperability issues reported
CSS Performance Hacks
Will-change
CSS Containment
i18n glossary
Arabic
Chinese
Indic
Japanese
Features that were considered but not implemented
Alternate background colors for lines (A11Y)
Contrasting text against backgrounds in custom user themes
Handle day/night theme based on OSs’ light/dark mode