lerp method
Linear interpolation between two tokens
Implementation
FlyTextStyleToken lerp(FlyTextStyleToken other, double t) {
final result = <String, TextStyle>{};
final allKeys = {..._allValues.keys, ...other._allValues.keys};
for (final key in allKeys) {
final valueA = _allValues[key];
final valueB = other._allValues[key];
if (valueA != null && valueB != null) {
result[key] = TextStyle.lerp(valueA, valueB, t) ?? valueA;
} else if (valueA != null) {
result[key] = valueA;
} else if (valueB != null) {
result[key] = valueB;
}
}
return FlyTextStyleToken(
xs: result['xs']!,
sm: result['sm']!,
base: result['base']!,
lg: result['lg']!,
xl: result['xl']!,
xl2: result['xl2']!,
xl3: result['xl3']!,
xl4: result['xl4']!,
xl5: result['xl5']!,
xl6: result['xl6']!,
xl7: result['xl7']!,
xl8: result['xl8']!,
xl9: result['xl9']!,
extras: Map.fromEntries(
result.entries.where(
(e) => ![
'xs',
'sm',
'base',
'lg',
'xl',
'xl2',
'xl3',
'xl4',
'xl5',
'xl6',
'xl7',
'xl8',
'xl9',
].contains(e.key),
),
),
);
}