# @duskmoon-dev/el-button 中文文档

规范地址：https://npmcn.com/package/%40duskmoon-dev/el-button/

版本：1\.10\.3
npm 元数据更新时间：2026-11-11T10:49:53.560Z
中文译文更新时间：2026-11-13T01:48:03.281Z
软件包许可：未声明

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40duskmoon-dev/el-button
原文对照：https://npmcn.com/package/%40duskmoon-dev/el-button/?lang=original
项目主页：https://github.com/duskmoon-dev/duskmoon-elements#readme
源码仓库：https://github.com/duskmoon-dev/duskmoon-elements

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：110 kB，17 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：2 个
- 首次发布：2026-01-04T07:17:34.920Z
- 最新版本发布：2026-11-11T10:49:53.173Z
- 近 30 天下载量：2583（2026-10-13 至 2026-11-11，npm 官方下载统计）
- 已发布版本数：54（近 12 个月 54 个）

## 中文简介

用于 DuskMoon 元素的自定义按钮组件 。 好,你别这样,

## 安装

```sh
npm install @duskmoon-dev/el-button
```

也可以使用：`pnpm add @duskmoon-dev/el-button`、`yarn add @duskmoon-dev/el-button`、`bun add @duskmoon-dev/el-button`

## README

# @duskmoon-dev/el-按钮

用于 DuskMoon 元素的自定义按钮组件 . 好,你别这样,

## 安装

```bash
bun add @duskmoon-dev/el-button
```

## 使用量

### 自动注册( 建议)

使用组件的最简单方式 - 只需导入即可:

```html
<!-- Via CDN -->
<script type="module" src="https://esm.sh/@duskmoon-dev/el-button/register"></script>

<!-- Now use the element -->
<el-dm-button>Click me</el-dm-button>
<el-dm-button variant="secondary">Secondary</el-dm-button>
<el-dm-button variant="outline" size="lg">Large Outline</el-dm-button>
```

或与一捆子:

```ts
import '@duskmoon-dev/el-button/register';
```

### 手工登记

```html
<script type="module">
  import { register } from '@duskmoon-dev/el-button';
  register();
</script>

<el-dm-button>Click me</el-dm-button>
```

## 备选案文

| 备选案文 | 说明 |
| --- | --- |
| `primary` | 主动作按钮( 默认) |
| `secondary` | 次要动作按钮 |
| `tertiary` | 第三级/ 下级按钮 |
| `ghost` | 透明背景按钮 |
| `outline` | 仅边框按钮 |

## 大小

| 大小 | 说明 |
| --- | --- |
| `xs` | 额外小型 |
| `sm` | 小型 |
| `md` | 中 (默认) |
| `lg` | 大块 |
| `xl` | 额外大项 |

## 形状

使用 `shape="circle"` 或者说 `shape="square"` 用于图标按钮。 奥米 `shape` 用于默认矩形按钮.

```html
<el-dm-button variant="outline" size="xs" shape="circle" aria-label="Add">
  <svg aria-hidden="true" width="16" height="16" viewBox="0 0 16 16">
    <path d="M8 2v12M2 8h12" stroke="currentColor" />
  </svg>
</el-dm-button>
<el-dm-button shape="square" aria-label="Add">
  <svg aria-hidden="true" width="16" height="16" viewBox="0 0 16 16">
    <path d="M8 2v12M2 8h12" stroke="currentColor" />
  </svg>
</el-dm-button>
```

## 属性

| 属性 | 类型 | 默认 | 说明 |
| --- | --- | --- | --- |
| `variant` | 字符串 | `primary` | 按钮变体 |
| `size` | 字符串 | `md` | 按钮大小 |
| `shape` | 字符串 | —— 说 | 可选形状:圆形或平方形 |
| `disabled` | 布尔 | `false` | 禁用按钮 |
| `type` | 字符串 | `button` | 按钮类型( 按钮、 提交、 重置) |
| `loading` | 布尔 | `false` | 显示装入旋转器 |
| `aria-label` | 字符串 | —— 说 | 只用于图标按钮的可访问名称 |
| `aria-labelledby` | 字符串 | —— 说 | 主机 DOM 树上标签元素的标识 |

## 槽数

| 槽 | 说明 |
| --- | --- |
| (默认) | 按钮内容 |
| `prefix` | 主要案文之前的内容 |
| `suffix` | 主文后的内容 |

## CSS 组件

| 编 | 说明 |
| --- | --- |
| `button` | 本地按钮元素 |
| `content` | 内容包装 |
| `prefix` | 前缀插槽包装器 |
| `suffix` | 后缀槽包装器 |
| `spinner` | 正在装入旋转器 |

## CSS 自定义属性

| 财产 | 说明 |
| --- | --- |
| `--dm-button-padding-x` | 水平粘贴 |
| `--dm-button-padding-y` | 垂直粘贴 |
| `--dm-button-font-size` | 字体大小 |
| `--dm-button-border-radius` | 边界半径 |

## 实例

### 带有图标

```html
<el-dm-button>
  <span slot="prefix">🚀</span>
  Launch
</el-dm-button>
```

### 装入状态

```html
<el-dm-button loading>Submitting...</el-dm-button>
```

### 可访问图标按钮

设定 `aria-label` 按钮。 标签与本地按钮同步, 包括渲染后所作的修改.

```html
<el-dm-button aria-label="Remove email">
  <svg aria-hidden="true" viewBox="0 0 24 24">
    <path d="M5 5L19 19M19 5L5 19" />
  </svg>
</el-dm-button>

<span id="remove-email-label">Remove email</span>
<el-dm-button aria-labelledby="remove-email-label">×</el-dm-button>
```

`aria-labelledby` 解析主机文档中的ID或包含阴影根并取出 优先于 `aria-label` 当目标存在时。 支持 ARIA 元素引用的浏览器 直接使用引用元素; 老浏览器使用其文本内容或 `aria-label`。 。 。 . 标签文本更改和替换标签元素是同步的. 没有两个属性, 时间档内容提供了无障碍名称.

### 提交表单

```html
<form>
  <el-dm-button type="submit">Submit Form</el-dm-button>
</form>
```

## 许可证

麻省理工学院

## 常见问题

### @duskmoon-dev/el-button 是什么？

用于 DuskMoon 元素的自定义按钮组件 。 好,你别这样,

### 如何安装 @duskmoon-dev/el-button？

在项目目录运行 npm install @duskmoon-dev/el-button，或使用 pnpm add / yarn add / bun add。

### @duskmoon-dev/el-button 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @duskmoon-dev/el-button 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @duskmoon-dev/el-button 可以商用吗？

@duskmoon-dev/el-button 使用 未声明 许可。package\.json 没有声明许可证。没有许可证的代码默认保留全部权利，商用前请联系作者或查看仓库中的 LICENSE 文件。以上为概括，不构成法律意见，请以许可原文为准。

### @duskmoon-dev/el-button 的下载量有多少？

根据 npm 官方下载统计，@duskmoon-dev/el-button 在 2026/10/13 – 2026/11/11 这 30 天内被下载 2,583 次，日均约 86 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @duskmoon-dev/el-button 还在维护吗？

最新版本 1\.10\.3 发布于 2026/11/11（2 天前）；至今共发布 54 个版本，其中过去 12 个月发布了 54 个；首次发布于 2026/01/04。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

