介绍
shadcn/ui 是一套设计精美、易于访问的组件和一个代码分发平台。可与您喜爱的框架和 AI 模型配合使用。开源。开放代码。
这不是一个组件库。它是您构建组件库的方式。
您知道大多数传统组件库的工作方式:您从 NPM 安装一个包,导入组件,然后在您的应用程序中使用它们。
当您需要自定义组件以适应您的设计系统或需要库中未包含的组件时,这种方法就显得不足了。通常,您最终会包装库组件、编写变通方法来覆盖样式,或者混合来自不同库且 API 不兼容的组件。
这就是 shadcn/ui 旨在解决的问题。它围绕以下原则构建
- 开放代码:组件代码的顶层可以进行修改。
- 组合:每个组件都使用通用的、可组合的接口,使其具有可预测性。
- 分发:扁平文件模式和命令行工具使组件分发变得容易。
- 精美的默认样式:精心选择的默认样式,让您开箱即用地获得出色的设计。
- AI 就绪:开放代码供 LLM 读取、理解和改进。
开放代码
shadcn/ui 将实际的组件代码交给您。您可以完全控制自定义和扩展组件以满足您的需求。这意味着
- 完全透明:您可以清楚地看到每个组件是如何构建的。
- 易于自定义:修改组件的任何部分以适应您的设计和功能需求。
- AI 集成:访问代码使 LLM 可以直接读取、理解甚至改进您的组件。
在典型的库中,如果您需要更改按钮的行为,则必须覆盖样式或包装组件。使用 shadcn/ui,您只需直接编辑按钮代码。
组合
shadcn/ui 中的每个组件都共享一个通用的、可组合的接口。如果某个组件不存在,我们会将其引入,使其可组合,并调整其样式以匹配设计系统的其余部分并与之协同工作。
共享的、可组合的接口意味着它对于您的团队和 LLM 来说都是可预测的。您无需为每个新组件学习不同的 API。即使是第三方组件也是如此。
分发
shadcn/ui 也是一个代码分发系统。它定义了组件的模式和一个用于分发它们的 CLI。
- 模式:一种扁平文件结构,定义了组件、它们的依赖项和属性。
- CLI:一个命令行工具,用于在具有跨框架支持的项目中分发和安装组件。
您可以使用该模式将您的组件分发到其他项目,或者让 AI 根据现有模式生成全新的组件。
精美的默认样式
shadcn/ui 附带了大量组件,这些组件都经过精心选择了默认样式。它们旨在单独看起来美观,并且作为一个一致的系统协同工作
- 开箱即用:您的 UI 具有干净简洁的外观,无需额外工作。
- 统一设计:组件自然地相互契合。每个组件都旨在与其他组件匹配,从而保持 UI 的一致性。
- 易于自定义:如果您想更改某些内容,可以轻松地覆盖和扩展默认值。
AI 就绪
shadcn/ui 的设计使 AI 工具可以轻松地与您的代码协同工作。其开放代码和一致的 API 允许 AI 模型读取、理解甚至生成新组件。
AI 模型可以学习您的组件如何工作,并提出改进建议,甚至创建与您现有设计集成的新组件。