Bird
Raised Fist0
Tailwindmarkup~20 mins

Extending default theme values in Tailwind - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Tailwind Theme Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
2:00remaining
Understanding theme extension in Tailwind CSS
What happens when you add new colors inside the extend section of the Tailwind theme configuration?
Tailwind
module.exports = {
  theme: {
    extend: {
      colors: {
        brandBlue: '#1fb6ff'
      }
    }
  }
}
AThe new colors replace all the default colors in Tailwind.
BThe new colors are ignored unless you remove the default colors first.
CThe new colors are added alongside the default colors without replacing them.
DTailwind throws an error because colors cannot be extended.
Attempts:
2 left
💡 Hint
Think about how extend works compared to overriding the whole theme.
📝 Syntax
intermediate
2:00remaining
Correct syntax for extending font sizes
Which option correctly extends the default font sizes by adding a new size called xxs with value 0.65rem?
Tailwind
module.exports = {
  theme: {
    extend: {
      fontSize: {
        xxs: '0.65rem'
      }
    }
  }
}
AfontSize: { xxs: '0.65rem' }
BfontSizes: { xxs: '0.65rem' }
CfontSize: ['xxs', '0.65rem']
DfontSize: { 'xxs': 0.65 }
Attempts:
2 left
💡 Hint
Check the exact property name and value format Tailwind expects.
❓ rendering
advanced
2:00remaining
Visual effect of extending spacing scale
If you extend the spacing scale with 72: '18rem' and use class="mt-72" on a div, what will you see?
Tailwind
module.exports = {
  theme: {
    extend: {
      spacing: {
        '72': '18rem'
      }
    }
  }
}
ATailwind will throw an error because spacing keys must be strings, not numbers.
BThe div will have no margin because 72 is not a valid spacing value.
CThe div will have a top margin of 72px instead of 18rem.
DThe div will have a top margin of 18rem, creating a large vertical space above it.
Attempts:
2 left
💡 Hint
Remember how Tailwind spacing keys can be numbers as strings and map to CSS sizes.
❓ selector
advanced
2:00remaining
Using extended colors in Tailwind selectors
After extending the colors with brandRed: '#e3342f', which class applies the background color correctly?
Tailwind
module.exports = {
  theme: {
    extend: {
      colors: {
        brandRed: '#e3342f'
      }
    }
  }
}
Abg-brandRed
Bbackground-brandRed
Cbg-brandred
Dbg-brand-red
Attempts:
2 left
💡 Hint
Tailwind class names are case sensitive and use kebab-case for multi-word names.
❓ accessibility
expert
3:00remaining
Ensuring accessible color contrast with extended theme colors
You extended Tailwind colors with softGreen: '#a8d5ba'. Which approach best ensures text using text-softGreen is accessible on a white background?
Tailwind
module.exports = {
  theme: {
    extend: {
      colors: {
        softGreen: '#a8d5ba'
      }
    }
  }
}
AUse <code>text-softGreen</code> alone; the color is light enough for all users.
BUse <code>font-bold</code> with <code>text-softGreen</code> to increase contrast and readability.
CAdd <code>bg-white</code> and <code>opacity-50</code> to the text to soften the color.
DUse <code>text-softGreen</code> with <code>underline</code> to improve accessibility.
Attempts:
2 left
💡 Hint
Think about how font weight affects color contrast and readability.

Practice

(1/5)
1. What is the main purpose of using extend inside the theme in Tailwind CSS?
easy
A. To remove unused styles from Tailwind CSS
B. To completely replace the default Tailwind styles
C. To add new styles without removing the default Tailwind styles
D. To disable Tailwind's default configuration

Solution

  1. Step 1: Understand the role of extend in Tailwind

    The extend key inside theme allows you to add new values while keeping the default ones intact.
  2. Step 2: Compare with replacing defaults

    If you don't use extend and directly define values, you replace the defaults, losing them.
  3. Final Answer:

    To add new styles without removing the default Tailwind styles -> Option C
  4. Quick Check:

    Extend = Add without losing defaults [OK]
Hint: Remember: extend adds, doesn't replace defaults [OK]
Common Mistakes:
  • Thinking extend replaces default styles
  • Confusing extend with purge or disable
  • Assuming extend removes unused styles
2. Which of the following is the correct syntax to add a new color named brandBlue with hex #1DA1F2 using extend in Tailwind config?
easy
A. "theme": { "extend": { "colors": { "brandBlue": "#1DA1F2" } } }
B. "extend": { "colors": { "brandBlue": "#1DA1F2" } }
C. "theme": { "colors": { "brandBlue": "#1DA1F2" } }
D. "colors": { "extend": { "brandBlue": "#1DA1F2" } }

Solution

  1. Step 1: Locate where to put extend

    The extend key must be inside the theme object to add new values.
  2. Step 2: Add new color inside extend.colors

    The new color name and value go inside colors nested under extend.
  3. Final Answer:

    "theme": { "extend": { "colors": { "brandBlue": "#1DA1F2" } } } -> Option A
  4. Quick Check:

    Extend inside theme, colors inside extend [OK]
Hint: Put extend inside theme, then add colors inside extend [OK]
Common Mistakes:
  • Placing extend outside theme
  • Adding colors directly inside theme without extend
  • Misplacing extend inside colors
3. Given this Tailwind config snippet, what will be the background color class for the new color?
{
  theme: {
    extend: {
      colors: {
        softGreen: '#a8d5ba'
      }
    }
  }
}

Which class applies the new color as background?
medium
A. bg-softgreen
B. bg-soft_green
C. bg-soft-green
D. bg-softGreen

Solution

  1. Step 1: Understand Tailwind class naming for custom colors

    Tailwind generates utility classes using the exact key name from the theme object as the class suffix, preserving case and format. softGreen (camelCase) becomes bg-softGreen.
  2. Step 2: Form the background color class

    Background color classes are bg- followed by the exact color key name.
  3. Final Answer:

    bg-softGreen -> Option D
  4. Quick Check:

    Exact key match: softGreen -> bg-softGreen [OK]
Hint: Theme keys match class suffixes exactly, case preserved [OK]
Common Mistakes:
  • Assuming Tailwind converts camelCase to lowercase
  • Adding hyphens between camelCase words
  • Using underscores in place of camelCase
4. Identify the error in this Tailwind config snippet that tries to add a new spacing value:
{
  theme: {
    extend: {
      spacing: 72: '18rem'
    }
  }
}
medium
A. Spacing key should be inside colors
B. Missing curly braces around spacing values
C. Colon used instead of comma between key and value
D. extend should be outside theme

Solution

  1. Step 1: Check syntax for spacing extension

    The spacing key must have an object with key-value pairs inside curly braces.
  2. Step 2: Identify missing braces

    Here, spacing: 72: '18rem' misses curly braces around { 72: '18rem' }.
  3. Final Answer:

    Missing curly braces around spacing values -> Option B
  4. Quick Check:

    Objects need braces: spacing: { 72: '18rem' } [OK]
Hint: Use braces {} for objects inside extend keys [OK]
Common Mistakes:
  • Forgetting braces around nested objects
  • Putting spacing inside colors by mistake
  • Placing extend outside theme
5. You want to add a new font size called xxl with value 2.5rem but keep all default font sizes. Which config snippet correctly extends the fontSize theme without losing defaults?
hard
A. { theme: { extend: { fontSize: { xxl: '2.5rem' } } } }
B. { theme: { fontSize: { xxl: '2.5rem' } } }
C. { extend: { fontSize: { xxl: '2.5rem' } } }
D. { fontSize: { xxl: '2.5rem' } }

Solution

  1. Step 1: Understand how to keep default font sizes

    To keep defaults, new values must be added inside extend under theme.
  2. Step 2: Check each option's structure

    { theme: { extend: { fontSize: { xxl: '2.5rem' } } } } correctly places fontSize inside extend inside theme. Others replace or misplace keys.
  3. Final Answer:

    { theme: { extend: { fontSize: { xxl: '2.5rem' } } } } -> Option A
  4. Quick Check:

    Extend inside theme keeps defaults while adding new values [OK]
Hint: Always put new values inside extend under theme [OK]
Common Mistakes:
  • Replacing fontSize directly, losing defaults
  • Placing extend outside theme
  • Omitting extend and overwriting defaults
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