Skip to content

feat(theme): add liquid glass themes with visual effects and adaptive compositor support - #12

Merged
Chintanpatel24 merged 1 commit into
mainfrom
liquid
Sep 16, 2026
Merged

Chintanpatel24 merged 1 commit into
mainfrom
liquid

Conversation

@Chintanpatel24

Copy link
Copy Markdown
Member

Description

This PR introduces the Liquid Glass theme suite (liquid-dark and liquid-light) inspired by the frosted glass, translucent dark-navy aesthetic of Dolphin with glass effects.

Key Additions & Features

  1. New Liquid Themes (liquid-dark.toml & liquid-light.toml):

    • Deep navy-black and frosted light-blue palettes carefully tuned for translucent and glass-effect surfaces.
    • Distinct base, mantle, crust, and surface color steps with vibrant blue accents.
  2. Extensible Theme Specification ([effects] section):

    • Added an optional [effects] section to .toml themes allowing any theme to opt into glass styling:
      • sidebar_opacity, content_opacity, toolbar_opacity: granular per-surface opacity control.
      • gradient_enabled, gradient_color, gradient_direction: directional gradient tint overlays on the sidebar and toolbar.
      • glow_enabled, glow_color, glow_radius, glow_opacity: subtle border glow along window and panel edges.
      • blur_enabled, blur_radius: in-app blur effects.
      • noise_enabled, noise_opacity: frosted glass grain texture overlay via Canvas.
      • saturation: glass vibrancy multiplier.
      • refraction_enabled, refraction_strength: glass distortion hint.
  3. Backend & ThemeLoader Enhancement (src/services/themeloader.*):

    • Parsed optional [effects] table in ThemeLoader with bounds-checking and zero/off defaults for 100% backward compatibility with existing themes.
    • Exposed all effect properties via Qt properties and signals.
    • Added compositorBlurAvailable property and signal for adaptive compositor awareness.
  4. Compositor Awareness (src/main.cpp & Theme.qml):

    • Automatically detects whether the compositor provides blur behind the window (KWindowEffects::BlurBehind).
    • Adapts QML blur intensity accordingly (compositor handles background blur; QML reduces overhead).
  5. Settings Panel Integration (src/qml/components/SettingsPanel.qml):

    • Added a dedicated Glass Effects subsection under Look & Feel with live sliders for sidebar/content/toolbar opacity, blur radius, glow intensity & radius, noise grain, saturation, and refraction.
    • Conditionally displayed only when the active theme specifies [effects].
    • Automatically pairs liquid-dark and liquid-light when toggling Dark Mode.
  6. Automated Testing:

    • Added comprehensive unit tests in tests/tst_themeloader.cpp testing theme loading, effect property values, fallback behavior on standard themes, and compositor property reactivity.

… compositor support

- Introduce liquid-dark and liquid-light themes matching frosted glass aesthetics
- Extend theme TOML specification with optional [effects] section:
  - Per-zone opacities (sidebar, content, toolbar)
  - Gradient tint overlay with directional controls
  - Border glow radius and intensity
  - Frosted noise texture overlay
  - Color saturation multiplier
  - Glass refraction distortion
- Update ThemeLoader C++ service to parse [effects] and expose glass properties
- Add adaptive compositor blur detection via KWindowEffects
- Expose conditional Glass Effects tuning controls in Settings > Look & Feel
- Auto-pair liquid-dark and liquid-light on dark mode toggle
- Add comprehensive unit tests in tst_themeloader
Copilot AI lite review requested due to automatic review settings September 16, 2026 15:11

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@Chintanpatel24 Chintanpatel24 left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

there's no glsl shaders so it will either depends on lniri or god

@Chintanpatel24
Chintanpatel24 merged commit 17945ec into main Sep 16, 2026
2 checks passed
@Chintanpatel24
Chintanpatel24 deleted the liquid branch September 17, 2026 08:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants