| 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 |