retroFaceFor function

RetroKeyFace retroFaceFor(
  1. ThemeSpec spec
)

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,
  );
}