ops-console v1.0.2 (versionCode 8) 源码入库
This commit is contained in:
48
lib/widgets/cloud_card.dart
Normal file
48
lib/widgets/cloud_card.dart
Normal file
@@ -0,0 +1,48 @@
|
||||
import 'package:flutter/material.dart';
|
||||
|
||||
import '../app/theme.dart';
|
||||
|
||||
/// 品牌云卡:橙→金渐变表面 + 深棕文字,用于首页 / 概览的招牌区块。
|
||||
///
|
||||
/// 自动把内部文字与图标设为 [AppBrand.onCloud](亮橙底上的深棕),
|
||||
/// 因此卡片内无需再单独指定前景色。
|
||||
class CloudCard extends StatelessWidget {
|
||||
const CloudCard({
|
||||
super.key,
|
||||
this.child,
|
||||
this.padding = const EdgeInsets.all(20),
|
||||
this.radius,
|
||||
});
|
||||
|
||||
final Widget? child;
|
||||
final EdgeInsetsGeometry padding;
|
||||
|
||||
/// 圆角覆盖;默认用 [AppRadius.lg]。
|
||||
final double? radius;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final scheme = Theme.of(context).colorScheme;
|
||||
return Container(
|
||||
decoration: BoxDecoration(
|
||||
gradient: AppBrand.cloudGradient,
|
||||
borderRadius: BorderRadius.circular(radius ?? AppRadius.lg),
|
||||
boxShadow: AppShadows.md,
|
||||
),
|
||||
padding: padding,
|
||||
foregroundDecoration: scheme.brightness == Brightness.dark
|
||||
? BoxDecoration(
|
||||
borderRadius: BorderRadius.circular(radius ?? AppRadius.lg),
|
||||
color: Colors.black.withOpacity(0.28),
|
||||
)
|
||||
: null,
|
||||
child: DefaultTextStyle(
|
||||
style: const TextStyle(color: AppBrand.onCloud),
|
||||
child: IconTheme(
|
||||
data: const IconThemeData(color: AppBrand.onCloud),
|
||||
child: child ?? const SizedBox.shrink(),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user