Tags: tailwind, css, utility-classes, responsive, dark-mode, config, frontend Last updated: 2026-06-26

Tailwind CSS Cheatsheet

Quick Reference

CategoryExamples
Layout flex, grid, block, hidden, container
Spacing p-4, m-2, gap-6, space-y-4
Sizing w-full, h-screen, max-w-lg, min-h-0
Typography text-lg, font-bold, tracking-wide, leading-relaxed
Colours bg-blue-500, text-white, border-gray-200
Effects shadow-lg, opacity-50, blur-sm
Responsive sm:, md:, lg:, xl:, 2xl:
Dark mode dark:bg-gray-900
State hover:, focus:, active:, disabled:
Custom bg-[#ff00ff], w-[calc(100%-1rem)]

Layout

Flexbox

<div class="flex items-center
  justify-between">
  <span>Left</span>
  <span>Right</span>
</div>
ClassEffect
flexDisplay flex
flex-row / flex-col Direction
flex-wrap / flex-nowrap Wrapping
flex-1Equal grow + shrink
items-centerAlign cross-axis
justify-between Justify main-axis
gap-4Gap between children

Grid

<div class="grid grid-cols-3 gap-4">
  <div>1</div><div>2</div><div>3</div>
</div>
ClassEffect
gridDisplay grid
grid-cols-33 equal columns
grid-cols-[200px_1fr] Fixed + fluid
col-span-2Span 2 columns
row-span-3Span 3 rows

Spacing (Padding & Margin)

<div class="p-4">         <!-- padding all sides -->
<div class="px-6 py-3">   <!-- x-axis, y-axis -->
<div class="pt-2 pr-4 pb-6 pl-8"> <!-- top right bottom left -->
<div class="m-4">         <!-- margin all sides -->
<div class="mx-auto">     <!-- center horizontally -->
<div class="-mt-2">       <!-- negative margin -->

<div class="space-y-4">   <!-- vertical gap between children -->
<div class="space-x-2">   <!-- horizontal gap -->

Sizing

<div class="w-1/2">        <!-- 50% width -->
<div class="w-full">       <!-- 100% width -->
<div class="w-screen">     <!-- 100vw -->
<div class="w-64">         <!-- 16rem -->
<div class="max-w-lg">     <!-- max-width: 32rem -->
<div class="h-screen">     <!-- 100vh -->
<div class="size-16">      <!-- w + h (v3.4+) -->

Typography

<p class="text-lg font-semibold leading-7
  tracking-wide text-gray-800
  dark:text-gray-200">
  Hello world
</p>
ClassEffect
text-xstext-9xl Font size
font-thinfont-black Font weight
leading-3leading-10 Line height
tracking-tightertracking-widest Letter spacing
truncate Ellipsis overflow
line-clamp-3 Clamp to 3 lines

Colours

<div class="bg-red-500">           <!-- Solid -->
<div class="bg-red-500/50">        <!-- 50% opacity -->
<div class="bg-gradient-to-r
  from-blue-500 to-purple-600">   <!-- Gradient -->
<p class="text-emerald-600">       <!-- Text colour -->
<div class="border border-gray-300"><!-- Border -->
<div class="ring-2 ring-blue-500
  ring-offset-2">                  <!-- Ring -->

Responsive Breakpoints

PrefixMin-width
(none)0px (mobile-first)
sm:640px
md:768px
lg:1024px
xl:1280px
2xl:1536px
<div class="grid grid-cols-1
  md:grid-cols-2 lg:grid-cols-3">
<div class="block md:hidden">  <!-- mobile only -->
<div class="hidden md:block">  <!-- tablet+ -->

Dark Mode

<!-- darkMode: "class" -->
<html class="dark">
<body class="bg-white dark:bg-gray-900">
  <h1 class="text-black dark:text-white">

<!-- darkMode: "media" (system) -->
<div class="bg-white dark:bg-gray-900">

State Variants

<button class="bg-blue-500
  hover:bg-blue-600
  focus:ring-2 focus:ring-blue-400
  active:scale-95
  disabled:opacity-50
  disabled:cursor-not-allowed">
  Submit
</button>
PrefixTrigger
hover:Mouse over
focus:Focused
active:Being clicked
disabled:Disabled attribute
group-hover:Parent hover
peer-checked:Sibling checked

group / peer

<div class="group">
  <h3 class="group-hover:text-blue-500">Title</h3>
</div>

<input type="checkbox" class="peer" />
<div class="peer-checked:block hidden">
  Visible when checked
</div>

Custom Values (Arbitrary)

<div class="w-[32rem]">
<div class="bg-[#bada55]">
<div class="text-[clamp(1rem,5vw,3rem)]">
<div class="grid-cols-[200px_1fr_100px]">
<div class="after:content-['→']">

Tailwind Config

module.exports = {
  content: ["./src/**/*.{html,js,ts,jsx,tsx,vue}"],
  darkMode: "class",
  theme: {
    extend: {
      colors: {
        brand: { 500: "#6366f1" },
      },
      screens: { "3xl": "1920px" },
      spacing: { "18": "4.5rem" },
      fontFamily: {
        sans: ["Inter", "system-ui", "sans-serif"],
      },
      animation: {
        "fade-in": "fadeIn 0.3s ease-in-out",
      },
      keyframes: {
        fadeIn: {
          "0%": { opacity: "0" },
          "100%": { opacity: "1" },
        },
      },
    },
  },
  plugins: [
    require("@tailwindcss/typography"),
    require("@tailwindcss/forms"),
  ],
};

Tips