Skip to content

feat: Custom background gradient support #2855

Draft
LilyLavenderPony wants to merge 11 commits intocinnyapp:devfrom
LilyLavenderPony:custom-gradient-theme
Draft

feat: Custom background gradient support #2855
LilyLavenderPony wants to merge 11 commits intocinnyapp:devfrom
LilyLavenderPony:custom-gradient-theme

Conversation

@LilyLavenderPony
Copy link
Copy Markdown

@LilyLavenderPony LilyLavenderPony commented Mar 26, 2026

Description

This PR introduces a customizable background gradient feature, allowing users to define up to five colors, gradient angle, transparency and the option to apply the gradient on background elements only or the whole screen.

The gradient is applied on top of existing themes rather than introducing new theme variants, enabling lightweight visual customization without affecting the core theming system.

Examples using the Silver and Butter themes are shown below:

Preview2 Preview1

Implementation

  • Introduced CustomThemeManager for dynamic background styling
  • Added color pickers and controls in Appearance settings
  • Gradient is computed and applied at runtime based on user settings
  • Added a separate div the gradient is applied on to not interfere with existing architecture and projects of other contributors

Design considerations

This proposal builds on the discussion in #357 with some differences:

  • Blur support is implemented but currently not exposed in the UI, as its visual impact is minimal in the current layout. This can be revisited in future iterations.
  • No additional structural class hooks were introduced. The implementation avoids relying on internal layout details, reducing maintenance overhead and improving compatibility with future UI changes.

How to test

    • Enable "Custom Background" in settings
    • (De-)select multiple colors
    • Adjust angle and transparency
    • Disable the setting and confirm it resets as intended

Tested on:

  • Firefox
  • Chrome

@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 26, 2026

All contributors have signed the CLA ✍️ ✅
Posted by the CLA Assistant Lite bot.

@LilyLavenderPony LilyLavenderPony changed the title Add: Custom background gradient support feat: Custom background gradient support Mar 26, 2026
@LilyLavenderPony
Copy link
Copy Markdown
Author

I have read the CLA Document and I hereby sign the CLA

ajbura added a commit to cinnyapp/cla that referenced this pull request Mar 27, 2026
@u9000-Nine
Copy link
Copy Markdown
Collaborator

So adding a separate div on top isn't really the same thing as changing the background. This is especially apparent in the second image, where the gradient visibly tints all icons and text.

Also, if we're going to start adding theme options, then "Appearance" should be its own settings tab instead of dominating General.

@kfiven kfiven marked this pull request as draft March 28, 2026 17:56
@LilyLavenderPony
Copy link
Copy Markdown
Author

Also, if we're going to start adding theme options, then "Appearance" should be its own settings tab instead of dominating General.

You are right, this is a good point.

So adding a separate div on top isn't really the same thing as changing the background. This is especially apparent in the second image, where the gradient visibly tints all icons and text.

That is true. I chose this approach because modifying the actual background would require changes that could conflict with this PR, which is currently reworking the styling. So I went with a more isolated solution for now.

However, I agree that the tinting of icons and text is unexpected behaviour for users and results in poor UX. It may be better to revisit or rework this PR once the CSS changes in Cinny have stabilized.

Thanks to you and @kfiven for the feedback, and for moving this PR to draft.

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