安装与接入

在宿主应用中正确接入 @downcity/ui 的推荐方式

安装与接入

这一页只解决一件事:如何把 @downcity/ui 正确接入到你的 React + Tailwind 应用里。

安装包

npm install @downcity/ui

引入样式

@import "tailwindcss";
@import "@downcity/ui/source.css";
@import "@downcity/ui/styles.css";

推荐顺序:

  1. tailwindcss
  2. @downcity/ui/source.css
  3. @downcity/ui/styles.css
  4. 你的宿主应用全局样式

为什么要同时引入两个入口

@downcity/ui/source.css

  • 只负责声明 Tailwind 扫描来源
  • 让宿主应用能拿到 UI SDK 组件内部用到的 utility class
  • 不注入主题色和基础层样式

@downcity/ui/styles.css

  • 负责主题变量和基础层
  • 提供 backgroundforegroundpopoverborderring 等语义 token
  • bg-backgroundtext-foregroundbg-popover 这类类名可以直接工作

最小可运行示例

import { Button, Card, CardContent, CardHeader, CardTitle, Input, Label } from "@downcity/ui";

export function AgentSettingsCard() {
  return (
    <Card className="max-w-xl">
      <CardHeader>
        <CardTitle>Agent Settings</CardTitle>
      </CardHeader>
      <CardContent className="flex flex-col gap-4">
        <div className="flex flex-col gap-2">
          <Label htmlFor="agent-name">Agent 名称</Label>
          <Input id="agent-name" placeholder="research-writer" />
        </div>
        <div className="flex justify-end">
          <Button size="sm">保存</Button>
        </div>
      </CardContent>
    </Card>
  );
}

接入约定

  • className 主要负责布局、宽度、间距和页面局部调整
  • 优先用组件自带的 variantsize 和结构组合,不要在页面层重做一套视觉系统
  • 浮层组件优先走原生组合方式,例如 Dialog + DialogContent + DialogHeader

下一步