| | 1 | = Variable Fonts = |
| | 2 | |
| | 3 | //Myles Maxfield, Apple// |
| | 4 | |
| | 5 | - contain tables for each glyph |
| | 6 | - sequence of points that define each path |
| | 7 | - variable fonts allow parameterization of: |
| | 8 | - control points in glyph contours |
| | 9 | - advances (horizontal space) for each glyph |
| | 10 | - shaping information |
| | 11 | - '''basically all information specified by table''' |
| | 12 | - parameters held in a vector |
| | 13 | - grouped together into axes |
| | 14 | - e.g. weight, height, etc. |
| | 15 | - software sends a value to the font structure that generates a result based on these axes |
| | 16 | - SanFransisco only understands `weight` axis |
| | 17 | - Skia has `weight`, `width`, etc. |
| | 18 | - these axes are animatable |
| | 19 | - implemented/used via CSS |
| | 20 | - three main components |
| | 21 | - some properties already exists (`weight`, `width`, and `stretch`) which map directly onto axes (`weight`, `width`, and `slant`) |
| | 22 | - remaining axes do not currently have CSS properties, but are used by the browser |
| | 23 | - axes that are unknown to browsers |
| | 24 | - `font-variation-settings` is a sequence of key-value pairs that define custom axes and their value format |
| | 25 | - due to cascading of CSS, this property must replace the entire list (no append) |
| | 26 | - each property can have different syntax/format |
| | 27 | - prevents duplication of fonts for different features |
| | 28 | - new format will be larger than a single font, but smaller than two forms of the same font (normal and bold > new format > normal) |
| | 29 | - support for font files with this format is basically done |
| | 30 | - CSS implementation is still being worked out |