googlefonts / axisregistry

A Python API to access data from the Google Fonts variable fonts Axis Registry.
Apache License 2.0
25 stars 9 forks source link

Some frequency data from existing variable fonts #4

Open twardoch opened 2 years ago

twardoch commented 2 years ago

This is frequency data sampled from a range of existing variable fonts.

wght:
  display_name:
  - Weight
  - wght
  - null
  - Weight1
  - Bang!
  - Chisel
  - Size
  - Grade
  min_value: 100.0
  default_value: 400.0
  max_value: 900.0
  freq: 948
wdth:
  display_name:
  - Width
  - wdth
  - Strange Width
  min_value: 75.0
  default_value: 100.0
  max_value: 100.0
  freq: 261
opsz:
  display_name:
  - Optical size
  - Optical Size
  - opsz
  - Optical
  min_value: 8.0
  default_value: 12.0
  max_value: 144.0
  freq: 115
slnt:
  display_name:
  - Slant
  - slnt
  - Slanted
  min_value: 0.0
  default_value: 0.0
  max_value: 0.0
  freq: 49
ital:
  display_name:
  - Italic
  min_value: 0.0
  default_value: 0.0
  max_value: 1.0
  freq: 43
GRAD:
  display_name:
  - GRAD
  - Grade
  - Grad
  min_value: 0.0
  default_value: 0.0
  max_value: 10.0
  freq: 20
YOPQ:
  display_name:
  - YOPQ
  - Yopaque
  - y opaque
  - Y Opaque
  min_value: 18.0
  default_value: 124.0
  max_value: 132.0
  freq: 11
XOPQ:
  display_name:
  - XOPQ
  - Xopq
  - x opaque
  - X Opaque
  - X-Opacity
  min_value: 18.0
  default_value: 176.0
  max_value: 263.0
  freq: 10
YTLC:
  display_name:
  - YTLC
  - Ytlc
  - y transparent lowercase
  - lc y transparent
  min_value: 420.0
  default_value: 500.0
  max_value: 570.0
  freq: 10
YTAS:
  display_name:
  - YTAS
  - Ytas
  - y transparent lowercase ascender
  - y transparent ascender
  min_value: 500.0
  default_value: 767.0
  max_value: 983.0
  freq: 10
YTDE:
  display_name:
  - YTDE
  - Ytde
  - y transparent lowercase descender
  - y transparent descender
  min_value: -500.0
  default_value: -240.0
  max_value: -138.0
  freq: 10
CNTR:
  display_name:
  - Contrast
  min_value: 0.0
  default_value: 0.0
  max_value: 100.0
  freq: 10
XTRA:
  display_name:
  - XTRA
  - Xtra
  - x transparent
  min_value: 324.0
  default_value: 562.0
  max_value: 640.0
  freq: 8
YTUC:
  display_name:
  - YTUC
  - y transparent uppercase
  min_value: 500.0
  default_value: 750.0
  max_value: 1000.0
  freq: 8
phon:
  display_name:
  - PH1
  min_value: 0.0
  default_value: 0.0
  max_value: 100.0
  freq: 7
phtw:
  display_name:
  - PH2
  min_value: 0.0
  default_value: 0.0
  max_value: 100.0
  freq: 7
phth:
  display_name:
  - PH3
  min_value: 0.0
  default_value: 0.0
  max_value: 100.0
  freq: 7
XMMM:
  display_name:
  - zAxis
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 7
HGHT:
  display_name:
  - Height
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 6
SPCG:
  display_name:
  - Spacing
  min_value: 0.0
  default_value: 0.0
  max_value: 150.0
  freq: 6
FLAR:
  display_name:
  - Flair
  min_value: 0.0
  default_value: 0.0
  max_value: 100.0
  freq: 6
VOLM:
  display_name:
  - Volume
  min_value: 0.0
  default_value: 0.0
  max_value: 100.0
  freq: 6
CONT:
  display_name:
  - Contrast
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 5
MONO:
  display_name:
  - MONO
  - Monospace
  - Monofaux
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 5
WONK:
  display_name:
  - wonk
  - Wonky
  - Wonk
  min_value: 0.0
  default_value: 1.0
  max_value: 1.0
  freq: 5
OUTL:
  display_name:
  - Outline
  min_value: 1.0
  default_value: 1000.0
  max_value: 1000.0
  freq: 5
'T1  ':
  display_name:
  - Toggle 1
  min_value: 0.0
  default_value: 0.0
  max_value: 1.0
  freq: 4
'T2  ':
  display_name:
  - Toggle 2
  min_value: 0.0
  default_value: 0.0
  max_value: 1.0
  freq: 4
'T3  ':
  display_name:
  - Toggle 3
  min_value: 0.0
  default_value: 0.0
  max_value: 1.0
  freq: 4
'T4  ':
  display_name:
  - Toggle 4
  min_value: 0.0
  default_value: 0.0
  max_value: 1.0
  freq: 4
'M1  ':
  display_name:
  - Motion 1
  min_value: -1.0
  default_value: 0.0
  max_value: 1.0
  freq: 4
'M2  ':
  display_name:
  - Motion 2
  min_value: -1.0
  default_value: 0.0
  max_value: 1.0
  freq: 4
YTFI:
  display_name:
  - YTFI
  min_value: 425.0
  default_value: 760.0
  max_value: 1000.0
  freq: 4
grad:
  display_name:
  - grade
  min_value: 1.0
  default_value: 1.0
  max_value: 3.0
  freq: 4
SRIF:
  display_name:
  - Serif
  min_value: 0.0
  default_value: 150.0
  max_value: 150.0
  freq: 4
SHDW:
  display_name:
  - Shadow
  - Shade Distance
  min_value: 1.0
  default_value: 1.0
  max_value: 1000.0
  freq: 4
ESHP:
  display_name:
  - Element Shape
  - Shape
  min_value: 0.0
  default_value: 2.0
  max_value: 16.0
  freq: 4
SOFT:
  display_name:
  - soften
  - Softness
  min_value: 0.0
  default_value: 100.0
  max_value: 100.0
  freq: 4
'CK  ':
  display_name:
  - 'Cookies

    '
  - Cookies
  min_value: -1.0
  default_value: 0.0
  max_value: 1.0
  freq: 3
'FR  ':
  display_name:
  - 'Fringe

    '
  - Fringe
  min_value: -1.0
  default_value: 0.0
  max_value: 1.0
  freq: 3
'HV  ':
  display_name:
  - 'Hooves

    '
  - Hooves
  min_value: -1.0
  default_value: 0.0
  max_value: 1.0
  freq: 3
'CN  ':
  display_name:
  - 'Concavity

    '
  - Concavity
  min_value: -1.0
  default_value: 0.0
  max_value: 0.0
  freq: 3
'BR  ':
  display_name:
  - 'Bracketing

    '
  - Bracketing
  min_value: 0.0
  default_value: 0.0
  max_value: 1.0
  freq: 3
'TC  ':
  display_name:
  - 'Toggle Cookies

    '
  - Toggle Cookies
  min_value: 0.0
  default_value: 0.0
  max_value: 1.0
  freq: 3
SERI:
  display_name:
  - Serif
  - Serifs
  min_value: 1.0
  default_value: 1.0
  max_value: 10.0
  freq: 3
XXXX:
  display_name:
  - X
  - Custom
  min_value: 0.0
  default_value: 0.0
  max_value: 100.0
  freq: 3
grvt:
  display_name:
  - gravity
  - Gravity
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 3
YTRA:
  display_name:
  - Ytrans
  - y transparent
  min_value: 750.0
  default_value: 750.0
  max_value: 850.0
  freq: 3
DSPL:
  display_name:
  - Display
  min_value: 100.0
  default_value: 100.0
  max_value: 500.0
  freq: 3
INKT:
  display_name:
  - Inktrap
  - Inktraps
  min_value: 1.0
  default_value: 1.0
  max_value: 100.0
  freq: 3
TRAK:
  display_name:
  - Tracking
  min_value: -40.0
  default_value: 0.0
  max_value: 0.0
  freq: 3
SPAC:
  display_name:
  - Spacing
  - Space
  min_value: 0.0
  default_value: 100.0
  max_value: 120.0
  freq: 3
EGRD:
  display_name:
  - Element Grid
  min_value: 1.0
  default_value: 1.0
  max_value: 2.0
  freq: 3
HROT:
  display_name:
  - Horizontal Rotation
  min_value: -45.0
  default_value: 0.0
  max_value: 45.0
  freq: 3
VROT:
  display_name:
  - Vertical Rotation
  min_value: -45.0
  default_value: 0.0
  max_value: 45.0
  freq: 3
LXND:
  display_name:
  - lexend
  - Lexend
  min_value: 0.0
  default_value: 0.0
  max_value: 100.0
  freq: 3
YMMM:
  display_name:
  - xAxis
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 3
ZMMM:
  display_name:
  - yAxis
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 3
xhgt:
  display_name:
  - xheight
  - X-Height
  min_value: 0.0
  default_value: 0.0
  max_value: 100.0
  freq: 3
SWSH:
  display_name:
  - Swash
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 2
cntr:
  display_name:
  - Contrast
  min_value: 100.0
  default_value: 100.0
  max_value: 900.0
  freq: 2
STYL:
  display_name:
  - Style
  min_value: 0.0
  default_value: 0.0
  max_value: 1.0
  freq: 2
rttx:
  display_name:
  - Rotation
  min_value: 0.0
  default_value: 0.0
  max_value: 180.0
  freq: 2
fill:
  display_name:
  - Fill
  - fill
  min_value: 100.0
  default_value: 100.0
  max_value: 300.0
  freq: 2
DIST:
  display_name:
  - Shadow Distance
  - Distortion
  min_value: 0.0
  default_value: 1.0
  max_value: 3.0
  freq: 2
OPSZ:
  display_name:
  - Optical Size
  min_value: 8.0
  default_value: 16.0
  max_value: 16.0
  freq: 2
SERF:
  display_name:
  - Serif
  min_value: 0.0
  default_value: 0.0
  max_value: 30.0
  freq: 2
SELE:
  display_name:
  - Largo Serif
  min_value: -20.0
  default_value: 0.0
  max_value: 0.0
  freq: 2
CASL:
  display_name:
  - Casual
  min_value: 0.0
  default_value: 0.0
  max_value: 1.0
  freq: 2
CRSV:
  display_name:
  - Cursive
  min_value: 0.0
  default_value: 0.5
  max_value: 1.0
  freq: 2
LINE:
  display_name:
  - Glyph Outline Weight
  - Line
  min_value: 2.0
  default_value: 2.0
  max_value: 10.0
  freq: 2
DESC:
  display_name:
  - Descenders
  - '> Descenders'
  min_value: 0.0
  default_value: 0.0
  max_value: 300.0
  freq: 2
XTND:
  display_name:
  - Extenders
  min_value: 0.0
  default_value: 999.0
  max_value: 999.0
  freq: 2
MHGT:
  display_name:
  - Mid-height
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 2
hrzn:
  display_name:
  - Horizontal
  min_value: -1000.0
  default_value: 0.0
  max_value: 1000.0
  freq: 2
vert:
  display_name:
  - Vertical
  min_value: -1000.0
  default_value: 0.0
  max_value: 1000.0
  freq: 2
rota:
  display_name:
  - Rotation
  min_value: -45.0
  default_value: 0.0
  max_value: 45.0
  freq: 2
zoom:
  display_name:
  - Zoom
  min_value: -1000.0
  default_value: 0.0
  max_value: 1000.0
  freq: 2
yest:
  display_name:
  - yeast
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 2
wrdn:
  display_name:
  - Weirdness
  min_value: 100.0
  default_value: 100.0
  max_value: 1000.0
  freq: 2
BLDA:
  display_name:
  - Inline
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 2
TRMD:
  display_name:
  - Shearded
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 2
TRMC:
  display_name:
  - Rounded Slab
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 2
SKLD:
  display_name:
  - Stripes
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 2
TRML:
  display_name:
  - Worm Terminal
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 2
SKLA:
  display_name:
  - Inline Skeleton
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 2
TRMF:
  display_name:
  - Open Inline Terminal
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 2
TRMK:
  display_name:
  - Inline Terminal
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 2
BLDB:
  display_name:
  - Worm
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 2
WMX2:
  display_name:
  - Weight
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 2
TRMB:
  display_name:
  - Flared
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 2
TRMA:
  display_name:
  - Rounded
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 2
SKLB:
  display_name:
  - Worm Skeleton
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 2
TRMG:
  display_name:
  - Slab
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 2
TRME:
  display_name:
  - Bifurcated
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 2
DISP:
  display_name:
  - Display
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 2
Weig:
  display_name:
  - Weight
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 2
DIAC:
  display_name:
  - Diacritique
  - '> Diacritics Distance'
  min_value: 50.0
  default_value: 50.0
  max_value: 400.0
  freq: 2
VWID:
  display_name:
  - (Vertical) Width
  min_value: 1.0
  default_value: 1000.0
  max_value: 1000.0
  freq: 2
kshd:
  display_name:
  - Kashida
  min_value: 100.0
  default_value: 100.0
  max_value: 200.0
  freq: 2
NEGA:
  display_name:
  - Negative
  min_value: -1.0
  default_value: 0.0
  max_value: 0.0
  freq: 2
YTSE:
  display_name:
  - serif rise
  - Serif height
  min_value: 0.0
  default_value: 18.0
  max_value: 50.0
  freq: 2
'fu  ':
  display_name:
  - Funk
  min_value: -1.0
  default_value: 0.0
  max_value: 1.0
  freq: 1
'gu  ':
  display_name:
  - Gunk
  min_value: 0.0
  default_value: 0.0
  max_value: 1.0
  freq: 1
crum:
  display_name:
  - Crumble!
  min_value: 0.0
  default_value: 0.0
  max_value: 5.0
  freq: 1
spla:
  display_name:
  - Splatter!
  min_value: 0.0
  default_value: 0.0
  max_value: 5.0
  freq: 1
punc:
  display_name:
  - Punch!
  min_value: 0.0
  default_value: 0.0
  max_value: 10.0
  freq: 1
YAXS:
  display_name:
  - YAXS
  min_value: 400.0
  default_value: 400.0
  max_value: 1000.0
  freq: 1
SRFS:
  display_name:
  - Serifs
  min_value: 0.0
  default_value: 0.0
  max_value: 6.0
  freq: 1
SANS:
  display_name:
  - Sans serif forms
  min_value: 0.0
  default_value: 0.0
  max_value: 1.0
  freq: 1
EXPR:
  display_name:
  - Expression
  min_value: 0.0
  default_value: 100.0
  max_value: 100.0
  freq: 1
stcl:
  display_name:
  - stcl
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 1
anim:
  display_name:
  - Animation
  min_value: 100.0
  default_value: 100.0
  max_value: 200.0
  freq: 1
SHTR:
  display_name:
  - Shatter
  min_value: 100.0
  default_value: 100.0
  max_value: 300.0
  freq: 1
GAPP:
  display_name:
  - Gap
  min_value: 10.0
  default_value: 50.0
  max_value: 50.0
  freq: 1
CHEW:
  display_name:
  - Chew
  min_value: 0.0
  default_value: 0.0
  max_value: 5.0
  freq: 1
BITE:
  display_name:
  - Bite
  min_value: 0.0
  default_value: 0.0
  max_value: 5.0
  freq: 1
line:
  display_name:
  - Line
  min_value: 100.0
  default_value: 100.0
  max_value: 300.0
  freq: 1
susi:
  display_name:
  - Super Size
  min_value: 0.0
  default_value: 0.0
  max_value: 100.0
  freq: 1
dcrt:
  display_name:
  - Diacritics
  min_value: 0.0
  default_value: 100.0
  max_value: 900.0
  freq: 1
BEVL:
  display_name:
  - Bevel
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 1
OVAL:
  display_name:
  - Oval
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 1
QUAD:
  display_name:
  - Quad
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 1
SIZE:
  display_name:
  - Size
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 1
shdw:
  display_name:
  - Shadow
  min_value: 10.0
  default_value: 10.0
  max_value: 50.0
  freq: 1
STLE:
  display_name:
  - Style
  min_value: 10.0
  default_value: 10.0
  max_value: 100.0
  freq: 1
crap:
  display_name:
  - Capheight
  min_value: 100.0
  default_value: 100.0
  max_value: 900.0
  freq: 1
TOTD:
  display_name:
  - Time of Day
  min_value: 6.0
  default_value: 9.0
  max_value: 18.0
  freq: 1
PSTV:
  display_name:
  - Positive
  min_value: 0.0
  default_value: 0.0
  max_value: 100.0
  freq: 1
NGTV:
  display_name:
  - Negative
  min_value: 0.0
  default_value: 0.0
  max_value: 100.0
  freq: 1
WIND:
  display_name:
  - Direction
  min_value: 0.0
  default_value: 0.0
  max_value: 360.0
  freq: 1
pmpt:
  display_name:
  - Pump
  min_value: 100.0
  default_value: 100.0
  max_value: 700.0
  freq: 1
ctrs:
  display_name:
  - Contrast
  min_value: 1.0
  default_value: 1.0
  max_value: 100.0
  freq: 1
daff:
  display_name:
  - Daffness
  min_value: 0.0
  default_value: 100.0
  max_value: 100.0
  freq: 1
LAY1:
  display_name:
  - Layer 1
  min_value: 1.0
  default_value: 1000.0
  max_value: 1000.0
  freq: 1
LAY2:
  display_name:
  - Layer 2
  min_value: 1.0
  default_value: 1.0
  max_value: 1000.0
  freq: 1
LAY3:
  display_name:
  - Layer 3
  min_value: 1.0
  default_value: 1.0
  max_value: 1000.0
  freq: 1
fmsk:
  display_name:
  - WearFaceMask
  min_value: 0.0
  default_value: 0.0
  max_value: 100.0
  freq: 1
hdrs:
  display_name:
  - HairDresserClose
  min_value: 0.0
  default_value: 0.0
  max_value: 100.0
  freq: 1
hscl:
  display_name:
  - HomeSchooling
  min_value: 0.0
  default_value: 0.0
  max_value: 100.0
  freq: 1
ONCR:
  display_name:
  - Oncurve Point Size
  min_value: 4.0
  default_value: 36.0
  max_value: 36.0
  freq: 1
OFFC:
  display_name:
  - Offcurve Point Size
  min_value: 4.0
  default_value: 36.0
  max_value: 36.0
  freq: 1
PTLN:
  display_name:
  - Point Outline Weight
  min_value: 2.0
  default_value: 2.0
  max_value: 10.0
  freq: 1
ASCN:
  display_name:
  - Ascenders
  min_value: 0.0
  default_value: 0.0
  max_value: 300.0
  freq: 1
BVEL:
  display_name:
  - Bevel
  min_value: 0.0
  default_value: 100.0
  max_value: 100.0
  freq: 1
SPIN:
  display_name:
  - Color Spinner
  min_value: 0.0
  default_value: 0.0
  max_value: 4.0
  freq: 1
BACK:
  display_name:
  - Background
  min_value: 1.0
  default_value: 1.0
  max_value: 900.0
  freq: 1
temp:
  display_name:
  - temperature
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 1
MELT:
  display_name:
  - Melt
  min_value: 1.0
  default_value: 1.0
  max_value: 100.0
  freq: 1
ytde:
  display_name:
  - y transparent descender
  min_value: -192.0
  default_value: -192.0
  max_value: -64.0
  freq: 1
MIXD:
  display_name:
  - Mixed
  min_value: 100.0
  default_value: 100.0
  max_value: 200.0
  freq: 1
x001:
  display_name:
  - Weight
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 1
DRKM:
  display_name:
  - Darkmode
  min_value: 0.0
  default_value: 0.0
  max_value: 1.0
  freq: 1
stbl:
  display_name:
  - Stability
  min_value: 0.0
  default_value: 0.0
  max_value: 100.0
  freq: 1
CTST:
  display_name:
  - Contrast
  min_value: -500.0
  default_value: 0.0
  max_value: 0.0
  freq: 1
Widt:
  display_name:
  - Width
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 1
GLOW:
  display_name:
  - Glow
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 1
MIDL:
  display_name:
  - Midline
  min_value: -1000.0
  default_value: 0.0
  max_value: 0.0
  freq: 1
XHGT:
  display_name:
  - xHeight
  min_value: 353.0
  default_value: 500.0
  max_value: 574.0
  freq: 1
algn:
  display_name:
  - align
  min_value: 0.0
  default_value: 0.0
  max_value: 1.0
  freq: 1
radi:
  display_name:
  - radius
  min_value: 0.0
  default_value: 0.0
  max_value: 50.0
  freq: 1
VTUN:
  display_name:
  - Vertical Proportion
  min_value: 0.0
  default_value: 0.0
  max_value: 1.0
  freq: 1
HTUN:
  display_name:
  - Horizontal Proportion
  min_value: 0.0
  default_value: 0.0
  max_value: 1.0
  freq: 1
DSTR:
  display_name:
  - Distortion
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 1
BULK:
  display_name:
  - Bulkiness
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 1
XTDR:
  display_name:
  - Extenders
  min_value: 0.0
  default_value: 0.0
  max_value: 50.0
  freq: 1
APRT:
  display_name:
  - Apertures
  min_value: 0.0
  default_value: 0.0
  max_value: 100.0
  freq: 1
SS01:
  display_name:
  - Single-storey g
  min_value: 0.0
  default_value: 0.0
  max_value: 1.0
  freq: 1
SS02:
  display_name:
  - Single-storey a
  min_value: 0.0
  default_value: 0.0
  max_value: 1.0
  freq: 1
SS03:
  display_name:
  - Straight l
  min_value: 0.0
  default_value: 0.0
  max_value: 1.0
  freq: 1
YTFG:
  display_name:
  - y transparent figure height
  min_value: 425.0
  default_value: 750.0
  max_value: 1000.0
  freq: 1
PWHT:
  display_name:
  - ParaWeight
  min_value: 18.0
  default_value: 88.0
  max_value: 287.0
  freq: 1
PWTH:
  display_name:
  - ParaWidth
  min_value: 75.0
  default_value: 490.0
  max_value: 1179.0
  freq: 1
XTCH:
  display_name:
  - x transparent Chinese
  min_value: 800.0
  default_value: 1000.0
  max_value: 1200.0
  freq: 1
YTCH:
  display_name:
  - y transparent Chinese
  min_value: 800.0
  default_value: 1000.0
  max_value: 1200.0
  freq: 1
YYYY:
  display_name:
  - Y
  min_value: 0.0
  default_value: 0.0
  max_value: 100.0
  freq: 1
ZZZZ:
  display_name:
  - Z
  min_value: 0.0
  default_value: 0.0
  max_value: 100.0
  freq: 1
'1111':
  display_name:
  - One
  min_value: 0.0
  default_value: 0.0
  max_value: 100.0
  freq: 1
'2222':
  display_name:
  - Two
  min_value: 0.0
  default_value: 0.0
  max_value: 100.0
  freq: 1
letb:
  display_name:
  - letb
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 1
letc:
  display_name:
  - letc
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 1
letd:
  display_name:
  - letd
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 1
lete:
  display_name:
  - lete
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 1
letf:
  display_name:
  - letf
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 1
letg:
  display_name:
  - letg
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 1
leth:
  display_name:
  - leth
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 1
leti:
  display_name:
  - leti
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 1
letj:
  display_name:
  - letj
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 1
letk:
  display_name:
  - letk
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 1
letl:
  display_name:
  - letl
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 1
letm:
  display_name:
  - letm
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 1
letn:
  display_name:
  - letn
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 1
leto:
  display_name:
  - leto
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 1
letp:
  display_name:
  - letp
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 1
letq:
  display_name:
  - letq
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 1
letr:
  display_name:
  - letr
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 1
lets:
  display_name:
  - lets
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 1
lett:
  display_name:
  - lett
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 1
letu:
  display_name:
  - letu
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 1
letv:
  display_name:
  - letv
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 1
letw:
  display_name:
  - letw
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 1
letx:
  display_name:
  - letx
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 1
lety:
  display_name:
  - lety
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 1
letz:
  display_name:
  - letz
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 1
BRAI:
  display_name:
  - BRAI
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 1
ANIM:
  display_name:
  - animation
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 1
INLI:
  display_name:
  - Inline
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 1
TEST:
  display_name:
  - Test
  min_value: 100.0
  default_value: 400.0
  max_value: 900.0
  freq: 1
SCAL:
  display_name:
  - Scale (alpha)
  min_value: 50.0
  default_value: 100.0
  max_value: 200.0
  freq: 1
BASE:
  display_name:
  - Baseline Shift (alpha)
  min_value: 0.0
  default_value: 500.0
  max_value: 1000.0
  freq: 1
OPTI:
  display_name:
  - Optical Line Height
  min_value: 0.0
  default_value: 20.0
  max_value: 100.0
  freq: 1
HEIG:
  display_name:
  - Height
  min_value: 165.0
  default_value: 456.0
  max_value: 456.0
  freq: 1
CAPS:
  display_name:
  - '> Caps, single'
  min_value: 165.0
  default_value: 455.0
  max_value: 656.0
  freq: 1
CAPA:
  display_name:
  - '> Caps, many'
  min_value: 165.0
  default_value: 400.0
  max_value: 656.0
  freq: 1
CAPB:
  display_name:
  - '> Smcp'
  min_value: 165.0
  default_value: 166.0
  max_value: 656.0
  freq: 1
ASCE:
  display_name:
  - '> Ascenders'
  min_value: 456.0
  default_value: 456.0
  max_value: 1000.0
  freq: 1
CURV:
  display_name:
  - Curvature
  min_value: 0.0
  default_value: 0.0
  max_value: 100.0
  freq: 1
CNCI:
  display_name:
  - Inside Concave
  min_value: 0.0
  default_value: 1000.0
  max_value: 1000.0
  freq: 1
CNCO:
  display_name:
  - Outside Concave
  min_value: 0.0
  default_value: 1000.0
  max_value: 1000.0
  freq: 1
OPEN:
  display_name:
  - Open
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 1
RNDI:
  display_name:
  - Inside Rounded
  min_value: 0.0
  default_value: 1000.0
  max_value: 1000.0
  freq: 1
RNDO:
  display_name:
  - 'Outside Rounded '
  min_value: 0.0
  default_value: 1000.0
  max_value: 1000.0
  freq: 1
SQRI:
  display_name:
  - Inside Squared
  min_value: 0.0
  default_value: 1000.0
  max_value: 1000.0
  freq: 1
SQRO:
  display_name:
  - Outside Squared
  min_value: 0.0
  default_value: 1000.0
  max_value: 1000.0
  freq: 1
xxxx:
  display_name:
  - Stencil
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 1
TIME:
  display_name:
  - Time
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 1
felipesanches commented 2 years ago

Was this generated from the Google Fonts collection?

Could you please share the script that was used to compute this?

twardoch commented 2 years ago

This was generated from the Google Fonts collection and an extensive collection of proprietary fonts.

The code to get this (I just updated the table above to be sorted by frequency) is:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

# Copyright (c) 2022 by Adam Twardoch
# Licensed per your choice under the Apache 2 license, or under the MIT License
# Also published under the CC-0 Public Domain attribution, no rights reserved.

import sys
from pathlib import Path
import fontTools.ttLib
from collections import Counter
import yaml
from statistics import mode

def main(folder):
    folder = Path(folder)
    daxes = {}
    for path in folder.glob("**/*.?tf"):
        try:
            font = fontTools.ttLib.TTFont(path)
            fvar = font["fvar"]
            for axis in fvar.axes:
                daxes[axis.axisTag] = daxes.get(axis.axisTag, {})
                daxes[axis.axisTag]["display_name"] = daxes[axis.axisTag].get(
                    "display_name", []
                ) + [font["name"].getDebugName(axis.axisNameID)]
                daxes[axis.axisTag]["min_value"] = daxes[axis.axisTag].get(
                    "min_value", []
                ) + [axis.minValue]
                daxes[axis.axisTag]["default_value"] = daxes[axis.axisTag].get(
                    "default_value", []
                ) + [axis.defaultValue]
                daxes[axis.axisTag]["max_value"] = daxes[axis.axisTag].get(
                    "max_value", []
                ) + [axis.maxValue]
                daxes[axis.axisTag]["font"] = daxes[axis.axisTag].get("font", []) + [
                    font["name"].getDebugName(6)
                ]
        except:
            pass
    for axis in daxes:
        daxes[axis]["display_name"] = [
            key for key, value in Counter(daxes[axis]["display_name"]).most_common()
        ]
        daxes[axis]["freq"] = len(daxes[axis]["font"])
        daxes[axis]["min_value"] = mode(daxes[axis]["min_value"])
        daxes[axis]["default_value"] = mode(daxes[axis]["default_value"])
        daxes[axis]["max_value"] = mode(daxes[axis]["max_value"])
        daxes[axis]["font"] = [
            key for key, value in Counter(daxes[axis]["font"]).most_common()
        ]
        del daxes[axis]["font"]
    daxes = dict(sorted(daxes.items(), key=lambda x: x[1]["freq"], reverse=True))
    return yaml.dump(daxes, allow_unicode=True, sort_keys=False)

if __name__ == "__main__":
    print(main(sys.argv[1]))
felipesanches commented 2 years ago

I presume this code snippet is released under Apache 2.0 (same license as the code in this repo). Please confirm that.

twardoch commented 2 years ago

Some fonts were duplicates, and obviously in some of the fonts the wght tag was used for functionally other axes, like Grade etc. This is why the display_name is a list — sorted by descending frequency for each axis name associated with a given tag.

twardoch commented 2 years ago

I’ve included the license terms: "Copyright (c) 2022 by Adam Twardoch. Licensed per your choice under the Apache 2 license, or under the MIT License. Also published under the CC-0 Public Domain attribution, no rights reserved."

twardoch commented 2 years ago

This is the Google Fonts collection from google/fonts repo:

wght:
  display_name:
  - Weight
  - wght
  min_value: 100.0
  default_value: 400.0
  max_value: 900.0
  freq: 340
wdth:
  display_name:
  - Width
  - wdth
  min_value: 62.5
  default_value: 100.0
  max_value: 100.0
  freq: 85
opsz:
  display_name:
  - Optical size
  - Optical Size
  - opsz
  min_value: 8.0
  default_value: 12.0
  max_value: 72.0
  freq: 22
GRAD:
  display_name:
  - Grade
  - GRAD
  min_value: -50.0
  default_value: 0.0
  max_value: 150.0
  freq: 4
slnt:
  display_name:
  - Slant
  - slnt
  min_value: -10.0
  default_value: 0.0
  max_value: 0.0
  freq: 4
SOFT:
  display_name:
  - Softness
  min_value: 0.0
  default_value: 0.0
  max_value: 100.0
  freq: 2
WONK:
  display_name:
  - Wonky
  min_value: 0.0
  default_value: 1.0
  max_value: 1.0
  freq: 2
XOPQ:
  display_name:
  - x opaque
  - XOPQ
  min_value: 5.0
  default_value: 88.0
  max_value: 500.0
  freq: 2
XTRA:
  display_name:
  - x transparent
  - XTRA
  min_value: 42.0
  default_value: 402.0
  max_value: 402.0
  freq: 2
YOPQ:
  display_name:
  - y opaque
  - YOPQ
  min_value: 4.0
  default_value: 50.0
  max_value: 85.0
  freq: 2
YTLC:
  display_name:
  - lc y transparent
  - YTLC
  min_value: 445.0
  default_value: 500.0
  max_value: 600.0
  freq: 2
YTAS:
  display_name:
  - y transparent ascender
  - YTAS
  min_value: 650.0
  default_value: 750.0
  max_value: 850.0
  freq: 2
YTDE:
  display_name:
  - y transparent descender
  - YTDE
  min_value: 150.0
  default_value: 250.0
  max_value: 350.0
  freq: 2
YTUC:
  display_name:
  - y transparent uppercase
  - YTUC
  min_value: 650.0
  default_value: 750.0
  max_value: 950.0
  freq: 2
YTSE:
  display_name:
  - Serif height
  min_value: 0.0
  default_value: 18.0
  max_value: 48.0
  freq: 1
XTCH:
  display_name:
  - x transparent Chinese
  min_value: 800.0
  default_value: 1000.0
  max_value: 1200.0
  freq: 1
YTCH:
  display_name:
  - y transparent Chinese
  min_value: 800.0
  default_value: 1000.0
  max_value: 1200.0
  freq: 1
YTRA:
  display_name:
  - y transparent
  min_value: 800.0
  default_value: 1000.0
  max_value: 1200.0
  freq: 1
NEGA:
  display_name:
  - Negative
  min_value: -1.0
  default_value: 0.0
  max_value: 0.0
  freq: 1
MONO:
  display_name:
  - Monospace
  min_value: 0.0
  default_value: 0.0
  max_value: 1.0
  freq: 1
CASL:
  display_name:
  - Casual
  min_value: 0.0
  default_value: 0.0
  max_value: 1.0
  freq: 1
CRSV:
  display_name:
  - Cursive
  min_value: 0.0
  default_value: 0.5
  max_value: 1.0
  freq: 1
ESHP:
  display_name:
  - Element Shape
  min_value: 0.0
  default_value: 2.0
  max_value: 16.0
  freq: 1
EGRD:
  display_name:
  - Element Grid
  min_value: 1.0
  default_value: 1.0
  max_value: 3.0
  freq: 1
BLDA:
  display_name:
  - Inline
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 1
TRMD:
  display_name:
  - Shearded
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 1
TRMC:
  display_name:
  - Rounded Slab
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 1
SKLD:
  display_name:
  - Stripes
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 1
TRML:
  display_name:
  - Worm Terminal
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 1
SKLA:
  display_name:
  - Inline Skeleton
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 1
TRMF:
  display_name:
  - Open Inline Terminal
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 1
TRMK:
  display_name:
  - Inline Terminal
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 1
BLDB:
  display_name:
  - Worm
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 1
WMX2:
  display_name:
  - Weight
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 1
TRMB:
  display_name:
  - Flared
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 1
TRMA:
  display_name:
  - Rounded
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 1
SKLB:
  display_name:
  - Worm Skeleton
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 1
TRMG:
  display_name:
  - Slab
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 1
TRME:
  display_name:
  - Bifurcated
  min_value: 0.0
  default_value: 0.0
  max_value: 1000.0
  freq: 1
YTFI:
  display_name:
  - YTFI
  min_value: 560.0
  default_value: 738.0
  max_value: 788.0
  freq: 1
FLAR:
  display_name:
  - Flair
  min_value: 0.0
  default_value: 0.0
  max_value: 100.0
  freq: 1
VOLM:
  display_name:
  - Volume
  min_value: 0.0
  default_value: 0.0
  max_value: 100.0
  freq: 1
davelab6 commented 2 years ago

I’ve included the license terms: "Copyright (c) 2022 by Adam Twardoch. Licensed per your choice under the Apache 2 license, or under the MIT License. Also published under the CC-0 Public Domain attribution, no rights reserved."

Felipe can proceed to take it under Apache only

davelab6 commented 2 years ago
  display_name:
  - Optical size
  - Optical Size
  - opsz

This is bad, and needs to be fixed; seems we need stricted fontbakery checks?

twardoch commented 2 years ago

I propose to mandate "Sentence case", not "Title Case" (so: "Optical size"). Title Case is tedious, confusing and loses semantics. It forces grotesque constructs like "Lowercase X-Height Size" etc.

The OT spec only has one two-word entry ("Optical size"), and it uses Sentence case: https://docs.microsoft.com/en-us/typography/opentype/spec/dvaraxisreg

The registry uses mainly Title Case for the feature names (which shows how inconsistent the spec is editorially): https://docs.microsoft.com/en-us/typography/opentype/spec/features_ae — it’s just a mess: "Case-Sensitive Form" and "Contextual Half-width Spacing" and "Left-to-right glyph alternates".

Nobody really knows how to apply Title Case, so people make mistakes.

twardoch commented 2 years ago

However, the difference between the feature registry and axis registry is: feature names aren’t normally stored inside fonts, so it’s up to app makers to write out the feature names in a friendly way. But axis names ARE stored inside the fonts, so it’s best to ensure some consistency.

davelab6 commented 2 years ago

These are proper nouns so Title Case is best.

twardoch commented 2 years ago

These are not proper nouns. Proper nouns are something like "Africa", "Jupiter", "Sarah" or "Google". Proper nouns are always capitalized, even in Sentence case.

"Size" is a common noun, so it’s only capitalized in Title Case.

twardoch commented 2 years ago

However, even though I have a strong dislike towards Title Case, I have an inclination to accept it for a different reason — English style names in fonts typically use Title Case (like "Light Italic"). And the majority of feature names in the spec use Title Case — though this is inconsistent. The "opsz" axis in the OT spec is labeled "Optical size" (so Sentence case), but if we agree on Title Case, this needs to be ultimately also changed in the OT spec.

I’m happy to go either way (and the full survey I made shows that Title Case is probably more popular). However, we need clear recommendations. I’ll happily write the recommendations, it’s about time to do it.

davelab6 commented 1 year ago

Proper nouns are something like "Africa", "Jupiter", "Sarah" or "Google".

Yes, and the OpenType Weight axis, the Width axis, are different/distinct from the overall concept of typefaces' weight and width properties. They are, for want of a better word, named instances, ahah