@duskmoon-dev/elements

中文文档
1.10.3发布于 2026/11/11TypeScriptESM + CJS构建来源已验证近 30 天下载 2616

All DuskMoon custom elements in one package

原始使用文档
文档目录17 节
  1. Installation
  2. Usage
  3. Auto-Register via CDN (Recommended)
  4. Auto-Register with Bundler
  5. Manual Registration
  6. Using Element Classes
  7. Included Elements
  8. Basic Components
  9. Form Elements
  10. Feedback & Display
  11. Navigation
  12. Surfaces & Containers
  13. Data Display
  14. Re-exported Utilities
  15. Individual Packages
  16. TypeScript Support
  17. License

@duskmoon-dev/elements

All DuskMoon custom elements in one package.

Installation

bun add @duskmoon-dev/elements

Usage

The simplest way to use all elements - just add a script tag:

<!-- Via CDN - registers all elements automatically -->
<script type="module" src="https://esm.sh/@duskmoon-dev/elements/register"></script>

<!-- Now all elements are available -->
<el-dm-button variant="primary">Click me</el-dm-button>
<el-dm-card>
  <h2>Card Title</h2>
  <p>Card content</p>
</el-dm-card>
<el-dm-input label="Name" placeholder="Enter your name"></el-dm-input>

Auto-Register with Bundler

// Just import to register all elements
import '@duskmoon-dev/elements/register';

Manual Registration

import { registerAll } from '@duskmoon-dev/elements';

// Register all elements
registerAll();

Or register individual elements:

import { registerButton, registerCard, registerTable } from '@duskmoon-dev/elements';

registerButton();
registerCard();
registerTable();

Using Element Classes

import { ElDmButton, ElDmTable, ElDmTabs } from '@duskmoon-dev/elements';

// Access element classes directly
const button = document.querySelector('el-dm-button') as ElDmButton;
button.variant = 'primary';

Included Elements

Basic Components

ElementTagDescription
Button<el-dm-button>Button with variants, sizes, loading state
Card<el-dm-card>Container with header, body, footer slots

Form Elements

ElementTagDescription
Input<el-dm-input>Text input with validation states
Switch<el-dm-switch>Toggle switch control
Slider<el-dm-slider>Range slider with optional range mode
Autocomplete<el-dm-autocomplete>Input with suggestion dropdown
Datepicker<el-dm-datepicker>Date picker with calendar popup
FileUpload<el-dm-file-upload>File upload with drag-and-drop
Form<el-dm-form>Form container with validation

Feedback & Display

ElementTagDescription
Alert<el-dm-alert>Alert messages with severity variants
Dialog<el-dm-dialog>Modal dialog with backdrop
Badge<el-dm-badge>Status badges and counters
Chip<el-dm-chip>Tags and chips with optional delete
Tooltip<el-dm-tooltip>Hover tooltips
Progress<el-dm-progress>Progress bars and indeterminate spinners
Markdown<el-dm-markdown>Markdown renderer with syntax highlighting

Navigation

ElementTagDescription
Tabs<el-dm-tabs>Tabbed interface
Menu<el-dm-menu>Dropdown and context menus
Navbar<el-dm-navbar>Navigation bar
Drawer<el-dm-drawer>Slide-out drawer panel
Breadcrumbs<el-dm-breadcrumbs>Breadcrumb navigation
Pagination<el-dm-pagination>Page navigation controls
Stepper<el-dm-stepper>Step indicator for wizards
BottomNavigation<el-dm-bottom-navigation>Mobile bottom navigation

Surfaces & Containers

ElementTagDescription
Accordion<el-dm-accordion>Collapsible content sections
Popover<el-dm-popover>Floating content popup
BottomSheet<el-dm-bottom-sheet>Mobile bottom sheet

Data Display

ElementTagDescription
Datetime<el-dm-datetime>Display-only ISO date and datetime formatter
Table<el-dm-table>Data table with sorting, pagination, selection

Re-exported Utilities

This package also re-exports utilities from @duskmoon-dev/el-base:

import {
  BaseElement,
  css,
  combineStyles,
  cssVars,
  defaultTheme,
  resetStyles,
} from '@duskmoon-dev/elements';

Individual Packages

If you only need specific elements, install them individually for smaller bundle size:

PackageCDN URL
@duskmoon-dev/el-buttonhttps://esm.sh/@duskmoon-dev/el-button/register
@duskmoon-dev/el-cardhttps://esm.sh/@duskmoon-dev/el-card/register
@duskmoon-dev/el-inputhttps://esm.sh/@duskmoon-dev/el-input/register
@duskmoon-dev/el-datetimehttps://esm.sh/@duskmoon-dev/el-datetime/register
@duskmoon-dev/el-tablehttps://esm.sh/@duskmoon-dev/el-table/register
@duskmoon-dev/el-tabshttps://esm.sh/@duskmoon-dev/el-tabs/register
@duskmoon-dev/el-markdownhttps://esm.sh/@duskmoon-dev/el-markdown/register

Example using individual packages:

<!-- Only load the button element -->
<script type="module" src="https://esm.sh/@duskmoon-dev/el-button/register"></script>

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

Or with a bundler:

import '@duskmoon-dev/el-button/register';
import '@duskmoon-dev/el-table/register';

TypeScript Support

All element types and interfaces are exported:

import type {
  // Property types from core
  Size,
  Variant,
  ValidationState,

  // Element-specific types
  TableColumn,
  TableRow,
  AutocompleteOption,
  BreadcrumbItem,
  PopoverPlacement,
  TabsVariant,
} from '@duskmoon-dev/elements';

License

MIT

版本与发布记录

@duskmoon-dev/elements 共发布 53 个版本,首次发布于 2026/01/04;过去 12 个月发布了 53 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
1.10.3latest2026/11/112 天前
1.10.22026/10/2222 天前
1.10.12026/10/1627 天前
1.10.02026/10/1628 天前
1.9.32026/10/131 个月前
1.9.22026/10/131 个月前

关于 @duskmoon-dev/elements 的常见问题

@duskmoon-dev/elements 是什么?

All DuskMoon custom elements in one package

如何安装 @duskmoon-dev/elements?

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

@duskmoon-dev/elements 支持 TypeScript 吗?

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

@duskmoon-dev/elements 支持 ESM 还是 CommonJS?

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

@duskmoon-dev/elements 可以商用吗?

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

@duskmoon-dev/elements 的下载量有多少?

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

@duskmoon-dev/elements 还在维护吗?

最新版本 1.10.3 发布于 2026/11/11(2 天前);至今共发布 53 个版本,其中过去 12 个月发布了 53 个;首次发布于 2026/01/04。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。