const pickrContainer = document.querySelector('.pickr-container'); const themeContainer = document.querySelector('.theme-container'); const themes = [ [ 'classic', { swatches: [ 'rgba(244, 67, 54, 1)', 'rgba(233, 30, 99, 0.95)', 'rgba(156, 39, 176, 0.9)', 'rgba(103, 58, 183, 0.85)', 'rgba(63, 81, 181, 0.8)', 'rgba(33, 150, 243, 0.75)', 'rgba(3, 169, 244, 0.7)', 'rgba(0, 188, 212, 0.7)', 'rgba(0, 150, 136, 0.75)', 'rgba(76, 175, 80, 0.8)', 'rgba(139, 195, 74, 0.85)', 'rgba(205, 220, 57, 0.9)', 'rgba(255, 235, 59, 0.95)', 'rgba(255, 193, 7, 1)' ], components: { preview: true, opacity: true, hue: true, interaction: { hex: true, rgba: true, hsva: true, input: true, clear: true, save: true } } } ], [ 'monolith', { swatches: [ 'rgba(244, 67, 54, 1)', 'rgba(233, 30, 99, 0.95)', 'rgba(156, 39, 176, 0.9)', 'rgba(103, 58, 183, 0.85)', 'rgba(63, 81, 181, 0.8)', 'rgba(33, 150, 243, 0.75)', 'rgba(3, 169, 244, 0.7)' ], defaultRepresentation: 'HEXA', components: { preview: true, opacity: true, hue: true, interaction: { hex: false, rgba: false, hsva: false, input: true, clear: true, save: true } } } ], [ 'nano', { swatches: [ 'rgba(244, 67, 54, 1)', 'rgba(233, 30, 99, 0.95)', 'rgba(156, 39, 176, 0.9)', 'rgba(103, 58, 183, 0.85)', 'rgba(63, 81, 181, 0.8)', 'rgba(33, 150, 243, 0.75)', 'rgba(3, 169, 244, 0.7)' ], defaultRepresentation: 'HEXA', components: { preview: true, opacity: true, hue: true, interaction: { hex: false, rgba: false, hsva: false, input: true, clear: true, save: true } } } ] ]; const buttons = []; let pickr = null; Pickr.DEFAULT_OPTIONS.default = '#42445a'; for (const [theme, config] of themes) { const button = document.createElement('button'); button.innerHTML = theme; buttons.push(button); button.addEventListener('click', () => { const el = document.createElement('p'); pickrContainer.appendChild(el); // Delete previous instance if (pickr) { pickr.destroyAndRemove(); } // Apply active class for (const btn of buttons) { btn.classList[btn === button ? 'add' : 'remove']('active'); } // Create fresh instance pickr = new Pickr(Object.assign({ el, theme }, config)).on('init', instance => { console.log('init', instance); }).on('hide', instance => { console.log('hide', instance); }).on('show', (color, instance) => { console.log('show', color, instance); }).on('save', (color, instance) => { console.log('save', color, instance); }).on('clear', instance => { console.log('clear', instance); }).on('change', (color, instance) => { console.log('change', color, instance); }).on('changestop', instance => { console.log('changestop', instance); }).on('cancel', instance => { console.log('cancel', instance); }).on('swatchselect', (color, instance) => { console.log('swatchselect', color, instance); }); }); themeContainer.appendChild(button); } buttons[0].click();