withTokens static method
ThemeData
withTokens(
- ThemeData base, {
- SPThemeTokens? tokens,
- SPSpacingTokens spacing = const SPSpacingTokens(),
- SPRadiusTokens radius = const SPRadiusTokens(),
- SPTypographyTokens typography = const SPTypographyTokens(),
- bool applyTypography = false,
Returns base with Sixplace tokens installed or replaced.
Set applyTypography to true to apply the resolved Sixplace typography
sizes to the existing ThemeData.textTheme.
Implementation
static ThemeData withTokens(
ThemeData base, {
SPThemeTokens? tokens,
SPSpacingTokens spacing = const SPSpacingTokens(),
SPRadiusTokens radius = const SPRadiusTokens(),
SPTypographyTokens typography = const SPTypographyTokens(),
bool applyTypography = false,
}) {
final resolved =
tokens ??
SPThemeTokens.fromColorScheme(
base.colorScheme,
spacing: spacing,
radius: radius,
typography: typography,
);
final extensions = base.extensions.values
.where((value) => value is! SPThemeTokens)
.toList();
extensions.add(resolved);
return base.copyWith(
textTheme: applyTypography
? resolved.typography.apply(base.textTheme)
: null,
extensions: extensions,
);
}