caixa_theme/lib.rs
1//! `caixa-theme` — colors + semantic styles shared across the caixa
2//! ecosystem.
3//!
4//! Three tiers:
5//! - [`palette`] — Nord (the canonical pleme-io palette), exposed as
6//! `#RRGGBB` hex strings + 24-bit tuples.
7//! - [`Semantic`] — the small set of named styles every tool maps to
8//! (Keyword, Symbol, String, Comment, Error, Warning, Info, Hint,
9//! Added, Removed, Caret, Muted).
10//! - [`blackmatter`] — overlays that pick which Nord color a given
11//! Semantic renders as. The default overlay is `blackmatter_dark`,
12//! matching blackmatter-nvim + blackmatter-shell.
13//!
14//! Consumers (caixa-fmt, caixa-lint, caixa-lsp, caixa.nvim) pick a
15//! [`Theme`] at startup and ask `theme.style(Semantic::Error)` to get a
16//! concrete RGB triple.
17
18pub mod blackmatter;
19pub mod palette;
20pub mod style;
21
22pub use blackmatter::Theme;
23pub use palette::{Nord, Rgb};
24pub use style::{
25 CAIXA_THEME_SEMANTIC_WIRE_ACCENT, CAIXA_THEME_SEMANTIC_WIRE_ADDED,
26 CAIXA_THEME_SEMANTIC_WIRE_COMMENT, CAIXA_THEME_SEMANTIC_WIRE_ERROR,
27 CAIXA_THEME_SEMANTIC_WIRE_HINT, CAIXA_THEME_SEMANTIC_WIRE_INFO,
28 CAIXA_THEME_SEMANTIC_WIRE_KEYWORD, CAIXA_THEME_SEMANTIC_WIRE_KEYWORD_ARG,
29 CAIXA_THEME_SEMANTIC_WIRE_LITERAL, CAIXA_THEME_SEMANTIC_WIRE_MUTED,
30 CAIXA_THEME_SEMANTIC_WIRE_NUMBER, CAIXA_THEME_SEMANTIC_WIRE_REMOVED,
31 CAIXA_THEME_SEMANTIC_WIRE_STRING, CAIXA_THEME_SEMANTIC_WIRE_SYMBOL,
32 CAIXA_THEME_SEMANTIC_WIRE_UNCHANGED, CAIXA_THEME_SEMANTIC_WIRE_WARNING, Semantic,
33};