0
0
Tailwindmarkup~20 mins

Plugin system overview in Tailwind - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Tailwind Plugin Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
2:00remaining
How does Tailwind CSS plugin system extend functionality?
Which statement best describes how Tailwind CSS plugins add new utilities or components?
APlugins only change the browser's default styles without generating CSS.
BPlugins modify HTML files directly to add new classes before CSS is generated.
CPlugins replace the entire Tailwind CSS core with custom styles.
DPlugins add new CSS rules by injecting them during the build process using JavaScript functions.
Attempts:
2 left
💡 Hint
Think about how Tailwind generates CSS from JavaScript configuration.
📝 Syntax
intermediate
2:00remaining
Identify the correct plugin registration syntax
Which option shows the correct way to register a simple Tailwind CSS plugin that adds a '.btn' class?
Tailwind
const plugin = require('tailwindcss/plugin');

module.exports = {
  plugins: [
    /* Your plugin here */
  ]
}
Aplugin(function({ addComponents }) { addComponents({ '.btn': { padding: '1rem' } }) })
Bplugin(addComponents => { '.btn': { padding: '1rem' } })
Cplugin({ addComponents: { '.btn': { padding: '1rem' } } })
Dplugin(function(addComponents) { addComponents('.btn', { padding: '1rem' }) })
Attempts:
2 left
💡 Hint
Look for the function signature and how addComponents is called.
rendering
advanced
2:00remaining
What CSS output does this plugin generate?
Given this Tailwind plugin code, what CSS will be generated for the '.card' class?
Tailwind
const plugin = require('tailwindcss/plugin');

module.exports = {
  plugins: [
    plugin(function({ addComponents }) {
      addComponents({
        '.card': {
          padding: '2rem',
          borderRadius: '0.5rem',
          boxShadow: '0 4px 6px rgba(0,0,0,0.1)'
        }
      })
    })
  ]
}
A.card { padding: 1rem; border-radius: 0.5rem; box-shadow: 0 4px 6px rgba(0,0,0,0.1); }
B.card { padding: 2rem; border-radius: 0.5rem; box-shadow: 0 4px 6px rgba(0,0,0,0.1); }
C.card { padding: 2rem; border-radius: 1rem; box-shadow: 0 4px 6px rgba(0,0,0,0.1); }
D.card { padding: 2rem; border-radius: 0.5rem; box-shadow: none; }
Attempts:
2 left
💡 Hint
Check the exact property values in the plugin code.
selector
advanced
2:00remaining
Which selector does this plugin add?
A Tailwind plugin adds this component: addComponents({ '.alert-warning': { backgroundColor: '#fef3c7', color: '#92400e' } }) Which CSS selector will be available in your project?
A.alert_warning
Balert-warning
C.alert-warning
D#alert-warning
Attempts:
2 left
💡 Hint
Look at how the class name is written in the plugin code.
accessibility
expert
3:00remaining
How to ensure accessibility in a Tailwind plugin component?
You create a Tailwind plugin that adds a modal component with a '.modal' class. Which practice best improves accessibility for keyboard users?
AAdd focus-visible styles and ensure the modal traps keyboard focus when open.
BOnly add background color and ignore focus styles because CSS handles accessibility automatically.
CUse JavaScript to disable keyboard navigation while the modal is open without styling focus.
DAdd a hover effect only, since keyboard users do not use hover.
Attempts:
2 left
💡 Hint
Think about how keyboard users interact with modals and focus.