📖 Scenario: You are working on multiple web projects that use Tailwind CSS. To keep your design consistent and save time, you want to share a preset of colors and fonts across these projects.
🎯 Goal: Create a Tailwind CSS preset file with custom colors and fonts, then use this preset in a simple HTML page to apply the shared styles.
📋 What You'll Learn
Create a Tailwind CSS preset file named my-preset.js with custom colors and fonts
Add a configuration variable to import the preset in your Tailwind config
Use the preset in the Tailwind config file to apply shared styles
Create a simple HTML page that uses Tailwind classes from the preset
💡 Why This Matters
🌍 Real World
Sharing Tailwind CSS presets helps teams keep consistent design styles across multiple projects without repeating configuration.
💼 Career
Front-end developers often create and maintain design systems and style presets to improve efficiency and consistency in large codebases.
Progress0 / 4 steps
1
Create the Tailwind CSS preset file
Create a file named my-preset.js that exports a Tailwind CSS preset object. This preset should add a custom color named brandBlue with the value #1DA1F2 and a custom font family named brandFont with the value 'Arial, sans-serif'.
Tailwind
Hint
Use module.exports to export an object with theme.extend.colors and theme.extend.fontFamily.
2
Import the preset in Tailwind config
In your tailwind.config.js file, create a constant named myPreset that requires the ./my-preset.js file.
Tailwind
Hint
Use require('./my-preset.js') and assign it to myPreset.
3
Use the preset in Tailwind config
In tailwind.config.js, export a configuration object that uses the myPreset in the presets array.
Tailwind
Hint
Set module.exports to an object with a presets array containing myPreset.
4
Create an HTML page using the preset styles
Create a simple HTML file named index.html that includes Tailwind CSS and uses the brandBlue color as a background and the brandFont font family for a heading. Use the classes bg-brandBlue and font-brandFont on the <h1> element.
Tailwind
Hint
Use bg-brandBlue and font-brandFont classes on the <h1> tag.
Practice
(1/5)
1. What is the main purpose of using presets in Tailwind CSS configuration?
easy
A. To create custom CSS animations
B. To share common Tailwind settings across multiple projects
C. To add new color palettes only for one project
D. To compile Tailwind CSS faster on a single project
Solution
Step 1: Understand the role of presets
Presets are used to share configuration settings like colors, fonts, and plugins across projects.
Step 2: Compare options
Options B, C, and D describe features unrelated to sharing configs across projects.
Final Answer:
To share common Tailwind settings across multiple projects -> Option B
Quick Check:
Presets = Shared config across projects [OK]
Hint: Presets = shared config for multiple projects [OK]
Common Mistakes:
Thinking presets only add colors or animations
Confusing presets with plugins
Believing presets speed up compilation
2. Which of the following is the correct way to include a preset in tailwind.config.js?
easy
A. presets: require('tailwind-preset')
B. presets: ['tailwind-preset']
C. presets: [require('tailwind-preset')]
D. preset: [require('tailwind-preset')]
Solution
Step 1: Check the correct property name and syntax
The property is presets (plural) and it expects an array of required modules.
Step 2: Validate each option
presets: [require('tailwind-preset')] uses presets with an array containing require('tailwind-preset'), which is correct syntax.
Local config overrides preset values when keys conflict, so local primary color '#ff0000' overrides preset '#00ff00'.
Step 2: Determine final color for bg-primary
The div uses the local config color '#ff0000' (red).
Final Answer:
#ff0000 (red) from local config -> Option A
Quick Check:
Local config overrides preset colors [OK]
Hint: Local theme colors override preset colors [OK]
Common Mistakes:
Assuming preset colors override local config
Thinking conflicting keys cause errors
Believing class won't apply without explicit import
4. You added a preset in tailwind.config.js but your styles from the preset are not applying. What is the most likely mistake?
medium
A. Using preset instead of presets in config
B. Forgetting to export the preset module with module.exports
C. Not installing Tailwind CSS in the project
D. Adding presets inside the theme object
Solution
Step 1: Check common config mistakes
Using preset (singular) instead of presets (plural) means Tailwind ignores the preset array.
Step 2: Validate other options
Forgetting to export the preset module with module.exports is possible but less common; C and D are unrelated to preset loading.
Final Answer:
Using preset instead of presets in config -> Option A
Quick Check:
Correct property name is 'presets' [OK]
Hint: Use 'presets' plural, not 'preset' singular [OK]
Common Mistakes:
Misspelling 'presets' as 'preset'
Placing presets inside wrong config section
Not exporting preset module properly
5. You want to share a preset that includes custom fonts and colors across three projects. Which approach ensures all projects use the preset and can override colors if needed?
hard
A. Use Tailwind's CDN link with custom fonts and colors embedded
B. Copy the preset config file into each project and import it manually in CSS files
C. Write the preset config directly inside each project's tailwind.config.js without sharing
D. Create a separate npm package with the preset and add it in each project's presets array; override colors locally as needed
Solution
Step 1: Identify best sharing method
Creating a separate npm package for the preset allows easy reuse and updates across projects.
Step 2: Confirm override capability
Adding the preset in presets array lets each project override colors locally without changing the shared preset.
Final Answer:
Create a separate npm package with the preset and add it in each project's presets array; override colors locally as needed -> Option D
Quick Check:
npm package + presets array + local overrides = best practice [OK]
Hint: Use npm package for preset + local overrides [OK]
Common Mistakes:
Copying preset files manually causing duplication
Embedding config directly without sharing
Using CDN which can't share config presets
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.