feat(engine): reduce-transparency + high-contrast support for glass chrome
New Settings::reduce_transparency_mode (serde-default, Accessibility toggle row) swaps every GlassSurface's gradients for a flat opaque BG_ELEVATED fill; high-contrast mode now also boosts the glass fill opacity and rim luminance to BORDER_SUBTLE_HC levels. Both applied by settings_plugin::update_glass_surfaces, which retargets the gradients in place on toggle or on newly spawned glass. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -154,6 +154,14 @@ pub struct Settings {
|
||||
/// `#[serde(default)]`.
|
||||
#[serde(default)]
|
||||
pub reduce_motion_mode: bool,
|
||||
/// When `true`, replaces translucent "glass" chrome (the floating
|
||||
/// touch tab bar) with opaque fills so table content behind it can
|
||||
/// never reduce label/icon contrast. The accessibility counterpart
|
||||
/// of iOS "Reduce Transparency". Older `settings.json` files written
|
||||
/// before this field existed deserialize cleanly to `false` thanks
|
||||
/// to `#[serde(default)]`.
|
||||
#[serde(default)]
|
||||
pub reduce_transparency_mode: bool,
|
||||
/// Window size and screen position to restore on next launch. `None`
|
||||
/// means "use platform defaults" — set on first run, then populated
|
||||
/// as the player resizes / moves the window. Older `settings.json`
|
||||
@@ -451,6 +459,7 @@ impl Default for Settings {
|
||||
color_blind_mode: false,
|
||||
high_contrast_mode: false,
|
||||
reduce_motion_mode: false,
|
||||
reduce_transparency_mode: false,
|
||||
window_geometry: None,
|
||||
selected_theme_id: default_theme_id(),
|
||||
shown_achievement_onboarding: false,
|
||||
|
||||
Reference in New Issue
Block a user