2024-09-13 12:25:30 +02:00

146 lines
4.1 KiB
CSS

.range {
/* width: 100%;
accent-color: var(--codex-color-primary);
height: 1px;
outline: none; */
--val: 50;
width: 100%;
margin: 1.5rem 0;
}
.range-labels {
display: flex;
justify-content: space-between;
}
@property --c {
syntax: "<color>";
inherits: true;
initial-value: #0000;
}
.glow {
--c: rgb(0, 255, 255, calc(0.25 + var(--val) / 125));
--c: hsl(160deg 80% 50% / calc(0.25 + var(--val) / 125));
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
background: transparent;
cursor: pointer;
position: relative;
}
.glow::before {
content: "";
position: absolute;
top: 0;
left: 0;
width: calc((var(--val) - 1) * 1%);
min-width: 0.5em;
height: 100%;
background: var(--c);
box-shadow:
0 0 0.2em 0 hsl(0 0% 0%) inset,
-0.1em 0.1em 0.1em -0.1em hsl(0 0% 100% / 0.5),
0 0 calc(1em + 0.001em * var(--val)) calc(0.1em + 0.00025em * var(--val))
var(--c);
border-radius: 1em 0 0 1em;
aopacity: calc(20% + var(--val) * 1%);
}
/***** Track Styles *****/
/***** Chrome, Safari, Opera, and Edge Chromium *****/
.glow::-webkit-slider-runnable-track {
box-shadow:
0 0 0.2em 0 hsl(0 0% 0%) inset,
-0.1em 0.1em 0.1em -0.1em hsl(0 0% 100% / 0.5);
background: linear-gradient(to bottom right, #0001, #0000), #343133;
border-radius: 1em;
height: 1em;
}
/******** Firefox ********/
.glow::-moz-range-track {
box-shadow:
0 0 2px 0 hsl(0 0% 0%) inset,
-1px 1px 1px -1px hsl(0 0% 100% / 0.5);
background:
linear-gradient(var(--c) 0 0) 0 0 / calc(var(--val) * 1%) 100% no-repeat,
linear-gradient(to bottom right, #0001, #0000),
#343133;
border-radius: 1em;
height: 1em;
}
/***** Thumb Styles *****/
/***** Chrome, Safari, Opera, and Edge Chromium *****/
.glow::-webkit-slider-thumb {
--d: var(--c);
--d: rgb(from var(--c) r g b / calc(0.35 * var(--val) * 1%));
-webkit-appearance: none; /* Override default look */
appearance: none;
background-color: #5cd5eb;
transform: translateY(calc(-50% + 0.5em));
width: 4em;
aspect-ratio: 1;
background: red;
border-radius: 50%;
background:
radial-gradient(
farthest-side,
#0000 22.5%,
var(--d) 0,
#0000 calc(var(--val) * 0.75%)
)
50% 50% / 100% 100% no-repeat,
radial-gradient(#0000 15%, #343133 16%, #545153 20%),
repeating-linear-gradient(#0000 0 10%, #0002 0 20%) 50% 50% / 25% 25%
no-repeat,
repeating-linear-gradient(90deg, #0000 0 10%, #0002 0 20%) 50% 50% / 25% 25%
no-repeat,
radial-gradient(var(--c) 17%, #0000 0),
#545153;
box-shadow:
inset -0.15em -0.15em 0.2em #0008,
inset 0.15em 0.15em 0.2em #ffffff22,
inset calc(var(--val) * 1em / 500) 0em calc(var(--val) * 1em / 500)
calc(var(--val) * -1em / 700) var(--c),
0.25em 0.25em 0.5em #0006,
calc(0.0125em * var(--val)) calc(0.005em * var(--val))
calc(0.02em * var(--val)) calc(-0.01em * var(--val)) #000a;
border-radius: 50%;
}
/***** Firefox *****/
.glow::-moz-range-thumb {
/* --d: var(--c);
--d: rgb(from var(--c) r g b / calc(0.35 * var(--val) * 1%)); */
border: none; /*Removes extra border that FF applies*/
-webkit-appearance: none; /* Override default look */
appearance: none;
background-color: #5cd5eb;
width: 4em;
height: 4em;
aspect-ratio: 1;
background: red;
border-radius: 50%;
background:
/* radial-gradient(farthest-side, #0000 22.5%, var(--d) 0, #0000 calc(var(--val) * 0.75%)) 50% 50% / 100% 100% no-repeat, */
radial-gradient(#0000 15%, #343133 16%, #545153 20%),
repeating-linear-gradient(#0000 0 10%, #0002 0 20%) 50% 50% / 25% 25%
no-repeat,
repeating-linear-gradient(90deg, #0000 0 10%, #0002 0 20%) 50% 50% / 25% 25%
no-repeat,
radial-gradient(var(--c) 17%, #0000 0),
#545153;
box-shadow:
inset -0.15em -0.15em 0.2em #0008,
inset 0.15em 0.15em 0.2em #ffffff22,
inset calc(var(--val) * 1em / 500) 0em calc(var(--val) * 1em / 500)
calc(var(--val) * -1em / 700) var(--c),
0.25em 0.25em 0.5em #0006,
calc(0.015em * var(--val)) calc(0.005em * var(--val))
calc(0.02em * var(--val)) calc(-0.01em * var(--val)) #0008;
border-radius: 50%;
}