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