📖 Scenario: You are building a simple webpage for a small business. You want to add a custom icon next to the business name in the header to make it look unique and professional.
🎯 Goal: Create a webpage header using Bootstrap that includes a custom icon image next to the business name. The icon should be properly sized and aligned with the text.
📋 What You'll Learn
Use Bootstrap 5 CSS from CDN
Create a header with a business name inside a <header> element
Add a custom icon image next to the business name
Use Bootstrap classes to align the icon and text horizontally
Make sure the icon has an accessible alt attribute
Ensure the page is responsive and the icon scales nicely on smaller screens
💡 Why This Matters
🌍 Real World
Small businesses often want to customize their website headers with logos or icons to create brand identity and improve user experience.
💼 Career
Knowing how to integrate custom icons with Bootstrap is useful for front-end developers building professional and responsive websites.
Progress0 / 4 steps
1
Set up the basic HTML structure with Bootstrap
Create a basic HTML5 page with lang="en", charset="UTF-8", and viewport meta tags. Include the Bootstrap 5 CSS CDN link inside the <head>. Add an empty <header> element inside the <body>.
Bootsrap
Hint
Remember to include the Bootstrap CSS link inside the <head> and create an empty <header> inside the <body>.
2
Add the business name and custom icon image inside the header
Inside the <header>, add a <div> with Bootstrap classes d-flex align-items-center. Inside this <div>, add an <img> tag with src="icon.png", alt="Business Icon", and Bootstrap class me-2. Next to the image, add an <h1> with the text My Business.
Bootsrap
Hint
Use a div with Bootstrap flex classes to align the icon and text horizontally. Add the image with the exact src and alt attributes, and the class me-2 to add margin on the right.
3
Set the icon size using Bootstrap utility classes
Add the Bootstrap class img-fluid to the <img> tag to make the icon scale responsively. Also add the class rounded to give the icon rounded corners.
Bootsrap
Hint
Bootstrap's img-fluid class makes images scale nicely on different screen sizes. The rounded class adds smooth corners.
4
Add a background color and padding to the header
Add the Bootstrap classes bg-light and p-3 to the <header> element to give it a light background and padding around the content.
Bootsrap
Hint
Use Bootstrap utility classes bg-light for a light background and p-3 for padding inside the header.
Practice
(1/5)
1. What is the main reason to use custom icons in Bootstrap projects?
easy
A. To increase page loading time
B. To make the website look unique and clear
C. To replace all text with images
D. To avoid using any CSS styles
Solution
Step 1: Understand the purpose of custom icons
Custom icons help make a website visually unique and improve clarity by showing meaningful symbols.
Step 2: Compare options
Options B, C, and D do not describe benefits of custom icons. Only To make the website look unique and clear correctly states the main reason.
Final Answer:
To make the website look unique and clear -> Option B
Quick Check:
Custom icons improve uniqueness and clarity = A [OK]
Hint: Custom icons improve look and clarity, not performance [OK]
Common Mistakes:
Thinking custom icons slow down the site
Confusing icons with replacing text content
Ignoring the visual clarity benefit
2. Which of the following is the correct way to include a custom SVG icon inline in Bootstrap HTML?
easy
A. <svg class='bi'><use xlink:href='#icon-name' /></svg>
B. <img src='icon.svg' class='bi'>
C. <icon name='custom-icon' />
D. <svg href='icon.svg' class='icon'></svg>
Solution
Step 1: Identify correct SVG inline usage
Bootstrap uses <svg> with <use> referencing an icon ID inside an SVG sprite.
Step 2: Check each option
<svg class='bi'><use xlink:href='#icon-name' /></svg> uses <svg> and <use xlink:href='#icon-name' /> which is correct. <img src='icon.svg' class='bi'> uses <img> which is not inline SVG. <icon name='custom-icon' /> uses a non-standard <icon> tag. <svg href='icon.svg' class='icon'></svg> incorrectly uses href on <svg>.
Final Answer:
<svg class='bi'><use xlink:href='#icon-name' /></svg> -> Option A
Quick Check:
Inline SVG with <use> = B [OK]
Hint: Inline SVG uses <svg> with <use xlink:href> [OK]
Common Mistakes:
Using <img> instead of inline SVG
Using non-standard tags like <icon>
Incorrect attributes on <svg> tag
3. What will be the visual result of this code snippet?
The aria-label is present but role='img' is missing, which is needed for screen readers to treat SVG as an image.
Step 2: Validate other attributes
Using href is valid in modern browsers (SVG2), so no error there. Width and height with '1em' are valid CSS units. The class attribute is allowed on SVG.
Final Answer:
Missing role='img' attribute for accessibility -> Option C
Quick Check:
SVG needs role='img' for accessibility = C [OK]
Hint: Always add role='img' with aria-label on SVG icons [OK]
Common Mistakes:
Confusing href and xlink:href usage
Thinking class attribute is invalid on SVG
Ignoring accessibility role attribute
5. You want to add a custom icon to a Bootstrap button that changes color on hover and is accessible. Which combination of code and classes is best?
hard
A. <button class='btn btn-primary'><svg class='bi'><use xlink:href='#send-fill'/></svg> Send</button>
B. <button class='btn btn-primary'><svg class='bi text-primary' role='img' aria-label='Send'><use xlink:href='#send-fill'/></svg> Send</button>
C. <button class='btn btn-primary'><img src='send.svg' alt='Send icon'> Send</button>
D. <button class='btn btn-primary'><svg class='bi text-white' role='img' aria-label='Send'><use xlink:href='#send-fill'/></svg> Send</button>
Solution
Step 1: Check color and accessibility
<button class='btn btn-primary'><svg class='bi text-white' role='img' aria-label='Send'><use xlink:href='#send-fill'/></svg> Send</button> uses text-white on the SVG so the icon color contrasts well on the blue button background. It also includes role='img' and aria-label for accessibility.
Step 2: Compare other options
<button class='btn btn-primary'><svg class='bi text-primary' role='img' aria-label='Send'><use xlink:href='#send-fill'/></svg> Send</button> uses text-primary which is blue, so icon won't contrast on blue button. <button class='btn btn-primary'><img src='send.svg' alt='Send icon'> Send</button> uses an image without inline SVG, losing Bootstrap styling. <button class='btn btn-primary'><svg class='bi'><use xlink:href='#send-fill'/></svg> Send</button> lacks color class and accessibility attributes.
Final Answer:
Button with SVG icon using text-white and accessibility attributes -> Option D
Quick Check:
Accessible icon with visible color on button = A [OK]
Hint: Use text-white on icon inside colored buttons for contrast [OK]
Common Mistakes:
Using icon color same as button background
Skipping role and aria-label on SVG
Using img instead of inline SVG for Bootstrap icons
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.