0.10.0: add the neobrute theme
audiofiles carried neobrute as a crate-local theme. Consolidating it onto
the shared set would have dropped the theme: despite goingson.toml's note
that it was 'formerly neobrute', the two palettes diverged and are
visibly different, so goingson is not a replacement for it.
Bring it in as an original and correct that note.
7 files changed,
+48 insertions,
-6 deletions
| 1 |
1 |
|
[package]
|
| 2 |
2 |
|
name = "makeover"
|
| 3 |
|
- |
version = "0.9.0"
|
|
3 |
+ |
version = "0.10.0"
|
| 4 |
4 |
|
edition = "2024"
|
| 5 |
5 |
|
description = "Shared theme loading for the make-family apps: TOML theme files parsed into intent-based color tokens, with perceptual derivations and WCAG contrast."
|
| 6 |
6 |
|
license = "MIT"
|
| 6 |
6 |
|
|
| 7 |
7 |
|
Used by MNW server, GoingsOn, Balanced Breakfast, audiofiles, and Alloy.
|
| 8 |
8 |
|
|
| 9 |
|
- |
The crate ships 30 themes. `bundled_themes_dir()` hands back the directory; `embedded_themes()` hands back the same set as `(id, toml_source)` pairs with no filesystem path involved, for consumers that embed at compile time or bundle assets at build time.
|
|
9 |
+ |
The crate ships 31 themes. `bundled_themes_dir()` hands back the directory; `embedded_themes()` hands back the same set as `(id, toml_source)` pairs with no filesystem path involved, for consumers that embed at compile time or bundle assets at build time.
|
| 10 |
10 |
|
|
| 11 |
11 |
|
## Usage
|
| 12 |
12 |
|
|
| 39 |
39 |
|
|
| 40 |
40 |
|
## Theme File Format
|
| 41 |
41 |
|
|
| 42 |
|
- |
Colors are declared by **intent** (the role a color plays), not by hue. See `themes/` for the 30 bundled themes.
|
|
42 |
+ |
Colors are declared by **intent** (the role a color plays), not by hue. See `themes/` for the 31 bundled themes.
|
| 43 |
43 |
|
|
| 44 |
44 |
|
```toml
|
| 45 |
45 |
|
[meta]
|
| 88 |
88 |
|
- `goingson` — the GoingsOn application palette
|
| 89 |
89 |
|
- `audiofiles` — the audiofiles application palette
|
| 90 |
90 |
|
- `high-contrast` — an accessibility-oriented palette
|
|
91 |
+ |
- `neobrute` — a cooler-toned light palette sharing an ancestry with `goingson`
|
| 91 |
92 |
|
|
| 92 |
93 |
|
## Corrections
|
| 93 |
94 |
|
|
| 1032 |
1032 |
|
fn adapted_themes_carry_inline_attribution() {
|
| 1033 |
1033 |
|
// Each adapted file must name its upstream in-file, so the credit
|
| 1034 |
1034 |
|
// survives someone copying a single .toml out of the crate.
|
| 1035 |
|
- |
const ORIGINALS: [&str; 4] = ["makenotwork", "goingson", "audiofiles", "high-contrast"];
|
|
1035 |
+ |
const ORIGINALS: [&str; 5] =
|
|
1036 |
+ |
["makenotwork", "goingson", "audiofiles", "high-contrast", "neobrute"];
|
| 1036 |
1037 |
|
for (id, source) in embedded_themes() {
|
| 1037 |
1038 |
|
if ORIGINALS.contains(&id) {
|
| 1038 |
1039 |
|
continue;
|
| 1 |
1 |
|
# Themes
|
| 2 |
2 |
|
|
| 3 |
|
- |
The 30 theme files this crate ships. Consumers get them two ways: as a
|
|
3 |
+ |
The 31 theme files this crate ships. Consumers get them two ways: as a
|
| 4 |
4 |
|
directory via `bundled_themes_dir()`, or embedded with no path at all via
|
| 5 |
5 |
|
`embedded_themes()`.
|
| 6 |
6 |
|
|
| 1 |
|
- |
# GoingsOn — the app's titular default skin (formerly "neobrute"). Also
|
|
1 |
+ |
# GoingsOn — the app's titular default skin. Shares an ancestry with the
|
|
2 |
+ |
# `neobrute` theme, which ships alongside it; the two have since diverged. Also
|
| 2 |
3 |
|
# available cross-app as a universal theme.
|
| 3 |
4 |
|
|
| 4 |
5 |
|
[meta]
|
|
1 |
+ |
# Neobrute — an original palette, no third-party source.
|
|
2 |
+ |
#
|
|
3 |
+ |
# Distinct from the `goingson` theme despite a shared ancestry: the two
|
|
4 |
+ |
# diverged, and neobrute keeps the cooler cyan-leaning surfaces.
|
|
5 |
+ |
|
|
6 |
+ |
[meta]
|
|
7 |
+ |
name = "Neobrute"
|
|
8 |
+ |
variant = "light"
|
|
9 |
+ |
|
|
10 |
+ |
[surface]
|
|
11 |
+ |
page = "#E8F4F8"
|
|
12 |
+ |
raised = "#FFFFFF"
|
|
13 |
+ |
sunken = "#C0E2EC"
|
|
14 |
+ |
overlay = "#D4EBF2"
|
|
15 |
+ |
|
|
16 |
+ |
[content]
|
|
17 |
+ |
primary = "#1B365D"
|
|
18 |
+ |
secondary = "#3D5A80"
|
|
19 |
+ |
muted = "#4d6b82"
|
|
20 |
+ |
|
|
21 |
+ |
[action]
|
|
22 |
+ |
primary = "#1B365D"
|
|
23 |
+ |
|
|
24 |
+ |
[status]
|
|
25 |
+ |
danger = "#DC3545"
|
|
26 |
+ |
success = "#5CB85C"
|
|
27 |
+ |
warning = "#F7D154"
|
|
28 |
+ |
info = "#17A2B8"
|
|
29 |
+ |
|
|
30 |
+ |
[line]
|
|
31 |
+ |
border = "#1B365D"
|
|
32 |
+ |
|
|
33 |
+ |
[category]
|
|
34 |
+ |
one = "#DC3545"
|
|
35 |
+ |
two = "#5CB85C"
|
|
36 |
+ |
three = "#1B365D"
|
|
37 |
+ |
four = "#F7D154"
|
|
38 |
+ |
five = "#7B68EE"
|
|
39 |
+ |
six = "#17A2B8"
|