js+svg实现可调节颜色的消息提示框效果代码
代码语言:html
所属分类:弹出层
代码描述:js+svg实现可调节颜色的消息提示框效果代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<style>
*,
*:after,
*:before {
box-sizing: border-box;
}
[data-theme=light] {
--line: hsl(0 0% 10% / 0.15);
color-scheme: light only;
background: hsl(0 0% 98%);
}
[data-theme=dark] {
--line: hsl(0 0% 90% / 0.15);
color-scheme: dark only;
background: hsl(0 0% 2%);
}
body {
display: grid;
place-items: center;
align-content: center;
gap: 1rem;
min-height: 100vh;
font-family: "SF Pro Text", "SF Pro Icons", "AOS Icons", "Helvetica Neue", Helvetica, Arial, sans-serif, system-ui;
}
body::before {
--size: 60px;
content: '';
height: 100vh;
width: 100vw;
position: fixed;
background: linear-gradient(
90deg,
var(--line) 1px,
transparent 1px var(--size)
)
50% 50% / var(--size) var(--size),
linear-gradient(var(--line) 1px, transparent 1px var(--size)) 50% 50% /
var(--size) var(--size);
-webkit-mask: linear-gradient(-15deg, transparent 30%, white);
mask: linear-gradient(-15deg, transparent 30%, white);
top: 0;
transform-style: flat;
pointer-events: none;
z-index: -1;
}
aside {
padding: 0.5rem 0.75rem;
border-width: 1px;
border-style: solid;
border-radius: 6px;
display: flex;
gap: 0.5rem;
align-items: center;
font-weight: 300;
line-height: 1.5;
white-space: nowrap;
transition: all 0.2s;
}
@supports(color: color-mix(in oklch, red 0%, white)) {
[data-theme="dark"] aside {
border-color: color-mix(in oklch, var(--color) 5%, oklch(100% 0 0 / 15%));
background: color-mix(in oklch, var(--color) 50%, oklch(0% 0 0 / 50%));
color: color-mix(in oklch, var(--color) 50%, oklch(100% 0 0));
}
[data-theme="light"] aside {
border-color: color-mix(in oklch, var(--color) 50%, oklch(100% 0 0 / 15%));
background: color-mix(in oklch, var(--color) 25%, oklch(100% 0 0 / 50%));
color: color-mix(in oklch, var(--color) 100%, oklch(100% 0 0));
}
aside::-moz-selection {
background: color-mix(in oklch, var(--color) 90%, oklch(100% 0 0));
color: color-mix(in oklch, var(--color) 10%, oklch(100% 0 0));
}
aside::selection {
background: color-mix(in oklch, var(--color) 90%, oklch(100% 0 0));
color: color-mix(in oklch, var(--color) 10%, oklch(100% 0 0));
}
}
@supports (color: rgb(from white r g b)) {
[data-theme=dark] aside {
border-color: oklch(from var(--color) l c h / 0.25);
background: oklch(from var(--color) calc(l * 0.75) c h / 0.5);
color: oklch(from var(--color) calc(l * 1.5) c h);
}
[data-theme=light] aside {
border-color: oklch(from var(--color) l c h / 25%);
background: oklch(from var(--color) calc(l * 1) c h / 20%);
color: oklch(from var(--color) calc(l * 1) c h);
}
aside::-moz-selection {
background: oklch(from var(--color) calc(l * 1.1) c h);
color: oklch(from var(--color) 1 c h);
}
aside::selection {
background: oklch(from var(--color) calc(l * 1.1) c h);
color: oklch(from var(--color) 1 c h);
}
}
aside svg {
width: 24px;
}
[data-type=error] {
--color: oklch(62.8% 0.25 29.23);
--color: red;
}
[data-type=ai] {
--color: oklch(58.11% 0.31 307.02);
}
[data-type=tip] {
--color: oklch(53.24% 0.23 256.22);
}
[data-type=warning] {
--color: oklch(61.47% 0.16 64.21);
}
[data-type=success] {
--color: oklch(47.06% 0.17 148.76);
--color: hsl(145 100% 25%);
}
[data-type=note] {
--color: oklch(41.84% 0 0);
}
[aria-pressed] {
position: fixed;
top: 1rem;
right: 1rem;
width: 48px;
aspect-ratio: 1;
display: grid;
place-items: center;
padding: 0;
border: 0;
background: transparent;
cursor: pointer;
border-radius: 6px;
}
button::after {
content: "";
position: absolute;
inset: 0;
border-radius: 6px;
background: hsl(0 0% 50% / 0.25);
opacity: var(--intent, 0);
transition: opac.........完整代码请登录后点击上方下载按钮下载查看
















网友评论0