Modern, accessible color picker with auto-initialization
Der ColorPicker initialisiert sich automatisch! Füge einfach das data-colorpicker Attribut zu deinen Input-Feldern hinzu:
<!-- CSS einbinden -->
<link rel="stylesheet" href="dist/colorpicker.css">
<!-- ColorPicker per Attribut initialisieren -->
<input type="text" data-colorpicker="format:hex" value="#3b82f6">
<!-- JavaScript einbinden (am Ende des Body) -->
<script src="dist/colorpicker.js"></script><input data-colorpicker="format:hex"><input data-colorpicker="format:hex,alpha:true"><input data-colorpicker="format:rgb,alpha:true"><input data-colorpicker="format:hsl,alpha:true"><input
data-colorpicker="format:hsl,sliderMode:true,alpha:true"><input data-colorpicker="format:hex,compact:true"><input data-colorpicker="format:hex,eyeDropper:true"><input
data-colorpicker="format:hex,presets:true"
data-preset-colors="#3b82f6,#10b981,..."><input
data-colorpicker="presets:true,list:true"
data-preset-colors="..."><input id="myPicker">
<script>
colorpicker('#myPicker', {
compact: true,
listView: true,
presetsOnly: true,
presetColors: [...],
presetLabels: ['Primary Color', ...]
});
</script><input data-colorpicker="format:hex,showAlpha:true,inputPreview:true"><input data-colorpicker="format:hex,target:#theme-bg-target-de,property:background-color"><input data-colorpicker="format:hex,target:#theme-text-target-de,property:color"><input data-colorpicker="format:hex,language:de">
<!-- Auto-Erkennung aus <html lang="de"> oder Browser -->Unterstützt: de (Deutsch), en (English), si (Slovenščina)
<div style="max-width: 800px;">
<input data-colorpicker="format:hex,inline:true">
</div>Konfiguriere den ColorPicker direkt im HTML mit data-colorpicker:
| Attribut | Werte | Beschreibung |
|---|---|---|
format |
hex, rgb, hsl | Farbformat für die Ausgabe |
alpha |
true, false | Alpha-Kanal (Transparenz) aktivieren |
compact |
true, false | Kompakte Button-Ansicht für Formulare |
inline |
true, false | Immer sichtbar (kein Popup) |
presets |
true, false | Nur vordefinierte Farben anzeigen |
list |
true, false | Presets als Liste mit Labels |
<!-- HEX mit Alpha -->
<input data-colorpicker="format:hex,alpha:true">
<!-- Compact für Formulare -->
<input data-colorpicker="format:rgb,compact:true">
<!-- Nur Presets -->
<input
data-colorpicker="presets:true"
data-preset-colors="#ff0000,#00ff00,#0000ff">
<!-- Kombination mehrerer Optionen -->
<input data-colorpicker="format:hsl,alpha:true,compact:true">Für erweiterte Konfiguration kannst du den ColorPicker auch programmatisch initialisieren:
import colorpicker from 'pickit/colorpicker';
// Per Selektor
const picker = colorpicker('#myInput', {
format: 'hex',
showAlpha: true,
onChange: (color) => {
console.log('Farbe geändert:', color);
}
});
// Per Element
const input = document.querySelector('#myInput');
const picker2 = colorpicker(input, {
format: 'rgb',
compact: true
});| Option | Typ | Standard | Beschreibung |
|---|---|---|---|
format |
string | 'hex' | Ausgabeformat: 'hex', 'rgb', 'hsl' |
defaultColor |
string | '#3b82f6' | Standardfarbe beim Laden |
showAlpha |
boolean | false | Alpha-Slider anzeigen |
sliderMode |
boolean | false | Einzelne Slider für H, S, L statt 2D-Picker |
eyeDropper |
boolean | false | Bildschirm-Pipette (Chrome/Safari/Edge) |
presetColors |
string[] | [...] | Array mit vordefinierten Farben |
presetLabels |
string[] | [] | Labels für Preset-Farben |
presetsOnly |
boolean | false | Nur Presets, keine Farbwahl |
listView |
boolean | false | Presets als Liste mit Labels |
compact |
boolean | false | Kompakte Button-Ansicht |
inline |
boolean | false | Immer sichtbar |
inputPreview |
boolean | false | Farbquadrat im Input |
onChange |
function | - | Callback bei Farbänderung |
onOpen |
function | - | Callback beim Öffnen |
onClose |
function | - | Callback beim Schließen |
// Farbe setzen
picker.setColor('#ff0000');
// Farbe auslesen
const currentColor = picker.getColor(); // "#ff0000"
// Öffnen/Schließen
picker.open();
picker.close();
picker.toggle();
// Zerstören
picker.destroy();
// Instanz abrufen
const instance = ColorPicker.getInstance(element);const themePicker = colorpicker('#theme-color', {
format: 'hex',
listView: true,
presetsOnly: true,
presetColors: [
'#3b82f6',
'#10b981',
'#f59e0b',
'#ef4444',
'#8b5cf6',
'#ec4899'
],
presetLabels: [
'Primary Color',
'Success Color',
'Warning Color',
'Danger Color',
'Secondary Color',
'Accent Color'
],
onChange: (color) => {
document.documentElement.style.setProperty('--theme-color', color);
}
});colorpicker('#bg-color', {
format: 'rgb',
showAlpha: true,
onChange: (color) => {
document.body.style.backgroundColor = color;
}
});<form>
<label>Brand Color</label>
<input
type="text"
name="brand_color"
data-colorpicker="format:hex,compact:true"
value="#3b82f6">
<button type="submit">Speichern</button>
</form><div style="max-width: 500px;">
<input
type="text"
data-colorpicker="format:hex,inline:true"
value="#3b82f6">
</div>
<!-- Picker passt sich der Container-Breite an! --><!-- HTML -->
<input class="colorpicker" data-format="hex">
<input class="colorpicker" data-format="rgb" data-alpha="true">
<input class="colorpicker" data-format="hsl">
<!-- Automatisch initialisiert! -->import colorpicker, { ColorPicker } from 'pickit-color';
// Französische Übersetzung hinzufügen
ColorPicker.addTranslation('fr', {
hue: 'Teinte',
saturation: 'Saturation et luminosité',
lightness: 'Luminosité',
alpha: 'Alpha',
presets: 'Couleurs prédéfinies',
eyeDropper: 'Pipette à couleurs',
systemPicker: 'Sélecteur système'
});
// Verfügbare Sprachen prüfen
console.log(ColorPicker.getAvailableLanguages());
// ['en', 'de', 'sl', 'fr']
// Neue Übersetzung verwenden
colorpicker('#color-input', {
format: 'hex',
language: 'fr'
});HEX, RGB, RGBA, HSL, HSLA mit vollständiger Konvertierung
Automatische Initialisierung per Attribut - kein JavaScript nötig
WCAG 2.1 AA konform mit Keyboard-Navigation und ARIA-Labels
Automatische Anpassung an prefers-color-scheme
Platzsparende Button-Ansicht für Formulare
Vordefinierte Farbpaletten mit optionalen Labels
Tab, Enter, Pfeiltasten, Escape - vollständig bedienbar
~13KB minifiziert, keine Abhängigkeiten
| Taste | Aktion |
|---|---|
Tab |
Fokus auf Input-Feld |
Enter / Space |
Picker öffnen/schließen |
↑ ↓ ← → |
Farbe im Picker anpassen |
Shift + Pfeiltasten |
Größere Schritte |
Escape |
Picker schließen |
Made with ❤️ by Thomas Skerbis (KLXM Crossmedia)
This software is Donationware • Support Development