preset static method
- PrismDensity density = PrismDensity.comfortable,
- PrismShape shape = PrismShape.rounded,
- PrismMotion motion = PrismMotion.standard,
Returns a token set for the given density, shape and motion.
Implementation
static PrismTokens preset({
PrismDensity density = PrismDensity.comfortable,
PrismShape shape = PrismShape.rounded,
PrismMotion motion = PrismMotion.standard,
}) {
final space = switch (density) {
PrismDensity.compact => const [3.0, 6.0, 12.0, 18.0, 24.0, 36.0],
PrismDensity.comfortable => const [4.0, 8.0, 16.0, 24.0, 32.0, 48.0],
PrismDensity.spacious => const [6.0, 12.0, 24.0, 36.0, 48.0, 72.0],
};
final radius = switch (shape) {
PrismShape.sharp => const [0.0, 2.0, 3.0, 4.0],
PrismShape.rounded => const [8.0, 12.0, 16.0, 24.0],
PrismShape.pill => const [12.0, 20.0, 28.0, 999.0],
};
final duration = switch (motion) {
PrismMotion.brisk => const [80, 150, 260],
PrismMotion.standard => const [120, 240, 420],
PrismMotion.relaxed => const [180, 340, 560],
};
final curve = switch (motion) {
PrismMotion.brisk => Curves.easeOut,
PrismMotion.standard => Curves.easeInOutCubic,
PrismMotion.relaxed => Curves.easeInOut,
};
return PrismTokens(
spaceXs: space[0],
spaceSm: space[1],
spaceMd: space[2],
spaceLg: space[3],
spaceXl: space[4],
spaceXxl: space[5],
radiusSm: radius[0],
radiusMd: radius[1],
radiusLg: radius[2],
radiusXl: radius[3],
durationFast: Duration(milliseconds: duration[0]),
durationMedium: Duration(milliseconds: duration[1]),
durationSlow: Duration(milliseconds: duration[2]),
curveStandard: curve,
controlHeight: switch (density) {
PrismDensity.compact => 36,
PrismDensity.comfortable => 44,
PrismDensity.spacious => 52,
},
);
}