feat(client): 新增 AppTokens ThemeExtension 类型
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:jiu_client/core/theme/app_tokens.dart';
|
||||
|
||||
AppTokens _sample() => const AppTokens(
|
||||
page: Color(0xFF111111), bg: Color(0xFF222222), surface: Color(0xFF333333),
|
||||
border: Color(0xFF444444), borderSubtle: Color(0xFF555555), text: Color(0xFF666666),
|
||||
heading: Color(0xFF777777), title: Color(0xFF888888), muted: Color(0xFF999999),
|
||||
faint: Color(0xFFAAAAAA), primary: Color(0xFF2563AC), primaryDark: Color(0xFF154072),
|
||||
onPrimary: Color(0xFFFFFFFF), brand400: Color(0xFF4F86C6), brand50: Color(0xFFEEF4FB),
|
||||
accent: Color(0xFF8B2331), success: Color(0xFF2E8B57), danger: Color(0xFFD14343),
|
||||
warn: Color(0xFFE08E00), infoSoft: Color(0xFFEEF4FB), okSoft: Color(0xFFE8F5EE),
|
||||
accentSoft: Color(0xFFFAEEF0), successBg: Color(0xFFE8F5EE), dangerBg: Color(0xFFFDECEC),
|
||||
warnBg: Color(0xFFFFF4DB), thBg: Color(0xFFF7F9FC), rowHover: Color(0xFFEEF4FB),
|
||||
shadow: Color(0x33142846), topBg: Color(0xFF2563AC), topFg: Color(0xFFFFFFFF),
|
||||
topFaint: Color(0xB8FFFFFF), topBorder: Color(0xFF1E5594), topControl: Color(0x29FFFFFF),
|
||||
topMarkBg: Color(0x38FFFFFF), topMarkFg: Color(0xFFFFFFFF), sideBg: Color(0xFF163A6C),
|
||||
sideFg: Color(0xFFC4D6ED), sideMuted: Color(0xFF7C9FCB), sideActiveBg: Color(0xFF2C6BB3),
|
||||
sideActiveFg: Color(0xFFFFFFFF), sideBorder: Color(0xFF1E4A86), sideHover: Color(0xFF1C4680),
|
||||
menuUserBg: Color(0xFF3C79C0), menuUserFg: Color(0xFFFFFFFF), menuUserHover: Color(0xFF4D88CC),
|
||||
isDark: false,
|
||||
);
|
||||
|
||||
void main() {
|
||||
test('copyWith overrides one field, keeps others', () {
|
||||
final t = _sample().copyWith(primary: const Color(0xFF000000));
|
||||
expect(t.primary, const Color(0xFF000000));
|
||||
expect(t.surface, const Color(0xFF333333));
|
||||
expect(t.isDark, false);
|
||||
});
|
||||
|
||||
test('lerp at t=0 returns first, t=1 returns second', () {
|
||||
final a = _sample();
|
||||
final b = _sample().copyWith(primary: const Color(0xFFFFFFFF));
|
||||
expect(a.lerp(b, 0).primary, a.primary);
|
||||
expect(a.lerp(b, 1).primary, b.primary);
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user