Files
platforms/apps/heqi_design_system/lib/src/tokens.dart

61 lines
1.7 KiB
Dart

import 'package:flutter/material.dart';
/// 两端品牌主题。安全语义色始终共享,不能被品牌色覆盖。
enum HeqiBrand { consumer, service }
abstract final class HeqiColors {
static const consumerPrimary = Color(0xFF2563EB);
static const servicePrimary = Color(0xFF4F46E5);
static const success = Color(0xFF16875D);
static const warning = Color(0xFFB86400);
static const danger = Color(0xFFC7352A);
static const lightBackground = Color(0xFFF7F8FA);
static const darkBackground = Color(0xFF0B1220);
static const darkSurface = Color(0xFF111827);
}
/// 4dp 基础网格。页面不得新增不属于本表的随意间距。
abstract final class HeqiSpacing {
static const x1 = 4.0;
static const x2 = 8.0;
static const x3 = 12.0;
static const x4 = 16.0;
static const x5 = 20.0;
static const x6 = 24.0;
static const x7 = 28.0;
static const x8 = 32.0;
static const x10 = 40.0;
static const x12 = 48.0;
}
abstract final class HeqiRadius {
static const small = 10.0;
static const medium = 12.0;
static const large = 16.0;
static const extraLarge = 20.0;
static const sheet = 24.0;
}
abstract final class HeqiSize {
static const minTouchTarget = 48.0;
static const buttonHeight = 52.0;
static const navigationBarHeight = 72.0;
static const contentMaxWidth = 720.0;
static const iconSmall = 16.0;
static const iconMedium = 24.0;
static const iconLarge = 32.0;
}
abstract final class HeqiMotion {
static const fast = Duration(milliseconds: 150);
static const standard = Duration(milliseconds: 220);
static const emphasized = Duration(milliseconds: 300);
}
abstract final class HeqiBreakpoints {
static const compact = 600.0;
static const medium = 840.0;
static const expanded = 1024.0;
}