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