Files
pluriwave/lib/tema/pluriwave_tokens.dart
T
FreeTLab c707fc9911
Build & Deploy Pluriwave / Análisis de código (push) Failing after 21s
Build & Deploy Pluriwave / Build APK + AAB release (push) Has been skipped
feat(ui): add premium PluriWave redesign
2026-05-20 18:42:22 +02:00

108 lines
3.4 KiB
Dart

import 'dart:ui' show lerpDouble;
import 'package:flutter/material.dart';
@immutable
class PluriWaveTokens extends ThemeExtension<PluriWaveTokens> {
const PluriWaveTokens({
required this.deepViolet,
required this.electricMagenta,
required this.warmCoral,
required this.glassSurface,
required this.glassBorder,
required this.glowColor,
required this.radiusSm,
required this.radiusMd,
required this.radiusLg,
required this.spacingXs,
required this.spacingSm,
required this.spacingMd,
required this.spacingLg,
});
final Color deepViolet;
final Color electricMagenta;
final Color warmCoral;
final Color glassSurface;
final Color glassBorder;
final Color glowColor;
final double radiusSm;
final double radiusMd;
final double radiusLg;
final double spacingXs;
final double spacingSm;
final double spacingMd;
final double spacingLg;
static const dark = PluriWaveTokens(
deepViolet: Color(0xFF24123D),
electricMagenta: Color(0xFFE228D1),
warmCoral: Color(0xFFFF6F61),
glassSurface: Color(0x2AFFFFFF),
glassBorder: Color(0x40FFFFFF),
glowColor: Color(0x66E228D1),
radiusSm: 10,
radiusMd: 16,
radiusLg: 24,
spacingXs: 4,
spacingSm: 8,
spacingMd: 16,
spacingLg: 24,
);
@override
PluriWaveTokens copyWith({
Color? deepViolet,
Color? electricMagenta,
Color? warmCoral,
Color? glassSurface,
Color? glassBorder,
Color? glowColor,
double? radiusSm,
double? radiusMd,
double? radiusLg,
double? spacingXs,
double? spacingSm,
double? spacingMd,
double? spacingLg,
}) {
return PluriWaveTokens(
deepViolet: deepViolet ?? this.deepViolet,
electricMagenta: electricMagenta ?? this.electricMagenta,
warmCoral: warmCoral ?? this.warmCoral,
glassSurface: glassSurface ?? this.glassSurface,
glassBorder: glassBorder ?? this.glassBorder,
glowColor: glowColor ?? this.glowColor,
radiusSm: radiusSm ?? this.radiusSm,
radiusMd: radiusMd ?? this.radiusMd,
radiusLg: radiusLg ?? this.radiusLg,
spacingXs: spacingXs ?? this.spacingXs,
spacingSm: spacingSm ?? this.spacingSm,
spacingMd: spacingMd ?? this.spacingMd,
spacingLg: spacingLg ?? this.spacingLg,
);
}
@override
PluriWaveTokens lerp(covariant ThemeExtension<PluriWaveTokens>? other, double t) {
if (other is! PluriWaveTokens) return this;
return PluriWaveTokens(
deepViolet: Color.lerp(deepViolet, other.deepViolet, t) ?? deepViolet,
electricMagenta: Color.lerp(electricMagenta, other.electricMagenta, t) ?? electricMagenta,
warmCoral: Color.lerp(warmCoral, other.warmCoral, t) ?? warmCoral,
glassSurface: Color.lerp(glassSurface, other.glassSurface, t) ?? glassSurface,
glassBorder: Color.lerp(glassBorder, other.glassBorder, t) ?? glassBorder,
glowColor: Color.lerp(glowColor, other.glowColor, t) ?? glowColor,
radiusSm: lerpDouble(radiusSm, other.radiusSm, t) ?? radiusSm,
radiusMd: lerpDouble(radiusMd, other.radiusMd, t) ?? radiusMd,
radiusLg: lerpDouble(radiusLg, other.radiusLg, t) ?? radiusLg,
spacingXs: lerpDouble(spacingXs, other.spacingXs, t) ?? spacingXs,
spacingSm: lerpDouble(spacingSm, other.spacingSm, t) ?? spacingSm,
spacingMd: lerpDouble(spacingMd, other.spacingMd, t) ?? spacingMd,
spacingLg: lerpDouble(spacingLg, other.spacingLg, t) ?? spacingLg,
);
}
}