Bird
Raised Fist0
Tailwindmarkup~8 mins

Square bracket notation for custom values in Tailwind - Performance & Optimization

Choose your learning style10 modes available
Performance: Square bracket notation for custom values
MEDIUM IMPACT
This affects CSS bundle size and rendering speed by allowing custom values without extending the config, impacting initial load and style calculation.
Applying a custom color value in Tailwind CSS
Tailwind
class="bg-[#123456]"
Using a short, valid hex color reduces CSS size and speeds up style calculation.
📈 Performance Gainsaves ~0.3kb per custom value, faster style parsing
Applying a custom color value in Tailwind CSS
Tailwind
class="bg-[#1234567890abcdef]"
Using overly long hex values in square brackets creates large CSS rules and bloats the stylesheet.
📉 Performance Costadds ~0.5kb per unique long custom value to CSS bundle
Performance Comparison
PatternDOM OperationsReflowsPaint CostVerdict
Using many unique long custom values with square bracketsNo extra DOM nodes0 reflowsHigh paint cost due to large CSS[X] Bad
Using short custom values sparingly with square bracketsNo extra DOM nodes0 reflowsModerate paint cost[!] OK
Using config-extended custom values instead of square bracketsNo extra DOM nodes0 reflowsLow paint cost[OK] Good
Rendering Pipeline
Square bracket notation generates unique CSS rules that the browser must parse and apply during style calculation and paint stages.
→Style Calculation
→Layout
→Paint
⚠️ BottleneckStyle Calculation
Core Web Vital Affected
LCP
This affects CSS bundle size and rendering speed by allowing custom values without extending the config, impacting initial load and style calculation.
Optimization Tips
1Avoid many unique custom values in square brackets to keep CSS size small.
2Prefer extending Tailwind config for repeated custom styles.
3Use short, valid custom values to reduce parsing and paint cost.
Performance Quiz - 3 Questions
Test your performance knowledge
What is a main performance downside of using many unique custom values with Tailwind's square bracket notation?
AIt causes layout thrashing
BIt adds extra DOM nodes
CIt increases CSS bundle size and slows style calculation
DIt blocks JavaScript execution
DevTools: Performance
How to check: Record a performance profile while loading the page, then inspect the 'Style Recalculation' and 'Paint' events.
What to look for: Look for long style recalculation times and large CSS file sizes indicating many unique custom values.

Practice

(1/5)
1. What does the square bracket notation in Tailwind CSS allow you to do?
easy
A. Disable Tailwind's default styles
B. Write JavaScript code inside Tailwind classes
C. Create new Tailwind utility classes permanently
D. Use custom CSS values not included in Tailwind's default set

Solution

  1. Step 1: Understand Tailwind's default values

    Tailwind provides a set of predefined values for spacing, colors, sizes, etc.
  2. Step 2: Role of square bracket notation

    Square bracket notation lets you write any CSS value directly inside a class, like mt-[10px] for margin-top 10 pixels.
  3. Final Answer:

    Use custom CSS values not included in Tailwind's default set -> Option D
  4. Quick Check:

    Square brackets = custom CSS values [OK]
Hint: Square brackets mean custom CSS values inside Tailwind classes [OK]
Common Mistakes:
  • Thinking it creates new permanent classes
  • Confusing with JavaScript code inside classes
  • Assuming it disables Tailwind styles
2. Which of the following is the correct Tailwind class to set a width of exactly 250 pixels using square bracket notation?
easy
A. width-[250]
B. w-[250px]
C. w-250px
D. w-[250]

Solution

  1. Step 1: Identify correct Tailwind prefix for width

    Tailwind uses w- prefix for width utilities.
  2. Step 2: Use square brackets with full CSS value

    Inside brackets, you must include the unit, so 250px is correct.
  3. Final Answer:

    w-[250px] -> Option B
  4. Quick Check:

    Width with unit inside brackets = w-[250px] [OK]
Hint: Use full CSS value with units inside brackets after utility prefix [OK]
Common Mistakes:
  • Omitting units inside brackets
  • Using wrong prefix like width-
  • Not using brackets for custom values
3. What will be the rendered width of a div with class class="w-[15rem]" in Tailwind CSS?
medium
A. 15 rem units (usually 15 times root font size)
B. 15 pixels
C. 15 percent width
D. 15 viewport width units

Solution

  1. Step 1: Understand the CSS unit inside brackets

    The class w-[15rem] sets width to 15 rem units, where 1 rem equals the root font size (usually 16px).
  2. Step 2: Interpret the rendered size

    15 rem means 15 times the root font size, so it is not pixels or percent but relative to font size.
  3. Final Answer:

    15 rem units (usually 15 times root font size) -> Option A
  4. Quick Check:

    Square bracket value with rem = relative font size width [OK]
Hint: Read units inside brackets literally as CSS units [OK]
Common Mistakes:
  • Assuming rem means pixels
  • Confusing rem with percent or viewport units
  • Ignoring units inside brackets
4. You wrote class="p-[20]" to add padding of 20 pixels, but it doesn't work. What is the error?
medium
A. Padding cannot be customized in Tailwind
B. Square brackets are not allowed for padding
C. Missing unit inside square brackets
D. Class name should be padding-[20px]

Solution

  1. Step 1: Check the syntax of the custom value

    Inside square brackets, you must include the CSS unit, like 20px, not just a number.
  2. Step 2: Understand Tailwind's requirement for units

    Without units, the CSS value is invalid, so the style won't apply.
  3. Final Answer:

    Missing unit inside square brackets -> Option C
  4. Quick Check:

    Always include units inside brackets for custom values [OK]
Hint: Always add units like px, rem inside brackets for spacing [OK]
Common Mistakes:
  • Omitting units inside brackets
  • Using wrong class names like padding-
  • Thinking padding can't be customized
5. You want a button with a background color exactly #1a73e8 and a border radius of 12px using Tailwind's square bracket notation. Which class combination is correct?
hard
A. bg-[#1a73e8] rounded-[12px]
B. bg-#1a73e8 rounded-12px
C. background-[#1a73e8] border-radius-[12px]
D. bg-[#1a73e8] rounded-[12]

Solution

  1. Step 1: Use correct Tailwind prefixes

    Background color uses bg- and border radius uses rounded-.
  2. Step 2: Apply square bracket notation with full CSS values

    Inside brackets, include the full hex color #1a73e8 and the unit 12px for radius.
  3. Step 3: Check for syntax correctness

    bg-[#1a73e8] rounded-[12px] uses correct prefixes and proper bracket notation with units and hash symbol.
  4. Final Answer:

    bg-[#1a73e8] rounded-[12px] -> Option A
  5. Quick Check:

    Use correct prefixes + full CSS values in brackets [OK]
Hint: Use bg- and rounded- with full CSS values inside brackets [OK]
Common Mistakes:
  • Omitting # in hex color
  • Missing units for border radius
  • Using wrong prefixes like background-
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard