FunyMeeAI/lib/design/pencil_theme.dart

158 lines
5.2 KiB
Dart
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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;
}
}