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