A simple, customizable color picker component for Svelte that uses Tailwind CSS color palettes.
npm i svelte-tailwind-colorpicker
import TailwindColorPicker from 'svelte-tailwind-color-picker';
<TailwindColorPicker bind:activeSwatch />
{#if activeSwatch}
<p>Selected color: {activeSwatch.color}-{activeSwatch.shade} ({activeSwatch.swatch.hex})</p>
{/if}
Prop | Type | Default | Description |
---|---|---|---|
swatchSize | number | 35 | Size of each color swatch |
swatchMargin | number | 0 | Margin between swatches |
borderColor | string | '#000000' | Border color of swatches |
borderThickness | number | 4 | Border thickness of swatches |
roundedCorners | boolean | false | Enable rounded corners |
cornerRadius | number | 0 | Radius of rounded corners |
orientation | 'horizontal' | 'vertical' | 'horizontal' | Orientation of the color picker |
includeColors | string[] | all colors | Array of color names to include |
includeShades | string[] | all shades | Array of shade values to include |
activeSwatch | ActiveSwatch | null | null | Currently active swatch (optional) |
palette | ColorGroup[] | tailwindColors | Custom color palette |
<TailwindColorPicker bind:activeSwatch />
<TailwindColorPicker
swatchSize={40}
swatchMargin={2}
borderColor="#cccccc"
borderThickness={2}
roundedCorners={true}
cornerRadius={8}
orientation="vertical"
includeColors={['red', 'blue', 'green']}
includeShades={['400', '500', '600']}
bind:activeSwatch
/>
<script>
import TailwindColorPicker from 'svelte-tailwind-color-picker';
import type { ActiveSwatch } from 'svelte-tailwind-color-picker';
let activeSwatch: ActiveSwatch | null = null;
function handleColorChange(event: CustomEvent<ActiveSwatch>) {
const selectedSwatch = event.detail;
console.log(`Selected color: ${selectedSwatch.color}-${selectedSwatch.shade}`);
console.log(`Hex value: ${selectedSwatch.swatch.hex}`);
}
</script>
<TailwindColorPicker bind:activeSwatch on:change={handleColorChange} />
<script>
import TailwindColorPicker from 'svelte-tailwind-color-picker';
import type { ColorGroup } from 'svelte-tailwind-color-picker';
const customPalette: ColorGroup[] = [
{
name: 'customRed',
swatches: {
'500': { hex: '#ff0000' },
'600': { hex: '#cc0000' },
'700': { hex: '#990000' },
}
},
// Add more custom color groups as needed
];
</script>
<TailwindColorPicker palette={customPalette} />
To set up the project for development:
npm install
npm run dev
To build the library:
npm run package
To publish the library to npm:
package.json
npm publish
MIT License