随机配色方案

创建一套连贯的 Material Design 主题是一件困难的事情。这个 Flutter 插件可以根据 Material Design 生成随机的颜色列表,同时遵守 WCAG 指南。

这样做的目的是让你(暂时)用 randomColorSchemeLight() 或 randomColorSchemeDark() 替换你的 ColorScheme()。每次运行、热刷新或热重启,你的应用程序都会呈现出不同的外观。主题会被打印在终端,你可以轻松地将喜欢的颜色复制粘贴回你的项目中。

交互式示例可以让你了解它的工作原理以及背后的原因。

sample_preview

用法

在您的 flutter 项目的 pubspec.yaml 文件中,添加以下依赖项

pub package

dependencies:
  random_color_scheme: ^VERSION

在你的项目中,只需将 ColorScheme.dark(...) 替换为 RandomColorSchemeDark()
如果你想要一个浅色主题,也有 RandomColorSchemeLight()

import 'package:random_colorscheme/random_color_scheme.dart';

Theme(
  data: ThemeData(
    colorScheme: randomColorSchemeDark(),
  ),
  child: MyApp(),
)

工作原理

这源于我的 Color Studio 项目
我开始研究 Material Design 的亮色和暗色主题指南。
在提取了一些颜色(例如 Primary、Secondary 和 Owl Study)之后,我决定看看它们有多相似,在哪个范围内,以及它们如何协同工作。
然后,我使用了 HSLuv 和随机数生成器,以及我观察到的规则。最后的调整是在微调示例时完成的。
HSLuv 的优点在于,只有亮度属性会影响 WCAG 计算出的对比度,因此所有主题都保证能通过
最低的无障碍阈值。

函数列表

  • randomColorSchemeDark(seed: null | int)
  • randomColorSchemeLight(seed: null | int)
  • randomColorScheme(seed: null | int, isDark: bool)

Seed:一个整数,可以确保随机函数始终产生相同的输出(即相同的 ColorScheme)。
它是可选的。

GitHub

https://github.com/bernaferrari/RandomColorScheme