Flutter颜色处理插件kolors的使用

Flutter颜色处理插件kolors的使用

简介

kolors 插件允许你在Flutter应用中使用大约140种命名的HTML颜色。HTML和CSS提供了大量的命名颜色,通过这个简单的Flutter插件,你也可以在你的Flutter应用中使用这些颜色。

持续集成 代码覆盖率 kolors包信息 发布者 GitHub Stars

重要链接

灵感

该插件的灵感来源于material库中的Colors类。我发现这个类对于原型设计非常方便:无需使用十六进制代码,只需简单直观的命名颜色即可。

作为一名有多年Web背景的开发者,我发现我经常想从我的Flutter应用中使用Web(HTML和CSS)的颜色。现在,通过这个插件,你可以快速地找到合适的颜色进行原型设计。

使用方法

import 'package:kolors/kolors.dart';

// 直接输入 "Kolors." 并选择你喜欢的颜色。
const appBarColor = Kolors.tomato;
const borderColor = Kolors.skyBlue;

// 如果你知道你感兴趣的某个颜色的色调,可以使用分组类。
const appBarColor = KolorReds.lightSalmon;
const iconColor = KolorGreens.limeGreen;
const fabColor = KolorBlues.skyBlue;

// 如果你想向用户展示带有名称的颜色,可以使用包含颜色名称和颜色的 "asMap"。
final kolorsMap = Kolors.asMap();
final kolorEntries = kolorsMap.entries.toList();

// 只获取颜色列表。
const pinks = KolorPinks.values;

你可以在 GitHubpub.dev 上查看示例应用。

示例应用

请注意,该插件依赖于 dart:ui(因此只能在Flutter中运行)。

完整示例

import 'package:flutter/material.dart';
import 'package:kolors/kolors.dart';

void main() => runApp(const MyApp());

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  [@override](/user/override)
  Widget build(BuildContext context) {
    // 如果你想向用户展示带有名称的颜色,可以使用包含颜色名称和颜色的 "asMap"。
    final kolorsMap = Kolors.asMap();
    final kolorEntries = kolorsMap.entries.toList(growable: false);

    // 直接输入 "Kolors." 并选择你喜欢的颜色。
    const appBarColor = Kolors.tomato;

    // 如果你知道你感兴趣的某个颜色的色调,可以使用分组类。
    const fabColor = KolorBlues.skyBlue;

    return MaterialApp(
      title: 'Flutter Demo',
      debugShowCheckedModeBanner: false,
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Kolors'),
          backgroundColor: appBarColor,
        ),
        floatingActionButton: FloatingActionButton(
          onPressed: () {},
          tooltip: 'Do nothing',
          child: const Icon(Icons.ac_unit),
          backgroundColor: fabColor,
        ),
        body: ListView.builder(
          itemCount: kolorEntries.length,
          itemBuilder: (_, i) => ListTile(
            tileColor: kolorEntries[i].value,
            title: Text(kolorEntries[i].key),
          ),
        ),
      ),
    );
  }
}

更多关于Flutter颜色处理插件kolors的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter颜色处理插件kolors的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


kolors 是一个用于 Flutter 的颜色处理插件,它提供了多种颜色操作功能,如颜色转换、混合、亮度调整等。以下是如何在 Flutter 项目中使用 kolors 插件的详细步骤:

1. 添加依赖

首先,你需要在 pubspec.yaml 文件中添加 kolors 插件的依赖。

dependencies:
  flutter:
    sdk: flutter
  kolors: ^1.0.0  # 请使用最新版本

然后运行 flutter pub get 来获取依赖。

2. 导入包

在你的 Dart 文件中导入 kolors 包:

import 'package:kolors/kolors.dart';

3. 使用 kolors 插件

kolors 插件提供了多种颜色处理方法,以下是一些常见的用法示例:

3.1 创建颜色

你可以使用 Kolors 类来创建颜色:

Color myColor = Kolors.fromRGB(255, 0, 0); // 创建一个红色

3.2 颜色转换

你可以将颜色转换为不同的格式:

String hexColor = Kolors.toHex(myColor); // 将颜色转换为十六进制字符串
Color fromHex = Kolors.fromHex('#FF0000'); // 从十六进制字符串创建颜色

3.3 颜色混合

你可以混合两种颜色:

Color mixedColor = Kolors.mix(Kolors.fromHex('#FF0000'), Kolors.fromHex('#0000FF'), 0.5); // 混合红色和蓝色

3.4 调整亮度

你可以调整颜色的亮度:

Color brighterColor = Kolors.brighten(myColor, 0.2); // 增加亮度
Color darkerColor = Kolors.darken(myColor, 0.2); // 降低亮度

3.5 计算对比色

你可以计算一个颜色的对比色,以确保文本在背景色上清晰可见:

Color contrastColor = Kolors.contrastColor(myColor);

4. 完整示例

以下是一个完整的示例,展示了如何使用 kolors 插件:

import 'package:flutter/material.dart';
import 'package:kolors/kolors.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Kolors Example'),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              Container(
                width: 100,
                height: 100,
                color: Kolors.fromHex('#FF0000'),
              ),
              SizedBox(height: 20),
              Container(
                width: 100,
                height: 100,
                color: Kolors.mix(Kolors.fromHex('#FF0000'), Kolors.fromHex('#0000FF'), 0.5),
              ),
              SizedBox(height: 20),
              Container(
                width: 100,
                height: 100,
                color: Kolors.brighten(Kolors.fromHex('#FF0000'), 0.2),
              ),
            ],
          ),
        ),
      ),
    );
  }
}
回到顶部