废话不多说,先上图,有图有真相:
在左下角有一排颜色,点击可以设置主题色:
比如,我这里点击了橙色,登录界面就变成了如下样子:
另外,在输入账号和密码的时候,会有一个轻微的抖动动画效果,告诉用户当前正在输入的是什么。
还是老样子,先看看HTML是什么:
<section class="container">
<div class="login-container">
<!--背景圆1-->
<div class="circle circle-one"></div>
<!--登录表单开始-->
<div class="form-container">
<img src="illustration.png"
alt="illustration" class="illustration"/>
<h1 class="opacity">用户登录</h1>
<form>
<input name="username" type="text" placeholder="请输入您的账号"/>
<input name="password" type="password" placeholder="请输入您的密码"/>
<button class="opacity">登录</button>
</form>
<div class="register-forget opacity">
<a href="">忘记密码?</a>
<a href="">注册</a>
</div>
</div>
<!--登录表单结束-->
<!--背景圆2-->
<div class="circle circle-two"></div>
</div>
<!--左下角有一个可以设置主体的样式区域-->
<div class="theme-btn-container"></div>
</section>
接着,先看看背景样式是怎么实现的:
/*背景样式开始*/
.circle {
width: 8rem;
height: 8rem;
background: var(--primary-color);
border-radius: 50%;
-webkit-border-radius: 50%;
-moz-border-radius: 50%;
-ms-border-radius: 50%;
-o-border-radius: 50%;
position: absolute;
}
.illustration {
position: absolute;
top: -14%;
right: -2px;
width: 90%;
}
.circle-one {
top: 0;
left: 0;
z-index: -1;
transform: translate(-45%, -45%);
-webkit-transform: translate(-45%, -45%);
-moz-transform: translate(-45%, -45%);
-ms-transform: translate(-45%, -45%);
-o-transform: translate(-45%, -45%);
}
.circle-two {
bottom: 0;
right: 0;
z-index: -1;
transform: translate(45%, 45%);
-webkit-transform: translate(45%, 45%);
-moz-transform: translate(45%, 45%);
-ms-transform: translate(45%, 45%);
-o-transform: translate(45%, 45%);
}
/*背景样式结束*/
再看看登录表单样式是怎么实现的:
/*登录表单样式开始*/
.login-container {
position: relative;
width: 22.2rem;
}
.form-container {
border: 1px solid hsla(0, 0%, 65%, 0.158);
box-shadow: 0 0 36px 1px rgba(0, 0, 0, 0.2);
border-radius: 10px;
backdrop-filter: blur(20px);
z-index: 99;
padding: 2rem;
-webkit-border-radius: 10px;
-moz-border-radius: 10px;
-ms-border-radius: 10px;
-o-border-radius: 10px;
}
.login-container form input {
display: block;
padding: 14.5px;
width: 100%;
margin: 2rem 0;
color: var(--color);
outline: none;
background-color: #9191911f;
border: none;
border-radius: 5px;
font-weight: 500;
letter-spacing: 0.8px;
font-size: 15px;
backdrop-filter: blur(15px);
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
-ms-border-radius: 5px;
-o-border-radius: 5px;
}
.login-container form input:focus {
box-shadow: 0 0 16px 1px rgba(0, 0, 0, 0.2);
animation: wobble 0.3s ease-in;
-webkit-animation: wobble 0.3s ease-in;
}
.login-container form button {
background-color: var(--primary-color);
color: var(--color);
display: block;
padding: 13px;
border-radius: 5px;
outline: none;
font-size: 18px;
letter-spacing: 1.5px;
font-weight: bold;
width: 100%;
cursor: pointer;
margin-bottom: 2rem;
transition: all 0.1s ease-in-out;
border: none;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
-ms-border-radius: 5px;
-o-border-radius: 5px;
-webkit-transition: all 0.1s ease-in-out;
-moz-transition: all 0.1s ease-in-out;
-ms-transition: all 0.1s ease-in-out;
-o-transition: all 0.1s ease-in-out;
}
.login-container form button:hover {
box-shadow: 0 0 10px 1px rgba(0, 0, 0, 0.15);
transform: scale(1.02);
-webkit-transform: scale(1.02);
-moz-transform: scale(1.02);
-ms-transform: scale(1.02);
-o-transform: scale(1.02);
}
.register-forget {
margin: 1rem 0;
display: flex;
justify-content: space-between;
}
.opacity {
opacity: 0.6;
}
@keyframes wobble {
0% {
transform: scale(1.025);
-webkit-transform: scale(1.025);
-moz-transform: scale(1.025);
-ms-transform: scale(1.025);
-o-transform: scale(1.025);
}
25% {
transform: scale(1);
-webkit-transform: scale(1);
-moz-transform: scale(1);
-ms-transform: scale(1);
-o-transform: scale(1);
}
75% {
transform: scale(1.025);
-webkit-transform: scale(1.025);
-moz-transform: scale(1.025);
-ms-transform: scale(1.025);
-o-transform: scale(1.025);
}
100% {
transform: scale(1);
-webkit-transform: scale(1);
-moz-transform: scale(1);
-ms-transform: scale(1);
-o-transform: scale(1);
}
}
/*登录表单样式结束*/
因为这套代码交互比较复杂,这里无法贴上全部代码了。如果有感兴趣的朋友可以私信我获取。如果您觉得这篇文章对您有帮助麻烦打赏一下!