- Flutter 3.44.0 + Dart 3.12.0 - 设计系统: 7色Token×浅/深模式, NotoSansSC/Caveat字体, 圆角10/16/22/28/pill, 三级阴影 - ResponsiveScaffold: 手机底部TabBar / 平板侧边Rail / 桌面三栏 - go_router 路由表: 13个页面 (5个Tab + 8个全屏页面) - 13个功能模块占位页面 (home/calendar/mood/search/profile/editor/auth/class/teacher/parent/achievement/stickers/templates) - 依赖: flutter_bloc, go_router, freezed, isar, dio, perfect_freehand, fl_chart - 中国镜像: PUB_HOSTED_URL + FLUTTER_STORAGE_BASE_URL - flutter analyze: No issues found
50 lines
1.3 KiB
Dart
50 lines
1.3 KiB
Dart
// 暖记阴影系统 — soft / medium / float
|
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
class AppShadows {
|
|
AppShadows._();
|
|
|
|
/// 柔和阴影 — 卡片默认
|
|
static List<BoxShadow> soft(BuildContext context) {
|
|
final isDark = Theme.of(context).brightness == Brightness.dark;
|
|
return [
|
|
BoxShadow(
|
|
color: isDark
|
|
? Colors.black.withValues(alpha: 0.3)
|
|
: const Color(0xFF2D2420).withValues(alpha: 0.08),
|
|
offset: const Offset(0, 2),
|
|
blurRadius: 8,
|
|
),
|
|
];
|
|
}
|
|
|
|
/// 中等阴影 — 浮动元素、FAB
|
|
static List<BoxShadow> medium(BuildContext context) {
|
|
final isDark = Theme.of(context).brightness == Brightness.dark;
|
|
return [
|
|
BoxShadow(
|
|
color: isDark
|
|
? Colors.black.withValues(alpha: 0.4)
|
|
: const Color(0xFF2D2420).withValues(alpha: 0.12),
|
|
offset: const Offset(0, 4),
|
|
blurRadius: 16,
|
|
),
|
|
];
|
|
}
|
|
|
|
/// 浮动阴影 — 弹窗、底部面板
|
|
static List<BoxShadow> floating(BuildContext context) {
|
|
final isDark = Theme.of(context).brightness == Brightness.dark;
|
|
return [
|
|
BoxShadow(
|
|
color: isDark
|
|
? Colors.black.withValues(alpha: 0.5)
|
|
: const Color(0xFF2D2420).withValues(alpha: 0.16),
|
|
offset: const Offset(0, 8),
|
|
blurRadius: 24,
|
|
),
|
|
];
|
|
}
|
|
}
|