zarm
Version:
基于 React 的移动端UI库
50 lines (40 loc) • 3.22 kB
Markdown
# Switch 开关
## 基本用法
```jsx
import { useState } from 'react';
import { Switch, List } from 'zarm';
const Demo = () => {
const [checked, setChecked] = useState(false);
return (
<List>
<List.Item title="普通" suffix={<Switch checked={checked} onChange={setChecked} />} />
<List.Item title="默认开" suffix={<Switch defaultChecked />} />
<List.Item title="禁用的开关(默认关)" suffix={<Switch disabled />} />
<List.Item title="禁用的开关(默认开)" suffix={<Switch defaultChecked disabled />} />
</List>
);
};
ReactDOM.render(<Demo />, mountNode);
```
## API
| 属性 | 类型 | 默认值 | 说明 |
| :------------- | :------------------------- | :----- | :--------------------- |
| checked | boolean | - | 值 |
| defaultChecked | boolean | - | 初始值 |
| disabled | boolean | false | 是否禁用 |
| onChange | (checked: boolean) => void | - | 值变化时触发的回调函数 |
## CSS 变量
| 属性 | 默认值 | 说明 |
| :------------------- | :------------------------------------------------------------------------------------------------ | :------------- |
| --width | '52px' | 宽度 |
| --height | '32px' | 高度 |
| --background | 'rgba(120, 120, 128, 0.16)' | 背景色 |
| --border-radius | 'var(--za-radius-round)' | 圆角大小 |
| --transition | 'all 0.3s' | 过渡效果 |
| --checked-background | 'var(--za-theme-primary)' | 开启时的背景色 |
| --knob-background | '#fff' | 把手背景色 |
| --knob-size | '28px' | 把手大小 |
| --knob-box-shadow | '0 3px 1px rgba(0, 0, 0, 0.06), 0 3px 8px rgba(0, 0, 0, 0.15)' | 把手阴影效果 |
| --knob-border-color | 'rgba(0, 0, 0, 0.04)' | 把手边框色 |
| --knob-border-width | '0.5px' | 把手边框宽度 |
| --knob-transition | 'transform 0.3s cubic-bezier(0.45, 1, 0.4, 1), transform 0.3s cubic-bezier(0.4, 0.4, 0.25, 1.35)' | 把手过渡效果 |