.pickr { position: relative; overflow: visible; z-index: 1; } .pickr * { box-sizing: border-box; } .pickr button, .pickr input { outline: none; border: none; } .pickr button:focus, .pickr input:focus { box-shadow: 0 0 0 1px #f1f3f4, 0 0 0 3px currentColor; } .pickr .pcr-button { position: relative; height: 2em; width: 2em; padding: 0.5em; border-radius: 0.15em; cursor: pointer; background: currentColor; transition: all 0.3s; font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif; } .pickr .pcr-button:before { background: url('data:image/svg+xml;utf8, '); background-size: 0.5em; border-radius: 0.15em; z-index: -1; } .pickr .pcr-button:after, .pickr .pcr-button:before { position: absolute; content: ""; top: 0; left: 0; width: 100%; height: 100%; } .pickr .pcr-button:after { background: url('data:image/svg+xml;utf8, ') no-repeat 50%; background-size: 70%; opacity: 0; } .pickr .pcr-button.clear { background: hsla(0, 0%, 100%, 0.25); } .pickr .pcr-button.clear:after { opacity: 1; } .pickr .pcr-button.clear:focus { box-shadow: 0 0 0 1px #f1f3f4, 0 0 0 3px #75797e; } .pickr .pcr-button.disabled { cursor: not-allowed; } .pcr-app { margin-top: 10px; display: flex; flex-direction: column; z-index: 10000; font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, sans-serif; box-shadow: 0 0.15em 1.5em 0 rgba(0, 0, 0, 0.1), 0 0 1em 0 rgba(0, 0, 0, 0.03); top: 5px; height: 15em; width: 28.5em; max-width: 95vw; padding: 0.8em; border-radius: 0.1em; opacity: 0; visibility: hidden; transition: opacity 0.3s; } .pcr-app.visible { visibility: visible; opacity: 1; } .pcr-app .swatches { display: flex; flex-wrap: wrap; margin-top: 0.75em; } @supports (display: grid) { .pcr-app .swatches { display: grid; align-items: center; justify-content: space-around; grid-template-columns: repeat(auto-fit, 1.75em); } } .pcr-app .swatches > button { position: relative; width: 1.75em; height: 1.75em; border-radius: 0.15em; cursor: pointer; margin: 2.5px; flex-shrink: 0; justify-self: center; transition: all 0.15s; overflow: hidden; background: transparent; z-index: 1; } .pcr-app .swatches > button:before { position: absolute; content: ""; top: 0; left: 0; width: 100%; height: 100%; background: url('data:image/svg+xml;utf8, '); background-size: 6px; border-radius: 0.15em; z-index: -1; } .pcr-app .swatches > button:after { content: ""; position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: currentColor; border: 1px solid rgba(0, 0, 0, 0.05); border-radius: 0.15em; box-sizing: border-box; } .pcr-app .swatches > button:hover { filter: brightness(1.05); } .pcr-app .pcr-interaction { display: flex; align-items: center; margin: 0.75em -0.2em 0; } .pcr-app .pcr-interaction > * { margin: 0 0.2em; } .pcr-app .pcr-interaction input { letter-spacing: 0.07em; font-size: 0.75em; text-align: center; cursor: pointer; color: #75797e; background: #f1f3f4; border-radius: 0.15em; transition: all 0.15s; padding: 0.45em 0.5em; } .pcr-app .pcr-interaction input:hover { filter: brightness(0.975); } .pcr-app .pcr-interaction input:focus { box-shadow: 0 0 0 1px #f1f3f4, 0 0 0 3px rgba(66, 133, 244, 0.75); } .pcr-app .pcr-interaction .pcr-result { color: #75797e; text-align: left; flex-grow: 1; min-width: 1em; transition: all 0.2s; border-radius: 0.15em; background: #f1f3f4; cursor: text; } .pcr-app .pcr-interaction .pcr-result::selection { background: #4285f4; color: #fff; } .pcr-app .pcr-interaction .pcr-type.active { color: #fff; background: #4285f4; } .pcr-app .pcr-interaction .pcr-clear, .pcr-app .pcr-interaction .pcr-save { width: auto; color: #fff; } .pcr-app .pcr-interaction .pcr-clear:hover, .pcr-app .pcr-interaction .pcr-save:hover { filter: brightness(0.925); } .pcr-app .pcr-interaction .pcr-save { background: #4285f4; } .pcr-app .pcr-interaction .pcr-clear { background: #f44250; } .pcr-app .pcr-interaction .pcr-clear:focus { box-shadow: 0 0 0 1px #f1f3f4, 0 0 0 3px rgba(244, 66, 80, 0.75); } .pcr-app .pcr-selection { display: flex; justify-content: space-between; flex-grow: 1; } .pcr-app .pcr-selection .pcr-picker { position: absolute; height: 18px; width: 18px; border: 2px solid #fff; border-radius: 100%; user-select: none; cursor: -moz-grab; cursor: -webkit-grabbing; } .pcr-app .pcr-selection .pcr-color-preview { position: relative; z-index: 1; width: 2em; display: flex; flex-direction: column; justify-content: space-between; margin-right: 0.75em; } .pcr-app .pcr-selection .pcr-color-preview:before { position: absolute; content: ""; top: 0; left: 0; width: 100%; height: 100%; background: url('data:image/svg+xml;utf8, '); background-size: 0.5em; border-radius: 0.15em; z-index: -1; } .pcr-app .pcr-selection .pcr-color-preview .pcr-last-color { cursor: pointer; transition: background-color 0.3s, box-shadow 0.3s; border-radius: 0.15em 0.15em 0 0; z-index: 2; } .pcr-app .pcr-selection .pcr-color-preview .pcr-current-color { border-radius: 0 0 0.15em 0.15em; } .pcr-app .pcr-selection .pcr-color-preview .pcr-current-color, .pcr-app .pcr-selection .pcr-color-preview .pcr-last-color { background: currentColor; width: 100%; height: 50%; } .pcr-app .pcr-selection .pcr-color-chooser, .pcr-app .pcr-selection .pcr-color-opacity, .pcr-app .pcr-selection .pcr-color-palette { position: relative; user-select: none; display: flex; flex-direction: column; } .pcr-app .pcr-selection .pcr-color-palette { width: 100%; z-index: 1; } .pcr-app .pcr-selection .pcr-color-palette .pcr-palette { height: 100%; border-radius: 0.15em; } .pcr-app .pcr-selection .pcr-color-palette .pcr-palette:before { position: absolute; content: ""; top: 0; left: 0; width: 100%; height: 100%; background: url('data:image/svg+xml;utf8, '); background-size: 0.5em; border-radius: 0.15em; z-index: -1; } .pcr-app .pcr-selection .pcr-color-chooser, .pcr-app .pcr-selection .pcr-color-opacity { margin-left: 0.75em; } .pcr-app .pcr-selection .pcr-color-chooser .pcr-picker, .pcr-app .pcr-selection .pcr-color-opacity .pcr-picker { left: 50%; transform: translateX(-50%); } .pcr-app .pcr-selection .pcr-color-chooser .pcr-slider, .pcr-app .pcr-selection .pcr-color-opacity .pcr-slider { width: 8px; height: 100%; border-radius: 50em; } .pcr-app .pcr-selection .pcr-color-chooser .pcr-slider { background: linear-gradient(180deg, red, #ff0, #0f0, #0ff, #00f, #f0f, red); } .pcr-app .pcr-selection .pcr-color-opacity .pcr-slider { background: linear-gradient(180deg, transparent, #000), url('data:image/svg+xml;utf8, '); background-size: 100%, 50%; }