0.0.6 • Published 9 months ago

svelte-tailwind-colorpicker v0.0.6

Weekly downloads
-
License
MIT
Repository
github
Last release
9 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

9 months ago

0.0.5

9 months ago

0.0.4

9 months ago

0.0.3

9 months ago

0.0.2

9 months ago

0.0.1

9 months ago