Flutter主题美化插件catppuccin_flutter的使用
Flutter主题美化插件catppuccin_flutter的使用
项目简介
Catppuccin 是一个流行的配色方案,适用于多种编程语言和框架。catppuccin_flutter
是专门为 Flutter 项目设计的主题美化插件,提供了四种不同的主题风格:Latte、Frappé、Macchiato 和 Mocha。每个主题都有丰富的颜色选择,可以帮助你快速为应用添加美观的视觉效果。
预览
以下是 catppuccin_flutter
提供的四种主题风格的预览:
-
🌻 Latte
-
🪴 Frappé
-
🌺 Macchiato
-
🌿 Mocha
安装
要使用 catppuccin_flutter
插件,按照以下步骤操作:
-
将
catppuccin_flutter
添加到pubspec.yaml
文件中:dependencies: # 其他依赖项 catppuccin_flutter: ^1.0.0 # 其他依赖项
-
在终端中运行以下命令以获取依赖项:
flutter pub get
使用方法
以下是一个完整的示例代码,展示了如何在 Flutter 应用中使用 catppuccin_flutter
插件:
import 'package:catppuccin_flutter/catppuccin_flutter.dart';
import 'package:flutter/material.dart';
import 'dart:math';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: catppuccinTheme(catppuccin.mocha), // 使用 Mocha 主题
home: const MyHomePage(
title: 'Catppuccin Theme',
),
);
}
}
// 获取颜色映射
Map<String, Color> getColorMap(Flavor flavor) {
return {
"rosewater": flavor.rosewater,
"flamingo": flavor.flamingo,
"pink": flavor.pink,
"mauve": flavor.mauve,
"red": flavor.red,
"maroon": flavor.maroon,
"peach": flavor.peach,
"yellow": flavor.yellow,
"green": flavor.green,
"teal": flavor.teal,
"sky": flavor.sky,
"sapphire": flavor.sapphire,
"blue": flavor.blue,
"lavender": flavor.lavender,
"text": flavor.text,
"subtext1": flavor.subtext1,
"subtext0": flavor.subtext0,
"overlay2": flavor.overlay2,
"overlay1": flavor.overlay1,
"overlay0": flavor.overlay0,
"surface2": flavor.surface2,
"surface1": flavor.surface1,
"surface0": flavor.surface0,
"crust": flavor.crust,
"mantle": flavor.mantle,
"base": flavor.base,
};
}
class MyHomePage extends StatelessWidget {
const MyHomePage({super.key, required this.title});
final String title;
[@override](/user/override)
Widget build(BuildContext context) {
final flavor = catppuccin.mocha; // 使用 Mocha 主题
final colorMap = getColorMap(flavor);
final random = Random(1); // 用于生成随机位置
return Scaffold(
appBar: AppBar(
backgroundColor: flavor.mantle, // 设置 AppBar 的背景颜色
title: Text(
title,
style: TextStyle(color: flavor.text), // 设置标题文字颜色
),
),
body: Container(
color: colorMap['base'], // 设置背景颜色
child: Padding(
padding: const EdgeInsets.all(24.0),
child: Center(
child: Stack(
children: colorMap.keys.map((colorName) {
final colorValue = colorMap[colorName]!;
final hexColor =
'#${colorValue.value.toRadixString(16).substring(2)}'; // 将颜色转换为十六进制字符串
final radius = 50 + random.nextInt(91).toDouble(); // 随机半径
final positionX = random.nextDouble() *
(MediaQuery.of(context).size.width - 2 * radius); // 随机 X 位置
final positionY = random.nextDouble() *
(MediaQuery.of(context).size.height - 2 * radius); // 随机 Y 位置
return Positioned(
left: positionX,
top: positionY,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Container(
width: radius * 2,
height: radius * 2,
decoration: BoxDecoration(
shape: BoxShape.circle, // 圆形容器
color: colorValue, // 设置容器颜色
),
child: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(
colorName, // 显示颜色名称
style: TextStyle(
color: colorValue.computeLuminance() > 0.5
? Colors.black
: Colors.white, // 根据亮度选择文字颜色
),
),
Text(
hexColor, // 显示十六进制颜色值
style: TextStyle(
color: colorValue.computeLuminance() > 0.5
? Colors.black
: Colors.white, // 根据亮度选择文字颜色
),
),
],
),
),
),
],
),
);
}).toList(),
),
),
),
),
);
}
}
更多关于Flutter主题美化插件catppuccin_flutter的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter主题美化插件catppuccin_flutter的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是如何在Flutter项目中集成和使用catppuccin_flutter
主题美化插件的代码示例。catppuccin_flutter
是一个受欢迎的Flutter主题插件,它提供了一套美观且一致的颜色主题。
步骤1:添加依赖
首先,你需要在pubspec.yaml
文件中添加catppuccin_flutter
依赖。
dependencies:
flutter:
sdk: flutter
catppuccin_flutter: ^最新版本号 # 请替换为实际的最新版本号
然后运行flutter pub get
来安装依赖。
步骤2:导入主题
在你的Flutter项目的Dart文件中导入catppuccin_flutter
包。
import 'package:catppuccin_flutter/catppuccin_flutter.dart';
步骤3:应用主题
接下来,你需要在你的Flutter应用的MaterialApp
或CupertinoApp
中应用CatppuccinTheme
。
import 'package:flutter/material.dart';
import 'package:catppuccin_flutter/catppuccin_flutter.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: CatppuccinTheme.light(), // 使用浅色主题
// theme: CatppuccinTheme.dark(), // 使用深色主题,根据需要选择
home: MyHomePage(),
);
}
}
class MyHomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Catppuccin Theme Demo'),
),
body: Center(
child: Text(
'Hello, Catppuccin!',
style: TextStyle(color: CatppuccinColors.cyan),
),
),
);
}
}
在上面的代码中,我们导入了catppuccin_flutter
包,并在MaterialApp
中使用了CatppuccinTheme.light()
来应用浅色主题。你也可以选择使用CatppuccinTheme.dark()
来应用深色主题。
步骤4:使用主题颜色
你可以直接使用CatppuccinColors
类中的颜色。这些颜色已经定义在插件中,你可以像使用任何其他Flutter颜色一样使用它们。
Text(
'Hello, Catppuccin!',
style: TextStyle(color: CatppuccinColors.cyan), // 使用Catppuccin颜色
)
完整示例
下面是一个完整的示例,展示了如何集成和使用catppuccin_flutter
主题美化插件。
import 'package:flutter/material.dart';
import 'package:catppuccin_flutter/catppuccin_flutter.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: CatppuccinTheme.light(), // 使用浅色主题
home: MyHomePage(),
);
}
}
class MyHomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Catppuccin Theme Demo'),
backgroundColor: CatppuccinColors.background, // 使用Catppuccin背景颜色
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(
'Hello, Catppuccin!',
style: TextStyle(color: CatppuccinColors.cyan, fontSize: 24),
),
SizedBox(height: 20),
ElevatedButton(
onPressed: () {},
child: Text('Press Me'),
style: ButtonStyle(
backgroundColor: MaterialStateProperty.all(CatppuccinColors.pink),
textStyle: MaterialStateProperty.all(TextStyle(color: CatppuccinColors.background)),
),
),
],
),
),
);
}
}
在这个示例中,我们展示了如何使用CatppuccinColors
中的颜色来美化应用的不同部分,包括AppBar
的背景颜色和ElevatedButton
的背景及文本颜色。
希望这个示例能够帮助你在Flutter项目中集成和使用catppuccin_flutter
主题美化插件!