📖 Scenario: You are building a simple webpage layout using Tailwind CSS. You want to create a custom spacing scale to control the padding and margin sizes consistently across your page.
🎯 Goal: Create a Tailwind CSS configuration with a custom spacing scale. Then use the custom spacing classes to add padding and margin to a <div> element. The final page should show a centered box with the custom spacing applied.
📋 What You'll Learn
Create a Tailwind CSS config file with a custom spacing scale including values: 4: '1rem', 7: '1.75rem', 9: '2.25rem'
Use the custom spacing scale in the HTML by applying padding and margin classes
Center the box horizontally and vertically using flexbox utilities
Ensure the box has a visible background color and text to see spacing effect
💡 Why This Matters
🌍 Real World
Custom spacing scales let designers and developers keep consistent spacing in websites and apps, making layouts look neat and balanced.
💼 Career
Knowing how to customize Tailwind CSS config is useful for frontend developers to create unique designs and maintain scalable style systems.
Progress0 / 4 steps
1
Create Tailwind config with custom spacing scale
Create a tailwind.config.js file. Inside the theme.extend.spacing object, add these exact spacing values: 4: '1rem', 7: '1.75rem', and 9: '2.25rem'.
Tailwind
Hint
Remember to export the config object with module.exports = {}. Put the custom spacing inside theme.extend.spacing.
2
Add HTML structure with a container div
Create an index.html file. Add a <div> with class container inside the <body>. This will hold the box you style later.
Tailwind
Hint
Make sure the <div> has the exact class container.
3
Add a box div with custom padding and margin classes
Inside the container div, add another <div> with classes bg-blue-500, p-7, and m-9. Add the text Custom Spacing Box inside this box.
Tailwind
Hint
Use the exact classes bg-blue-500 p-7 m-9 on the inner div and add the text inside.
4
Center the container using flexbox utilities
Add the classes flex, items-center, justify-center, and min-h-screen to the body tag to center the container horizontally and vertically.
Tailwind
Hint
Apply all four classes exactly on the body tag to center content.
Practice
(1/5)
1. What is the main purpose of adding a custom spacing scale in Tailwind CSS?
easy
A. To create new spacing sizes beyond the default ones
B. To change the color palette of the project
C. To add new font families
D. To enable JavaScript animations
Solution
Step 1: Understand Tailwind spacing scale
Tailwind provides default spacing sizes, but sometimes you need sizes not included by default.
Step 2: Purpose of custom spacing scale
Adding a custom spacing scale lets you define new spacing values to use in classes like padding or margin.
Final Answer:
To create new spacing sizes beyond the default ones -> Option A
Quick Check:
Custom spacing scale = new spacing sizes [OK]
Hint: Custom spacing adds new size options beyond defaults [OK]
Common Mistakes:
Confusing spacing scale with colors or fonts
Thinking it enables animations
Assuming it changes existing default sizes
2. Which of the following is the correct way to add a custom spacing value of 72 (18rem) in Tailwind config?
Step 1: Locate correct config property for spacing
Custom spacing values go inside the extend.spacing object in tailwind.config.js.
Step 2: Check syntax correctness
"extend: { spacing: { 72: '18rem' } }" inside tailwind.config.js correctly places 72: '18rem' inside extend.spacing. Other options put spacing at root or wrong keys like colors or fontSize.
Hint: Custom spacing must be inside extend.spacing [OK]
Common Mistakes:
Placing spacing directly at root instead of extend
Adding spacing under colors or fontSize
Using incorrect syntax or missing quotes
3. Given this Tailwind config snippet:
{
extend: {
spacing: {
84: '21rem'
}
}
}
What will be the padding size applied by the class p-84 in HTML?
medium
A. 8.4rem padding on all sides
B. No padding applied, class invalid
C. 2.1rem padding on all sides
D. 21rem padding on all sides
Solution
Step 1: Understand custom spacing value
The config defines spacing 84 as '21rem', so class p-84 means padding: 21rem.
Step 2: Interpret class effect
Class p-84 applies padding of 21rem on all sides of the element.
Final Answer:
21rem padding on all sides -> Option D
Quick Check:
p-84 = padding 21rem [OK]
Hint: Class p-84 uses spacing 84 value exactly [OK]
Common Mistakes:
Confusing 84 with 8.4 or 2.1 rem
Thinking class is invalid without default spacing
Assuming padding applies only to one side
4. You added this to your tailwind.config.js:
extend: {
spacing: {
100: '25rem'
}
}
But using m-100 in HTML does not apply margin. What is the likely problem?
medium
A. The spacing value '25rem' is invalid
B. You forgot to restart the build process after config change
C. Class name should be m-10 instead of m-100
D. Tailwind does not support custom spacing values
Solution
Step 1: Check if config syntax is correct
The config syntax is correct; 100: '25rem' inside extend.spacing is valid.
Step 2: Understand Tailwind build process
After changing tailwind.config.js, you must restart the build or dev server to apply changes.
Final Answer:
You forgot to restart the build process after config change -> Option B
Quick Check:
Restart build after config update [OK]
Hint: Restart build after config edits to apply changes [OK]
Common Mistakes:
Assuming spacing value format is wrong
Using wrong class name syntax
Thinking Tailwind disallows custom spacing
5. You want to add two custom spacing sizes: 72 (18rem) and 84 (21rem). How should you write the extend.spacing part in tailwind.config.js to use both sizes correctly?
Step 1: Correct syntax for multiple custom spacings
Custom spacing values go inside extend.spacing as key-value pairs with keys as numbers and values as strings with units.
Step 2: Analyze incorrect options
Placing spacing at the root overrides defaults. Using string keys or numeric values without units is invalid. Arrays are not supported for spacing definitions.