0.0.6 • Published 11 months ago

svelte-tailwind-colorpicker v0.0.6

Weekly downloads
-
License
MIT
Repository
github
Last release
11 months ago

Tailwind Color Picker for Svelte

A simple, customizable color picker component for Svelte that uses Tailwind CSS color palettes.

Live Demo

Tailwind Color Picker for Svelte

Features

  • HTML Canvas for optimal performance
  • Flexible color options: Use Tailwind default colors or your own
  • Lightweight with no dependencies
  • Customizable appearance (size, margins, borders, rounded corners)
  • Vertical or horizontal orientation
  • Ability to limit color and shade choices

Tailwind Color Picker for Svelte

Installation

npm i svelte-tailwind-colorpicker

Usage

  1. Import the component in your Svelte file:
import TailwindColorPicker from 'svelte-tailwind-color-picker';
  1. Use the component in your Svelte template:
<TailwindColorPicker bind:activeSwatch />
  1. Access the selected color:
{#if activeSwatch}
	<p>Selected color: {activeSwatch.color}-{activeSwatch.shade} ({activeSwatch.swatch.hex})</p>
{/if}

Props

PropTypeDefaultDescription
swatchSizenumber35Size of each color swatch
swatchMarginnumber0Margin between swatches
borderColorstring'#000000'Border color of swatches
borderThicknessnumber4Border thickness of swatches
roundedCornersbooleanfalseEnable rounded corners
cornerRadiusnumber0Radius of rounded corners
orientation'horizontal' | 'vertical''horizontal'Orientation of the color picker
includeColorsstring[]all colorsArray of color names to include
includeShadesstring[]all shadesArray of shade values to include
activeSwatchActiveSwatch | nullnullCurrently active swatch (optional)
paletteColorGroup[]tailwindColorsCustom color palette

Examples

Basic Usage

<TailwindColorPicker bind:activeSwatch />

Customized Appearance

<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
/>

Handling Color Selection

<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} />

Using a Custom Palette

<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} />

Development

To set up the project for development:

  1. Clone the repository
  2. Install dependencies with npm install
  3. Start the development server with npm run dev

Building

To build the library:

npm run package

Publishing

To publish the library to npm:

  1. Update the version in package.json
  2. Build the package
  3. Run npm publish

License

MIT License

0.0.6

11 months ago

0.0.5

11 months ago

0.0.4

11 months ago

0.0.3

11 months ago

0.0.2

11 months ago

0.0.1

11 months ago