key_face library

Classes

KeyCellSizes
The key-face sizes the keypad lays out now, published by each key on layout. Theme prefetch prepares renderers for them (key-shape morphs), so no commit or transition frame builds one (design doc "60 fps budget: no Morph construction in commit frames").
KeyFaceMotion
A key's animation channels, as a KeyFaceRenderer reads them (the calculator's KeyPressMotion implements it).
KeyFaceMotionDetail
Extra channels a KeyFaceMotion may also provide (the calculator's KeyPressMotion does). Renderers must still work without them (test fakes, previews): check with motion is KeyFaceMotionDetail.
KeyFaceRenderer
Draws key faces for a theme: the seam M3's ThemeSpec renderers plug into (CalcThemeData.keyFace), so the keypad widget never names a concrete painter.
KeyFaceSpec
What a KeyFaceRenderer draws one key with.
KeyFocusRingPainter
Paints the keyboard focus ring just outside the key face (motion brief §4.1: it appears instantly, no animation).
KeyLabel
A one-line key label drawn exactly in style.
KeyStyle
Colours and label weight for one group of keys.
LerpableKeyFace
A key face that can morph toward another face of the same renderer during a theme transition (motion brief §6.4: one tree, FlatMorph shapes). Renderers that implement it get their shapes interpolated at the transition's shape progress; others switch at the midpoint.
PlainKeyFace
The plain theme's key faces: PlainKeyPainter.
PlainKeyPainter
Paints the plain-theme key face: a rounded-rect fill (and optional outline) with the hover and pressed state layers, plus the long-press radial fill (motion brief §2.2.4, §4.1, §4.4).