158 lines
5.2 KiB
Dart
158 lines
5.2 KiB
Dart
import 'package:flutter/material.dart';
|
||
|
||
/// 自 `desgin/funymee_home.pen` 抽取的色值与尺寸(390×844 基准)。
|
||
abstract final class PencilTheme {
|
||
/// FunyMee Home (bi8Au) 玻璃按钮填充 #c4c4c499
|
||
static const Color homeGlassFill = Color(0x99C4C4C4);
|
||
|
||
static const Color homeTextPrimary = Colors.white;
|
||
static const Color homeTabDivider = Color(0x66FFFFFF);
|
||
|
||
/// Home 积分数字(顶栏胶囊、Create Now 上方预估)共用投影。
|
||
static const List<Shadow> homeCreditsTextShadows = [
|
||
Shadow(
|
||
offset: Offset(0, 1),
|
||
blurRadius: 4,
|
||
color: Color(0x73000000),
|
||
),
|
||
Shadow(
|
||
offset: Offset(0, 0),
|
||
blurRadius: 8,
|
||
color: Color(0x40000000),
|
||
),
|
||
];
|
||
static const Color gemYellow = Color(0xFFFFD60A);
|
||
|
||
/// 旧版 Create Now 磨砂底(当前 [PencilCreateNowButton] 与 pen `aHMps` 白半透明一致;保留供参考)。
|
||
static const Color createPillFill = Color(0x4DFFFFFF);
|
||
static const Color createPlusDisc = Color(0xFFFFD60A);
|
||
|
||
/// 黄→白渐变页(suXxr / WBRp4 / EYsUi / 5J8Po)
|
||
static const LinearGradient yellowWhitePageGradient = LinearGradient(
|
||
begin: Alignment.topCenter,
|
||
end: Alignment.bottomCenter,
|
||
colors: [
|
||
Color(0xFFFDE047),
|
||
Color(0xFFFCFCFC),
|
||
Color(0xFFFFFFFF),
|
||
],
|
||
stops: [0, 0.3,1],
|
||
);
|
||
|
||
static const Color ink = Color(0xFF171717);
|
||
static const Color inkMuted = Color(0xFF404040);
|
||
static const Color inkSoft = Color(0xFF525252);
|
||
static const Color underlineGold = Color(0xFFC99304);
|
||
static const Color stone900 = Color(0xFF1C1917);
|
||
static const Color stone600 = Color(0xFF57534E);
|
||
static const Color stone700 = Color(0xFF44403C);
|
||
|
||
static const Color expiryBg = Color(0xFFFFFBEB);
|
||
static const Color expiryBorder = Color(0xFFFDE68A);
|
||
static const Color expiryHead = Color(0xFF92400E);
|
||
static const Color expiryBody = Color(0xFF78350F);
|
||
|
||
static const Color cardThumbBg = Color(0xFFF5F5F4);
|
||
static const Color downloadPillBorder = Color(0xFFD4D4D4);
|
||
static const Color downloadPillInk = Color(0xFF171717);
|
||
|
||
static const Color profileAvatarRing = Color(0xFFFBBF24);
|
||
static const Color profileAvatarIcon = Color(0xFFCA8A04);
|
||
static const Color profileCredits = Color(0xFFB45309);
|
||
|
||
static const Color genHintBorder = Color(0xFFFDE68A);
|
||
static const Color genHintTitle = Color(0xFF44403C);
|
||
static const Color genSlotBorder = Color(0xFFF5D08A);
|
||
static const Color genNavBackStroke = Color(0xFFE7E5E4);
|
||
|
||
/// 支付方式行选中描边(`funymee_home.pen` optApple / zL8hY)
|
||
static const Color paymentMethodSelectedStroke = Color(0xFF3B82F6);
|
||
|
||
/// 单选未选中描边
|
||
static const Color paymentRadioOffStroke = Color(0xFFD6D3D1);
|
||
|
||
/// `zL8hY` 底部表单主体渐变(pen rotation 180,上→下)
|
||
static const LinearGradient paymentSheetBodyGradient = LinearGradient(
|
||
begin: Alignment.topCenter,
|
||
end: Alignment.bottomCenter,
|
||
colors: [
|
||
Color(0xFFFDE047),
|
||
Color(0xFFFEF9C3),
|
||
Color(0xFFFFFBEB),
|
||
Color(0xFFFFFBF0),
|
||
],
|
||
stops: [0, 0.22, 0.65, 1],
|
||
);
|
||
|
||
/// 第三方支付弹窗顶部遮罩:纯黑半透明(modal scrim,与 `p7kQm` 一致)
|
||
static const Color paymentModalDimScrim = Color(0x80000000);
|
||
|
||
/// `zL8hY` 外阴影 `#B4530918`,offset (0,-4),blur 20
|
||
static const List<BoxShadow> paymentSheetOuterShadow = [
|
||
BoxShadow(
|
||
color: Color(0x18B45309),
|
||
offset: Offset(0, -4),
|
||
blurRadius: 20,
|
||
),
|
||
];
|
||
|
||
/// 摘要卡钻石图标 `gemSum` #EAB308
|
||
static const Color paymentSummaryGem = Color(0xFFEAB308);
|
||
|
||
/// 摘要卡赠送积分 `#16A34A`
|
||
static const Color paymentSummaryBonusGreen = Color(0xFF16A34A);
|
||
|
||
/// 摘要卡 “Credits” 标签 `#78716C`
|
||
static const Color paymentSummaryCreditsLabel = Color(0xFF78716C);
|
||
|
||
/// 摘要卡投影 `#0000000D`,offset (0,4),blur 16
|
||
static const List<BoxShadow> paymentSummaryCardShadow = [
|
||
BoxShadow(
|
||
color: Color(0x0D000000),
|
||
offset: Offset(0, 4),
|
||
blurRadius: 16,
|
||
),
|
||
];
|
||
|
||
/// `payCta` 金渐变 `#EAB308` → `#CA8A04`
|
||
static const LinearGradient paymentPayButtonGradient = LinearGradient(
|
||
begin: Alignment.topCenter,
|
||
end: Alignment.bottomCenter,
|
||
colors: [
|
||
Color(0xFFEAB308),
|
||
Color(0xFFCA8A04),
|
||
],
|
||
);
|
||
|
||
/// `payCta` 投影 `#B4530940`,offset (0,6),blur 14
|
||
static const List<BoxShadow> paymentPayButtonShadow = [
|
||
BoxShadow(
|
||
color: Color(0x40B45309),
|
||
offset: Offset(0, 6),
|
||
blurRadius: 14,
|
||
),
|
||
];
|
||
|
||
/// App Store 行图标色 `icBag` #007AFF
|
||
static const Color paymentAppStoreIconBlue = Color(0xFF007AFF);
|
||
|
||
/// Credit Record 流水行卡片(`funymee_home.pen` listCr / ez9wP)
|
||
static const LinearGradient creditRecordRowGradient = LinearGradient(
|
||
begin: Alignment.centerLeft,
|
||
end: Alignment.centerRight,
|
||
colors: [
|
||
Color(0xFFFDE047),
|
||
Color(0xFFF59E0B),
|
||
],
|
||
);
|
||
|
||
/// 设计宽度用于按比例缩放(可选)。
|
||
static const double designWidth = 390;
|
||
|
||
/// [MainScreen] 使用 [Scaffold.extendBody] 时,M3 [NavigationBar] 浮在内容上方;
|
||
/// 内容区默认高度为 80(与 Flutter `navigation_bar.dart` 一致),外加系统底边安全区。
|
||
static double mainTabBottomChromeReserve(BuildContext context) {
|
||
return 80 + MediaQuery.paddingOf(context).bottom;
|
||
}
|
||
}
|