UNPKG

color-elements

Version:

A set of web components for working with color. A Color.js project.

48 lines (42 loc) 1.59 kB
[part="swatch-wrapper"] { display: inline-flex; align-items: baseline; gap: .2em; margin-inline: .1em; } #swatch { --_transparency-cell-size: var(--transparency-cell-size, clamp(6px, .5em, 30px)); --_transparency-background: var(--transparency-background, transparent); --_transparency-darkness: var(--transparency-darkness, 5%); --_transparency-grid: var(--transparency-grid, repeating-conic-gradient(transparent 0 25%, rgb(0 0 0 / var(--_transparency-darkness)) 0 50%) 0 0 / calc(2 * var(--_transparency-cell-size)) calc(2 * var(--_transparency-cell-size)) content-box border-box var(--_transparency-background) ); --color-image: linear-gradient(var(--color), var(--color)); --border-width: clamp(2px, .15em, 16px); --box-shadow-blur: clamp(2px, .1em, 5px); --box-shadow-color: rgb(0 0 0 / .3); position: relative; bottom: calc(-1 * var(--border-width) - .1em); width: 1.2em; height: 1.2em; border: var(--border-width) solid white; box-sizing: border-box; background: var(--color-image, 0), var(--_transparency-grid, canvas); box-shadow: calc(var(--box-shadow-blur) * .2) calc(var(--box-shadow-blur) * .2) var(--box-shadow-blur) var(--box-shadow-color); border-radius: clamp(1px, .1em, 10px); } #swatch:hover { transform: scale(1.5); transition: .4s; } #swatch.invalid { --color-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><text y=".9em" font-size="90">⚠️</text></svg>'); --_transparency-grid: initial; } @media (prefers-color-scheme: dark) { #swatch { --box-shadow-color: rgb(0 0 0 / .8); } }