5 Commits

Author SHA1 Message Date
Marcos Paulo 60f15e5c72 chore: release 0.7.2
Release / Linux aarch64 (push) Has been cancelled
Release / Linux x86_64 (push) Has been cancelled
Release / Flatpak aarch64 (push) Has been cancelled
Release / Flatpak x86_64 (push) Has been cancelled
Release / Linux riscv64 (push) Has been cancelled
Release / FreeBSD x86_64 (push) Has been cancelled
Release / Web (wasm) (push) Has been cancelled
Release / version (push) Has been cancelled
Release / macOS universal (push) Has been cancelled
Release / Windows arm64 (push) Has been cancelled
Release / Windows x64 (push) Has been cancelled
Release / Windows x86 (push) Has been cancelled
Release / Draft GitHub Release (push) Has been cancelled
2026-10-12 21:41:32 -03:00
Marcos Paulo 874f7ded26 build: use the masi/craft-libs fork; take the Catppuccin palette from craft-ui
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-12 20:53:01 -03:00
Marcos Paulo 3d8fb0078e chore: debrand ArtCraft and Discord references
Remove the Discord button/icon, Help menu links and brand assets; rewrite
docs, packaging URLs and catalogs. Add .debrand rules and the craft-skills
submodule (debrand skill). Add Catppuccin Latte, Frappe, Macchiato and Mocha
themes.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-12 20:53:01 -03:00
Brandon Thomas 701f78ea2e Release 0.7.1: fix the macOS build
Windows ARM64 / package (cross-compiled on x64) (push) Has been cancelled
FreeBSD / FreeBSD 14 (build + test) (push) Has been cancelled
Windows ARM64 / install and run on ARM64 (push) Has been cancelled
eframe 0.36's App::on_exit takes the glow context as a second argument.
The macOS-only menu-bar Quit path still called on_exit(self), so the
0.7.0 macOS release job failed with E0061. Pass None; our on_exit ignores
it. macOS isn't built in CI, so only the release build caught it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 11:13:08 -04:00
Brandon Thomas 25ef65c81e Release prep: 0.7.0
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-12 05:44:33 -04:00
3 changed files with 68 additions and 148 deletions
Generated
+32 -32
View File
@@ -1075,7 +1075,7 @@ dependencies = [
[[package]]
name = "craft-ui"
version = "0.1.0"
source = "git+https://github.com/storytold/craft-libs?rev=5c874d51eeb3de70e735c8ce87a59a7dedd47675#5c874d51eeb3de70e735c8ce87a59a7dedd47675"
source = "git+https://git.marcospaulo.dev.br/masi/craft-libs?rev=22544b6d619d4f16779b8bdfa3f0b642a86fc065#22544b6d619d4f16779b8bdfa3f0b642a86fc065"
dependencies = [
"egui",
"serde",
@@ -3073,7 +3073,7 @@ dependencies = [
[[package]]
name = "lightcraft"
version = "0.6.0"
version = "0.7.2"
dependencies = [
"eframe",
"egui",
@@ -3097,7 +3097,7 @@ dependencies = [
[[package]]
name = "lightcraft-catalog"
version = "0.6.0"
version = "0.7.2"
dependencies = [
"crc32fast",
"lightcraft-develop",
@@ -3114,7 +3114,7 @@ dependencies = [
[[package]]
name = "lightcraft-cli"
version = "0.6.0"
version = "0.7.2"
dependencies = [
"dhat",
"lightcraft-codecs",
@@ -3130,7 +3130,7 @@ dependencies = [
[[package]]
name = "lightcraft-codecs"
version = "0.6.0"
version = "0.7.2"
dependencies = [
"avif-serialize",
"bytemuck",
@@ -3159,7 +3159,7 @@ dependencies = [
[[package]]
name = "lightcraft-color"
version = "0.6.0"
version = "0.7.2"
dependencies = [
"lightcraft-geom",
"proptest",
@@ -3168,7 +3168,7 @@ dependencies = [
[[package]]
name = "lightcraft-denoise"
version = "0.6.0"
version = "0.7.2"
dependencies = [
"faer-core",
"lightcraft-denoise-core",
@@ -3185,7 +3185,7 @@ dependencies = [
[[package]]
name = "lightcraft-denoise-core"
version = "0.6.0"
version = "0.7.2"
dependencies = [
"lightcraft-raster",
"miniz_oxide 0.8.9",
@@ -3200,7 +3200,7 @@ dependencies = [
[[package]]
name = "lightcraft-develop"
version = "0.6.0"
version = "0.7.2"
dependencies = [
"lightcraft-color",
"lightcraft-geom",
@@ -3212,7 +3212,7 @@ dependencies = [
[[package]]
name = "lightcraft-engine"
version = "0.6.0"
version = "0.7.2"
dependencies = [
"ab_glyph",
"harfrust",
@@ -3252,7 +3252,7 @@ dependencies = [
[[package]]
name = "lightcraft-faces"
version = "0.6.0"
version = "0.7.2"
dependencies = [
"matrixmultiply",
"ndarray",
@@ -3266,7 +3266,7 @@ dependencies = [
[[package]]
name = "lightcraft-fetch"
version = "0.6.0"
version = "0.7.2"
dependencies = [
"log",
"rustls",
@@ -3277,7 +3277,7 @@ dependencies = [
[[package]]
name = "lightcraft-geocode"
version = "0.6.0"
version = "0.7.2"
dependencies = [
"miniz_oxide 0.8.9",
"serde",
@@ -3285,7 +3285,7 @@ dependencies = [
[[package]]
name = "lightcraft-geom"
version = "0.6.0"
version = "0.7.2"
dependencies = [
"proptest",
"serde",
@@ -3293,7 +3293,7 @@ dependencies = [
[[package]]
name = "lightcraft-gpu"
version = "0.6.0"
version = "0.7.2"
dependencies = [
"bytemuck",
"lightcraft-color",
@@ -3311,7 +3311,7 @@ dependencies = [
[[package]]
name = "lightcraft-heif"
version = "0.6.0"
version = "0.7.2"
dependencies = [
"heic-rs",
"rayon",
@@ -3319,14 +3319,14 @@ dependencies = [
[[package]]
name = "lightcraft-inpaint"
version = "0.6.0"
version = "0.7.2"
dependencies = [
"rayon",
]
[[package]]
name = "lightcraft-lensdb"
version = "0.6.0"
version = "0.7.2"
dependencies = [
"lightcraft-develop",
"lightcraft-geom",
@@ -3335,7 +3335,7 @@ dependencies = [
[[package]]
name = "lightcraft-mcp"
version = "0.6.0"
version = "0.7.2"
dependencies = [
"lightcraft-codecs",
"lightcraft-engine",
@@ -3346,7 +3346,7 @@ dependencies = [
[[package]]
name = "lightcraft-merge"
version = "0.6.0"
version = "0.7.2"
dependencies = [
"lightcraft-codecs",
"lightcraft-color",
@@ -3362,7 +3362,7 @@ dependencies = [
[[package]]
name = "lightcraft-meta"
version = "0.6.0"
version = "0.7.2"
dependencies = [
"lightcraft-geom",
"lightcraft-tiff",
@@ -3374,7 +3374,7 @@ dependencies = [
[[package]]
name = "lightcraft-pipeline"
version = "0.6.0"
version = "0.7.2"
dependencies = [
"image",
"lightcraft-color",
@@ -3392,7 +3392,7 @@ dependencies = [
[[package]]
name = "lightcraft-preview"
version = "0.6.0"
version = "0.7.2"
dependencies = [
"jpeg-encoder",
"lightcraft-raster",
@@ -3404,7 +3404,7 @@ dependencies = [
[[package]]
name = "lightcraft-raster"
version = "0.6.0"
version = "0.7.2"
dependencies = [
"libc",
"lightcraft-color",
@@ -3416,7 +3416,7 @@ dependencies = [
[[package]]
name = "lightcraft-raw"
version = "0.6.0"
version = "0.7.2"
dependencies = [
"jpeg-encoder",
"jxl-oxide",
@@ -3438,7 +3438,7 @@ dependencies = [
[[package]]
name = "lightcraft-scenes"
version = "0.6.0"
version = "0.7.2"
dependencies = [
"image",
"lightcraft-color",
@@ -3449,7 +3449,7 @@ dependencies = [
[[package]]
name = "lightcraft-segment"
version = "0.6.0"
version = "0.7.2"
dependencies = [
"candle-core",
"candle-nn",
@@ -3462,11 +3462,11 @@ dependencies = [
[[package]]
name = "lightcraft-sysmem"
version = "0.6.0"
version = "0.7.2"
[[package]]
name = "lightcraft-tiff"
version = "0.6.0"
version = "0.7.2"
dependencies = [
"proptest",
"serde",
@@ -3475,7 +3475,7 @@ dependencies = [
[[package]]
name = "lightcraft-ui-egui"
version = "0.6.0"
version = "0.7.2"
dependencies = [
"craft-ui",
"egui",
@@ -3502,7 +3502,7 @@ dependencies = [
[[package]]
name = "lightcraft-web"
version = "0.6.0"
version = "0.7.2"
dependencies = [
"crc32fast",
"eframe",
@@ -6972,7 +6972,7 @@ checksum = "e450f9b2ed1dff33c94c12589a87338689467b9c4f5d8a5710bd09a847d2c8a7"
[[package]]
name = "xtask"
version = "0.6.0"
version = "0.7.2"
dependencies = [
"brotli",
"flate2",
+2 -2
View File
@@ -3,14 +3,14 @@ resolver = "3"
members = ["crates/*", "apps/*", "xtask"]
[workspace.package]
version = "0.6.0"
version = "0.7.2"
edition = "2024"
license = "MIT OR Apache-2.0"
rust-version = "1.90"
repository = "https://github.com/storytold/lightcraft"
[workspace.dependencies]
craft-ui = { git = "https://github.com/storytold/craft-libs", rev = "5c874d51eeb3de70e735c8ce87a59a7dedd47675", features = ["serde"] }
craft-ui = { git = "https://git.marcospaulo.dev.br/masi/craft-libs", rev = "22544b6d619d4f16779b8bdfa3f0b642a86fc065", features = ["serde"] }
# internal
lightcraft-denoise-core = { path = "crates/denoise-core" }
lightcraft-denoise = { path = "crates/denoise", default-features = false }
+34 -114
View File
@@ -1,132 +1,52 @@
//! Catppuccin Latte, Frappé, Macchiato and Mocha. Palette: the Catppuccin project's colours
//! (https://catppuccin.com/palette, MIT; see LICENSE-catppuccin.txt), accent Mauve.
use craft_ui::theme::catppuccin::Flavor;
use egui::Color32;
use crate::theme::{ThemeKind, Tokens};
/// The Catppuccin colours these themes use, as 0xRRGGBB.
struct Palette {
text: u32,
subtext1: u32,
subtext0: u32,
overlay1: u32,
overlay0: u32,
surface1: u32,
surface0: u32,
base: u32,
mantle: u32,
crust: u32,
mauve: u32,
red: u32,
yellow: u32,
}
const LATTE: Palette = Palette {
text: 0x4c4f69,
subtext1: 0x5c5f77,
subtext0: 0x6c6f85,
overlay1: 0x8c8fa1,
overlay0: 0x9ca0b0,
surface1: 0xbcc0cc,
surface0: 0xccd0da,
base: 0xeff1f5,
mantle: 0xe6e9ef,
crust: 0xdce0e8,
mauve: 0x8839ef,
red: 0xd20f39,
yellow: 0xdf8e1d,
};
const FRAPPE: Palette = Palette {
text: 0xc6d0f5,
subtext1: 0xb5bfe2,
subtext0: 0xa5adce,
overlay1: 0x838ba7,
overlay0: 0x737994,
surface1: 0x51576d,
surface0: 0x414559,
base: 0x303446,
mantle: 0x292c3c,
crust: 0x232634,
mauve: 0xca9ee6,
red: 0xe78284,
yellow: 0xe5c890,
};
const MACCHIATO: Palette = Palette {
text: 0xcad3f5,
subtext1: 0xb8c0e0,
subtext0: 0xa5adcb,
overlay1: 0x8087a2,
overlay0: 0x6e738d,
surface1: 0x494d64,
surface0: 0x363a4f,
base: 0x24273a,
mantle: 0x1e2030,
crust: 0x181926,
mauve: 0xc6a0f6,
red: 0xed8796,
yellow: 0xeed49f,
};
const MOCHA: Palette = Palette {
text: 0xcdd6f4,
subtext1: 0xbac2de,
subtext0: 0xa6adc8,
overlay1: 0x7f849c,
overlay0: 0x6c7086,
surface1: 0x45475a,
surface0: 0x313244,
base: 0x1e1e2e,
mantle: 0x181825,
crust: 0x11111b,
mauve: 0xcba6f7,
red: 0xf38ba8,
yellow: 0xf9e2af,
};
fn c(rgb: u32) -> Color32 {
Color32::from_rgb((rgb >> 16) as u8, (rgb >> 8) as u8, rgb as u8)
}
/// Tokens for a Catppuccin kind, on top of `base` (which supplies the metrics). Any other kind
/// falls back to Mocha (never reached: `for_kind` only routes these four here).
pub(crate) fn tokens(kind: ThemeKind, base: Tokens) -> Tokens {
let (p, light) = match kind {
ThemeKind::CatppuccinLatte => (&LATTE, true),
ThemeKind::CatppuccinFrappe => (&FRAPPE, false),
ThemeKind::CatppuccinMacchiato => (&MACCHIATO, false),
_ => (&MOCHA, false),
let f = match kind {
ThemeKind::CatppuccinLatte => Flavor::Latte,
ThemeKind::CatppuccinFrappe => Flavor::Frappe,
ThemeKind::CatppuccinMacchiato => Flavor::Macchiato,
_ => Flavor::Mocha,
};
let (p, light) = (f.palette(), !f.is_dark());
// Dark flavours: the photo area is the darkest step; Latte: the chrome is the lightest.
let (chrome, canvas, grid_bg, divider, field) =
if light { (p.mantle, p.crust, p.base, p.surface0, p.base) } else { (p.base, p.mantle, p.crust, p.crust, p.crust) };
Tokens {
chrome: c(chrome),
canvas: c(canvas),
grid_bg: c(grid_bg),
cell: c(canvas),
cell_selected: c(if light { p.surface1 } else { p.surface0 }),
divider: c(divider),
inset: c(if light { p.crust } else { p.mantle }),
field: c(field),
field_border: c(p.surface1),
button: c(if light { p.base } else { p.mantle }),
button_border: c(p.surface1),
hover: c(p.surface0),
pressed: c(p.surface1),
tool_active: c(p.surface1),
text: c(p.text),
text_label: c(p.subtext1),
text_dim: c(p.subtext0),
text_disabled: c(p.overlay0),
icon: c(p.subtext0),
track: c(p.surface1),
thumb: c(p.overlay1),
thumb_hover: c(p.text),
accent: c(p.mauve),
star: c(p.text),
pick: c(p.text),
reject: c(p.red),
caution: c(p.yellow),
chrome,
canvas,
grid_bg,
cell: canvas,
cell_selected: if light { p.surface1 } else { p.surface0 },
divider,
inset: if light { p.crust } else { p.mantle },
field,
field_border: p.surface1,
button: if light { p.base } else { p.mantle },
button_border: p.surface1,
hover: p.surface0,
pressed: p.surface1,
tool_active: p.surface1,
text: p.text,
text_label: p.subtext1,
text_dim: p.subtext0,
text_disabled: p.overlay0,
icon: p.subtext0,
track: p.surface1,
thumb: p.overlay1,
thumb_hover: p.text,
accent: p.mauve,
star: p.text,
pick: p.text,
reject: p.red,
caution: p.yellow,
..base
}
}