
Security News
vlt Launches "reproduce": A New Tool Challenging the Limits of Package Provenance
vlt's new "reproduce" tool verifies npm packages against their source code, outperforming traditional provenance adoption in the JavaScript ecosystem.
storybook-color-picker
Advanced tools
Choose a color from custom color palette and set it on component's control and/or copy it to clipboard.
A Storybook addon. It allows you to quickly find any color from your custom color palette and set it on component's controls and/or copy to clipboard.
Add one or multiple color palettes and set the primary palette globally, for component or single story.
$ npm i storybook-color-picker
In your .storybook
folder find main.js
file and add this addon like below.
module.exports = {
...
"addons": [
...
"storybook-color-picker"
]
};
This will add color picker and palettes everywhere in your storybook.
In your .storybook
folder find preview.js
file and add your color palette to parameters like below.
Scroll down to find out how your color palette must look like.
import yourFirstColorPalette from './yourFirstColorPalette.json';
import yourSecondColorPalette from './yourSecondColorPalette.json';
export const parameters = {
...
colorPicker: {
primaryPalette: 'Your first palette name', // Name of primary palette for all components and its stories. Optional (fallback to first palette from the palettes array).
palettes: [
{
name: 'Your first palette name', // string
palette: yourFirstColorPalette, // Palette as an Object or an Array. See bellow.
},
{
name: 'Your second palette name',
palette: yourSecondColorPalette,
},
]
}
};
This will add color picker and palettes to all component's stories.
In MyComponent.stories.js
add:
export default {
...
parameters: {
...
colorPicker: {
primaryPalette: 'Your first palette name',
palettes: [
{
name: 'Your first palette name',
palette: yourFirstColorPalette,
},
{
name: 'Your second palette name',
palette: yourSecondColorPalette,
},
]
}
}
};
This will add color picker and palettes to specific story.
In MyComponent.stories.js
add:
export const Primary = Template.bind({});
Primary.parameters = {
...
colorPicker: {
palettes: [
{
name: 'Your first palette name',
palette: yourFirstColorPalette,
},
]
}
}
type ColorPaletteAsObject = Record<string, Record<string, string> | string>;
Example:
{
"white": "#fff", // valid hex, rgb, rgba, hsl, hsla
"black": "#000",
"light": {
" 500": "#aaa",
" 100": "rgba(238, 238, 238, .8)",
" 200": "rgb(238, 238, 238)",
" 300": "hsla(0, 0%, 73%, .8)",
" 400": "hsl(0, 0%, 73%)"
},
"dark": {
"0100": "#888",
"0500": "#000",
"0400": "#222",
"0200": "#666",
"0300": "#444"
}
}
Useful tip: add white spaces or zeros before numerical keys to prevent auto sorting
type ColorPaletteAsArray = {
label: string,
values: [
{
label: string,
value: string,
}
],
};
Example:
[
{
"label": "light",
"values": [
{
"label": "100",
"value": "#fff"
},
{
"label": "200",
"value": "#aaa"
}
]
},
{
"label": "dark",
"values": [
{
"label": "100",
"value": "#222"
},
{
"label": "200",
"value": "#000000"
}
]
}
]
This will apply for all component's stories.
In MyComponent.stories.js
add:
export default {
...
parameters: {
colorPicker: {
primaryPalette: 'Your second palette name',
}
}
};
This will apply for specific story.
In MyComponent.stories.js
add:
export const Primary = Template.bind({});
Primary.parameters = {
...
colorPicker: {
primaryPalette: 'Your first palette name',
}
}
The following list increases by specificity.
primaryPalette
set on parameters in preview.js
primaryPalette
set on component parameters
primaryPalette
set on story MyComponent.parameters
All controls with type of "color" will be detected automatically. You can add extra controls to which color may be applied. Only controls of type "text" may be added as extra.
Add list of extra controls to all component's stories.
In MyComponent.stories.js
add:
export default {
...
argTypes: {
backgroundColor: { control: 'color' }, // Color controls will be detected automatically
label: { control: 'text' }, // Text controls may be added as extra
text: { control: 'text' }, // Text controls may be added as extra
},
parameters: {
...
colorPicker: {
applyColorTo: ['label'] // Must match argType key
}
}
};
Add list of extra controls to selected story to overwrite list added to component globally as in example above.
In MyComponent.stories.js
add:
export const Primary = Template.bind({});
Primary.parameters = {
...
colorPicker: {
applyColorTo: ['text'], // Pass empty array to clear extra controls
}
};
To disable default palettes just add disableDefaultPalettes: true
to global, component or story parameters.
v3.0.0
05.06.2022.
Breaking changes
colorPalettes
-> colorPicker
.
defaultColorPalette
-> primaryPalette
.
Changed
FAQs
Choose a color from custom color palette and set it on component's control and/or copy it to clipboard.
The npm package storybook-color-picker receives a total of 1,531 weekly downloads. As such, storybook-color-picker popularity was classified as popular.
We found that storybook-color-picker demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
vlt's new "reproduce" tool verifies npm packages against their source code, outperforming traditional provenance adoption in the JavaScript ecosystem.
Research
Security News
Socket researchers uncovered a malicious PyPI package exploiting Deezer’s API to enable coordinated music piracy through API abuse and C2 server control.
Research
The Socket Research Team discovered a malicious npm package, '@ton-wallet/create', stealing cryptocurrency wallet keys from developers and users in the TON ecosystem.