mirror of
https://gitee.com/vant-contrib/vant-weapp.git
synced 2025-04-23 18:00:33 +08:00
[new feature] Button: add hairline prop (#1439)
This commit is contained in:
parent
b3f9d5e7ed
commit
e90e58acb5
@ -14,6 +14,11 @@
|
|||||||
<van-button type="danger" plain>朴素按钮</van-button>
|
<van-button type="danger" plain>朴素按钮</van-button>
|
||||||
</demo-block>
|
</demo-block>
|
||||||
|
|
||||||
|
<demo-block title="细边框" padding>
|
||||||
|
<van-button type="primary" plain hairline class="demo-margin-right">细边框按钮</van-button>
|
||||||
|
<van-button type="danger" plain hairline>细边框按钮</van-button>
|
||||||
|
</demo-block>
|
||||||
|
|
||||||
<demo-block title="禁用状态" padding>
|
<demo-block title="禁用状态" padding>
|
||||||
<van-button type="primary" disabled class="demo-margin-right">禁用状态</van-button>
|
<van-button type="primary" disabled class="demo-margin-right">禁用状态</van-button>
|
||||||
<van-button type="danger" disabled>禁用状态</van-button>
|
<van-button type="danger" disabled>禁用状态</van-button>
|
||||||
|
@ -24,11 +24,22 @@
|
|||||||
|
|
||||||
#### 朴素按钮
|
#### 朴素按钮
|
||||||
|
|
||||||
|
通过`plain`属性将按钮设置为朴素按钮,朴素按钮的文字为按钮颜色,背景为白色
|
||||||
|
|
||||||
```html
|
```html
|
||||||
<van-button plain type="primary">朴素按钮</van-button>
|
<van-button plain type="primary">朴素按钮</van-button>
|
||||||
<van-button plain type="danger">朴素按钮</van-button>
|
<van-button plain type="danger">朴素按钮</van-button>
|
||||||
```
|
```
|
||||||
|
|
||||||
|
#### 细边框
|
||||||
|
|
||||||
|
设置`hairline`属性可以开启 0.5px 边框,基于伪类实现
|
||||||
|
|
||||||
|
```html
|
||||||
|
<van-button plain hairline type="primary">细边框按钮</van-button>
|
||||||
|
<van-button plain hairline type="danger">细边框按钮</van-button>
|
||||||
|
```
|
||||||
|
|
||||||
#### 禁用状态
|
#### 禁用状态
|
||||||
|
|
||||||
通过`disabled`属性来禁用按钮,此时按钮不可点击
|
通过`disabled`属性来禁用按钮,此时按钮不可点击
|
||||||
@ -74,6 +85,7 @@
|
|||||||
| round | 是否为圆形按钮 | `Boolean` | `false` |
|
| round | 是否为圆形按钮 | `Boolean` | `false` |
|
||||||
| square | 是否为方形按钮 | `Boolean` | `false` |
|
| square | 是否为方形按钮 | `Boolean` | `false` |
|
||||||
| disabled | 是否禁用按钮 | `Boolean` | `false` |
|
| disabled | 是否禁用按钮 | `Boolean` | `false` |
|
||||||
|
| hairline | 是否使用 0.5px 边框 | `Boolean` | `false` |
|
||||||
| loading | 是否显示为加载状态 | `Boolean` | `false` |
|
| loading | 是否显示为加载状态 | `Boolean` | `false` |
|
||||||
| loading-text | 加载状态提示文字 | `String` | - |
|
| loading-text | 加载状态提示文字 | `String` | - |
|
||||||
| loading-size | 加载图标大小 | `String` | `20px` |
|
| loading-size | 加载图标大小 | `String` | `20px` |
|
||||||
|
@ -8,13 +8,13 @@
|
|||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
line-height: 42px;
|
line-height: 42px;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
-webkit-text-size-adjust: 100%;
|
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
border-radius: 2px;
|
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
|
border-radius: @button-border-radius;
|
||||||
-webkit-appearance: none;
|
-webkit-appearance: none;
|
||||||
|
-webkit-text-size-adjust: 100%;
|
||||||
|
|
||||||
&::after {
|
&::before {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 50%;
|
top: 50%;
|
||||||
left: 50%;
|
left: 50%;
|
||||||
@ -29,7 +29,12 @@
|
|||||||
transform: translate(-50%, -50%);
|
transform: translate(-50%, -50%);
|
||||||
}
|
}
|
||||||
|
|
||||||
&--active::after {
|
// reset weapp default border
|
||||||
|
&::after {
|
||||||
|
border-width: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
&--active::before {
|
||||||
opacity: 0.15;
|
opacity: 0.15;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -125,7 +130,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
&--round {
|
&--round {
|
||||||
border-radius: 10em;
|
border-radius: @button-round-border-radius;
|
||||||
}
|
}
|
||||||
|
|
||||||
&--square {
|
&--square {
|
||||||
@ -141,4 +146,23 @@
|
|||||||
display: inline-block;
|
display: inline-block;
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&--hairline {
|
||||||
|
border-width: 0;
|
||||||
|
padding-top: 1px; // add 1px padding for text vertical align middle
|
||||||
|
|
||||||
|
&::after {
|
||||||
|
border-width: 1px;
|
||||||
|
border-color: inherit;
|
||||||
|
border-radius: @button-border-radius * 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.van-button--round::after {
|
||||||
|
border-radius: @button-round-border-radius;
|
||||||
|
}
|
||||||
|
|
||||||
|
&.van-button--square::after {
|
||||||
|
border-radius: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -13,6 +13,7 @@ VantComponent({
|
|||||||
round: Boolean,
|
round: Boolean,
|
||||||
square: Boolean,
|
square: Boolean,
|
||||||
loading: Boolean,
|
loading: Boolean,
|
||||||
|
hairline: Boolean,
|
||||||
disabled: Boolean,
|
disabled: Boolean,
|
||||||
loadingText: String,
|
loadingText: String,
|
||||||
type: {
|
type: {
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
<button
|
<button
|
||||||
id="{{ id }}"
|
id="{{ id }}"
|
||||||
class="custom-class {{ utils.bem('button', [type, size, { block, round, plain, square, loading, disabled, unclickable: disabled || loading }]) }}"
|
class="custom-class {{ utils.bem('button', [type, size, { block, round, plain, square, loading, disabled, hairline, unclickable: disabled || loading }]) }} {{ hairline ? 'van-hairline--surround' : '' }}"
|
||||||
open-type="{{ openType }}"
|
open-type="{{ openType }}"
|
||||||
hover-class="van-button--active hover-class"
|
hover-class="van-button--active hover-class"
|
||||||
lang="{{ lang }}"
|
lang="{{ lang }}"
|
||||||
|
@ -39,6 +39,8 @@
|
|||||||
@button-bottom-action-default-background-color: @orange;
|
@button-bottom-action-default-background-color: @orange;
|
||||||
@button-bottom-action-primary-color: @white;
|
@button-bottom-action-primary-color: @white;
|
||||||
@button-bottom-action-primary-background-color: @red;
|
@button-bottom-action-primary-background-color: @red;
|
||||||
|
@button-border-radius: 2px;
|
||||||
|
@button-round-border-radius: 10em;
|
||||||
|
|
||||||
// Checkbox
|
// Checkbox
|
||||||
@checkbox-size: 20px;
|
@checkbox-size: 20px;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user