Can you please add a HUE change for the entire gradient as an option? Much appreciated.
thank you so much im gonna use this for my plugin, crazy how easy it is to use
is there any way to make it so my plugin can install color pane for the user so they donât have to install it themselves?
With the current version (0.4), the user has to install the plugin themself. I have been working on a new version which will allow you to use ColorPane without requiring the user to install the plugin (unless they want extra features), and itâs mostly done, but I donât have a release date yet.
Oh yes, an update is here.
Hello everyone, v0.5 has been released. This version has mostly been an effort to make it easier for plugin developers to use ColorPane in their own plugins.
Please let me know if you encounter any bugs. Iâve tried my best to test everything, but with the amount of stuff thatâs changed, I wouldnât be surprised if there were still bugs.
For plugin developers
Instead of having to do some weird script searching like in previous versions, Iâve put the color tools of ColorPane into their own library. To use it, you just put the script in your project and require
it like any other module. In hindsight, the old way of integrating ColorPane didnât make a whole lot of sense, and that was reflected in several of the plugins I saw that tried to integrate it. You were not, in fact, supposed to insert the whole plugin into your own plugin.
Unsurprisingly, if youâve integrated a previous version of ColorPane, that methodâs not going to work anymore. Youâll need to use the library to keep using the color tools. The process is much easier, and outlined in the documentation.
One thing end-users of ColorPane in your plugin may notice is limited functionality. Unless the end-user has the Companion plugin installed (see next section), palette editing (creation, editing, deletion, etc.) and settings changes are disabled. Palettes and settings are stored in the Companion plugin, and acts as the settings bridge between the various ColorPane instances. These instances otherwise have no way to share this information.
For everyone else
The current ColorPane plugin is being enhanced and renamed to the ColorPane Companion. These changes should be transparent to you, but are important for a seamless user experience in any other plugins integrating ColorPane.
Additionally, you should notice better multi-session (when you have multiple Studio windows open) behaviour. Settings and palette changes should now propagate between all sessions. To avoid synchronisation issues, you should only change settings from one session at a time.
Changelog
Most of the big changes are on the developer side, but here are some highlighted user-facing changes:
- Partial translations for French, Korean, and Russian
- Removed the Copic color palette
- Creating colors/gradients/palettes with the same name will now name them âNew Thing (1/2/3/4/etc.)â instead of âNew Thing (1) (1) (1) (1) âŚâ
- If you have invalid palette information, only the invalid information will be removed, as opposed to literally all of your palettes (oops)
- Changing color properties now uses the Recording API, which should result in more reliable undo/redo
Full changelog
Added
- Added partial translations for French (
fr
), Korean (ko
), and Russian (ru
) - Color editor: Added a dedicated âSet Colorâ button for colors in the palette list layout
- Color editor: Added a random color button
- Gradient editor: Added a âResetâ button for gradient precision
- Companion: Added settings importing and exporting
- API: Added
API.IsColorPromptAvailable
to check if callingAPI.PromptForColor
will succeed or immediately reject (replacesAPI.IsColorEditorOpen
) - API: Added
API.IsGradientPromptAvailable
to check if callingAPI.PromptForGradient
will succeed or immediately reject (replacesAPI.IsGradientEditorOpen
)
Changed
- Script injection is no longer a required plugin permission
- Settings: Invalid palettes will no longer cause the entire list of palettes to be removed, just the invalid palettes
- Color editor: Duplicating palettes with the same name will now create or increment a counter instead of naming it âPalette (1) (1) (1) âŚâ
- Color Properties: Changing color properties now uses the Recording API
- API: Promises from the API no longer cancel if the user closes the prompt, they will now instead reject with
PromptError.PromptCancelled
- API: For
GradientPromptOptions
, the type ofInitialGradient
and the value ofGradientType
are no longer required to match - API: For
ColorPromptOptions
, the type ofInitialColor
and the value ofColorType
are no longer required to match - API: The
API.PromptError
enum has been re-named toAPI.PromptRejection
- API: The
API.PromptForColor
Promise now rejects withSameAsInitial
instead ofPromptCancelled
if the initial and new colors are the same - API: The
API.PromptForGradient
Promise now rejects withSameAsInitial
instead ofPromptCancelled
if the initial and new gradients are the same - API: The color tools of ColorPane have been spun off into their own library, and the old method of using ColorPane will no longer work. Please read the Integration page of the documentation for details on the updated integration method.
Fixed
- API:
API.PromptForColorSequence
(deprecated) now returns a Promise as expected - API: Promises returned by
API.PromptForColor
will no longer reject when the initial and new colors are the same even though you didnât specify an initial color - API: Promises returned by
API.PromptForGradient
will no longer reject when the initial and new gradients are the same even though you didnât specify an initial gradient
Deprecated
- API:
API.IsColorEditorOpen
is now deprecated, please useAPI.IsColorPromptAvailable
for new work - API:
API.IsGradientEditorOpen
is now deprecated, please useAPI.IsGradientPromptAvailable
for new work - API:
API.PromptError
is now deprecated, please useAPI.PromptRejection
for new work - API:
API.Unloading
is now deprecated, you should use your pluginâs Unloading event instead - API:
API.GetVersion
is now deprecated
Removed
- Removed the first-time use plugin permissions warning
- Automatic update-checking has been removed
- Color editor: Removed the Copic color palette
Whatâs Next
The UI code will need an overhaul since it uses legacy Roact, which has been deprecated in favour of React Lua. Much of the code in general needs to be refactored for type safety and modern styling conventions.
There are also several quality-of-life changes I want to add to ColorPane, including:
- Make UIs resize-friendly (minimum sizes on plugin widgets are no longer enforced)
- Make UIs translation-friendly (a lot of the text box sizes in the current UI are fixed-size and may not accommodate translated text)
- A history system that lets you un/re-do color updates
- An overhauled gradient palette experience
- and others!
Iâm anticipating that the next version will be v1.0, which also means that all the deprecated API members will be removed. If you happen to be using these members, Iâve included some replacements (which may not be 1-to-1, please review the documentation):
-
API.Unloading
â Use your pluginâs Unloading event -
API.PromptError
âAPI.PromptRejection
-
API.PromptForColorSequence
âAPI.PromptForGradient
-
API.IsColorEditorOpen
âAPI.IsColorPromptAvailable
-
API.IsGradientEditorOpen
âAPI.IsGradientPromptAvailable
-
API.IsColorSequenceEditorOpen
âAPI.IsGradientPromptAvailable
-
API.GetVersion
â None
Seeing the timeline of this update, I donât want to make any promises as to when the next version will come out. It may be a few months, a few years, or soonâ˘.
Regardless, thank you for using ColorPane.