Skip to content

Add custom themes#52

Open
Just-Insane wants to merge 2 commits into7w1:devfrom
CloudHub-Social:custom-themes
Open

Add custom themes#52
Just-Insane wants to merge 2 commits into7w1:devfrom
CloudHub-Social:custom-themes

Conversation

@Just-Insane
Copy link

@Just-Insane Just-Insane commented Mar 2, 2026

Description

Fixes #50 - Pulled from Just-Insane#10 by @EnchantedGoldenApple

Add support for user-provided custom themes via YAML file upload. Custom themes are parsed at runtime, validated against the full folds color contract, and injected as dynamic <style> tags. They persist in localStorage and appear in existing theme selectors alongside the built-in themes.

YAML example:

name: "Custom OLED Theme"
kind: dark
colors:
  Background:
    Container: "#000000"
    ContainerHover: "#0D0D0D"
    ContainerActive: "#141414"
    ContainerLine: "#1F1F1F"
    OnContainer: "#F5F5F5"

  Surface:
    Container: "#0A0A0A"
    ContainerHover: "#141414"
    ContainerActive: "#1C1C1C"
    ContainerLine: "#262626"
    OnContainer: "#F2F2F2"

  SurfaceVariant:
    Container: "#121212"
    ContainerHover: "#1C1C1C"
    ContainerActive: "#262626"
    ContainerLine: "#303030"
    OnContainer: "#F2F2F2"

  Primary:
    Main: "#C6BFFF"
    MainHover: "#BDB6FF"
    MainActive: "#B4ADFF"
    MainLine: "#AAA3FF"
    OnMain: "#1A1730"
    Container: "#2A2550"
    ContainerHover: "#312C5C"
    ContainerActive: "#383368"
    ContainerLine: "#3F3A74"
    OnContainer: "#E9E7FF"

  Secondary:
    Main: "#FFFFFF"
    MainHover: "#EAEAEA"
    MainActive: "#DCDCDC"
    MainLine: "#CFCFCF"
    OnMain: "#000000"
    Container: "#1A1A1A"
    ContainerHover: "#242424"
    ContainerActive: "#2E2E2E"
    ContainerLine: "#383838"
    OnContainer: "#F2F2F2"

  Success:
    Main: "#8FF5C8"
    MainHover: "#7AF0BC"
    MainActive: "#6EEAB3"
    MainLine: "#63E3AB"
    OnMain: "#06281C"
    Container: "#0E3D2B"
    ContainerHover: "#124634"
    ContainerActive: "#164F3C"
    ContainerLine: "#1A5845"
    OnContainer: "#D6FFF0"

  Warning:
    Main: "#F0C299"
    MainHover: "#EAB785"
    MainActive: "#E5AE79"
    MainLine: "#E0A56E"
    OnMain: "#2A1808"
    Container: "#3D2812"
    ContainerHover: "#472F15"
    ContainerActive: "#503619"
    ContainerLine: "#5A3D1C"
    OnContainer: "#FFE9D6"

  Critical:
    Main: "#FF9E9E"
    MainHover: "#FF8C8C"
    MainActive: "#FF7F7F"
    MainLine: "#FF7373"
    OnMain: "#2A0E0E"
    Container: "#3D1515"
    ContainerHover: "#471919"
    ContainerActive: "#521E1E"
    ContainerLine: "#5C2222"
    OnContainer: "#FFDADA"

  Other:
    FocusRing: "rgba(255, 255, 255, 0.6)"
    Shadow: "rgba(0, 0, 0, 1)"
    Overlay: "rgba(0, 0, 0, 0.85)"

Type of change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • This change requires a documentation update

Checklist:

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings

~ Evie

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.

Feature Request: Custom Theme Support

1 participant