@delightstack/components

中文文档
2.2.0发布于 2026/11/12MITTypeScriptES Module构建来源已验证近 30 天下载 2702

Delightstack Svelte 5 组件库——无障碍动作,形式,媒体,导航,反馈,并显示组件.

中文使用文档
文档目录10 节
  1. 安装
  2. 使用量
  3. 公约
  4. 构成部分
  5. 他们
  6. 可选的同伴依赖关系
  7. 类型脚本
  8. 测试
  9. AI 编码代理
  10. 许可证

@ delightstack/ 组件

一个被打磨的 有意见的 斯维尔特5号 部分图书馆侧重于令人愉快 用户体验——50+可访问,可主题的组件以runes为基础,带有运动和 微互动从一开始就设计进去.

文档 : (原始内容存档于2018-10-21) (英语). docs. the delight.co • 妇女 现场演示 : (原始内容存档于2018-03-26). docs.thedelight.co/demo

安装

pnpm add @delightstack/components @delightstack/styles

在您的应用程序根部导入设计符( 例如 ) . src/routes/+layout.svelte:

import '@delightstack/styles';

需要斯维尔特 ^5.36.0. 与 SvelteKit 和独立 Vite + Svelte 项目合作.

使用量

所有组件都可以从单一的导入中获取——未使用组件为树形:

<script>
    import { Button, Input, BottomSheet } from '@delightstack/components';

    let name = $state('');
    let open = $state(false);

    async function save() {
        await fetch('/api/user', { method: 'POST', body: JSON.stringify({ name }) });
    }
</script>

<Input label="Name" bind:value={name} />
<!-- Promise-returning callbacks show a loading state automatically -->
<Button onclick={save}>Save</Button>
<Button outline onclick={() => (open = true)}>Filters</Button>

<BottomSheet bind:open snap_points={[0.5, 0.92]}>
    <p>Slide me around.</p>
</BottomSheet>

公约

  • 道具为蛇 case,回调为骆驼Case —— 说 snap_points, (中文(简体) ), full_width 对 onclick, (中文(简体) ), onchange. 数据与行为的视觉区分是故意的.
  • 召回道具, 不发送事件 . 返回承诺的回话会设置组件 直到他们安顿下来.
  • 双向绑定 与 bind:value,加特定组件的可绑定物,如 bind:open, (中文(简体) ), bind:snap,以及 bind:page。 。 。 .
  • 显示5个片段 用于命名的内容区域( c){#snippet header()}…{/snippet}) (中文(简体) ).

构成部分

类别构成部分
行动按钮、按钮组、 Modal、 提醒、 弹出器、 背景菜单、 门户、 命令Palette、 主题Togle
显示Agion, Avatar, Avatar Group, 日历, 图表, 代码, 比较, 计数器, 扩展, 列表, 列表项目, QR, SplitPane, Stat, 表, 时间线, 树, 打字机
反馈卡罗特、康佛提、进步、托阿斯特(图)toast()(中文(简体) )
表单复选框、 字段集、 文件加载、 窗体、 输入、 无线电、 无线电组、 范围、 评分、 选择、 切换
媒体木马、相册、图像、全景、PDF、视频
导航下盖、 面包屑、 花边、 台阶、 标签

每个组件都有一个 docs页面,有活的示例和完整的道具/事件/CSS变量/ 无障碍表格: docs.thedelight.co/组件/概览。 。 。 .

他们

从 CSS 自定义属性读取每个颜色、大小和运动值 @delightstack/styles,带有光和暗 内置的值。 通过超越品牌种子或任何单个标志来重新确定主题:

:root {
    /* Re-derives the whole palette from one brand color */
    --color-primary: #2563eb;

    /* …or override individual semantic tokens outright */
    --color-action: light-dark(#2563eb, #3b82f6);
    --radius-md: 0.5rem;
}

见 他们 财务报告和审定财务报表 设计托肯斯 向导.

可选的同伴依赖关系

少数媒体组件动态地导入更重的库——只有当您使用此工具时才安装它们 组件,并从它们的专用子路径中导入这两个:

构成部分同伴依赖关系从
Panoramathree@delightstack/components/panorama
PDFpdfjs-dist@delightstack/components/pdf
Videohls.js (仅限HLS来源)@delightstack/components

在 Vite dev 中,添加您使用的 optimizeDeps.include 故他们不因不在场而遭殃 可选依赖关系.

类型脚本

类型包括:无 @types/* 需要软件包。 主干船数据结构类型 切入点 :

import type { SelectOption, TableColumn, TreeNode, CalendarEvent } from '@delightstack/components';

包裹也装满了 .svelte 来源 dist/,因此编辑(和AI代理)得到 JSDoc对每个道具的描述.

测试

软件包的大部分逻辑都存在于 纯模块 与组件一起输出 - diff-model.ts, (中文(简体) ), selection.ts - 和那些携带 大部分测试: 没有活塞,没有DOM, 和可以逐行提出的规则.

这里没有DOM测试环境. 当行为真正属于 组件 财务报告和审定财务报表 在服务器上显示并显示标记:

import { render } from 'svelte/server';
import DiffViewer from './DiffViewer.svelte';

const html = render(DiffViewer, { props: { hunks } }).body;

DiffViewer.test.ts 这是先例——它检查一个动作的箭头方向,即 问两行在页面上相对坐在哪里,所以没有答案 型号。 仅针对这种案件,如果可以对纯子提出主张 换成模型,让它在那里.

AI 编码代理

设置 Claude Code, Cursor, Codex 和好友 在一个命令中正确使用此库 您的项目根 :

pnpm exec delightstack-agents

安装现成技能(.claude/skills/delightstack/SKILL.md并点出您的 AGENTS.md 临Τ Docs 也作为平面标记下发布 – 附加 .md 到任何文件页 URL, 或从 文件.delight.co/llms.txt见 AI 代理指南。 。 。 .

许可证

麻省理工学院

版本与发布记录

@delightstack/components 共发布 34 个版本,首次发布于 2026/06/29;过去 12 个月发布了 34 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
2.2.0latest2026/11/12今天
2.1.42026/11/12今天
2.1.32026/11/11今天
2.1.22026/11/111 天前
2.1.12026/11/101 天前
2.1.02026/11/102 天前

关于 @delightstack/components 的常见问题

@delightstack/components 是什么?

Delightstack Svelte 5 组件库——无障碍动作,形式,媒体,导航,反馈,并显示组件.

如何安装 @delightstack/components?

在项目目录运行 npm install @delightstack/components,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:svelte(^5.36.0)、@delightstack/styles(^1.3.1)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。它还提供命令行工具 delightstack-agents,可以用 npx delightstack-agents 直接运行。

@delightstack/components 支持 TypeScript 吗?

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

@delightstack/components 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@delightstack/components 可以商用吗?

@delightstack/components 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@delightstack/components 的下载量有多少?

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

@delightstack/components 还在维护吗?

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