返回项目目录
开发工具精选项目

Panda CSS

面向设计系统、在构建时提取样式的类型安全 CSS-in-JS 框架。

主要语言TypeScript
开源许可MIT
项目类型开发工具
维护状态活跃维护
OVERVIEW

项目概述

Panda CSS 使用静态分析、PostCSS 和代码生成,把类型安全的样式对象、设计令牌、Recipe 与 Layout Pattern 转换为现代原子 CSS,并避免在浏览器中动态注入样式。

Panda CSS 是 Chakra UI 团队维护、采用 MIT 许可证的构建时 CSS-in-JS 框架。它扫描项目中的 css、cva、Recipe、Pattern 和受支持 JSX Style Props,在构建阶段提取样式并通过 PostCSS 生成原子 CSS、CSS Variables 与 Cascade Layers。panda codegen 会根据配置生成 styled-system 目录,其中包含项目专属的类型、Token、Recipe、Pattern 和轻量类名组合函数;运行时只组合已生成的类名,不在浏览器中创建或注入新样式。Panda 同时支持设计令牌、语义令牌、多主题、响应式条件和可共享 Preset,重点服务于需要类型约束和长期治理的设计系统。

当前稳定版v1.11.5
生成方式Static Analysis + Codegen
输出Atomic CSS + CSS Variables
FEATURES

主要特点

Panda CSS 把类型安全的样式编写、设计令牌、组件变体与静态 CSS 输出连接成一套面向设计系统的工作流。

01

构建时静态提取

分析源码中的 Panda API 和受支持 Style Props,把可识别样式提前转换为 CSS 文件,而不是在浏览器中动态生成 Style Tag。

02

类型安全与自动补全

Codegen 将 CSS 属性、简写、Token、条件、Recipe 和 Pattern 转换为项目专属 TypeScript 类型,让错误更早暴露。

03

设计令牌与语义令牌

颜色、间距、字体、圆角和阴影可定义为 Token,并通过 Semantic Token 在不同主题、颜色模式和品牌间映射。

04

Recipe 与组件变体

cva、Config Recipe 和 Slot Recipe 可描述 Base、Variant、Compound Variant 与默认值,并生成类型安全的组件样式 API。

05

布局 Pattern

Stack、HStack、VStack、Grid、Flex、Container 和 Container Query 等 Pattern 提供可覆盖、可类型检查的高层布局原语。

06

现代 CSS 输出

使用原子类、CSS Variables 和 reset、base、tokens、recipes、utilities 等 Cascade Layer 组织最终样式。

07

JSX Style Props 与 styled

除 css 函数外,还能生成 React、Preact、Qwik、Solid 或 Vue 对应的 JSX 工具,通过 Style Props 和 styled 组件编写界面。

08

Preset 与共享配置

Token、Recipe、Pattern、Utility、Condition 和 Global CSS 可打包为 Preset,在组件库、Monorepo 和多个产品间复用。

USE CASES

适用场景

适合希望在 TypeScript 中获得样式与 Token 自动补全,同时又不想依赖浏览器端样式注入的产品和组件库。

企业设计系统

把品牌 Token、语义颜色、组件 Variant 和布局规范沉淀为可生成类型、可版本化的设计系统包。

类型安全的 React 产品

适合 SaaS、后台、协作工具和长期维护的 Web 应用,在组件代码中直接获得 CSS 与 Token 自动补全。

组件库与多 Variant 组件

Recipe 和 Slot Recipe 适合按钮、输入框、卡片、菜单等包含尺寸、外观、状态和多部件结构的组件。

多品牌与深浅主题

通过 Token、Semantic Token 与 CSS Variable 切换品牌和颜色模式,而无需复制整套组件样式。

多应用 Monorepo

共享 Preset 与生成配置,让多个应用复用同一设计语言,同时为各项目输出定制的 styled-system。

SSR 与静态渲染应用

样式在构建时输出为普通 CSS,适合服务端组件、服务端渲染和静态生成,但仍需按目标框架配置扫描路径。

EVALUATION

优点与注意事项

技术选型不仅要看能力,也要理解它带来的团队成本。

主要优点

Panda CSS 擅长的地方

  • CSS 属性、设计令牌、Recipe Variant 和 Pattern 都能获得类型提示
  • 样式在构建时生成,不依赖浏览器端动态注入 CSS
  • Token、Semantic Token 与 CSS Variable 适合多主题设计系统
  • Recipe 和 Slot Recipe 为复杂组件建立明确、可复用的变体 API
  • Preset 可在组件库和多个应用之间共享完整设计约束
  • 原子 CSS 与 Cascade Layers 让输出复用和样式优先级更可控

需要注意

采用前应考虑的问题

代码生成是核心依赖

styled-system 由配置生成,Token 或 Recipe 变化后必须重新 codegen;本地、CI、编辑器和发布流程都要保持生成步骤一致。

静态分析无法理解任意动态逻辑

运行时拼接属性名、从未知数据生成 Token 或隐藏在未识别封装中的样式可能不会被提取,应使用明确分支、Recipe、CSS Variable 或 staticCss。

扫描路径必须完整

include 漏掉组件、工作区包或特殊文件扩展会导致生产样式缺失;扫描范围过大则会降低生成速度并引入无关 CSS。

生成目录不应手工修改

styled-system 是构建产物,修改会在下次 codegen 时丢失。是否提交版本库应由团队统一,并确保发布包包含消费者需要的产物。

Recipe 类型需要提前设计

Atomic Recipe、Config Recipe 与 Slot Recipe 在共置、按需生成、响应式 Variant 和多部件能力上不同,选错后可能增加 CSS 或重构成本。

现代 CSS 需要目标环境验证

Panda 使用 Cascade Layers、CSS Variables 等现代能力,虽然可通过 PostCSS 扩展兼容性,仍应根据真实浏览器范围测试。

生态和人才储备较小

相较 Tailwind CSS,现成组件、教程、第三方插件和熟悉该工作流的开发者较少,团队需要承担更多设计系统建设成本。

QUICK START

快速开始

按照官方 Vite + React + TypeScript 流程配置 PostCSS、代码生成、设计令牌与类型安全 Recipe。

1创建 React 项目并初始化 Panda
bash
npm create vite@latest panda-app -- --template react-ts
cd panda-app
npm install
npm install -D @pandacss/dev
npx panda init --postcss
2配置扫描、类型和设计令牌
typescript
import { defineConfig } from "@pandacss/dev";

export default defineConfig({
  preflight: true,
  include: ["./src/**/*.{js,jsx,ts,tsx}"],
  exclude: [],
  jsxFramework: "react",
  outdir: "styled-system",
  strictTokens: true,
  theme: {
    extend: {
      tokens: {
        colors: {
          brand: { value: "#6d5dfc" },
          surface: { value: "#ffffff" },
          text: { value: "#0f172a" },
        },
      },
    },
  },
});
3配置生成脚本与 CSS Layer
json
{
  "scripts": {
    "prepare": "panda codegen",
    "dev": "vite",
    "build": "tsc -b && vite build",
    "preview": "vite preview"
  }
}
4在入口 CSS 声明层级
css
@layer reset, base, tokens, recipes, utilities;
5编写类型安全的样式与 Recipe
tsx
import { css, cva } from "../styled-system/css";

const button = cva({
  base: {
    display: "inline-flex",
    alignItems: "center",
    justifyContent: "center",
    borderRadius: "md",
    fontWeight: "semibold",
  },
  variants: {
    visual: {
      solid: { bg: "brand", color: "white" },
      outline: {
        borderWidth: "1",
        borderColor: "brand",
        color: "brand",
      },
    },
    size: {
      sm: { px: "3", py: "2", fontSize: "sm" },
      md: { px: "4", py: "3", fontSize: "md" },
    },
  },
  defaultVariants: {
    visual: "solid",
    size: "md",
  },
});

export function App() {
  return (
    <main
      className={css({
        minHeight: "100vh",
        display: "grid",
        placeItems: "center",
        bg: "surface",
        color: "text",
      })}
    >
      <button className={button()}>Hello Panda CSS</button>
    </main>
  );
}
6生成代码并验证生产构建
bash
npm run prepare
npm run dev

# 提交前执行完整构建
npm run build
npm run preview

下一步:把 panda.config.ts、Preset 和 Token 当作公共 API 管理;配置变化后重新运行 codegen,并在 CI 中验证生成与构建。动态值应使用 CSS Variable、明确的条件分支或 staticCss,不能假设静态分析器会执行任意业务逻辑。

ALTERNATIVES

类似项目

这些方案同样关注 Utility CSS、构建时提取或类型安全的设计系统,但在作者语法、代码生成和生态范围上不同。

COMPARISON

Panda CSS vs Tailwind CSS

Panda CSS 和 Tailwind CSS 都在构建阶段生成可复用的 Utility CSS。Panda 以类型安全的对象、Codegen、Token 和 Recipe 为中心,Tailwind 则以直接写在模板中的类名和统一官方语法见长。

比较维度Panda CSSTailwind CSS
作者语法TypeScript 样式对象、函数和 JSX Style PropsHTML、JSX 或模板中的 Utility class 字符串
类型安全Codegen 为 CSS、Token、Recipe 和 Pattern 生成类型主要依赖编辑器补全、类名校验和官方工具链
设计令牌Token、Semantic Token、类型与 CSS Variable 深度集成通过 Theme Variable 和 Utility 构建设计令牌体系
组件变体内置 Atomic、Config 与 Slot Recipe通常在组件层组合类名或搭配 CVA 等工具
构建模型AST 静态分析、PostCSS 与 styled-system Codegen扫描候选类名并按需生成官方 Utility
浏览器运行时轻量函数组合已生成类名,不注入样式通常直接使用静态类名,不需要样式运行时
框架范围重点服务 JavaScript/TypeScript 与受支持 JSX 框架可扫描几乎任何输出 HTML 的模板和技术栈
更适合类型严格、多主题、复杂组件库与企业设计系统快速产品开发、跨技术栈团队和成熟 Utility 生态
如何选择

如果团队希望在模板中直接组合类名、重视庞大生态和跨语言模板支持,Tailwind CSS 通常更简单;如果核心需求是强类型 Token、Recipe、Slot Recipe、多主题和可发布的设计系统 Preset,Panda CSS 更有结构。两者都能输出高效静态 CSS,最终应以组件复杂度、生成流程、团队习惯和升级治理成本选择。

VERIFICATION

资料核验

版本、维护信息与本页采用的官方资料来源。

最后核验2026 年 7 月 27 日
核验版本Panda CSS v1.11.5
内容维护Docs100 编辑整理
项目维护状态活跃维护

本页依据 Panda CSS 官方概述、Vite 安装、样式编写、Recipe、Pattern 和 Styled System 文档,以及官方源码仓库整理。快速开始采用 @pandacss/dev、PostCSS、prepare codegen 与官方 Layer 顺序;配置和生成 API 会持续演进,生产使用前应再次核对目标框架集成与迁移说明。

维护状态核验2026 年 7 月 26 日 · 最近可见代码活动:2026 年 7 月 24 日

官方仓库未归档,核验时最近可见的代码活动日期为 2026 年 7 月 24 日。该状态表示项目近期仍有公开维护活动,不代表固定发布频率或长期支持承诺。

查看官方仓库