@fesjs/fes-design
Version:
fes-design for PC
377 lines (376 loc) • 11.1 kB
CSS
@keyframes waveEffect {
100% {
box-shadow: 0 0 0 6px var(--f-btn-wave-shadow-color);
}
}
@keyframes fadeEffect {
100% {
opacity: 0;
}
}
.fes-btn {
--f-btn-color: var(--f-text-color);
--f-btn-bg-color: var(--f-white);
--f-btn-border-color: var(--f-border-color-base);
--f-btn-hover-color: var(--f-hover-color-base);
--f-btn-hover-color-light: var(--f-hover-color-base-light);
--f-btn-active-color: var(--f-active-color);
--f-btn-disabled-color: var(--f-disabled-color-base);
--f-btn-border-width: var(--f-border-width-base);
--f-btn-border-style: var(--f-border-style-base);
--f-btn-border-radius: var(--f-border-radius-base);
--f-btn-border-radius-sm: var(--f-border-radius-sm);
--f-btn-font-size: var(--f-font-size-base);
--f-btn-height: 32px;
--f-btn-padding: 0 16px;
--f-btn-min-width: 60px;
margin: 0;
padding: 0;
color: var(--f-text-color);
font-size: var(--f-font-size-base);
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', 'Helvetica Neue', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
font-variant: tabular-nums;
line-height: 22px;
font-feature-settings: 'tnum';
position: relative;
display: inline-flex;
align-items: center;
justify-content: center;
min-width: var(--f-btn-min-width);
height: var(--f-btn-height);
padding: var(--f-btn-padding);
color: var(--f-btn-color);
font-weight: 400;
font-size: var(--f-btn-font-size);
white-space: nowrap;
vertical-align: middle;
background: var(--f-btn-bg-color);
border: var(--f-btn-border-width) var(--f-btn-border-style) transparent;
border-color: var(--f-btn-border-color);
border-radius: var(--f-btn-border-radius);
outline: none;
cursor: pointer;
transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
-webkit-user-select: none;
-moz-user-select: none;
user-select: none;
touch-action: manipulation;
}
.fes-btn[disabled] {
text-shadow: none;
box-shadow: none;
cursor: not-allowed;
}
.fes-btn[disabled] > * {
pointer-events: none;
}
.fes-btn-type-default {
--f-btn-wave-shadow-color: var(--f-primary-color);
}
.fes-btn-type-default.is-animate::after {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
display: block;
border-radius: inherit;
box-shadow: 0 0 0 0 var(--f-btn-wave-shadow-color);
opacity: 0.2;
animation: fadeEffect 2s cubic-bezier(0.08, 0.82, 0.17, 1), waveEffect 0.4s cubic-bezier(0.08, 0.82, 0.17, 1);
animation-fill-mode: forwards;
content: '';
pointer-events: none;
}
.fes-btn-type-default:hover,
.fes-btn-type-default:focus {
--f-btn-color: var(--f-primary-color);
--f-btn-bg-color: var(--f-btn-hover-color-light);
--f-btn-border-color: var(--f-primary-color);
}
.fes-btn-type-default:active {
--f-btn-color: var(--f-btn-active-color);
--f-btn-bg-color: var(--f-btn-hover-color-light);
--f-btn-border-color: var(--f-btn-active-color);
}
.fes-btn-type-default[disabled] {
--f-btn-color: var(--f-btn-disabled-color);
--f-btn-bg-color: var(--f-disabled-color-light);
--f-btn-border-color: var(--f-btn-disabled-color);
}
.fes-btn-type-default.is-loading,
.fes-btn-type-default.is-loading:hover,
.fes-btn-type-default.is-loading:focus,
.fes-btn-type-default.is-loading:active {
text-shadow: none;
box-shadow: none;
opacity: 0.6;
pointer-events: none;
}
.fes-btn-type-primary {
--f-btn-wave-shadow-color: var(--f-primary-color);
--f-btn-color: var(--f-white);
--f-btn-bg-color: var(--f-primary-color);
--f-btn-border-color: var(--f-primary-color);
}
.fes-btn-type-primary:hover,
.fes-btn-type-primary:focus {
--f-btn-bg-color: var(--f-btn-hover-color);
--f-btn-border-color: var(--f-btn-hover-color);
}
.fes-btn-type-primary:active {
--f-btn-bg-color: var(--f-btn-active-color);
--f-btn-border-color: var(--f-btn-active-color);
}
.fes-btn-type-primary[disabled] {
--f-btn-bg-color: var(--f-btn-disabled-color);
--f-btn-border-color: transparent;
}
.fes-btn-type-primary.is-loading,
.fes-btn-type-primary.is-loading:hover,
.fes-btn-type-primary.is-loading:focus,
.fes-btn-type-primary.is-loading:active {
text-shadow: none;
box-shadow: none;
opacity: 0.6;
pointer-events: none;
}
.fes-btn-type-primary.is-animate::after {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
display: block;
border-radius: inherit;
box-shadow: 0 0 0 0 var(--f-btn-wave-shadow-color);
opacity: 0.2;
animation: fadeEffect 2s cubic-bezier(0.08, 0.82, 0.17, 1), waveEffect 0.4s cubic-bezier(0.08, 0.82, 0.17, 1);
animation-fill-mode: forwards;
content: '';
pointer-events: none;
}
.fes-btn-type-text {
--f-btn-color: var(--f-text-color);
--f-btn-bg-color: transparent;
--f-btn-border-color: transparent;
}
.fes-btn-type-text:hover,
.fes-btn-type-text:focus {
--f-btn-color: var(--f-primary-color);
--f-btn-bg-color: var(--f-hover-color-light);
}
.fes-btn-type-text:active {
--f-btn-color: var(--f-active-color);
--f-btn-bg-color: var(--f-hover-color-light);
}
.fes-btn-type-text[disabled] {
--f-btn-color: var(--f-disabled-color-base);
--f-btn-bg-color: transparent;
}
.fes-btn-type-text.is-loading,
.fes-btn-type-text.is-loading:hover,
.fes-btn-type-text.is-loading:focus,
.fes-btn-type-text.is-loading:active {
text-shadow: none;
box-shadow: none;
opacity: 0.6;
pointer-events: none;
}
.fes-btn-type-link {
--f-btn-color: var(--f-primary-color);
--f-btn-bg-color: transparent;
--f-btn-border-color: transparent;
}
.fes-btn-type-link:hover,
.fes-btn-type-link:focus {
--f-btn-color: var(--f-hover-color-base);
}
.fes-btn-type-link:active {
--f-btn-color: var(--f-active-color);
}
.fes-btn-type-link[disabled] {
--f-btn-color: var(--f-disabled-color-base);
}
.fes-btn-type-link.is-loading,
.fes-btn-type-link.is-loading:hover,
.fes-btn-type-link.is-loading:focus,
.fes-btn-type-link.is-loading:active {
text-shadow: none;
box-shadow: none;
opacity: 0.6;
pointer-events: none;
}
.fes-btn-type-info[disabled],
.fes-btn-type-success[disabled],
.fes-btn-type-warning[disabled],
.fes-btn-type-danger[disabled] {
--f-btn-color: var(--f-btn-disabled-color);
--f-btn-bg-color: var(--f-disabled-color-light);
--f-btn-border-color: var(--f-btn-disabled-color);
}
.fes-btn-type-info.is-loading,
.fes-btn-type-success.is-loading,
.fes-btn-type-warning.is-loading,
.fes-btn-type-danger.is-loading,
.fes-btn-type-info.is-loading:hover,
.fes-btn-type-success.is-loading:hover,
.fes-btn-type-warning.is-loading:hover,
.fes-btn-type-danger.is-loading:hover,
.fes-btn-type-info.is-loading:focus,
.fes-btn-type-success.is-loading:focus,
.fes-btn-type-warning.is-loading:focus,
.fes-btn-type-danger.is-loading:focus,
.fes-btn-type-info.is-loading:active,
.fes-btn-type-success.is-loading:active,
.fes-btn-type-warning.is-loading:active,
.fes-btn-type-danger.is-loading:active {
text-shadow: none;
box-shadow: none;
opacity: 0.6;
pointer-events: none;
}
.fes-btn-type-info {
--f-btn-color: var(--f-primary-color);
--f-btn-bg-color: var(--f-white);
--f-btn-border-color: var(--f-primary-color);
--f-btn-wave-shadow-color: var(--f-primary-color);
}
.fes-btn-type-info:hover,
.fes-btn-type-info:focus {
--f-btn-bg-color: var(--f-hover-color-light);
}
.fes-btn-type-info:active {
--f-btn-color: var(--f-active-color);
--f-btn-bg-color: var(--f-hover-color-light);
--f-btn-border-color: var(--f-active-color);
}
.fes-btn-type-info.is-animate::after {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
display: block;
border-radius: inherit;
box-shadow: 0 0 0 0 var(--f-btn-wave-shadow-color);
opacity: 0.2;
animation: fadeEffect 2s cubic-bezier(0.08, 0.82, 0.17, 1), waveEffect 0.4s cubic-bezier(0.08, 0.82, 0.17, 1);
animation-fill-mode: forwards;
content: '';
pointer-events: none;
}
.fes-btn-type-success {
--f-btn-color: var(--f-success-color);
--f-btn-bg-color: var(--f-white);
--f-btn-border-color: var(--f-success-color);
--f-btn-wave-shadow-color: var(--f-success-color);
}
.fes-btn-type-success:hover,
.fes-btn-type-success:focus {
--f-btn-bg-color: var(--f-hover-success-color);
}
.fes-btn-type-success:active {
--f-btn-color: var(--f-active-success-color);
--f-btn-bg-color: var(--f-hover-success-color);
--f-btn-border-color: var(--f-success-active-color);
}
.fes-btn-type-success.is-animate::after {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
display: block;
border-radius: inherit;
box-shadow: 0 0 0 0 var(--f-btn-wave-shadow-color);
opacity: 0.2;
animation: fadeEffect 2s cubic-bezier(0.08, 0.82, 0.17, 1), waveEffect 0.4s cubic-bezier(0.08, 0.82, 0.17, 1);
animation-fill-mode: forwards;
content: '';
pointer-events: none;
}
.fes-btn-type-warning {
--f-btn-color: var(--f-warning-color);
--f-btn-bg-color: var(--f-white);
--f-btn-border-color: var(--f-warning-color);
--f-btn-wave-shadow-color: var(--f-warning-color);
}
.fes-btn-type-warning:hover,
.fes-btn-type-warning:focus {
--f-btn-bg-color: var(--f-hover-warning-color);
}
.fes-btn-type-warning:active {
--f-btn-color: var(--f-active-warning-color);
--f-btn-bg-color: var(--f-hover-warning-color);
--f-btn-border-color: var(--f-warning-active-color);
}
.fes-btn-type-warning.is-animate::after {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
display: block;
border-radius: inherit;
box-shadow: 0 0 0 0 var(--f-btn-wave-shadow-color);
opacity: 0.2;
animation: fadeEffect 2s cubic-bezier(0.08, 0.82, 0.17, 1), waveEffect 0.4s cubic-bezier(0.08, 0.82, 0.17, 1);
animation-fill-mode: forwards;
content: '';
pointer-events: none;
}
.fes-btn-type-danger {
--f-btn-color: var(--f-danger-color);
--f-btn-bg-color: var(--f-white);
--f-btn-border-color: var(--f-danger-color);
--f-btn-wave-shadow-color: var(--f-danger-color);
}
.fes-btn-type-danger:hover,
.fes-btn-type-danger:focus {
--f-btn-bg-color: var(--f-hover-danger-color);
}
.fes-btn-type-danger:active {
--f-btn-color: var(--f-active-danger-color);
--f-btn-bg-color: var(--f-hover-danger-color);
--f-btn-border-color: var(--f-danger-active-color);
}
.fes-btn-type-danger.is-animate::after {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
display: block;
border-radius: inherit;
box-shadow: 0 0 0 0 var(--f-btn-wave-shadow-color);
opacity: 0.2;
animation: fadeEffect 2s cubic-bezier(0.08, 0.82, 0.17, 1), waveEffect 0.4s cubic-bezier(0.08, 0.82, 0.17, 1);
animation-fill-mode: forwards;
content: '';
pointer-events: none;
}
.fes-btn-long {
width: 100%;
}
.fes-btn-icon {
display: inline-flex;
align-items: center;
margin-right: 4px;
}
.fes-btn-icon.is-right {
margin-right: 0;
margin-left: 4px;
}
.fes-btn-large {
--f-btn-min-width: 75px;
--f-btn-height: 40px;
--f-btn-font-size: calc(var(--f-font-size-base) + 2px);
}
.fes-btn-small {
--f-btn-min-width: 40px;
--f-btn-height: 24px;
--f-btn-padding: 0 12px;
--f-btn-font-size: calc(var(--f-font-size-base) - 2px);
--f-btn-border-radius: var(--f-btn-border-radius-sm);
}