go-captcha-svelte
Version:
GoCaptcha for Svelte, which implements click mode, slider mode, drag-drop mode and rotation mode.
315 lines (274 loc) • 7.38 kB
text/less
/**
* @Author Awen
* @Date 2024/06/01
* @Email wengaolng@gmail.com
**/
:root{
--go-captcha-theme-text-color: #333333;
--go-captcha-theme-bg-color: #ffffff;
--go-captcha-theme-btn-color: #ffffff;
--go-captcha-theme-btn-bg-color: #4e87ff;
--go-captcha-theme-btn-disabled-color: #749ff9;
--go-captcha-theme-btn-border-color: #4e87ff;
--go-captcha-theme-active-color: #3e7cff;
--go-captcha-theme-border-color: rgba(206, 223, 254, 0.5);
--go-captcha-theme-icon-color: #3C3C3C;
--go-captcha-theme-drag-bar-color: #e0e0e0;
--go-captcha-theme-drag-bg-color: #3e7cff;
--go-captcha-theme-drag-icon-color: #ffffff;
--go-captcha-theme-round-color: #e0e0e0;
--go-captcha-theme-loading-icon-color: #3e7cff;
--go-captcha-theme-body-bg-color: #34383e;
--go-captcha-theme-dot-color: #cedffe;
--go-captcha-theme-dot-bg-color: #3e7cff;
--go-captcha-theme-dot-border-color: #f7f9fb;
--go-captcha-theme-default-color: #3e7cff;
--go-captcha-theme-default-bg-color: #ecf5ff;
--go-captcha-theme-default-border-color: #3e7cff;
--go-captcha-theme-default-hover-color: #e0efff;
--go-captcha-theme-error-color: #ed4630;
--go-captcha-theme-error-bg-color: #fef0f0;
--go-captcha-theme-error-border-color: #ff5a34;
--go-captcha-theme-warn-color: #ffa000;
--go-captcha-theme-warn-bg-color: #fdf6ec;
--go-captcha-theme-warn-border-color: #ffbe09;
--go-captcha-theme-success-color: #5eaa2f;
--go-captcha-theme-success-bg-color: #f0f9eb;
--go-captcha-theme-success-border-color: #8bc640;
}
.go-captcha {
&.gc-wrapper {
padding: 12px 16px;
//background-color: var(--go-captcha-theme-bg-color);
-webkit-touch-callout: none;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
box-sizing: border-box;
}
&.gc-theme {
border: 1px solid rgba(206, 223, 254, 0.5);
border-color: var(--go-captcha-theme-border-color);
-webkit-border-radius: 8px;
-moz-border-radius: 8px;
border-radius: 8px;
box-shadow: 0 0 20px rgba(100, 100, 100, 0.1);
-webkit-box-shadow: 0 0 20px rgba(100, 100, 100, 0.1);
-moz-box-shadow: 0 0 20px rgba(100, 100, 100, 0.1);
&.gc-wrapper {
background-color: var(--go-captcha-theme-bg-color);
}
}
.gc-header {
height: 36px;
width: 100%;
font-size: 15px;
color: var(--go-captcha-theme-text-color);
display:-webkit-box;
display:-webkit-flex;
display:-ms-flexbox;
display:flex;
-webkit-box-align:center;
-webkit-align-items:center;
-ms-flex-align:center;
align-items: center;
-webkit-touch-callout: none;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
span {
flex: 1;
padding-right: 5px;
}
em {
padding: 0 3px;
font-weight: bold;
color: var(--go-captcha-theme-active-color);
font-style: normal;
}
}
.gc-body{
position: relative;
width: 100%;
margin-top: 10px;
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
background: var(--go-captcha-theme-body-bg-color);
border-radius: 5px;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
overflow: hidden;
.gc-body-inner{
position: relative;
background: var(--go-captcha-theme-body-bg-color);
}
}
.gc-picture{
position: relative;
z-index: 2;
width: 100%;
}
.gc-hide{
visibility: hidden;
}
.gc-loading{
position: absolute;
z-index: 1;
top: 50%;
left: 50%;
width: 68px;
height: 68px;
margin-left: -34px;
margin-top: -34px;
line-height: 68px;
text-align: center;
display: flex;
align-content: center;
justify-content: center;
svg, circle {
color: var(--go-captcha-theme-loading-icon-color);
fill: var(--go-captcha-theme-loading-icon-color);
}
}
.gc-footer{
width: 100%;
height: 50px;
color: #34383e;
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
display:flex;
align-items: center;
padding-top: 10px;
-webkit-touch-callout: none;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
.icon-block {
flex: 1;
}
}
.gc-icon-block{
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
display:flex;
align-items: center;
svg{
color: var(--go-captcha-theme-icon-color);
fill: var(--go-captcha-theme-icon-color);
margin: 0 5px;
cursor: pointer;
}
}
.gc-button-block{
width: 120px;
height: 40px;
button{
width: 100%;
height: 40px;
//letter-spacing: 2px;
text-align: center;
padding: 9px 15px;
font-size: 15px;
-webkit-border-radius: 5px;
-moz-border-radius: 5px;
border-radius: 5px;
display: inline-block;
line-height: 1;
white-space: nowrap;
cursor: pointer;
color: var(--go-captcha-theme-btn-color);
background-color: var(--go-captcha-theme-btn-bg-color);
border: 1px solid transparent;
border-color: var(--go-captcha-theme-btn-bg-color);
-webkit-appearance: none;
box-sizing: border-box;
outline: none;
margin: 0;
transition: .1s;
font-weight: 500;
-moz-user-select: none;
-webkit-user-select: none;
&.disabled {
pointer-events: none;
background-color: var(--go-captcha-theme-btn-disabled-color);
border-color: var(--go-captcha-theme-btn-disabled-color);
}
}
}
.gc-drag-slide-bar {
width: 100%;
height: 100%;
position: relative;
touch-action: none;
}
.gc-drag-line{
position: absolute;
height: 14px;
background-color: var(--go-captcha-theme-drag-bar-color);
left: 0;
right: 0;
top: 50%;
margin-top: -7px;
-webkit-border-radius: 7px;
-moz-border-radius: 7px;
border-radius: 7px;
}
.gc-drag-block {
position: absolute;
left: 0;
top: 50%;
margin-top: -20px;
width: 82px;
height: 40px;
z-index: 2;
background-color: var(--go-captcha-theme-drag-bg-color);
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
-webkit-touch-callout: none;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-webkit-border-radius: 24px;
-moz-border-radius: 24px;
border-radius: 24px;
box-shadow: 0 0 20px rgba(100, 100, 100, 0.35);
-webkit-box-shadow: 0 0 20px rgba(100, 100, 100, 0.35);
-moz-box-shadow: 0 0 20px rgba(100, 100, 100, 0.35);
color: var(--go-captcha-theme-drag-icon-color);
fill: var(--go-captcha-theme-drag-icon-color);
&.disabled {
pointer-events: none;
background-color: var(--go-captcha-theme-btn-disabled-color);
border-color: var(--go-captcha-theme-btn-disabled-color);
}
}
.drag-block-inline {
width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
}
.gc-ripple {
& > * {
z-index: 2;
}
svg {
position: relative;
z-index: 2;
}
}
}