neoBrutalFaceFor function

NeoBrutalKeyFace neoBrutalFaceFor(
  1. ThemeSpec spec
)

Neo-brutalism keys for spec: shadow offset = the press depth (seeded 3–5 dp), outline width from the key style, ink = the hard shadow colour (outlines come from each group's KeyColors.edge).

Implementation

NeoBrutalKeyFace neoBrutalFaceFor(ThemeSpec spec) {
  final style = spec.keyStyle;
  final depthCdp = spec.motion.depthCdp > 0
      ? spec.motion.depthCdp
      : style.shadowOffsetCdp;
  return NeoBrutalKeyFace(
    shadowOffset: depthCdp / 100,
    outlineWidth: style.outlineWidthCdp / 100,
    ink: Color(spec.palette.shadow),
    cornerFraction: spec.keyShape.cornerFraction.clamp(0.0, 0.5),
    widthPermille: spec.type.widthPermille,
    slashedZero: spec.type.slashedZero,
  );
}