Tailwind CSS
02 / 03

Utility Classes & Layout

Utility Classes & Layout

Spacing

<!-- Padding: p-{n}, px-{n}, py-{n}, pt/pr/pb/pl-{n} -->
<div class="p-4">           <!-- padding: 16px -->
<div class="px-6 py-3">     <!-- padding-x: 24px, padding-y: 12px -->
<div class="pt-2 pb-8">     <!-- top: 8px, bottom: 32px -->

<!-- Margin: m-{n}, mx-{n}, my-{n}, mt/mr/mb/ml-{n} -->
<div class="m-4">            <!-- margin: 16px -->
<div class="mx-auto">        <!-- center horizontally -->
<div class="mt-0 mb-4">      <!-- top: 0, bottom: 16px -->
<div class="-mt-4">          <!-- negative margin: -16px -->

<!-- Space between children -->
<div class="flex gap-4">     <!-- flex gap: 16px -->
<div class="space-x-4">      <!-- margin-left on each child -->
<div class="space-y-6">      <!-- margin-top on each child -->

<!-- Scale: 0=0, 1=4px, 2=8px, 3=12px, 4=16px, 5=20px, 6=24px,
           8=32px, 10=40px, 12=48px, 16=64px, 20=80px, 24=96px -->

Flexbox

<!-- Flex container -->
<div class="flex">                    <!-- display: flex -->
<div class="inline-flex">            <!-- display: inline-flex -->
<div class="flex flex-col">          <!-- column direction -->
<div class="flex flex-row-reverse"> <!-- reverse row -->
<div class="flex flex-wrap">         <!-- allow wrapping -->
<div class="flex flex-nowrap">       <!-- no wrap -->

<!-- Alignment -->
<div class="flex items-center">      <!-- align-items: center -->
<div class="flex items-start">       <!-- flex-start -->
<div class="flex items-stretch">     <!-- stretch (default) -->
<div class="flex justify-center">    <!-- justify-content: center -->
<div class="flex justify-between">   <!-- space-between -->
<div class="flex justify-around">    <!-- space-around -->
<div class="flex justify-evenly">    <!-- space-evenly -->

<!-- Common centering pattern -->
<div class="flex items-center justify-center">

<!-- Flex children -->
<div class="flex-1">                 <!-- flex: 1 1 0% (grow and shrink) -->
<div class="flex-auto">             <!-- flex: 1 1 auto -->
<div class="flex-none">             <!-- flex: none -->
<div class="grow">                   <!-- flex-grow: 1 -->
<div class="shrink-0">              <!-- flex-shrink: 0 -->
<div class="basis-1/2">             <!-- flex-basis: 50% -->
<div class="self-end">              <!-- align-self: flex-end -->
<div class="order-first">           <!-- order: -9999 -->

Grid

<!-- Grid container -->
<div class="grid grid-cols-3 gap-4">   <!-- 3 equal columns -->
<div class="grid grid-cols-12 gap-6">  <!-- 12-column layout -->
<div class="grid grid-cols-[1fr_2fr_1fr] gap-4">  <!-- custom track sizes -->

<!-- Responsive grid -->
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6">

<!-- Grid children -->
<div class="col-span-2">              <!-- span 2 columns -->
<div class="col-span-full">           <!-- span all columns -->
<div class="col-start-2 col-end-4">  <!-- from col 2 to 4 -->
<div class="row-span-2">             <!-- span 2 rows -->

<!-- Auto grid -->
<div class="grid grid-cols-[repeat(auto-fill,minmax(250px,1fr))] gap-4">

Typography & Colors

<!-- Font size: text-xs(12) sm(14) base(16) lg(18) xl(20) 2xl(24) 3xl(30) 4xl(36) -->
<h1 class="text-4xl font-bold tracking-tight">

<!-- Font weight: thin(100) light(300) normal(400) medium(500) semibold(600) bold(700) -->
<p class="font-semibold">

<!-- Line height: leading-none(1) tight(1.25) snug(1.375) normal(1.5) relaxed(1.625) -->
<p class="leading-relaxed">

<!-- Letter spacing: tracking-tighter/tight/normal/wide/wider/widest -->
<h2 class="tracking-wide">

<!-- Text align, decoration, transform -->
<p class="text-center">
<p class="text-right">
<a class="underline decoration-blue-500">
<p class="uppercase tracking-widest">
<p class="truncate">                   <!-- overflow ellipsis, single line -->
<p class="line-clamp-3">              <!-- clamp to 3 lines -->

<!-- Colors: {property}-{color}-{shade} -->
<p class="text-gray-700 dark:text-gray-300">
<div class="bg-blue-500 hover:bg-blue-600">
<div class="border border-gray-200">
<svg class="text-red-500 fill-current">

<!-- Opacity: text-blue-500/75  bg-black/50 -->
<div class="bg-blue-500/10 text-blue-700/80">

Sizing & Positioning

<!-- Width / Height -->
<div class="w-full">      <!-- 100% -->
<div class="w-1/2">       <!-- 50% -->
<div class="w-64">        <!-- 256px (16rem) -->
<div class="w-fit">       <!-- fit-content -->
<div class="w-screen">    <!-- 100vw -->
<div class="min-w-0">     <!-- min-width: 0 (fix flex overflow) -->
<div class="max-w-sm">    <!-- max-width: 24rem (384px) -->
<div class="max-w-7xl mx-auto">  <!-- centered container -->
<div class="h-screen">    <!-- 100vh -->
<div class="min-h-screen"> <!-- fill page -->
<div class="aspect-video"> <!-- 16/9 -->
<div class="aspect-square"> <!-- 1/1 -->

<!-- Position -->
<div class="relative">
<div class="absolute inset-0">       <!-- top/right/bottom/left: 0 -->
<div class="absolute top-4 right-4"> <!-- positioned -->
<div class="fixed bottom-4 right-4"> <!-- fixed to viewport -->
<div class="sticky top-0 z-50">      <!-- sticky header -->

<!-- Display -->
<div class="hidden">                 <!-- display: none -->
<div class="block">
<span class="inline-block">
<div class="overflow-hidden">
<div class="overflow-auto">
<div class="overflow-x-auto">

Keep your own version of these notes — editable, searchable, and organised by your stack.

Start free