FlowBite - Tailwind CSS 组件库
什么是 FlowBite?
FlowBite 是一个开源的 UI 元素集合,基于实用优先的 CSS 框架 Tailwind,由 Themesberg 设计和编码,可在 Figma 和 Web 组件中使用。
为什么要使用 FlowBite?
与其他框架相比,Tailwind CSS 的缺点之一是它没有一套基础组件。这使得快速创建用户界面原型变得非常困难。
这就是 FlowBite 发挥作用的地方:它基本上是 Tailwind CSS,但您可以获得通常使用经典 CSS 框架(如 Bootstrap 或 Bulma)获得的所有组件。
FlowBite 至少有 15 种类型的组件,包括按钮、警报、面包屑导航、分页和导航栏。FlowBite 还包含一些自定义 JavaScript,可实现交互式组件,例如下拉菜单、模态框、工具提示等等。
如何开始?
开始使用 FlowBite 相当容易:您需要做的就是按照快速入门指南或按照构建工具指南设置高级工作流程。
通过 CDN 包含
开始使用 FlowBite 的最快方法是通过 CDN 将 CSS 和 JavaScript 包含到您的项目中。
标签内需要以下最小化样式表head
:
<link rel="stylesheet" href="https://unpkg.com/flowbite@latest/dist/flowbite.min.css" />
并在元素结束前包含以下javascript文件body
:
<script src="https://unpkg.com/flowbite@latest/dist/flowbite.js"></script>
重要提示:不推荐使用 FlowBite,因为您将无法清除不必要的 CSS。请查看构建工具,以正确设置 FlowBite 以用于开发和生产代码。
通过 NPM 请求
您还可以通过运行以下命令使用 NPM 将 FlowBite 作为依赖项:
npm i flowbite
安装
按照以下步骤使用 FlowBite 和 Tailwind CSS 进行配置、开发和构建:
- 确保您的机器上安装了Node.js和 NPM
- 使用以下方式创建新文件夹
mkdir flowbite-project
- 使用以下方式移动到新创建的文件夹中
cd flowbite-project
- 运行
npm init
以创建package.json
文件并按照 CLI 说明进行操作 - 运行以下代码来安装 Tailwind CSS:
npm install -D tailwindcss@latest postcss@latest autoprefixer@latest @tailwindcss/forms@latest
- 创建一个新文件
touch postcss.config.js
并插入以下代码:
// postcss.config.js
module.exports = {
plugins: {
tailwindcss: {},
autoprefixer: {},
}
}
- 通过运行以下命令创建 Tailwind 配置文件:
npx tailwindcss init
然后在tailwind.config.js
文件中添加以下代码:
module.exports = {
purge: {
enabled: true,
content: ["./layouts/**/*.html", "./content/**/*.md", "./content/**/*.html"],
},
darkMode: false, // or 'media' or 'class'
theme: {
extend: {},
fontFamily: {
'sans': ['Inter', 'ui-sans-serif', 'system-ui', '-apple-system', 'system-ui', 'Segoe UI', 'Roboto', 'Helvetica Neue', 'Arial', 'Noto Sans', 'sans-serif', 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'],
'body': ['Inter', 'ui-sans-serif', 'system-ui', '-apple-system', 'system-ui', 'Segoe UI', 'Roboto', 'Helvetica Neue', 'Arial', 'Noto Sans', 'sans-serif', 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'],
'mono': ['ui-monospace', 'SFMono-Regular', 'Menlo', 'Monaco', 'Consolas', 'Liberation Mono', 'Courier New', 'monospace']
},
colors: {
white: "#ffffff",
black: "#000000",
gray: {
50: '#F9FAFB',
100: '#F3F4F6',
200: '#E5E7EB',
300: '#D1D5DB',
400: '#9CA3AF',
500: '#6B7280',
600: '#4B5563',
700: '#374151',
800: '#1F2937',
900: '#111827'
},
red: {
50: '#FDF2F2',
100: '#FDE8E8',
200: '#FBD5D5',
300: '#F8B4B4',
400: '#F98080',
500: '#F05252',
600: '#E02424',
700: '#C81E1E',
800: '#9B1C1C',
900: '#771D1D'
},
orange: {
50: '#FFF8F1',
100: '#FEECDC',
200: '#FCD9BD',
300: '#FDBA8C',
400: '#FF8A4C',
500: '#FF5A1F',
600: '#D03801',
700: '#B43403',
800: '#8A2C0D',
900: '#771D1D'
},
yellow: {
50: '#FDFDEA',
100: '#FDF6B2',
200: '#FCE96A',
300: '#FACA15',
400: '#E3A008',
500: '#C27803',
600: '#9F580A',
700: '#8E4B10',
800: '#723B13',
900: '#633112'
},
green: {
50: '#F3FAF7',
100: '#DEF7EC',
200: '#BCF0DA',
300: '#84E1BC',
400: '#31C48D',
500: '#0E9F6E',
600: '#057A55',
700: '#046C4E',
800: '#03543F',
900: '#014737'
},
teal: {
50: '#EDFAFA',
100: '#D5F5F6',
200: '#AFECEF',
300: '#7EDCE2',
400: '#16BDCA',
500: '#0694A2',
600: '#047481',
700: '#036672',
800: '#05505C',
900: '#014451'
},
blue: {
50: '#EBF5FF',
100: '#E1EFFE',
200: '#C3DDFD',
300: '#A4CAFE',
400: '#76A9FA',
500: '#3F83F8',
600: '#1C64F2',
700: '#1A56DB',
800: '#1E429F',
900: '#233876'
},
indigo: {
50: '#F0F5FF',
100: '#E5EDFF',
200: '#CDDBFE',
300: '#B4C6FC',
400: '#8DA2FB',
500: '#6875F5',
600: '#5850EC',
700: '#5145CD',
800: '#42389D',
900: '#362F78'
},
purple: {
50: '#F6F5FF',
100: '#EDEBFE',
200: '#DCD7FE',
300: '#CABFFD',
400: '#AC94FA',
500: '#9061F9',
600: '#7E3AF2',
700: '#6C2BD9',
800: '#5521B5',
900: '#4A1D96'
},
pink: {
50: '#FDF2F8',
100: '#FCE8F3',
200: '#FAD1E8',
300: '#F8B4D9',
400: '#F17EB8',
500: '#E74694',
600: '#D61F69',
700: '#BF125D',
800: '#99154B',
900: '#751A3D'
}
}
},
variants: {
extend: {
fill: ['hover', 'focus'],
zIndex: ['hover', 'active'],
},
},
plugins: [
require('@tailwindcss/forms'),
],
}
- 通过创建一个新的 CSS 文件将 Tailwind 包含在您的 CSS 中,并使用
@directive
注入主要样式:
/* ./styles.css */
@tailwind base;
@tailwind components;
@tailwind utilities;
- 使用 Tailwind CLI 工具运行以下命令编译 CSS:
npx tailwindcss -o flowbite.css
- 将新创建的
flowbite.css
文件包含到您的 HTML 模板中,然后开始使用 FlowBite 和 Tailwind CSS 进行开发。 - 使用 ES6:确保您还创建了一个名为 的 JavaScript 文件,
flowbite.js
以使下拉菜单和模式等元素能够工作,并添加以下代码:
import tippy from 'tippy.js';
import 'tippy.js/dist/tippy.css'; // optional for styling
import 'tippy.js/animations/scale.css';
import { createPopper } from '@popperjs/core';
function toggleCollapse(collapseId) {
const menu = document.getElementById(collapseId);
if (menu.classList.contains("hidden")) {
menu.classList.remove("hidden");
} else {
menu.classList.add("hidden");
}
}
window.toggleCollapse = toggleCollapse;
function toggleDropdown(event, dropdownID) {
let element = event.target;
while (element.nodeName !== "BUTTON") {
element = element.parentNode;
}
createPopper(element, document.getElementById(dropdownID), {
placement: 'bottom-start',
modifiers: [
{
name: 'offset',
options: {
offset: [0, 10],
},
},
]
});
document.getElementById(dropdownID).classList.toggle("hidden");
document.getElementById(dropdownID).classList.toggle("block");
}
window.toggleDropdown = toggleDropdown;
function toggleModal(modalID) {
document.getElementById(modalID).classList.toggle("hidden");
document.getElementById(modalID + "-backdrop").classList.toggle("hidden");
document.getElementById(modalID).classList.toggle("flex");
document.getElementById(modalID + "-backdrop").classList.toggle("flex");
}
window.toggleModal = toggleModal;
document.addEventListener("DOMContentLoaded", function () {
tippy('[data-tippy-content]');
});
或者,您也可以只使用已编译 JS 的 CDN 链接:
<script src="https://unpkg.com/flowbite@latest/dist/flowbite.js"></script>
生产环境构建
如果您想要构建生产环境,请使用以下命令并删除任何未使用的 CSS:
NODE_ENV=production npx tailwindcss -o flowbite.css
Figma 设计文件
如果您想使用 Figma 设计文件,您可以复制Figma 社区上的免费版本,或者使用FlowBite Pro升级以获得额外的应用程序 UI、营销 UI 以及电子商务部分和页面。
许可
但是,请注意 FlowBite 的专业版受FlowBite 的EULA(最终用户许可协议)约束。
作者
FlowBite 的作者是Zoltán Szőgyényi(开发人员)和Robert Tanislav (设计师),他们也是Themesberg的联合创始人。
文章来源:https://dev.to/themesberg/flowbite-tailwind-css-components-library-1g5o