retroFaceFor function
Retro keycaps for spec: travel from the motion token (seeded 2–3 dp),
skirts = palette edges, bevel and contact shadow from the palette's
highlight / shadow.
Implementation
RetroKeyFace retroFaceFor(ThemeSpec spec) {
final palette = spec.palette;
final depthCdp = spec.motion.depthCdp > 0
? spec.motion.depthCdp
: spec.keyStyle.extrudeDepthCdp;
final shadow = Color(palette.shadow);
return RetroKeyFace(
travel: depthCdp / 100,
digitSkirt: Color(palette.digit.edge),
operatorSkirt: Color(palette.operator.edge),
equalsSkirt: Color(palette.equals.edge),
functionSkirt: Color(palette.function.edge),
cornerFraction: spec.keyShape.cornerFraction.clamp(0.0, 0.5),
highlight: Color(palette.highlight),
shade: shadow,
shadowColor: shadow,
slashedZero: spec.type.slashedZero,
);
}