102 lines
2.9 KiB
CSS
102 lines
2.9 KiB
CSS
/*
|
|
* Copyright (C) 2019 Apple Inc. All rights reserved.
|
|
*
|
|
* Redistribution and use in source and binary forms, with or without
|
|
* modification, are permitted provided that the following conditions
|
|
* are met:
|
|
* 1. Redistributions of source code must retain the above copyright
|
|
* notice, this list of conditions and the following disclaimer.
|
|
* 2. Redistributions in binary form must reproduce the above copyright
|
|
* notice, this list of conditions and the following disclaimer in the
|
|
* documentation and/or other materials provided with the distribution.
|
|
*
|
|
* THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
|
|
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
|
|
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
|
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
|
|
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
|
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
|
* THE POSSIBILITY OF SUCH DAMAGE.
|
|
*/
|
|
|
|
.color-square {
|
|
position: relative;
|
|
outline: 0.5px solid hsl(0, 0%, 70%);
|
|
|
|
--stroke-opacity: 0.8;
|
|
}
|
|
|
|
.color-square > .saturation-gradient {
|
|
background-image: linear-gradient(to right, white, hsla(0, 0%, 100%, 0));
|
|
}
|
|
|
|
.color-square > .lightness-gradient {
|
|
background-image: linear-gradient(to top, black, hsla(0, 0%, 0%, 0));
|
|
}
|
|
|
|
.color-square > .fill {
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
}
|
|
|
|
.color-square > .crosshair {
|
|
position: absolute;
|
|
top: calc(-1 * (var(--crosshair-size) + var(--border-width)) / 2);
|
|
left: calc(-1 * (var(--crosshair-size) + var(--border-width)) / 2);
|
|
width: var(--crosshair-size);
|
|
height: var(--crosshair-size);
|
|
border: var(--border-width) solid white;
|
|
box-shadow: 0 0 2px black;
|
|
border-radius: 3px;
|
|
pointer-events: none;
|
|
z-index: 9;
|
|
|
|
--border-width: 1px;
|
|
--crosshair-size: 7px;
|
|
}
|
|
|
|
.color-square > .svg-root {
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.color-square > .svg-root > .srgb-edge {
|
|
fill: none;
|
|
stroke: white;
|
|
stroke-width: 0.5px;
|
|
stroke-opacity: var(--stroke-opacity);
|
|
}
|
|
|
|
.color-square > .srgb-label {
|
|
position: absolute;
|
|
padding-right: 5px;
|
|
color: hsla(0, 0%, 100%, var(--stroke-opacity));
|
|
font-size: 10px;
|
|
}
|
|
|
|
.color-square > .srgb-label:hover {
|
|
color: white;
|
|
}
|
|
|
|
.color-square > .srgb-label:hover + .svg-root > .srgb-edge {
|
|
stroke-width: 1px;
|
|
}
|
|
|
|
@media (resolution: 1dppx) {
|
|
.color-square > .srgb-edge {
|
|
stroke-width: 1px;
|
|
stroke-opacity: var(--stroke-opacity) / 2;
|
|
}
|
|
}
|