Flowbite logo

Flowbite

基于 Tailwind CSS 的开源组件库,提供丰富的 UI 组件和框架集成

ReactTailwind CSS开源组件库多框架支持

Flowbite 是 Tailwind 生态最成熟的第三方组件库之一,提供 600+ 预构建 UI 组件和完整交互系统,支持 React、Vue、Svelte、Angular 等主流框架。

Flowbite

基于 Tailwind CSS 的开源组件库,提供丰富的 UI 组件、交互元素和框架集成。

技术简介说明

Flowbite 是一个基于 Tailwind CSS 的开源组件生态系统,提供超过 600 个预构建 UI 组件和完整的交互系统。它是 Tailwind 生态中最成熟的第三方组件库之一,覆盖了从基础 HTML 元素到复杂交互组件(模态框、下拉菜单、轮播等)的完整范围。

Flowbite 的核心优势在于其广泛的多框架支持和丰富的组件覆盖。它不仅提供基础 CSS 组件,还通过 JavaScript 插件处理交互行为,同时为 React、Vue、Svelte、Angular、Next.js、Nuxt、Remix、Astro、Laravel、Solid.js 等主流框架提供专属适配包。

截至 2025 年底,Flowbite 在 GitHub 上拥有约 33K stars,是 Tailwind 生态中社区规模最大的第三方组件库之一。它采用 MIT 许可证,并提供可选的 Pro 付费版本用于商业支持。

基本信息

快速上手

安装

# 安装 Flowbite 和 Flowbite 插件
npm install flowbite
 
# 在 tailwind.config.js 中配置
// tailwind.config.js
module.exports = {
  content: [
    "./node_modules/flowbite/**/*.js"
  ],
  plugins: [
    require('flowbite/plugin')
  ]
}

基础配置

<!-- CDN 快速引入 -->
<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/flowbite.min.css" rel="stylesheet" />
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/flowbite.min.js"></script>

最小示例

<!-- 按钮 -->
<button class="text-white bg-blue-700 hover:bg-blue-800 focus:ring-4 focus:ring-blue-300 font-medium rounded-lg text-sm px-5 py-2.5 dark:bg-blue-600 dark:hover:bg-blue-700 focus:outline-none dark:focus:ring-blue-800">
  默认按钮
</button>
 
<!-- 模态框 -->
<button data-modal-target="default-modal" data-modal-toggle="default-modal"
  class="block text-white bg-blue-700 hover:bg-blue-800 focus:ring-4 focus:outline-none focus:ring-blue-300 font-medium rounded-lg text-sm px-5 py-2.5 text-center dark:bg-blue-600 dark:hover:bg-blue-700 dark:focus:ring-blue-800"
  type="button">
  打开模态框
</button>
 
<div id="default-modal" tabindex="-1" aria-hidden="true"
  class="hidden overflow-y-auto overflow-x-hidden fixed top-0 right-0 left-0 z-50 justify-center items-center w-full md:inset-0 h-[calc(100%-1rem)] max-h-full">
  <div class="relative p-4 w-full max-w-2xl max-h-full">
    <div class="relative bg-white rounded-lg shadow-sm dark:bg-gray-700">
      <div class="flex items-center justify-between p-4 md:p-5 border-b rounded-t dark:border-gray-600 border-gray-200">
        <h3 class="text-xl font-semibold text-gray-900 dark:text-white">模态框标题</h3>
      </div>
      <div class="p-4 md:p-5 space-y-4">
        <p class="text-base leading-relaxed text-gray-500 dark:text-gray-400">模态框内容</p>
      </div>
    </div>
  </div>
</div>

核心概念与架构

分层架构

Flowbite 采用清晰的分层架构:

  1. 基础层:基于 Tailwind CSS 工具类的纯 CSS 组件
  2. 交互层:JavaScript 插件处理模态框、下拉菜单、轮播等交互行为
  3. 框架层:针对 React、Vue、Svelte 等框架的专属封装包
  4. 图标层:Flowbite Icons 提供 SVG 图标库
  5. 区块层:Flowbite Blocks 提供预组合的页面区块

组件模式

<!-- 所有组件都是 Tailwind 类名 + data 属性 -->
<div data-accordion="collapse">
  <h2 id="accordion-heading">
    <button type="button"
      class="flex items-center justify-between w-full p-5 font-medium rtl:text-right text-gray-500 border border-b-0 border-gray-200 rounded-t-xl focus:ring-4 focus:ring-gray-200 dark:focus:ring-gray-800 dark:border-gray-700 dark:text-gray-400 hover:bg-gray-100 dark:hover:bg-gray-800 gap-3"
      data-accordion-target="#accordion-body"
      aria-expanded="true"
      aria-controls="accordion-body">
      <span>手风琴标题</span>
    </button>
  </h2>
  <div id="accordion-body" class="hidden" aria-labelledby="accordion-heading">
    <div class="p-5 border border-b-0 border-gray-200 dark:border-gray-700 dark:bg-gray-900">
      内容区域
    </div>
  </div>
</div>

核心特性

  • 600+ 组件:覆盖按钮、表单、导航、模态框、轮播、卡片等
  • 多框架支持:React、Vue、Svelte、Angular、Next.js、Nuxt、Remix、Astro、Laravel、Solid.js
  • JavaScript 交互:内置插件处理模态框、下拉菜单、轮播等交互
  • 暗色模式:所有组件支持 dark: 前缀切换
  • RTL 支持:支持从右到左的布局方向
  • Figma 设计文件:免费的 Figma 设计系统
  • Flowbite Icons:配套 SVG 图标库
  • Flowbite Blocks:预组合的页面区块模板
  • Pro 版本:商业支持和高级组件

生态图

核心生态

项目说明
Flowbite核心 CSS/JS 组件库
Flowbite ReactReact 组件封装
Flowbite VueVue 组件封装
Flowbite SvelteSvelte 组件封装
Flowbite AngularAngular 组件封装
Flowbite IconsSVG 图标库
Flowbite Blocks预组合页面区块

框架集成

框架包名状态
Reactflowbite-react✅ 官方维护
Vueflowbite-vue✅ 官方维护
Svelteflowbite-svelte✅ 社区维护
Angularflowbite-angular✅ 官方维护
Next.js通过 React 包✅ 支持
Nuxt通过 Vue 包✅ 支持
Remix通过 React 包✅ 支持
Astro原生支持✅ 支持
LaravelBlade 模板✅ 官方文档
Solid.jsflowbite-solid✅ 社区维护

相关工具

工具说明
Flowbite GPTAI 辅助生成 Flowbite 组件
Figma 设计系统免费 Figma 文件
Flowbite Pro商业支持和高级模板

适用场景

  • 快速原型开发:600+ 组件即拿即用,快速搭建界面
  • 营销网站/着陆页:丰富的模板和组件覆盖
  • 管理后台/仪表盘:表格、表单、导航等组件齐全
  • 电商网站:产品卡片、购物车、结账流程组件
  • 博客/内容站:文章列表、分页、侧边栏组件
  • 多框架团队:统一的组件风格跨框架复用
  • Tailwind CSS 项目:原生集成,最佳搭配

开发与工程化

开发流程

  1. 通过 npm 安装 Flowbite 依赖
  2. 配置 Tailwind CSS 引入 Flowbite 插件
  3. 按需使用 HTML + Tailwind 类名组合组件
  4. 引入 Flowbite JavaScript 处理交互行为

框架开发

# React 项目
npm install flowbite-react
 
# Vue 项目
npm install flowbite-vue
 
# Svelte 项目
npm install flowbite-svelte

构建部署

Flowbite 作为 Tailwind CSS 插件,构建流程与标准 Tailwind 项目一致:

npm run build  # Tailwind 编译 + 项目构建

Tree-shaking

Flowbite 支持按需导入:

// React
import { Modal, Dropdown } from 'flowbite-react'
 
// Vue
import { FwbModal, FwbDropdown } from 'flowbite-vue'

性能与安全

性能特点

维度说明
CSS 体积通过 Tailwind PurgeCSS 优化
JS 体积约 30KB(gzip),按需加载
运行时轻量 DOM 操作,无框架依赖
SSR 兼容React/Vue/Svelte 包支持 SSR

优化建议

  • 使用框架包进行 Tree-shaking
  • 避免重复引入 CSS 和 JS
  • 对大型组件使用动态导入
  • 生产环境确保 PurgeCSS 启用

安全注意事项

  • Flowbite 不处理用户输入的安全问题
  • 注意 XSS 防护,避免直接使用 innerHTML
  • 模态框等交互组件注意焦点管理

技术对比

维度FlowbiteDaisyUIshadcn/uiPreline UI
组件数量600+50+ 主题组件50+840+
底层Tailwind CSSTailwind CSSTailwind + RadixTailwind CSS
JS 交互内置插件纯 CSS(无 JS)客户端组件内置插件
框架支持广泛多框架React 优先多框架
GitHub Stars~33K~35K~118K~6.3K
许可证MITMITMITMIT
Pro 版本
Figma✅ 免费⚠️ 社区⚠️ 社区✅ 免费
代码所有权库依赖库依赖复制源码库依赖

关键差异

  • vs DaisyUI:Flowbite 组件更丰富,含 JS 交互;DaisyUI 更轻量,纯 CSS
  • vs shadcn/ui:shadcn 给予完全代码所有权;Flowbite 是传统库依赖模式
  • vs Preline UI:Flowbite 社区更大,框架包更成熟;Preline 组件更多

最佳实践

组件使用

  1. 按需导入:使用框架包的具名导入
  2. 避免 CDN 生产:生产环境始终使用 npm 安装
  3. 统一组件风格:在一个项目中保持一致使用 Flowbite 或 shadcn
  4. 自定义主题:通过 Tailwind 配置自定义 Flowbite 主题

性能优化

// ✅ 推荐:按需导入
import { Modal } from 'flowbite-react'
 
// ❌ 避免:整体导入
import Flowbite from 'flowbite-react'

常见陷阱

  • 忘记在 tailwind.config.js 中添加 Flowbite 的 content 路径
  • 忘记引入 Flowbite JavaScript 导致交互组件失效
  • CDN 版本和 npm 版本混用导致样式冲突

技术局限与边界

限制说明
JS 依赖交互组件需要 Flowbite JavaScript
传统库模式无法像 shadcn/ui 那样完全拥有代码
深度定制主题定制受 Tailwind 配置限制
样式覆盖过度覆盖类名可能导致样式冲突
Pro 功能部分高级模板需要付费
版本锁定作为 npm 依赖存在版本升级风险

不太适合的场景

  • 需要完全代码所有权的项目(考虑 shadcn/ui)
  • 不使用 Tailwind CSS 的项目
  • 追求极简 bundle 大小的项目(考虑 DaisyUI)
  • 纯 CSS 方案需求(考虑 DaisyUI)

学习资源

官方资源

框架文档

社区资源

2026 年现状

最新版本

版本亮点
v3.0.0支持 Tailwind CSS v4

发展趋势

  • Tailwind CSS v4 支持:持续跟进 Tailwind 最新版本
  • AI 集成:推出 Flowbite GPT 辅助生成组件
  • 框架生态扩展:持续完善各框架的组件封装
  • Pro 版本:提供更多商业模板和支持

社区活跃度

  • 33K+ GitHub Stars
  • 活跃的多框架社区
  • 持续的版本更新

未来路线图

  • 更多 AI 驱动的开发工具
  • 扩展 Blocks 模板库
  • 改进可访问性支持
  • 优化性能和小包体积