svg+css实现一款拟态手机运动类app界面UI效果代码
代码语言:html
所属分类:布局界面
代码描述:svg+css实现一款拟态手机运动类app界面UI效果代码
下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开
<!DOCTYPE html> <html lang="en" > <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover"><link rel='stylesheet' href='https://fonts.googleapis.com/css2?family=Nunito:wght@300;400;700&display=swap'> <style> * { border: 0; box-sizing: border-box; margin: 0; padding: 0; } :root { --hue: 184; --bg: hsl(var(--hue),10%,90%); --fg: hsl(var(--hue),66%,24%); --primary: hsl(var(--hue),66%,44%); --gradient: linear-gradient(145deg, hsl(var(--hue),10%,85%), hsl(var(--hue),10%,100%)); font-size: 16px; } body, button { color: var(--fg); font: 1em/1.5 "Nunito", sans-serif; } body { background: var(--bg); height: 100vh; display: grid; place-items: center; padding: 1.5em 0 0 0; } body:after { content: ""; display: block; height: 1.5em; width: 100%; } /* All */ .app, .header, .main__date-nav, .main__stat-row, .main__stat-graph, .footer { display: flex; } .header, .main__date-nav, .footer { justify-content: space-between; } .header__profile-btn, .header__notes-btn, .main__date-arrow-btn, .main__date-edit-btn, .footer__nav-btn { background: transparent; display: flex; outline: transparent; transition: all 0.15s linear; -webkit-appearance: none; appearance: none; -webkit-tap-highlight-color: transparent; } .app { background: hsl(var(--hue),10%,85%); border-radius: 3em; flex-direction: column; padding: 2.25em; width: 390px; height: 844px; } .app__gradients { position: absolute; width: 1px; height: 1px; } .icon { display: block; margin: auto; width: 1.5em; height: 1.5em; } .icon circle, .icon path { fill: currentColor; transition: fill 0.15s linear; } .icon ellipse, .icon polygon { stroke: currentColor; transition: stroke 0.15s linear; } .icon .no-fill { fill: none; stroke: currentColor; } .icon--red path { fill: hsl(3,90%,55%); } .icon--pulse { animation: bpm 1s linear, pulse 0.75s 1s linear infinite; } .ring, .sr-only { position: absolute; } .ring { display: block; inset: 0; width: 100%; height: auto; } .ring-fill { stroke: url("#ring"); } .ring-stroke { animation-duration: 1s; animation-timing-function: ease-in-out; stroke: url("#ring"); } .ring-stroke--steps { animation-name: stepCount; } .ring-stroke--cals { animation-name: cals; } .ring-stroke--miles { animation-name: miles; } .ring-stroke--mins { animation-name: mins; } .ring-stroke--stepHrs { animation-name: stepHrs; } .ring-track { stroke: hsl(var(--hue),10%,80%); } .sr-only { clip: rect(1px,1px,1px,1px); overflow: hidden; width: 1px; height: 1px; } /* Header */ .header { display: flex; justify-content: space-between; margin-bottom: 1.5em; } .header__profile-btn, .header__notes-btn { width: 3em; height: 3em; } .header__profile-btn { border-radius: 1em; box-shadow: 0 0 0 0.125em inset; } .header__notes-btn { margin-right: -1em; } .header__profile-btn:active, .header__notes-btn:active { transform: scale(0.9); } .header__profile-btn:focus { box-shadow: 0 0 0 0.125em var(--primary) inset; } .header__profile-icon { border-radius: 0.5em; margin: auto; width: 2em; height: 2em; } .header__notes-btn:focus .icon path { fill: var(--primary); } /* Main */ .main__date-nav { margin-bottom: 1.5em; } .main__date-arrow-btn, .main__date-edit-btn { height: 1.5em; } .main__date-arrow-btn { width: 1.5em; } .main__date-arrow-btn:active .icon path, .main__date-arrow-btn:focus .icon path { fill: var(--primary); } .main__date { text-transform: uppercase; } .main__date-edit-btn { min-width: 1.5em; } .main__date-edit-btn:active, .main__date-edit-btn:focus { color: var(--primary); } .main__stat-blocks { display: grid; grid-template-columns: repeat(3,1fr); grid-gap: 1.5em; margin-bottom: 1.5em; } .main__stat-block { aspect-ratio: 1 / 1; background: var(--gradient); border-radius: 1.5em; box-shadow: -0.75em -0.75em 2.25em hsl(0,0%,100%), 0.75em 0.75em 2.25em hsl(var(--hue),5%,65%); padding: 0.75em; text-align: center; width: 100%; } .main__stat-block--lg { aspect-ratio: 2 / 1; grid-column: 1 / 4; padding: 1.5em; } .main__stat-rows, .main__stat-row { margin-bottom: 1.5em; } .main__stat-row { ali.........完整代码请登录后点击上方下载按钮下载查看
网友评论0