<div class="ul-title-section">基本按钮</div>
<div class="ul-section"><button class="ul-btn ul-btn-lg">默认按钮</button> <button class="ul-btn">默认按钮</button> <button class="ul-btn ul-btn-sm">默认按钮</button> <button class="ul-btn ul-btn-mini">默认按钮</button></div>
<div class="ul-section"><button class="ul-btn ul-btn-primary ul-btn-lg">默认按钮</button> <button class="ul-btn ul-btn-primary">默认按钮</button> <button class="ul-btn ul-btn-primary ul-btn-sm">默认按钮</button> <button class="ul-btn ul-btn-primary ul-btn-mini">默认按钮</button></div>
<div class="ul-section"><button class="ul-btn ul-btn-success ul-btn-lg">默认按钮</button> <button class="ul-btn ul-btn-success">默认按钮</button> <button class="ul-btn ul-btn-success ul-btn-sm">默认按钮</button> <button class="ul-btn ul-btn-success ul-btn-mini">默认按钮</button></div>
<div class="ul-section"><button class="ul-btn ul-btn-danger ul-btn-lg">默认按钮</button> <button class="ul-btn ul-btn-danger">默认按钮</button> <button class="ul-btn ul-btn-danger ul-btn-sm">默认按钮</button> <button class="ul-btn ul-btn-danger ul-btn-mini">默认按钮</button></div>
<div class="ul-section"><button class="ul-btn ul-btn-warning ul-btn-lg">默认按钮</button> <button class="ul-btn ul-btn-warning">默认按钮</button> <button class="ul-btn ul-btn-warning ul-btn-sm">默认按钮</button> <button class="ul-btn ul-btn-warning ul-btn-mini">默认按钮</button></div>
<div class="ul-section"><button class="ul-btn ul-btn-info ul-btn-lg">默认按钮</button> <button class="ul-btn ul-btn-info">默认按钮</button> <button class="ul-btn ul-btn-info ul-btn-sm">默认按钮</button> <button class="ul-btn ul-btn-info ul-btn-mini">默认按钮</button></div>
<div class="ul-title-section">禁用</div>
<div class="ul-section"><button class="ul-btn disabled">默认按钮</button> <button class="ul-btn ul-btn-primary disabled">默认按钮</button> <button class="ul-btn ul-btn-success disabled">默认按钮</button> <button class="ul-btn ul-btn-danger disabled">默认按钮</button> <button class="ul-btn ul-btn-warning disabled">默认按钮</button> <button class="ul-btn ul-btn-info disabled">默认按钮</button></div>
<div class="ul-title-section">加载中</div>
<div class="ul-section"><button class="ul-btn loading">默认按钮</button> <button class="ul-btn ul-btn-primary loading">默认按钮</button> <button class="ul-btn ul-btn-success loading">默认按钮</button> <button class="ul-btn ul-btn-danger loading">默认按钮</button> <button class="ul-btn ul-btn-warning loading">默认按钮</button> <button class="ul-btn ul-btn-info loading">默认按钮</button></div>
<div class="ul-title-section">镂空</div>
<div class="ul-section"><button class="ul-btn plain">默认按钮</button> <button class="ul-btn ul-btn-primary plain">默认按钮</button> <button class="ul-btn ul-btn-success plain">默认按钮</button> <button class="ul-btn ul-btn-danger plain">默认按钮</button> <button class="ul-btn ul-btn-warning plain">默认按钮</button> <button class="ul-btn ul-btn-info plain">默认按钮</button></div>
<div class="ul-title-section">流体按钮</div>
<div class="ul-section"><button class="ul-btn fluid">默认按钮</button> <button class="ul-btn ul-btn-primary fluid">默认按钮</button> <button class="ul-btn ul-btn-success fluid">默认按钮</button> <button class="ul-btn ul-btn-danger fluid">默认按钮</button> <button class="ul-btn ul-btn-warning fluid">默认按钮</button> <button class="ul-btn ul-btn-info fluid">默认按钮</button></div>
.ul-btn {
display: inline-block;
height: 38px;
line-height: 38px;
padding: 0 $space-md;
background-color: $color-white;
color: $color-text;
white-space: nowrap;
text-align: center;
font-size: $font-size-base;
border: 1px solid $color-border;
border-radius: $radius-base;
cursor: pointer;
transition: all .3s;
-webkit-transition: all .3s;
position: relative;
user-select: none;
margin-right: $space-base;
margin-bottom: $space-base;
&:hover {
opacity: 0.8;
}
&.disabled,
&:disabled {
opacity: 0.65;
cursor: not-allowed;
}
&.loading {
cursor: wait;
overflow: hidden;
&::after {
content: '';
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-image: linear-gradient(90deg,
rgba(255, 255, 255, 0) 0,
rgba(255, 255, 255, 0.2) 20%,
rgba(255, 255, 255, 0.5) 60%,
rgba(255, 255, 255, 0));
transform: translateX(-100%);
animation: ul-btn-shine 2s infinite;
}
>span {
visibility: hidden;
}
}
&-mini {
height: 24px;
line-height: 24px;
padding: 0 $space-sm;
font-size: $font-size-xs;
}
&-sm {
height: 30px;
line-height: 30px;
padding: 0 12px;
font-size: $font-size-sm;
}
&-lg {
height: 44px;
line-height: 44px;
padding: 0 $space-lg;
font-size: $font-size-lg;
}
&.fluid {
width: calc(100% - #{$space-md} * 2);
display: block;
margin-right: 0;
margin-left: 0;
}
@each $name,
$value in $theme-color-variants {
$main-color: map-get($value, "base");
$text-color: map-get($value, "text");
&-#{$name} {
background-color: $main-color;
border-color: $main-color;
color: $text-color;
&.plain {
color: $main-color;
background-color: transparent;
border-color: $main-color;
&:hover {
background-color: $main-color;
color: $text-color;
}
}
}
}
}
@keyframes ul-btn-shine {
100% {
transform: translateX(100%);
}
}
.ul-btn {
display: inline-block;
height: 38px;
line-height: 38px;
padding: 0 16px;
background-color: var(--ul-color-white);
color: var(--ul-color-text);
white-space: nowrap;
text-align: center;
font-size: 14px;
border: 1px solid var(--ul-color-border);
border-radius: 4px;
cursor: pointer;
transition: all 0.3s;
-webkit-transition: all 0.3s;
position: relative;
user-select: none;
margin-right: 4px;
margin-bottom: 4px;
}
.ul-btn:hover {
opacity: 0.8;
}
.ul-btn.disabled, .ul-btn:disabled {
opacity: 0.65;
cursor: not-allowed;
}
.ul-btn.loading {
cursor: wait;
overflow: hidden;
}
.ul-btn.loading::after {
content: "";
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-image: linear-gradient(90deg, rgba(255, 255, 255, 0) 0, rgba(255, 255, 255, 0.2) 20%, rgba(255, 255, 255, 0.5) 60%, rgba(255, 255, 255, 0));
transform: translateX(-100%);
animation: ul-btn-shine 2s infinite;
}
.ul-btn.loading > span {
visibility: hidden;
}
.ul-btn-mini {
height: 24px;
line-height: 24px;
padding: 0 8px;
font-size: 10px;
}
.ul-btn-sm {
height: 30px;
line-height: 30px;
padding: 0 12px;
font-size: 12px;
}
.ul-btn-lg {
height: 44px;
line-height: 44px;
padding: 0 24px;
font-size: 16px;
}
.ul-btn.fluid {
width: calc(100% - 16px * 2);
display: block;
margin-right: 0;
margin-left: 0;
}
.ul-btn-primary {
background-color: var(--ul-color-primary-base);
border-color: var(--ul-color-primary-base);
color: var(--ul-color-primary-text);
}
.ul-btn-primary.plain {
color: var(--ul-color-primary-base);
background-color: transparent;
border-color: var(--ul-color-primary-base);
}
.ul-btn-primary.plain:hover {
background-color: var(--ul-color-primary-base);
color: var(--ul-color-primary-text);
}
.ul-btn-success {
background-color: var(--ul-color-success-base);
border-color: var(--ul-color-success-base);
color: var(--ul-color-success-text);
}
.ul-btn-success.plain {
color: var(--ul-color-success-base);
background-color: transparent;
border-color: var(--ul-color-success-base);
}
.ul-btn-success.plain:hover {
background-color: var(--ul-color-success-base);
color: var(--ul-color-success-text);
}
.ul-btn-danger {
background-color: var(--ul-color-danger-base);
border-color: var(--ul-color-danger-base);
color: var(--ul-color-danger-text);
}
.ul-btn-danger.plain {
color: var(--ul-color-danger-base);
background-color: transparent;
border-color: var(--ul-color-danger-base);
}
.ul-btn-danger.plain:hover {
background-color: var(--ul-color-danger-base);
color: var(--ul-color-danger-text);
}
.ul-btn-warning {
background-color: var(--ul-color-warning-base);
border-color: var(--ul-color-warning-base);
color: var(--ul-color-warning-text);
}
.ul-btn-warning.plain {
color: var(--ul-color-warning-base);
background-color: transparent;
border-color: var(--ul-color-warning-base);
}
.ul-btn-warning.plain:hover {
background-color: var(--ul-color-warning-base);
color: var(--ul-color-warning-text);
}
.ul-btn-info {
background-color: var(--ul-color-info-base);
border-color: var(--ul-color-info-base);
color: var(--ul-color-info-text);
}
.ul-btn-info.plain {
color: var(--ul-color-info-base);
background-color: transparent;
border-color: var(--ul-color-info-base);
}
.ul-btn-info.plain:hover {
background-color: var(--ul-color-info-base);
color: var(--ul-color-info-text);
}
.ul-btn-dark {
background-color: var(--ul-color-dark-base);
border-color: var(--ul-color-dark-base);
color: var(--ul-color-dark-text);
}
.ul-btn-dark.plain {
color: var(--ul-color-dark-base);
background-color: transparent;
border-color: var(--ul-color-dark-base);
}
.ul-btn-dark.plain:hover {
background-color: var(--ul-color-dark-base);
color: var(--ul-color-dark-text);
}
.ul-btn-light {
background-color: var(--ul-color-light-base);
border-color: var(--ul-color-light-base);
color: var(--ul-color-light-text);
}
.ul-btn-light.plain {
color: var(--ul-color-light-base);
background-color: transparent;
border-color: var(--ul-color-light-base);
}
.ul-btn-light.plain:hover {
background-color: var(--ul-color-light-base);
color: var(--ul-color-light-text);
}
.ul-btn-gray {
background-color: var(--ul-color-gray-base);
border-color: var(--ul-color-gray-base);
color: var(--ul-color-gray-text);
}
.ul-btn-gray.plain {
color: var(--ul-color-gray-base);
background-color: transparent;
border-color: var(--ul-color-gray-base);
}
.ul-btn-gray.plain:hover {
background-color: var(--ul-color-gray-base);
color: var(--ul-color-gray-text);
}
@keyframes ul-btn-shine {
100% {
transform: translateX(100%);
}
}
<view class="ul-title-section">基本按钮</view>
<view class="ul-section"><button class="ul-btn ul-btn-lg">默认按钮</button> <button class="ul-btn">默认按钮</button> <button class="ul-btn ul-btn-sm">默认按钮</button> <button class="ul-btn ul-btn-mini">默认按钮</button></view>
<view class="ul-section"><button class="ul-btn ul-btn-primary ul-btn-lg">默认按钮</button> <button class="ul-btn ul-btn-primary">默认按钮</button> <button class="ul-btn ul-btn-primary ul-btn-sm">默认按钮</button> <button class="ul-btn ul-btn-primary ul-btn-mini">默认按钮</button></view>
<view class="ul-section"><button class="ul-btn ul-btn-success ul-btn-lg">默认按钮</button> <button class="ul-btn ul-btn-success">默认按钮</button> <button class="ul-btn ul-btn-success ul-btn-sm">默认按钮</button> <button class="ul-btn ul-btn-success ul-btn-mini">默认按钮</button></view>
<view class="ul-section"><button class="ul-btn ul-btn-danger ul-btn-lg">默认按钮</button> <button class="ul-btn ul-btn-danger">默认按钮</button> <button class="ul-btn ul-btn-danger ul-btn-sm">默认按钮</button> <button class="ul-btn ul-btn-danger ul-btn-mini">默认按钮</button></view>
<view class="ul-section"><button class="ul-btn ul-btn-warning ul-btn-lg">默认按钮</button> <button class="ul-btn ul-btn-warning">默认按钮</button> <button class="ul-btn ul-btn-warning ul-btn-sm">默认按钮</button> <button class="ul-btn ul-btn-warning ul-btn-mini">默认按钮</button></view>
<view class="ul-section"><button class="ul-btn ul-btn-info ul-btn-lg">默认按钮</button> <button class="ul-btn ul-btn-info">默认按钮</button> <button class="ul-btn ul-btn-info ul-btn-sm">默认按钮</button> <button class="ul-btn ul-btn-info ul-btn-mini">默认按钮</button></view>
<view class="ul-title-section">禁用</view>
<view class="ul-section"><button class="ul-btn disabled">默认按钮</button> <button class="ul-btn ul-btn-primary disabled">默认按钮</button> <button class="ul-btn ul-btn-success disabled">默认按钮</button> <button class="ul-btn ul-btn-danger disabled">默认按钮</button> <button class="ul-btn ul-btn-warning disabled">默认按钮</button> <button class="ul-btn ul-btn-info disabled">默认按钮</button></view>
<view class="ul-title-section">加载中</view>
<view class="ul-section"><button class="ul-btn loading">默认按钮</button> <button class="ul-btn ul-btn-primary loading">默认按钮</button> <button class="ul-btn ul-btn-success loading">默认按钮</button> <button class="ul-btn ul-btn-danger loading">默认按钮</button> <button class="ul-btn ul-btn-warning loading">默认按钮</button> <button class="ul-btn ul-btn-info loading">默认按钮</button></view>
<view class="ul-title-section">镂空</view>
<view class="ul-section"><button class="ul-btn plain">默认按钮</button> <button class="ul-btn ul-btn-primary plain">默认按钮</button> <button class="ul-btn ul-btn-success plain">默认按钮</button> <button class="ul-btn ul-btn-danger plain">默认按钮</button> <button class="ul-btn ul-btn-warning plain">默认按钮</button> <button class="ul-btn ul-btn-info plain">默认按钮</button></view>
<view class="ul-title-section">流体按钮</view>
<view class="ul-section"><button class="ul-btn fluid">默认按钮</button> <button class="ul-btn ul-btn-primary fluid">默认按钮</button> <button class="ul-btn ul-btn-success fluid">默认按钮</button> <button class="ul-btn ul-btn-danger fluid">默认按钮</button> <button class="ul-btn ul-btn-warning fluid">默认按钮</button> <button class="ul-btn ul-btn-info fluid">默认按钮</button></view>