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