Tailwind helps you style React components quickly using ready-made classes. It keeps your design consistent and your code clean.
Tailwind with React components
function Component() {
return (
<div className="bg-blue-500 text-white p-4 rounded">
Hello, Tailwind in React!
</div>
);
}Use className instead of class in React to add Tailwind classes.
Write Tailwind utility classes as a string inside className.
function Button() {
return <button className="bg-green-600 hover:bg-green-700 text-white font-bold py-2 px-4 rounded">Click me</button>;
}function Card() {
return (
<div className="max-w-sm mx-auto bg-white shadow-lg rounded-lg overflow-hidden">
<div className="p-4">
<h2 className="text-xl font-semibold">Card Title</h2>
<p className="text-gray-700 mt-2">This is a simple card styled with Tailwind.</p>
</div>
</div>
);
}function ResponsiveBox() {
return <div className="bg-purple-400 p-6 md:p-12 text-white">Resize the window to see padding change.</div>;
}This example shows a simple card styled with Tailwind inside a React component. It uses React's createElement to build the component and Tailwind classes for styling.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <title>Tailwind with React Example</title> <script src="https://cdn.tailwindcss.com"></script> <script crossorigin src="https://unpkg.com/react@18/umd/react.development.js"></script> <script crossorigin src="https://unpkg.com/react-dom@18/umd/react-dom.development.js"></script> </head> <body class="bg-gray-100"> <div id="root"></div> <script type="text/javascript"> const e = React.createElement; function App() { return e('div', {className: 'max-w-md mx-auto bg-white rounded-xl shadow-md overflow-hidden md:max-w-2xl mt-10'}, e('div', {className: 'md:flex'}, e('div', {className: 'p-8'}, e('div', {className: 'uppercase tracking-wide text-sm text-indigo-500 font-semibold'}, 'React + Tailwind'), e('h1', {className: 'block mt-1 text-lg leading-tight font-medium text-indigo-900'}, 'Hello Tailwind!'), e('p', {className: 'mt-2 text-gray-500'}, 'This card is styled using Tailwind CSS inside a React component.') ) ) ); } const root = ReactDOM.createRoot(document.getElementById('root')); root.render(e(App)); </script> </body> </html>
Always use className in React, not class.
Tailwind classes can be combined to create complex styles quickly.
Use responsive prefixes like md: to change styles on different screen sizes.
Tailwind lets you style React components using utility classes inside className.
It helps build consistent, responsive designs fast without writing custom CSS files.
Remember to use React's className attribute and combine Tailwind classes as needed.
Practice
Solution
Step 1: Understand React styling
React uses theclassNameattribute to add CSS classes to elements.Step 2: Apply Tailwind classes
Tailwind utility classes are added insideclassNameto style components quickly.Final Answer:
Use theclassNameattribute with Tailwind utility classes -> Option CQuick Check:
Tailwind + React = className [OK]
- Using style attribute instead of className
- Trying to add Tailwind classes in CSS files only
- Using class instead of className in JSX
Solution
Step 1: Use JSX syntax for className
In React JSX, the attribute for CSS classes isclassName, notclass.Step 2: Provide classes as a string
The value ofclassNamemust be a string, so it should be inside quotes.Final Answer:
<button className="bg-blue-500 text-white p-2">Click me</button> -> Option DQuick Check:
className="..." is correct JSX syntax [OK]
- Using class instead of className
- Not quoting the className value
- Using curly braces without quotes for className string
function Card() {
return (
<div className="max-w-sm mx-auto bg-white rounded shadow-lg p-4">
<h2 className="text-xl font-bold mb-2">Hello</h2>
<p className="text-gray-700">Welcome to Tailwind!</p>
</div>
);
}Solution
Step 1: Analyze container styles
The div usesmax-w-sm(small max width),mx-auto(center horizontally),bg-white(white background),rounded(rounded corners),shadow-lg(large shadow), andp-4(padding).Step 2: Analyze text styles
The heading hastext-xl(large text),font-bold(bold), andmb-2(margin bottom). The paragraph usestext-gray-700(medium gray text).Final Answer:
A centered white card with rounded corners, shadow, padding, and text styled with bold heading and gray paragraph -> Option BQuick Check:
Tailwind classes produce styled card = A [OK]
- Ignoring mx-auto for centering
- Confusing bg-white with colored backgrounds
- Missing padding or shadow effects
function Button() {
return <button class="bg-green-500 text-white p-3">Submit</button>;
}Solution
Step 1: Check JSX attribute for CSS classes
In React JSX, the attribute must beclassName, notclass.Step 2: Verify other syntax
The button tag is properly closed and Tailwind classes are valid. Text inside button can be plain string.Final Answer:
Usingclassinstead ofclassNamein JSX -> Option AQuick Check:
JSX requires className, not class [OK]
- Using class instead of className
- Thinking Tailwind classes are invalid
- Adding unnecessary curly braces around text
className value?<button className="?">Click</button>
Solution
Step 1: Understand Tailwind responsive prefixes
Tailwind uses prefixes likemd:to apply styles at medium screen sizes and above.Step 2: Apply blue background by default and green on medium+
Usebg-blue-500for small screens andmd:bg-green-500to override on medium and larger.Step 3: Check other classes
Text color, padding, and rounding are consistent and correctly placed.Final Answer:
"bg-blue-500 md:bg-green-500 text-white p-2 rounded" -> Option AQuick Check:
Responsive prefix md: changes color on medium screens [OK]
- Reversing colors for small and medium screens
- Placing classes in wrong order causing override issues
- Using multiple background colors without responsive prefixes
Ready to prove it?
Pass the test and this pattern moves unknown
