Files
DMZJ_F/lib/app/app_style.dart
2026-03-07 17:24:59 +08:00

168 lines
5.3 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_dmzj/app/app_color.dart';
import 'package:get/get.dart';
class AppStyle {
static ThemeData lightTheme = getLightTheme();
static ThemeData getLightTheme({ColorScheme? colorScheme}) {
final scheme = colorScheme ?? AppColor.colorSchemeLight;
return ThemeData(
useMaterial3: true,
colorScheme: scheme,
brightness: Brightness.light,
).copyWith(
scaffoldBackgroundColor: colorScheme != null ? null : Colors.white,
cardColor: colorScheme != null ? null : Colors.white,
appBarTheme: AppBarTheme(
elevation: 0,
backgroundColor: Colors.transparent,
foregroundColor: scheme.onSurface,
centerTitle: false,
shape: Border(
bottom: BorderSide(
color: Colors.grey.withOpacity(.2),
width: 1,
),
),
iconTheme: IconThemeData(
color: scheme.onSurface,
),
titleTextStyle: TextStyle(
fontSize: 16,
color: scheme.onSurface,
),
systemOverlayStyle: SystemUiOverlayStyle.dark.copyWith(
systemNavigationBarColor: Colors.transparent,
),
),
);
}
static ThemeData darkTheme = getDarkTheme();
static ThemeData getDarkTheme({ColorScheme? colorScheme}) {
final scheme = colorScheme ?? AppColor.colorSchemeDark;
return ThemeData(
useMaterial3: true,
colorScheme: scheme,
brightness: Brightness.dark,
).copyWith(
primaryColor: scheme.primary,
cardColor: const Color(0xff424242),
scaffoldBackgroundColor: Colors.black,
tabBarTheme: TabBarThemeData(
indicatorColor: scheme.primary,
),
appBarTheme: AppBarTheme(
elevation: 0,
backgroundColor: Colors.transparent,
foregroundColor: Colors.white,
centerTitle: false,
shape: Border(
bottom: BorderSide(
color: Colors.grey.withOpacity(.2),
width: 1,
),
),
titleTextStyle: const TextStyle(
fontSize: 16,
color: Colors.white,
),
iconTheme: const IconThemeData(
color: Colors.white,
),
systemOverlayStyle: SystemUiOverlayStyle.light.copyWith(
systemNavigationBarColor: Colors.transparent,
),
),
);
}
static const vGap4 = SizedBox(
height: 4,
);
static const vGap8 = SizedBox(
height: 8,
);
static const vGap12 = SizedBox(
height: 12,
);
static const vGap24 = SizedBox(
height: 24,
);
static const vGap32 = SizedBox(
height: 32,
);
static const hGap4 = SizedBox(
width: 4,
);
static const hGap8 = SizedBox(
width: 8,
);
static const hGap12 = SizedBox(
width: 12,
);
static const hGap16 = SizedBox(
width: 16,
);
static const hGap24 = SizedBox(
width: 24,
);
static const hGap32 = SizedBox(
width: 32,
);
static const edgeInsetsH4 = EdgeInsets.symmetric(horizontal: 4);
static const edgeInsetsH8 = EdgeInsets.symmetric(horizontal: 8);
static const edgeInsetsH12 = EdgeInsets.symmetric(horizontal: 12);
static const edgeInsetsH16 = EdgeInsets.symmetric(horizontal: 16);
static const edgeInsetsH20 = EdgeInsets.symmetric(horizontal: 20);
static const edgeInsetsH24 = EdgeInsets.symmetric(horizontal: 24);
static const edgeInsetsV4 = EdgeInsets.symmetric(vertical: 4);
static const edgeInsetsV8 = EdgeInsets.symmetric(vertical: 8);
static const edgeInsetsV12 = EdgeInsets.symmetric(vertical: 12);
static const edgeInsetsV24 = EdgeInsets.symmetric(vertical: 24);
static const edgeInsetsA4 = EdgeInsets.all(4);
static const edgeInsetsA8 = EdgeInsets.all(8);
static const edgeInsetsA12 = EdgeInsets.all(12);
static const edgeInsetsA24 = EdgeInsets.all(24);
static const edgeInsetsR4 = EdgeInsets.only(right: 4);
static const edgeInsetsR8 = EdgeInsets.only(right: 8);
static const edgeInsetsR12 = EdgeInsets.only(right: 12);
static const edgeInsetsR20 = EdgeInsets.only(right: 20);
static const edgeInsetsR24 = EdgeInsets.only(right: 24);
static const edgeInsetsL4 = EdgeInsets.only(left: 4);
static const edgeInsetsL8 = EdgeInsets.only(left: 8);
static const edgeInsetsL12 = EdgeInsets.only(left: 12);
static const edgeInsetsL24 = EdgeInsets.only(left: 24);
static const edgeInsetsT4 = EdgeInsets.only(top: 4);
static const edgeInsetsT8 = EdgeInsets.only(top: 8);
static const edgeInsetsT12 = EdgeInsets.only(top: 12);
static const edgeInsetsT24 = EdgeInsets.only(top: 24);
static const edgeInsetsB4 = EdgeInsets.only(bottom: 4);
static const edgeInsetsB8 = EdgeInsets.only(bottom: 8);
static const edgeInsetsB12 = EdgeInsets.only(bottom: 12);
static const edgeInsetsB24 = EdgeInsets.only(bottom: 24);
static BorderRadius radius4 = BorderRadius.circular(4);
static BorderRadius radius8 = BorderRadius.circular(8);
static BorderRadius radius12 = BorderRadius.circular(12);
static BorderRadius radius24 = BorderRadius.circular(24);
static BorderRadius radius32 = BorderRadius.circular(32);
static BorderRadius radius48 = BorderRadius.circular(48);
/// 顶部状态栏的高度
static double get statusBarHeight => MediaQuery.of(Get.context!).padding.top;
/// 底部导航条的高度
static double get bottomBarHeight =>
MediaQuery.of(Get.context!).padding.bottom;
}