react实现股价涨幅小组件卡片代码
代码语言:html
所属分类:其他
代码描述: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&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