stride3d / stride3d/stride

Feature Request: Support palettes in color picker outside recompiling source

Open
#3,064 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
C#
Stars
7.8k
Forks
1.2k
Avg merge
2d 17h
Merged PRs (30d)
49

Description

Is your feature request related to a problem? Please describe.
The color picker palette in Stride is currently hardcoded in ColorPaletteViewModel.cs, making it impossible to customize without modifying engine source. This limits workflows that rely on specific palettes or shared team color sets.

Describe the solution you'd like
Add support for loading palettes from external files or project assets. The editor should allow users to import and switch between palettes. Unity’s Swatch Library system is a good reference:
https://docs.unity3d.com/Manual/SwatchLibraries.html

I think even just a more straight forward "single palette" loading / editor setting field would be enough too, just some way to modify the palette without having to recompile source.

Describe alternatives you've considered
Editing the hardcoded palette directly (not maintainable / annoying for multi-project workflow)

Storing palettes externally and copy/pasting colors (slow and potentially error‑prone)

Additional context

  • What are the use cases?

    • Shared team palettes
    • Project‑specific UI or art‑direction palettes
    • Pixel‑art or stylized workflows needing curated color sets
  • What kind of options or settings are expected or wanted?

    • At a minimum, the ability to specify a different palette than the hardcoded one.
  • Does the feature affect behavior in the editor?

    • Color picker displays the active palette instead of a fixed list
    • Simple UI control for selecting or loading palettes
  • Is there a component or data structure involved?

    • Depending on solution, will need a parser and format.
  • What kind of documentation is needed or needs to be updated?

    • Same as above, documentation would just need to be added for the supported file format.
    • Can look at gimp's GPL format which makes it easy to grab from lospec for example. I believe Krita supports this file format for importing palettes as well.

I don't mind taking a stab at the changes, but wanted to throw it out there first for any design considerations others may have too / what seems most useful.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading ColorPaletteViewModel.cs to understand how the current hardcoded palette is exposed to the editor, then review the Unity Swatch Library reference and the proposed external formats. Done means the editor can load or select a non-hardcoded palette and displays the active palette, with documentation for the supported format.

Written by the indexing model from the issue text.

Assessment

Tech stack
csharp
Domain
tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.