react实现股价涨幅小组件卡片代码

代码语言:html

所属分类:其他

代码描述:react实现股价涨幅小组件卡片代码

代码标签: react 股价 涨幅 小组件卡片 代码

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

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

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

  <meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover" />
  
  <link rel='stylesheet' href='https://fonts.googleapis.com/css2?family=Outfit:wght@100..900&amp;display=swap'>
  
<style>
* {
  border: 0;
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

:root {
  --hue: 223;
  --hue-positive: 133;
  --hue-warning: 33;
  --hue-negative: 3;
  --sat: 10%;
  --light-gray1: hsl(var(--hue),var(--sat),95%);
  --light-gray2: hsl(var(--hue),var(--sat),90%);
  --light-gray3: hsl(var(--hue),var(--sat),85%);
  --light-gray4: hsl(var(--hue),var(--sat),80%);
  --light-gray5: hsl(var(--hue),var(--sat),75%);
  --light-gray6: hsl(var(--hue),var(--sat),70%);
  --light-gray7: hsl(var(--hue),var(--sat),65%);
  --dark-gray4: hsl(var(--hue),var(--sat),30%);
  --dark-gray5: hsl(var(--hue),var(--sat),25%);
  --dark-gray6: hsl(var(--hue),var(--sat),20%);
  --dark-gray7: hsl(var(--hue),var(--sat),15%);
  --dark-gray8: hsl(var(--hue),var(--sat),10%);
  --dark-gray9: hsl(var(--hue),var(--sat),5%);
  --positive1: hsl(var(--hue-positive),90%,50%);
  --positive2: hsl(var(--hue-positive),90%,20%);
  --warning1: hsl(var(--hue-warning),90%,55%);
  --warning2: hsl(var(--hue-warning),90%,40%);
  --negative1: hsl(var(--hue-negative),90%,65%);
  --negative2: hsl(var(--hue-negative),90%,35%);
  --trans-dur: 0.3s;
  font-size: clamp(1rem,0.9rem + 0.5vw,1.5rem);
}

body {
  background-color: var(--light-gray6);
  color: var(--dark-gray8);
  display: grid;
  place-items: center;
  font: 1em/1.5 Outfit, sans-serif;
  height: 100vh;
  transition: background-color var(--trans-dur), color var(--trans-dur);
}

.icon {
  display: block;
  width: 1em;
  height: 1em;
}
.icon--large {
  font-size: 4.5em;
}
.icon--warning {
  color: var(--warning2);
}

.widget {
  background-color: var(--light-gray4);
  border-radius: 1.5em;
  box-shadow: 0 0 0.25em rgba(0, 0, 0, 0.15), 0 0 0 0.25em var(--light-gray6), 0 0 0 0.375em var(--light-gray5);
  overflow: hidden;
  padding: 1em;
  position: relative;
  width: 10.5em;
  height: 10.5em;
  transition: background-color var(--trans-dur), box-shadow var(--trans-dur);
}
.widget__content {
  display: flex;
  flex-direction: column;
  position: relative;
  height: 100%;
}
.widget__symbol, .widget__name, .widget__change, .widget__price {
  animation: fade-fly-in 0.6s cubic-bezier(0.33, 1, 0.68, 1) forwards;
  opacity: 0;
}
.widget__symbol, .widget__name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.widget__symbol {
  font-size: 1em;
  font-weight: 600;
  text-transform: uppercase;
}
.widget__name, .widget__change {
  transition: color var(--trans-dur);
}
.widget__name {
  color: var(--dark-gray4);
  animation-delay: 0.1s;
  font-size: 0.75em;
  font-weight: 400;
  line-height: 1.3333;
}
.widget__change {
  animation-delay: 0.2s;
  display: flex;
  font-weight: 300;
  gap: 0.375em;
  align-items: center;
  font-size: 0.875em;
  line-height: 1.7;
}
.widget__change--negative {
  color: var(--negative2);
}
.widget__change--positive {
  color: var(--positive2);
}
.widget__error {
  font-size: 0.75em;
  margin: auto;
  text-align: center;
}
.widget__error .icon {
  margin: 0 auto 0.75rem auto;
  transition: color var(--trans-dur);
}
.widget__graph {
  display: block;
  position: absolute;
  top: 1.5em;
  left: 0;
  width: 100%;
  height: auto;
}
.widget__graph-clip {
  transition: transform 1s linear;
}
.widget__graph-line {
  fill: var(--light-gray3);
  stroke: var(--light-gray2);
  transition: fill var(--trans-dur), stroke var(--trans-dur);
}
[dir=rtl] .widget__graph {
  transform: scaleX(-1);
}
.widget__placeholder {
  animation: placeholder 1s infinite;
  background-color: currentColor;
  border-radius: 0.75em;
  opacity: 0.3;
  height: 1.5em;
}
.widget__placeholder--symbol {
  border-radius: 0.5em;
  margin: 0.25em 0;
  width: 30%;
  height: 1em;
}
.widget__placeholder--name {
  border-radius: 0.375em;
  margin: 0.125em 0;
  width: 75%;
  height: 0.75em;
}
.widget__placeholder--change {
  border-radius: 0.4375em;
  margin: 0.25em 0;
  width: 40%;
  height: 0.875em;
}
.widget__placeholder--price {
  margin-top: auto;
  width: 55%;
}
.widget__price {
  animation-delay: 0.3s;
  font-size: 1.5em;
  line-height: 1;
  margin-top: auto;
}
.widget:hover .widget__graph-line {
  fill: var(--light-gray2);
  stroke: var(--light-gray1);
}
.widget-grid {
  display: grid;
  gap: 1.5em;
  padding: 1.5em;
}

/* Dark theme */
@media (prefers-color-scheme: dark) {
  body {
    background-color: var(--dark-gray9);
    color: var(--light-gray2);
  }

  .icon--warning {
    color: var(--warning1);
  }

  .widget {
    background-color: var(--dark-gray7);
    box-shadow: 0 0 0.25em rgba(0, 0, 0, 0.15), 0 0 0 0.25em var(--dark-gray9), 0 0 0 0.375em var(--dark-gray8);
  }
  .widget__change--negative {
    color: var(--negative1);
  }
  .widget__change--positive {
    color: var(--positive1);
  }
  .widget__graph-line {
    f.........完整代码请登录后点击上方下载按钮下载查看

网友评论0