flowbite is a free, open source design & prototyping project written in HTML and released under MIT. It has 9,357 GitHub stars, 862 forks and 257 open issues, and was last pushed 3 months ago. On this registry it ranks #14 of 28 tracked projects in Design & Prototyping, with 5 head-to-head comparisons available.

What is flowbite?

Flowbite is an open-source UI component library and front-end development framework built on top of Tailwind CSS, intended for developers and design teams who want ready-made components rather than writing every utility class by hand.

What it is

Flowbite is a component library and front-end development framework that sits on top of Tailwind CSS. It installs into an existing Tailwind project as a plugin and ships a set of web components built with Tailwind's utility classes, together with the JavaScript that powers the interactive elements. The package is distributed through NPM as flowbite, and it also publishes browser-ready builds at dist/flowbite.min.css and dist/flowbite.min.js for inclusion via CDN. The project is licensed under MIT, its primary language is HTML, and it carries topics including components, css, design-system, tailwind, tailwindcss, javascript, figma, eslint, prettier and hugo. It is built to work with Tailwind CSS v4, with a documented upgrade path for older projects still on v3.

The problem it solves is repetition and drift in Tailwind markup. Tailwind provides utility classes but no component vocabulary, so every button, dropdown, modal and navbar has to be assembled by hand and kept consistent across a codebase. Flowbite replaces that hand-written assembly with a defined component set and attaches behaviour to those components through data attributes, so interactive elements work without custom event wiring. Design and engineering teams end up with one shared component layer instead of parallel, diverging implementations.

Key capabilities

  • Installs into an existing Tailwind CSS project with npm install flowbite, then @plugin "flowbite/plugin" and @source "../node_modules/flowbite" in the project CSS.
  • Ships five theme presets imported from flowbite/src/themes/: default, minimal, enterprise, playful and mono.
  • Drives interactive components through a data attributes interface, with event listeners applied automatically by the bundled import 'flowbite' JavaScript.
  • Offers CDN delivery through dist/flowbite.min.css and dist/flowbite.min.js for projects without a build step.
  • Provides a UMD-ready bundled JavaScript file that works with bundlers such as Webpack or Parcel, alongside ESM and CJS entry points.
  • Includes TypeScript support and RTL support.
  • Extends beyond code with a Figma design system, Flowbite Blocks, Flowbite Icons and Flowbite GPT.

Who uses it and how

  • Front-end developers adding it as a plugin to an existing Tailwind CSS v4 project, with a documented upgrade route for v3 codebases.
  • Teams building pages without a bundler, placing the minified CDN stylesheet inside the head tag and the script before the closing body tag.
  • Applications bundled with Webpack or Parcel that import flowbite into app-bundle.js, so data attributes and component behaviour work out of the box.
  • Projects on JavaScript frameworks and back-end frameworks, both of which the README addresses, with Hugo appearing among the repository topics.
  • Designers working in the Figma design system to keep prototypes and shipped components aligned.

Getting started

Install the package with npm install flowbite, import a theme from flowbite/src/themes/ in the main CSS file, then add @plugin "flowbite/plugin" and @source "../node_modules/flowbite". Alternatively, load dist/flowbite.min.css and dist/flowbite.min.js from the CDN.

How it compares

The facts do not name paid products that Flowbite replaces, so the comparison is structural: it occupies the component layer directly above Tailwind CSS, which supplies the utility classes it depends on, and it does not stand alone as a CSS framework. No peer component library is named anywhere in the facts, and the other tags it carries — Figma, Hugo, ESLint and Prettier — describe adjacent tooling rather than alternatives.

When to use it — and when not to

Choose it when the project already uses Tailwind CSS and needs a consistent component layer without inventing one. A self-hoster should note that it is not self-hosted software in the server sense: it is a package installed into a front-end build, so there is no database, storage or mail service to operate, though a CDN-only setup gives up the class purging the README recommends. It is a poor fit for teams not using Tailwind or wanting a framework-agnostic stylesheet, and the repository carries 257 open issues, so prospective users should check the tracker before depending on a specific component. The README also points to a Pro version and to paid hiring, which means the MIT-licensed core is not the whole of the offering.

project readme (upstream, from github) — read inline


Build websites even faster with components on top of Tailwind CSS

Discord Total Downloads Latest Release License


Table of Contents

Documentation

For full documentation, visit flowbite.com.

Getting started

Flowbite can be included as a plugin into an existing Tailwind CSS project and it is supposed to help you build websites faster by having a set of web components to work with built with the utility classes from Tailwind CSS.

Install using NPM

Make sure that you have Node.js and Tailwind CSS installed. This guide works with Tailwind v4.

  1. Install Flowbite as a dependency using NPM by running the following command:
npm install flowbite
  1. Import the default theme variables from Flowbite inside your main input.css CSS file:
/* choose one of the following */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap');
@import "flowbite/src/themes/default";

/* MINIMAL THEME
@import url('https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300..800;1,300..800&display=swap');
@import "flowbite/src/themes/minimal";
*/

/* ENTERPRISE THEME
@import url('https://fonts.googleapis.com/css2?family=Shantell+Sans:ital,wght@0,300..800;1,300..800&display=swap');
@import "flowbite/src/themes/enterprise";
*/

/* PLAYFUL THEME
@import url('https://fonts.googleapis.com/css2?family=Google+Sans+Code:ital,wght@0,300..800;1,300..800&display=swap');
@import "flowbite/src/themes/playful";
*/

/* MONO THEME
@import "flowbite/src/themes/mono";
*/
  1. Import the Flowbite plugin file in your CSS:
@plugin "flowbite/plugin";
  1. Configure the source files of Flowbite in your CSS:
@source "../node_modules/flowbite";
  1. Include the JavaScript code that powers the interactive elements before the end of your `` tag:
<script src="../path/to/flowbite/dist/flowbite.min.js"></script>

Learn more about the Flowbite JavaScript API and functionalities in the JavaScript section.

If you have and old project with Tailwind CSS v3 then check out this guide to learn how to upgrade to v4.

Include using CDN

The quickest way to get started working with Flowbite is to include the CSS and JS into your project via CDN.

Require the following minified stylesheet inside the head tag:

<link href="https://cdn.jsdelivr.net/npm/flowbite@{{< current_version >}}/dist/flowbite.min.css" rel="stylesheet" />

And include the following JavaScript file before the end of the body element:

<script src="https://cdn.jsdelivr.net/npm/flowbite@{{< current_version >}}/dist/flowbite.min.js"></script>

Please remember that the best way to work with Tailwind CSS and Flowbite is by purging the CSS classes.

Bundled JavaScript

One of the most popular way of using Flowbite is to include the bundled Javascript file which is UMD ready using a bundler such as Webpack or Parcel which makes sure that all of the data attributes and functionality will work out-of-the-box.

You can directly import the main JavaScript file inside your bundled app-bundle.js file like this:

import 'flowbite';

This file has access to all of the components and it automatically applies event listeners to the data attributes.

Data attributes

The preferred way to use the interactive UI components from Flowbite is via the data attributes interface which allows us to add functionality via the HTML element attributes and most of the examples on our documentation applies this strategy.

For example, to set up a modal component all you need to do is use data-modal-target and data-modal-{toggle|show|hide} to toggle, show, or hide the component by clicking on any trigger element.

readme truncated — read the full docs on github

Frequently asked questions

Is flowbite free to use?

flowbite is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does flowbite do?

Open-source UI component library and front-end development framework based on Tailwind CSS

What is flowbite written in?

flowbite is primarily written in HTML. Its source is publicly available at https://github.com/themesberg/flowbite, and it has 9,357 GitHub stars.