添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
Docs Tailwind CSS on GitHub

无需离开您的HTML,即可快速建立现代网站。

Tailwind CSS 是一个功能类优先的 CSS 框架,它集成了诸如 flex , pt-4 , text-center rotate-90 这样的的类,它们能直接在脚本标记语言中组合起来,构建出任何设计。

开始使用
“Tailwind CSS is the only framework that I've seen scale on large teams. It’s easy to customize, adapts to any design, and the build size is tiny.”

Sarah Dayan

Staff Engineer, Algolia

“最佳实践”实际上并不起作用。

我曾经写过 几千字的文章 来说明为什么传统的 “语义化类名” 是 CSS 难以维护的原因, 但事实是除非您实际尝试过,您永远不会相信我。 如果您能抑制住想吐槽的冲动,给它一个机会,我真的觉得您会怀疑您是怎么用其他方式来使用 CSS 的。

Adam Wathan
Tailwind CSS 创始人
  • 我直到现在才开始使用 Tailwind CSS,真是个白痴。

    Ryan Florence
    Remix & React Training
    Original tweet by Ryan Florence
  • 如果我今天不得不推荐一种编程方法,那就是使用 Tailwind CSS 的 HTML + CSS。

    Guillermo Rauch
    Vercel
    Original tweet by Guillermo Rauch
  • 我没有任何设计技能,但使用 Tailwind 可以轻松创建美观的网站,而这正是我在 CSS 框架中想要的一切。

    Sara Vieira
    CodeSandbox
  • 前几天,我用 Tailwind 重新设计了 feltpresence.com 。 真是太神奇了! 我只花了几个小时就让他产生了巨大的变化。

    Ryan Singer
    Basecamp
  • 开始使用 @tailwindcss。我立即爱上了他们的自适应修饰符,详尽的文档以及自定义调色板的简易性。

    Dacey Nolan
    软件工程师
    Original tweet by Dacey Nolan
  • 使用它的那一刻我就爱上了它。

    Gilbert Rabut Tsurwa
    网页设计师
    Original tweet by Gilbert Rabut Tsurwa
  • 我刚开始接手我的工作的时候很好奇为什么上一个开发者在我们的项目中使用了 Tailwind,但几天之内,我便开始在我所有的个人项目中使用 Tailwind 了。

    Madeline Campbell
    全栈开发人员
    Original tweet by Madeline Campbell
  • There’s one thing that sucks about @tailwindcss - once you’ve used it on a handful of projects it is a real pain in the ass to write normal CSS again.

    Graeme Houston
    JavaScript 开发人员
    Original tweet by Graeme Houston
  • Okay, I’m officially *all* in on the @tailwindcss hype train. Never thought building websites could be so ridiculously fast and flexible.

    Aaron Bushnell
    Programmer @ TrendyMinds
    Original tweet by Aaron Bushnell
  • 使用 CSS 已有十多年了,Tailwind 使我的生活更加轻松。它仍然是CSS,您可以使用 flex,grid 等,但是编写和维护起来更快。

    Head of Learning @ Nuxt.js
    全栈开发人员
    Original tweet by Head of Learning @ Nuxt.js
  • 好的,@tailwindcss 震惊了我,现在我感觉就像是个白痴。Okay, @tailwindcss just clicked for me and now I feel like a #!@%&$% idiot.

    Ken Wheeler
    React 工程师
    Original tweet by Ken Wheeler
  • 过去几个月我一直在使用 @tailwindcss,真是太神奇了。我之前已经使用过一些功能类,但 Tailwind 是功能类优先的最正确的方式。

    Jad Limcaco
    设计师
    Original tweet by Jad Limcaco
  • 在过去的两周中终于在实际的客户端项目上使用@tailwindcss之后,我再也不想手动编写 CSS 了。我是一个怀疑论者,但这想法是真实的。

    Luke Redpath
    Ruby & iOS 开发者
    Original tweet by Luke Redpath
  • 我不认为我会喜欢 @tailwindcss... 但花了一天时间将其用于 POC 后,我开始喜欢它!我希望当我们启动公司设计系统时就已经意识到这个问题,并认真考虑进行彻底的重建。

    Jon Bloomer
    前端开发人员
    Original tweet by Jon Bloomer
  • 起初 @tailwindcss 看起来很不愉快,但是现在我迷上了它。

    Andrew Gilliland
    前端开发人员
    Original tweet by Andrew Gilliland

基于约束

设计系统的API。

功能类可以帮助您在系统的约束下工作,而不是在您的样式表中堆满任意的值。它们可以让您轻松地在颜色选择、间距、排版、阴影以及其他一切构成一个精心设计的系统的元素上保持一致。

了解更多 ->

Width

  • w- 64
  • w- 56
  • w- 48
  • w- 40
  • w- 32
  • w- 24
  • w- 20
  • w- 16
  • w- 12
  • w- 10

Build anything

Build whatever you want, seriously.

Because Tailwind is so low-level, it never encourages you to design the same site twice. Even with the same color palette and sizing scale, it's easy to build the same component with a completely different look in the next project.

Get started ->

性能

生产环境的体积非常小。

Tailwind 在构建生产文件时会自动删除所有未使用的 CSS,这意味着您最后的 CSS 文件可能会是最小的。实际上,大多数 Tailwind 项目向客户端传输的 CSS 少于 10KB。

了解更多 ->
Production build
2,413.4 KB
Purged
0 unused classes
fixed flex-col rounded-sm shadow px-4 justify-content text-center flex-shrink-0 md:text-left h-16 w-16 md:h-24 md:w-24 rounded-full mx-auto text-lg text-purple-500 md:text-left text-gray-600 text-green-400 text-blue-500 rounded-pill p-4 max-w-screen-xl mt-5 leading-7 whitespace-nowrap sm:gap-6 lg:max-w-4xl lg:mx-auto xl:max-w-none flex-1 xl:mx-0 xl:grid-cols-4 border border-gray-200 text-4xl leading-6 leading-10 font-extrabold leading-5 h-5 w-5 text-green-500 text-5xl leading-none font-extrabold text-white tracking-tight border-t text-sm border-indigo-600 py-4 font-medium px-5 flex items-center space-x-3 text-base leading-6 text-white absolute right-full ml-4 bottom-0 transform -translate-x-1/2 py-3 mx-4 w-full duration-150 h-full transition py-0 pl-4 pr-8 border-transparent bg-transparent text-gray-500 px-5 py-3 appearance-none underline bg-indigo-700 min-w-full divide-y divide-gray-200 items-baseline text-indigo-600 hover:text-indigo-500

移动优先

一切皆是响应式的。

在您的 CSS 中使用大量复杂的媒体查询非常糟糕,因此 Tailwind 可以让您直接在 HTML 中构建响应式的设计。

在功能类前面加上屏幕大小标记,就可以查看在指定断点处的神奇表现。

了解更多 ->
workcation.com

Entire house

Beach House in Collingwood

状态变体

支持 hover 和 focus 状态

想要设置 hover 样式吗?在您想要添加的类前面添加 hover: 。可以这样使用的状态还有 focus active disabled focus-within focus-visible 、甚至还有像 group-hover 这样的我们自己创造的复杂的状态。

学习更多 ->

Projects

New
  • Title
    API Integration
    Category
    Engineering
    Users
  • Title
    New Benefits Plan
    Category
    Human Resources
    Users
  • New Project

组件驱动

担心复用性问题?大可不必

如果您在一遍又一遍的重复着相同的功能类,那么您最好将他们提取到一个组件或者模板片断,这样就会得到一个单一的源文件,因此可以在一个地方对他们修改。

了解更多 ->

Hank’s Juiciest Beef Burger

Time
20 m
Difficulty
· Easy
Servings
· 4 servings
By
Hank Douglas

想保持原来的使用习惯而不是组件框架模式?使用 Tailwind 的 @apply 指令,复制和粘贴那些类名列表,就可以把重复的功能类抽取到一个自定义的 CSS 类中。

了解更多 ->

Weekly one-on-one

Date and time
-
Location
Kitchener, ON
Description
No meeting description
Attendees
Andrew Parsons
Decline
Accept

深色模式

支持深色模式

难道想成为当人们在凌晨2点打开手机时眼睛被闪瞎的网站吗?在任何颜色功能类前面添加 dark: ,就可以在深色模式激活时使用它。深色模式适用于背景色、文本颜色、边框颜色、甚至渐变色。深色模式开箱即用,无需配置。

了解更多 ->
< div class = " bg-white dark:bg-gray-800 rounded-tl-xl sm:rounded-t-xl p-4 pb-6 sm:p-8 lg:p-4 lg:pb-6 xl:p-8 space-y-6 sm:space-y-8 lg:space-y-6 xl:space-y-8 " > < div class = " flex items-center space-x-3.5 sm:space-x-5 lg:space-x-3.5 xl:space-x-5 " > < img src = " /full-stack-radio.png " alt = " " width = " 160 " height = " 160 " class = " flex-none w-20 h-20 rounded-lg bg-gray-100 " /> < div class = " min-w-0 flex-auto space-y-0.5 " > < p class = " text-lime-600 dark:text-lime-400 text-sm sm:text-base lg:text-sm xl:text-base font-semibold uppercase " > < abbr title = " Episode " > Ep. </ abbr > 128 < h2 class = " text-black dark:text-white text-base sm:text-xl lg:text-base xl:text-xl font-semibold truncate " > Scaling CSS at Heroku with Utility Classes < p class = " text-gray-500 dark:text-gray-400 text-base sm:text-lg lg:text-base xl:text-lg font-medium " > Full Stack Radio </ div > </ div > < div class = " space-y-2 " > < div class = " bg-gray-200 dark:bg-black rounded-full overflow-hidden " > < div class = " bg-lime-500 dark:bg-lime-400 w-1/2 h-1.5 " role = " progressbar " aria-valuenow = " 1456 " aria-valuemin = " 0 " aria-valuemax = " 4550 " > </ div > </ div > < div class = " text-gray-500 dark:text-gray-400 flex justify-between text-sm font-medium tabular-nums " > < div > 24:16 </ div > < div > 75:50 </ div > </ div > </ div > </ div > < div class = " bg-gray-50 text-black dark:bg-gray-900 dark:text-white lg:rounded-b-xl py-4 px-1 sm:px-3 lg:px-1 xl:px-3 grid grid-cols-5 sm:grid-cols-7 lg:grid-cols-5 xl:grid-cols-7 items-center " > < button type = " button " class = " mx-auto " > < svg width = " 24 " height = " 24 " fill = " none " > < path d = " M5 5a2 2 0 012-2h10a2 2 0 012 2v16l-7-3.5L5 21V5z " stroke = " currentColor " stroke-width = " 1.5 " stroke-linecap = " round " /> </ svg > </ button > < button type = " button " class = " hidden sm:block lg:hidden xl:block mx-auto " > < svg width = " 17 " height = " 18 " > < path d = " M0 0h2v18H0V0zM4 9l13-9v18L4 9z " fill = " currentColor " /> </ svg > </ button > < button type = " button " class = " mx-auto " > < svg width = " 34 " height = " 39 " fill = " none " > < path d = " M12.878 26.12c1.781 0 3.09-1.066 3.085-2.515.004-1.104-.665-1.896-1.824-2.075v-.068c.912-.235 1.505-.95 1.5-1.93.005-1.283-1.048-2.379-2.727-2.379-1.602 0-2.89.968-2.932 2.387h1.274c.03-.801.784-1.287 1.64-1.287.892 0 1.475.541 1.471 1.346.004.844-.673 1.398-1.64 1.398h-.738v1.074h.737c1.21 0 1.91.614 1.91 1.491 0 .848-.738 1.424-1.765 1.424-.946 0-1.683-.486-1.734-1.262H9.797c.055 1.424 1.317 2.395 3.08 2.395zm7.734.025c2.016 0 3.196-1.645 3.196-4.504 0-2.838-1.197-4.488-3.196-4.488-2.003 0-3.196 1.645-3.2 4.488 0 2.855 1.18 4.5 3.2 4.504zm0-1.138c-1.18 0-1.892-1.185-1.892-3.366.004-2.174.716-3.371 1.892-3.371 1.172 0 1.888 1.197 1.888 3.37 0 2.182-.712 3.367-1.888 3.367z " fill = " currentColor " /> < path d = " M1 22c0 8.837 7.163 16 16 16s16-7.163 16-16S25.837 6 17 6 " stroke = " currentColor " stroke-width = " 1.5 " /> < path d = " M17 0L9 6l8 6V0z " fill = " currentColor " /> </ svg > </ button > < button type = " button " class = " mx-auto " > < svg width = " 50 " height = " 50 " fill = " none " > < circle class = " text-gray-300 dark:text-gray-500 " cx = " 25 " cy = " 25 " r = " 24 " stroke = " currentColor " stroke-width = " 1.5 " /> < path d = " M18 16h4v18h-4V16zM28 16h4v18h-4z " fill = " currentColor " /> </ svg > </ button > < button type = " button " class = " mx-auto " > < svg width = " 34 " height = " 39 " fill = " none " > < path d = " M12.878 26.12c1.781 0 3.09-1.066 3.085-2.515.004-1.104-.665-1.896-1.824-2.075v-.068c.912-.235 1.505-.95 1.5-1.93.005-1.283-1.048-2.379-2.727-2.379-1.602 0-2.89.968-2.932 2.387h1.274c.03-.801.784-1.287 1.64-1.287.892 0 1.475.541 1.471 1.346.004.844-.673 1.398-1.64 1.398h-.738v1.074h.737c1.21 0 1.91.614 1.91 1.491 0 .848-.738 1.424-1.765 1.424-.946 0-1.683-.486-1.734-1.262H9.797c.055 1.424 1.317 2.395 3.08 2.395zm7.734.025c2.016 0 3.196-1.645 3.196-4.504 0-2.838-1.197-4.488-3.196-4.488-2.003 0-3.196 1.645-3.2 4.488 0 2.855 1.18 4.5 3.2 4.504zm0-1.138c-1.18 0-1.892-1.185-1.892-3.366.004-2.174.716-3.371 1.892-3.371 1.172 0 1.888 1.197 1.888 3.37 0 2.182-.712 3.367-1.888 3.367z " fill = " currentColor " /> < path d = " M33 22c0 8.837-7.163 16-16 16S1 30.837 1 22 8.163 6 17 6 " stroke = " currentColor " stroke-width = " 1.5 " /> < path d = " M17 0l8 6-8 6V0z " fill = " currentColor " /> </ svg > </ button > < button type = " button " class = " hidden sm:block lg:hidden xl:block mx-auto " > < svg width = " 17 " height = " 18 " viewBox = " 0 0 17 18 " fill = " none " > < path d = " M17 0H15V18H17V0Z " fill = " currentColor " /> < path d = " M13 9L0 0V18L13 9Z " fill = " currentColor " /> </ svg > </ button > < button type = " button " class = " mx-auto border border-gray-300 rounded-md text-sm font-medium py-0.5 px-2 text-gray-500 dark:border-gray-600 dark:text-gray-400 " > </ button > </ div >

定制化

易于扩展、调整和改变。

Tailwind 包含一组精心设计的开箱即用的默认值,但实际上,所有内容都可定制,比如调色板、间距比例、盒子阴影以及鼠标光标样式。

使用 tailwind.config.js 文件构建您自己的设计系统,然后让 Tailwind 将其转换成您自己的定制 CSS 框架。

了解更多 ->

Typography

font-display
Inter
font-body
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Mi ultrices non pharetra, eros enim. Habitant suspendisse ultricies.

Color

bg-primary-{50-900}
bg- gray -{50-900}

现代特性

前沿特性带来舒服体验

Tailwind 具有绝对的现代性,它利用所有最新和最优秀的 CSS 特性为开发者带来尽可能愉悦的体验。

我们提供了一流的 CSS grid 支持,由 CSS 变量支撑的可组合的转换和渐变色,对诸如 :focus-visible 等现代状态选择器的支持,以及其它更多的功能。

了解更多 ->
1
2
3
4
5

编辑器工具

世界一流的 IDE 集成。

担心记不住所有的类名吗?VS Code 的 Tailwind CSS 智能提示扩展涵盖了所有的类。

在编辑器内既可得到智能的自动完成建议、提示及类定义等功能,而且无需配置。

了解更多 ->
<div class="w-full flex items-center justify-between block p-6 space-x-6">
  <div class="flex-1 truncate">
    <div class="flex items-center space-x-3">
      <h3 class="text-gray-900 text-sm font-medium truncate">Jane Cooper</h3>
      <span class="text-teal-600">Admin</span>
    </div>
    <p class="mt-1 text-gray-500 text-sm truncate">Regional Paradigm Technician</p>
  </div>
  <img class="w-10 h-10 bg-gray-300 rounded-full flex-shrink-0" src="https://images.unsplash.com/photo-1494790108377-be9c29b29330?ixlib=rb-1.2.1&amp;ixid=eyJhcHBfaWQiOjEyMDd9&amp;auto=format&amp;fit=facearea&amp;facepad=4&amp;w=256&amp;h=256&amp;q=60" alt="">
</div>
<div class="border-t border-gray-200">
  <div class="-mt-px flex">
    <div class="w-0 flex-1 flex border-r border-gray-200">
      <a href="#" class="relative -mr-px w-0 flex-1 inline-flex items-center justify-center py-4 text-sm text-gray-700 font-medium border border-transparent rounded-bl-lg hover:text-gray-500 focus:outline-none focus:shadow-outline-blue focus:border-blue-300 focus:z-10 transition ease-in-out duration-150">
        <svg class="w-5 h-5 text-gray-400" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor">
          <path d="M2.003 5.884L10 9.882l7.997-3.998A2 2 0 0016 4H4a2 2 0 00-1.997 1.884z" />
          <path d="M18 8.118l-8 4-8-4V14a2 2 0 002 2h12a2 2 0 002-2V8.118z" />
        </svg>