svg+css布局实现逼真可点击调节色相物理旋钮调色代码
代码语言:html
所属分类:布局界面
代码描述:svg+css布局实现逼真可点击调节色相物理旋钮调色代码
代码标签: svg css 布局 逼真 点击 调节 色相 物理 旋钮 调色 代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en" >
<head>
<meta charset="UTF-8">
<style>
@import url("https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap");
@import url("https://fonts.googleapis.com/css2?family=Orbitron:wght@400..900&display=swap");
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
min-height: 100vh;
background: radial-gradient(
circle at 30% 10%,
hsl(0, 5%, 15%),
hsl(0, 5%, 10%) 40%,
hsl(0, 5%, 5%)
);
color: hsl(0, 0%, 90%);
display: grid;
place-content: center;
font-family: "Inter", sans-serif;
font-optical-sizing: auto;
font-weight: 400;
}
p {
justify-self: center;
opacity: 0.5;
max-width: 50ch;
padding-top: 1rem;
font-size: small;
}
/* Complementary shifting hue by ±180 degrees
Analogous shifting hue by +30 and -30 degrees
Triadic shifting hue by +120 and -120 degrees
Tetradic shifting hue by +60, +180 and -120 degrees
Split-Complementary shifting hue by ±150 degrees */
:root {
--size: 75px;
--keycap-inset: 0.8rem;
--highlight-inset: 0.4rem;
--stroke-size: 1px;
--selected-hue: 250;
--selected-colour: oklch(50% 0.2 var(--selected-hue));
}
.key-container {
padding: 20px;
border: 1px solid transparent;
background: linear-gradient(
170deg,
oklch(23.413% 0.00463 17.174),
oklch(18.004% 0.00329 17.123)
)
padding-box,
linear-gradient(
179deg,
oklch(15.557% 0.0017 16.767) 90%,
oklch(31.555% 0.00865 17.393)
)
border-box;
box-shadow: inset 5px 5px 10px oklch(15.557% 0.0017 16.767);
border-radius: 1rem;
}
.screen {
--lightest: oklch(88.802% 0.00543 95.187);
--light: oklch(91.715% 0.012 101.59);
--dark: oklch(41.482% 0.01597 82.337);
--faded-blue: oklch(58.514% 0.02072 250.79);
--blue: oklch(53.699% 0.11577 250.265);
--faded-red: oklch(27.1% 0.02996 57.299);
--red: oklch(61.826% 0.24382 29.899);
--scanlines: repeating-linear-gradient(
0deg,
oklch(0% 0 0 / 0) 0px,
oklch(0% 0 0 / 0) 1px,
oklch(0% 0 0 / 0.5) 2px,
oklch(0% 0 0 / 0) 3px
);
--screen-grad-1: oklch(31.156% 0.01067 285.724);
--screen-grad-2: oklch(11.237% 0.00872 242.221);
--screen-gradient: linear-gradient(
170deg,
var(--screen-grad-1),
var(--screen-grad-2)
);
--screen-stroke-gradient: linear-gradient(
130deg,
oklch(36.193% 0.00273 197.869 / 0.6),
lch(17.84% 1.15 236.31 / 0.6)
);
--screen-stroke-highlight: linear-gradient(
130deg,
oklch(100% 0.00011 271.152 / 0.58),
oklch(100% 0.00011 271.152 / 0) 2%,
oklch(100% 0.00011 271.152 / 0) 90%,
oklch(100% 0.00011 271.152 / 0.1)
);
display: flex;
flex-direction: column;
gap: 0.5rem;
height: calc((var(--size) * 2) + var(--gap-size, 3px));
width: calc((var(--size) * 4) + (var(--gap-size, 3px) * 3));
border-radius: 0.5rem;
border: 2px solid transparent;
background: var(--screen-gradient) padding-box,
var(--screen-stroke-highlight) border-box,
var(--screen-stroke-gradient) border-box;
box-shadow: 3px 2px 15px -5px black;
padding: 0.5rem;
color: var(--light);
font-family: "Orbitron", sans-serif;
font-weight: 400;
font-style: normal;
font-size: 12px;
position: relative;
header {
margin: 0;
padding: 0;
display: flex;
justify-content: space-between;
align-items: center;
flex-basis: 10%;
font-size: 80%;
& > * {
letter-spacing: 1px;
/* adds a glow to text but makes it hard to read :/ */
/* text-shadow: 0 0 3px oklch(from currentColor l c h / 0.5); */
}
}
.os-container {
display: flex;
align-items: center;
justify-content: center;
gap: 1rem;
flex-grow: 1;
padding-inline: 2rem;
}
.os-element {
--_colour: var(--light);
background: radial-gradient(
circle at 50% 50%,
transparent 19%,
var(--lightest) 22%,
var(--lightest) 35%,
var(--_colour) 42%,
var(--_colour) 48%
);
border: 2px solid var(--_colour);
border-radius: 50%;
box-shadow: 0 0 2px var(--_colour),
0 0 10px oklch(from var(--_colour) l c h / 0.6),
inset 0 0 5px oklch(from var(--_colour) l c h / 0.3);
height: 90%;
aspect-ratio: 1/1;
transition: all 0.3s ease;
}
.control {
display: grid;
grid-template-rows: 1fr auto;
grid-template-columns: repeat(3, 20px);
gap: 1rem;
justify-content: space-evenly;
font-size: 10px;
color: .........完整代码请登录后点击上方下载按钮下载查看
















网友评论0