📖 Scenario: You are building a simple webpage for a local bakery. The bakery wants a unique look by using a custom font called "SweetBakery" for its headings to make the site feel warm and inviting.
🎯 Goal: Create a webpage that uses the SweetBakery font for all headings and the default font for paragraphs. The font should be integrated using Tailwind CSS custom font configuration.
📋 What You'll Learn
Create a Tailwind CSS configuration that adds the custom font family named sweetbakery with the font 'SweetBakery', cursive.
Use the custom font sweetbakery for all <h1> and <h2> headings.
Use the default Tailwind font for paragraphs.
Include the @font-face rule in CSS to load the SweetBakery font from a local file /fonts/SweetBakery.woff2.
Ensure the webpage is responsive and accessible with semantic HTML.
💡 Why This Matters
🌍 Real World
Custom fonts help brands create unique and memorable websites that match their style and personality.
💼 Career
Web developers often need to integrate custom fonts using CSS and Tailwind to meet design requirements and improve user experience.
Progress0 / 4 steps
1
Setup HTML structure with headings and paragraphs
Create an HTML file with a <main> section containing an <h1> heading with the text Welcome to Sweet Bakery, an <h2> heading with the text Freshly Baked Every Day, and a <p> paragraph with the text Enjoy our delicious treats made with love..
Tailwind
Hint
Use semantic HTML tags: <main>, <h1>, <h2>, and <p>.
2
Add @font-face rule to load SweetBakery font
In your CSS file, add an @font-face rule that defines the font family SweetBakery and loads the font from the local file /fonts/SweetBakery.woff2 with format woff2.
Tailwind
Hint
The @font-face rule lets you load a custom font from a file. Use font-family to name it and src to point to the font file.
3
Configure Tailwind CSS to add the custom font family
In the tailwind.config.js file, extend the theme.fontFamily to add a new font family named sweetbakery with the value ["'SweetBakery'", 'cursive'].
Tailwind
Hint
Use extend.fontFamily in tailwind.config.js to add your custom font family.
4
Apply the custom font to headings using Tailwind classes
In the HTML, add the Tailwind class font-sweetbakery to both the <h1> and <h2> elements to apply the custom font. Leave the paragraph without this class to keep the default font.
Tailwind
Hint
Add the class font-sweetbakery to your headings to use the custom font.
Practice
(1/5)
1. What is the main purpose of using @font-face in Tailwind CSS when integrating a custom font?
easy
A. To load and define a custom font so it can be used in your styles
B. To create animations for text using the font
C. To automatically download fonts from Google Fonts
D. To change the font size of text elements
Solution
Step 1: Understand the role of @font-face
@font-face is a CSS rule that lets you load a custom font file into your website.
Step 2: Connect @font-face to Tailwind usage
After loading the font with @font-face, you extend Tailwind's fontFamily to use that font in your classes.
Final Answer:
To load and define a custom font so it can be used in your styles -> Option A
Quick Check:
@font-face loads fonts = D [OK]
Hint: Remember: @font-face loads fonts, not styles [OK]
Common Mistakes:
Thinking @font-face changes font size
Confusing font loading with animations
Assuming it downloads fonts automatically
2. Which of the following is the correct way to extend Tailwind's fontFamily in tailwind.config.js to add a custom font named 'MyFont'?
easy
A. fontFamily: { myfont: 'MyFont' }
B. fontFamily: { 'MyFont': ['custom', 'sans-serif'] }
C. fontFamily: { custom: ['MyFont', 'sans-serif'] }
D. fontFamily: { custom: 'MyFont', fallback: 'sans-serif' }
Solution
Step 1: Recall Tailwind fontFamily syntax
Tailwind expects font families as arrays with font names and fallbacks, e.g., fontFamily: { key: ['FontName', 'fallback'] }.
Step 2: Match correct syntax
fontFamily: { custom: ['MyFont', 'sans-serif'] } correctly uses custom as key and an array with 'MyFont' and 'sans-serif'. Others misuse keys or values.
Final Answer:
fontFamily: { custom: ['MyFont', 'sans-serif'] } -> Option C
Quick Check:
fontFamily uses arrays for fonts = C [OK]
Hint: Use arrays for font names and fallbacks in config [OK]
Common Mistakes:
Using strings instead of arrays for fontFamily
Swapping keys and values
Missing fallback fonts
3. Given this Tailwind config extension:
fontFamily: { custom: ['MyFont', 'sans-serif'] }
and this HTML:
<p class="font-custom">Hello</p>
What font will the paragraph use if 'MyFont' is loaded correctly?
medium
A. No font, text will be invisible
B. The browser default font
C. 'sans-serif' fallback font only
D. 'MyFont' custom font
Solution
Step 1: Understand class usage
The class font-custom applies the font family named 'custom' from Tailwind config.
Step 2: Check font loading
If 'MyFont' is loaded correctly via @font-face, it will be used first, with 'sans-serif' as fallback.
Final Answer:
'MyFont' custom font -> Option D
Quick Check:
font-custom uses 'MyFont' if loaded = A [OK]
Hint: font-custom uses your custom font if loaded properly [OK]
But your text with font-custom class still shows default font. What is the likely mistake?
medium
A. You used the wrong font file format
B. You forgot to extend fontFamily in tailwind.config.js
C. You applied the wrong Tailwind class name
D. You did not include the font file in your HTML
Solution
Step 1: Check font-face usage
The font is loaded with @font-face, so the font file is available.
Step 2: Verify Tailwind config
Without extending fontFamily in tailwind.config.js, the class font-custom won't apply the new font.
Final Answer:
You forgot to extend fontFamily in tailwind.config.js -> Option B
Quick Check:
fontFamily extension missing = B [OK]
Hint: Always extend fontFamily to use custom fonts in Tailwind [OK]
Common Mistakes:
Not extending fontFamily in config
Using wrong class names
Forgetting to rebuild Tailwind after config change
5. You want to use two custom fonts, 'MyFontBold' and 'MyFontLight', in Tailwind. How should you configure tailwind.config.js and your CSS to use font-boldcustom and font-lightcustom classes for them?
hard
A. Define two @font-face rules with different font-family names and extend fontFamily with keys 'boldcustom' and 'lightcustom' pointing to those fonts
B. Use one @font-face with both fonts and extend fontFamily with a single key
C. Only extend fontFamily once and use CSS font-weight to switch fonts
D. Add both fonts in one @font-face and use font-custom class for both
Solution
Step 1: Define separate @font-face rules
Each font variant needs its own @font-face with unique font-family names like 'MyFontBold' and 'MyFontLight'.
Step 2: Extend Tailwind's fontFamily
In tailwind.config.js, add keys 'boldcustom' and 'lightcustom' pointing to these font-family names so you can use font-boldcustom and font-lightcustom classes.
Final Answer:
Define two @font-face rules and extend fontFamily with 'boldcustom' and 'lightcustom' -> Option A
Quick Check:
Separate font-faces + fontFamily keys = A [OK]
Hint: Use separate font-family names and keys for each font variant [OK]
Common Mistakes:
Trying to combine fonts in one @font-face
Using CSS font-weight instead of separate font-family
Not extending fontFamily for each font variant
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.