svg+css实现蓝色大气按钮点击下拉文字弹出层效果代码

代码语言:html

所属分类:弹出层

代码描述:svg+css实现蓝色大气按钮点击下拉文字弹出层效果代码

代码标签: svg css 蓝色 大气 按钮 点击 下拉 文字 弹出层

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

<!DOCTYPE html>
<html lang="en" >

<head>
  <meta charset="UTF-8">
  

  
  
<style>
/* Root variables */
:root {
  --scene-background: #101217;
  --main-hue: 259deg;
  --btn-radius: 14px;
  --padding: 8px;
}

*,*:before,*:after {
  box-sizing: border-box;
}


[popovertarget="btn-popover"] {
  anchor-name: --anchor-el;
}

/* Reset and base styles */
html,
body {
  padding: 0;
  margin: 0;
  height: 100%;
  width: 100%;
  overflow: hidden;
}

body {
  background: var(--scene-background);
  display: grid;
  place-items: center;
  font-family: sans-serif;
}

/* Custom properties */
@property --glow {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 60%;
}

@property --tsy {
  syntax: "<length>";
  inherits: false;
  initial-value: 0px;
}

@property --light {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 75%;
}

@property --inner-light {
  syntax: "<percentage>";
  inherits: false;
  initial-value: 54%;
}

@property --icon-rotation {
  syntax: "<angle>";
  inherits: false;
  initial-value: 0deg;
}

/* Button styles */
.container {
  --btn-inner-background: hsl(var(--main-hue) 89% var(--inner-light));
}
button {
  --btn-background: linear-gradient(
    to bottom right,
    hsl(var(--main-hue) 100% var(--light)),
    hsl(var(--main-hue) 100% 69%),
    hsl(var(--main-hue) 100% var(--light))
  );
  --btn-shadow: color-mix(
    in hsl,
    hsl(var(--main-hue) 96% var(--glow)),
    black 60%
  );
  --icon-color: color-mix(
    in hsl,
    var(--btn-inner-background),
    color-mix(in hsl, blue, white 80%) 65%
  );

  anchor-name: --anchor-el;
  display: flex;
  border-radius: var(--btn-radius);
  border: 0;
  color: white;
  overflow: hidden;
  padding: 1px;
  background: var(--btn-background);
  box-shadow: 0 3px 5px black, 0 8px 24px var(--btn-shadow);
  cursor: pointer;
  -webkit-font-smoothing: antialiased;
  transform: translateY(var(--tsy));

  transition: --glow 0.2s ease, --tsy 0.2s ease, --light 0.2s ease,
    --icon-rotation 0.2s ease, box-shadow 0.2s ease;
}

button svg {
  color: var(--icon-color);
}

button .btn-inner {
  background: var(--btn-inner-background);
  height: 48px;
  border-radius: var(--btn-radius);
  display: flex;
  box-shadow: inset 0 0 12px hsl(var(--main-hue) 100% 65%);
}

button .btn-content {
  display: flex;
  align-items: center;
  padding-inline: 18px;
  font-size: 18px;
}

button .btn-content svg {
  width: 18px;
  margin-right: 10px;
}

button .btn-caret {
  display: flex;
  justify-content: center;
  align-items: center;
  border-left: 1px solid rgb(255 255 255 / 10%);
  width: 36px;
  height: 100%;
}

button .btn-caret svg {
  width: 18px;
  height: 18px;
  rotate: var(--icon-rotation);
  transition: rotate 0.2s ease;
}

button:hover {
  --glow: 80%;
  --light: 90%;
  --inner-light: 80%;
  box-shadow: 0 2px 2px black, 0 14px 32px var(--btn-shadow);
}

button:hover .btn-inner {
  background: hsl(var(--main-hue) 89% var(--inner-light));
}

button:active {
  --tsy: 2px;
  --glow: 70%;
  --light: 80%;
  --inner-light: 70%;
  box-shadow: 0 1px 1px black, 0 8px 16px var(--btn-shadow);
}

button:active .btn-caret svg,
.container:has(:popover-open) .btn-caret svg {
  rotate: 180deg;
}

.positioned-notice {
  color: white;
  padding: 0;
  border.........完整代码请登录后点击上方下载按钮下载查看

网友评论0