acl-web 组件
本地Web组件库 升 anduin 设计系统的TypeScript.
安装
npm i @duyluonganduin/acl-web-components
设置
1. 进口部件
import '@duyluonganduin/acl-web-components'
2. 进口设计标志(所需)
令牌文件设置所有 CSS 自定义属性( S)--color-*, (中文(简体) ), --text-*等) 打开 :root。必须从您的应用根导入一次.
@import '@duyluonganduin/acl-web-components/tokens.css';
或在联署材料中:
import '@duyluonganduin/acl-web-components/tokens.css'
尾风集成
尾风 v3
添加预设以将您的 Tailwind 主题与所有设计符号相扩展 :
// tailwind.config.js
import aclPreset from '@duyluonganduin/acl-web-components/tailwind-preset'
export default {
presets: [aclPreset],
content: ['./src/**/*.{html,js,ts,jsx,tsx}'],
}
/* main.css */
@import '@duyluonganduin/acl-web-components/tokens.css';
@tailwind base;
@tailwind components;
@tailwind utilities;
尾风 v4
导入 CSS 主题桥而不是配置预设 :
/* main.css */
@import "tailwindcss";
@import "@duyluonganduin/acl-web-components/tokens.css";
@import "@duyluonganduin/acl-web-components/tailwind-theme.css";
没有 tailwind.config.js 需要改变.
使用基于符号的通用类
一旦设置, 您可以直接使用符号值作为 Tailwind 类 :
<p class="text-13 font-medium text-primary-4 leading-20">Heading</p>
<div class="bg-gray-1 rounded-lg shadow-2 p-16 gap-8 flex">...</div>
<span class="text-danger-4 font-semibold">Error message</span>
构成部分
在 HTML 中直接使用组件——它们工作在任何框架中,因为它们是标准自定义元素.
<anduin-button appearance="filled" variant="primary">Save</anduin-button>
<anduin-input placeholder="Search..."></anduin-input>
<anduin-spinner size="small"></anduin-spinner>
框架整合
反应 :
import '@duyluonganduin/acl-web-components'
import '@duyluonganduin/acl-web-components/tokens.css'
export default function App() {
return (
<div>
<anduin-button appearance="filled" variant="primary">Click me</anduin-button>
<anduin-input placeholder="Enter text..."></anduin-input>
</div>
)
}
阴:
<script setup>
import '@duyluonganduin/acl-web-components'
import '@duyluonganduin/acl-web-components/tokens.css'
</script>
<template>
<anduin-button appearance="filled" variant="primary">Click me</anduin-button>
<anduin-input placeholder="Enter text..."></anduin-input>
</template>
TypeScript + React — JSX 类型
货船 dist/react.d.ts 用于增加 React.JSX.IntrinsicElements 因此类型脚本接受全部 anduin-* 要素 .tsx 文件没有出错.
以两种方式之一启用它:
备选案文A—— tsconfig.json (建议,适用于整个项目):
{
"compilerOptions": {
"types": ["@duyluonganduin/acl-web-components/react"]
}
}
备选案文B——参考指示 (每个文件或全局文件) .d.ts:
/// <reference types="@duyluonganduin/acl-web-components/react" />
一旦启用,所有组件道具都会被打入:
<anduin-button appearance="filled" variant="primary" disabled>
Save
</anduin-button>
<anduin-input value={query} placeholder="Search..." status="valid"></anduin-input>
参考文献
| 构成部分 | 标记 | 密钥属性 |
|---|---|---|
| 徽标 | <anduin-badge> | variant |
| 徽章计数 | <anduin-badge-count> | variant, (中文(简体) ), count |
| 按钮 | <anduin-button> | appearance, (中文(简体) ), variant (默认 : gray0, (中文(简体) ), size, (中文(简体) ), disabled, (中文(简体) ), loading, (中文(简体) ), href, (中文(简体) ), pill, (中文(简体) ), full-width, (中文(简体) ), start-icon, (中文(简体) ), end-icon |
| 点名 | <anduin-callout> | variant |
| 复选框 | <anduin-checkbox> | checked, (中文(简体) ), disabled, (中文(简体) ), indeterminate, (中文(简体) ), readonly, (中文(简体) ), inputid |
| 分隔符 | <anduin-divider> | direction |
| 点 | <anduin-dot> | variant |
| 外地 | <anduin-field> | orientation |
| 外地标签 | <anduin-field-label> | htmlfor, (中文(简体) ), required |
| 字段说明 | <anduin-field-description> | —— 说 |
| 字段错误 | <anduin-field-error> | —— 说 |
| 外地小组 | <anduin-field-group> | —— 说 |
| 图标 | <anduin-icon> | name, (中文(简体) ), size (12个小) 16 个默认 - 20个大型24个 |
| 投入 | <anduin-input> | value, (中文(简体) ), size, (中文(简体) ), disabled, (中文(简体) ), readonly, (中文(简体) ), placeholder, (中文(简体) ), inputid, (中文(简体) ), status |
| 内置编辑 | <anduin-inline-edit> | value, (中文(简体) ), placeholder, (中文(简体) ), size (单位:千美元)small编号 :medium, (中文(简体) ), mode, (中文(简体) ), disabled, (中文(简体) ), click-to-edit, (中文(简体) ), edit-label· ; .validate 财产; edit() |
| 装入状态 | <anduin-loading-state> | height |
| 进展 | <anduin-progress> | percent, (中文(简体) ), height |
| 斯凯莱通 | <anduin-skeleton> | effect, (中文(简体) ), shape, (中文(简体) ), height, (中文(简体) ), width, (中文(简体) ), duration, (中文(简体) ), font-size |
| 旋转器 | <anduin-spinner> | size, (中文(简体) ), percent |
| AI 螺旋桨 | <anduin-ai-spinner> | state (单位:千美元)loading编号 :still, (中文(简体) ), size (px, 默认 20) |
| 菜单 | <anduin-menu> | placement, (中文(简体) ), open |
| 菜单项目 | <anduin-menu-item> | icon, (中文(简体) ), variant, (中文(简体) ), disabled |
| 过量 | <anduin-popover> | placement, (中文(简体) ), open |
| 标签 | <anduin-tabs> | default-value, (中文(简体) ), value, (中文(简体) ), fill |
| 标签列表 | <anduin-tabs-list> | alignment |
| 标签触发器 | <anduin-tab-trigger> | value, (中文(简体) ), start-icon, (中文(简体) ), disabled, (中文(简体) ), show-badge, (中文(简体) ), badge-count |
| 标签内容 | <anduin-tab-content> | value |
| 标记 | <anduin-tag> | variant, (中文(简体) ), icon, (中文(简体) ), disabled |
| 标记关闭 | <anduin-tag-close> | —— 说 |
| 文本区域 | <anduin-textarea> | value, (中文(简体) ), disabled, (中文(简体) ), readonly, (中文(简体) ), placeholder, (中文(简体) ), inputid, (中文(简体) ), rows, (中文(简体) ), status |
| 切换组 | <anduin-toggle-group> | mode (单位:千美元)single编号 :multiple, (中文(简体) ), default-value, (中文(简体) ), value, (中文(简体) ), size, (中文(简体) ), variant, (中文(简体) ), gap |
| 切换分组项目 | <anduin-toggle-group-item> | value, (中文(简体) ), start-icon, (中文(简体) ), disabled |
| 工具提示 | <anduin-tooltip> | placement, (中文(简体) ), disabled |
| 工具提示触发器 | <anduin-tooltip-trigger> | —— 说 |
| 工具提示内容 | <anduin-tooltip-content> | —— 说 |
| 这个嘛 | <anduin-well> | variant |
| 关闭 | <anduin-well-close> | —— 说 |
软件包导出
| 导入路径 | 目录 |
|---|---|
@duyluonganduin/acl-web-components | 所有组件类(自动注册自定义元素) |
@duyluonganduin/acl-web-components/tokens.css | 所有设计符的 CSS 自定义属性 |
@duyluonganduin/acl-web-components/tailwind-preset | 尾风 页:1 预设 |
@duyluonganduin/acl-web-components/tailwind-theme.css | 尾风 页:1 @theme inline 桥 |
@duyluonganduin/acl-web-components/react | 反应JSX类型(IntrinsicElements 向所有人开放 anduin-* (单位:千美元) |
发展
npm install
npm run storybook # Component dev server → http://localhost:6006
npm run build # Type-check + Vite build → dist/
npm run build-storybook # Static Storybook export