1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
//! # Chromata
//!
//! **1000+ editor color themes as compile-time Rust constants.**
//!
//! Chromata provides every popular editor and terminal color theme as
//! compile-time `const` data. No file parsing, no runtime allocation,
//! one dependency (`libm` for `no_std` math). Add `chromata` to your `Cargo.toml`, write
//! `chromata::popular::gruvbox::DARK_HARD.bg`, and get a hex color
//! at zero cost.
//!
//! ## Feature Flags
//!
//! | Feature | Themes | Description |
//! |---------|--------|-------------|
//! | `popular` (default) | 49 | Curated best themes (gruvbox, catppuccin, nord...) |
//! | `base16` | 305 | Base16 themes from tinted-theming/schemes |
//! | `base24` | 184 | Base24 themes from tinted-theming/schemes |
//! | `vim` | 464 | Vim colorschemes from vim-colorschemes repos |
//! | `emacs` | 102 | Emacs themes from emacs-themes-site |
//! | `all` | 1104 | All collections combined |
//! | `bevy-color-integration` | — | `From<Color>` for bevy_color types |
//! | `colored-integration` | — | `From<Color>` for colored types |
//! | `comfy-table-integration` | — | `From<Color>` for comfy-table types |
//! | `crossterm-integration` | — | `From<Color>` for crossterm types |
//! | `cursive-integration` | — | `From<Color>` for cursive types |
//! | `egui-integration` | — | `From<Color>` for egui types |
//! | `iced-integration` | — | `From<Color>` for iced types |
//! | `image-integration` | — | `From<Color>` for image types |
//! | `macroquad-integration` | — | `From<Color>` for macroquad types |
//! | `owo-colors-integration` | — | `From<Color>` for owo-colors types |
//! | `palette-integration` | — | `From<Color>` for palette types |
//! | `plotters-integration` | — | `From<Color>` for plotters types |
//! | `ratatui-integration` | — | `From<Color>` for ratatui types |
//! | `slint-integration` | — | `From<Color>` for slint types |
//! | `syntect-integration` | — | `From<Color>` for syntect types |
//! | `termion-integration` | — | `From<Color>` for termion types |
//! | `tiny-skia-integration` | — | `From<Color>` for tiny-skia types |
//! | `wgpu-integration` | — | `From<Color>` for wgpu types |
//! | `serde-support` | — | Serialize + Deserialize for themes |
//!
//! ## Core Types
//!
//! - [`Color`] — RGB color with hex conversion, WCAG luminance, contrast ratio, lerp
//! - [`Theme`] — 29 color fields + metadata (name, author, variant, contrast)
//! - [`ThemeBuilder`] — Fluent builder for constructing themes at runtime
//! - [`Variant`] — `Dark` or `Light`
//! - [`Contrast`] — `High`, `Normal`, or `Low` (WCAG-based)
//! - [`Base16Palette`] — The 16 base16 palette slots (used within [`Base24Palette`])
//! - [`Base24Palette`] — Extended 24-slot palette (exported by base24 themes as `PALETTE`)
//!
//! ## Quick Start
//!
//! ```rust
//! use chromata::popular::gruvbox;
//!
//! let theme = gruvbox::DARK_HARD;
//! println!("Background: {}", theme.bg.to_css_hex());
//! println!("Is dark? {}", theme.is_dark());
//! ```
//!
//! ## Query APIs
//!
//! ```rust
//! use chromata::{find_by_name, filter_by_variant, Variant};
//!
//! if let Some(theme) = find_by_name("Gruvbox Dark Hard") {
//! println!("{}: {}", theme.name, theme.bg);
//! }
//! let dark_themes = filter_by_variant(Variant::Dark);
//! ```
// Generated theme files contain bare URLs in author fields.
extern crate alloc;
pub use *;
pub use *;