Files
CloudHome-Ops/lib/widgets/cloud_card.dart

49 lines
1.4 KiB
Dart
Raw Permalink Normal View History

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(),
),
),
);
}
}