claymorphismDefinition top-level constant
FamilyDefinition
const claymorphismDefinition
Claymorphism (spec §5.3 #7; motion brief §2.3 "Claymorphism"): opaque
squircle keys with a coloured drop shadow, an inner top-left highlight
and an inner bottom-right shade. Press: a bottom-anchored squash
(X 1.04 / Y 0.92) on 1755/0.85, the shadow 40 % smaller from frame 1, a
visible tall-and-thin rebound on 322/0.65; the display pops glyphs in
from 0.86; sound pop, haptic soft · 0.8. The palette is built by
buildClaymorphismCandidate.
Implementation
const FamilyDefinition claymorphismDefinition = FamilyDefinition(
family: ThemeFamily.claymorphism,
brightnessWeights: [1, 3],
// Metadata only: the builder uses clayCandySchemes / clayTonalSchemes.
schemes: [Weighted(HarmonyScheme.splitComplementary, 1)],
shapes: [Weighted(KeyShapeKind.squircle, 1)],
cornerPermille: IntRange(300, 420),
styles: [Weighted(KeyStyleKind.clay, 1)],
keyStyle: KeyStyleSpec(
kind: KeyStyleKind.clay,
shadowOffsetCdp: 500,
shadowBlurCdp: 1200,
edgeShadePermille: 90,
stateLayerPermille: 60,
),
displayFonts: [Weighted(FontIds.nunito, 1)],
keyFonts: [Weighted(FontIds.nunito, 1)],
displayWeight: IntRange(700, 800),
keyWeight: IntRange(700, 800),
operatorWeightBonus: IntRange(100, 200),
backgrounds: [Weighted(BackgroundKind.claySoft, 1)],
sound: SoundPackId.pop,
dark: clayNightRanges,
light: clayLightRanges,
motion: MotionSpec(
verb: PressVerb.squash,
scheme: MotionScheme.expressive,
pressIn: SpringTokens.glassPressIn,
release: SpringToken(322, 650),
depthCdp: 500,
scalePermille: 920,
stateLayerSnap: true,
entry: EntryStyle.pop,
entryScalePermille: 860,
impact: ImpactStyle.soft,
),
motionRanges: MotionRanges(depthCdp: clayShadowCdp, bounceJitterPermille: 50),
bile: BileRule.v2,
);