style: Z-Design V2 - Atmósfera en vez de fogonazo

Refinamiento Visual Premium:
- Dark mode fondo_sin_focus: negro puro → 7% base color
- Dark mode fondo_con_focus: mantiene 15% base color
- Light mode sincronizado: 1%/3% base color

Efecto: Los paneles siempre tienen su "identidad" de color,
incluso sin focus. El cambio de focus es ahora una transición
suave de "iluminación" en vez de un fogonazo negro→color.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
R.Eugenio 2025-12-30 18:12:28 +01:00
parent b5073dcbe3
commit b67de1ce01

View file

@ -1031,6 +1031,9 @@ pub fn derivePanelPalette(base: Color, mode: ThemeMode) PanelColorScheme {
}
/// Derive palette for dark mode (dark backgrounds, light text)
/// Z-Design V2: "Atmósfera, no fogonazo"
/// - fondo_sin_focus: 7% base color (sutil identidad del panel)
/// - fondo_con_focus: 15% base color (brilla al ganar foco)
fn deriveDarkPalette(base: Color) PanelColorScheme {
// Reference colors for dark mode
const black = Color.soft_black; // RGB(17, 17, 20) - not pure black
@ -1039,9 +1042,11 @@ fn deriveDarkPalette(base: Color) PanelColorScheme {
const dark_border = Color.rgb(60, 60, 65);
return .{
// Backgrounds: visible tint of base color (15% base, 85% black)
// Backgrounds: Z-Design V2 - panel siempre tiene su "identidad"
// Focus: 15% base, 85% black (brilla más)
.fondo_con_focus = base.blendTowards(black, 85),
.fondo_sin_focus = black,
// Sin focus: 7% base, 93% black (sutil pero presente)
.fondo_sin_focus = base.blendTowards(black, 93),
// Text: high contrast
.datos = white,
@ -1063,6 +1068,9 @@ fn deriveDarkPalette(base: Color) PanelColorScheme {
}
/// Derive palette for light mode (light backgrounds, dark text)
/// Z-Design V2: Sincronizado con dark mode
/// - fondo_sin_focus: 1% base (casi blanco, sutil identidad)
/// - fondo_con_focus: 3% base (brilla al ganar foco)
fn deriveLightPalette(base: Color) PanelColorScheme {
// Reference colors for light mode
const white = Color.soft_white; // RGB(250, 250, 252) - slight cool tint
@ -1071,9 +1079,11 @@ fn deriveLightPalette(base: Color) PanelColorScheme {
const light_border = Color.rgb(220, 220, 225);
return .{
// Backgrounds: subtle tint of base color (3% base, 97% white)
// Backgrounds: Z-Design V2 - panel siempre tiene su "identidad"
// Focus: 3% base, 97% white
.fondo_con_focus = base.blendTowards(white, 97),
.fondo_sin_focus = white,
// Sin focus: 1% base, 99% white (sutil pero presente)
.fondo_sin_focus = base.blendTowards(white, 99),
// Text: high contrast
.datos = black,