📖 Scenario: You are building a simple webpage for a small business. The business wants to use their own colors instead of Bootstrap's default colors to match their brand.
🎯 Goal: Create a webpage using Bootstrap that applies a custom color theme by overriding Bootstrap CSS variables. The page should have a header, a button, and a footer that use the custom colors.
📋 What You'll Learn
Use Bootstrap 5 CSS from CDN
Override Bootstrap CSS variables to create a custom primary color and secondary color
Apply the custom colors to a header background, a button, and a footer background
Use semantic HTML elements: , ,
Ensure the page is responsive and accessible with proper color contrast
💡 Why This Matters
🌍 Real World
Many businesses want their websites to match their brand colors. Overriding Bootstrap variables is a simple way to customize the look without rewriting all styles.
💼 Career
Web developers often customize frameworks like Bootstrap to meet client branding requirements while keeping responsive and accessible design.
Remember to include the Bootstrap CSS link inside the <head> and use semantic tags for header, main, and footer.
2
Add CSS variables to configure custom colors
Inside the <head>, add a <style> block that overrides Bootstrap CSS variables --bs-primary and --bs-secondary. Set --bs-primary to #2a9d8f (a teal color) and --bs-secondary to #e76f51 (a warm orange).
Bootsrap
Hint
Use the :root selector to override CSS variables for Bootstrap colors.
3
Apply custom colors to header and footer backgrounds
Add CSS rules inside the existing <style> block to set the background-color of the header to var(--bs-primary) and the footer to var(--bs-secondary). Also set the text color inside both to white for good contrast.
Bootsrap
Hint
Use background-color: var(--bs-primary); for the header and similarly for the footer with --bs-secondary. Set color: white; for text.
4
Add spacing and ensure button uses custom primary color
Add CSS inside the <style> block to add padding: 2rem to the main section for spacing. Confirm the button uses the Bootstrap class btn-primary so it automatically uses the custom primary color. Also add aria-label="Click the primary action button" to the button for accessibility.
Bootsrap
Hint
Add padding to main for spacing and add the aria-label attribute to the button for accessibility.
Practice
(1/5)
1. What is the main purpose of creating a custom color theme in Bootstrap?
easy
A. To disable Bootstrap's grid system
B. To add new Bootstrap components
C. To change Bootstrap's default colors to match your brand
D. To increase the font size globally
Solution
Step 1: Understand Bootstrap's default colors
Bootstrap comes with preset colors that style buttons, backgrounds, and text.
Step 2: Purpose of custom color themes
Custom color themes let you replace these default colors with your own brand colors for consistency.
Final Answer:
To change Bootstrap's default colors to match your brand -> Option C
Quick Check:
Custom colors = brand matching [OK]
Hint: Custom themes change colors to fit your brand [OK]
Common Mistakes:
Thinking custom themes add new components
Confusing color themes with layout changes
Assuming it disables Bootstrap features
2. Which CSS selector is commonly used to define custom color variables for Bootstrap themes?
easy
A. html
B. .custom-theme
C. body
D. :root
Solution
Step 1: Identify where CSS variables are defined
CSS variables for themes are usually set globally for easy access.
Step 2: Recognize the :root selector
:root targets the highest-level element in the document, perfect for global variables.
Final Answer:
:root -> Option D
Quick Check:
Global CSS variables = :root [OK]
Hint: Use :root for global CSS variables [OK]
Common Mistakes:
Using class selectors instead of :root
Defining variables inside body or html only
Confusing :root with other pseudo-classes
3. Given this CSS snippet, what color will the primary button have?
CSS declarations should end with a semicolon after each property value; missing after #28a745.
Step 2: Effect of missing semicolon
Without semicolon, CSS parsing can break (especially with additional properties), causing the variable to be ignored.
Final Answer:
Missing semicolon after color value in :root -> Option A
Quick Check:
CSS syntax error = missing semicolon [OK]
Hint: Always end CSS declarations with semicolon [OK]
Common Mistakes:
Assuming variable name is wrong
Thinking CSS variables don't work in Bootstrap
Believing color code is invalid
5. You want to create a dark theme by changing Bootstrap's background and text colors using CSS variables. Which code snippet correctly sets a dark background and light text for the whole page?
hard
A. html { --bs-body-bg: black; --bs-body-color: white; } .container { background-color: var(--bs-body-bg); color: var(--bs-body-color); }
B. :root { --bs-body-bg: #000000; --bs-body-color: #ffffff; } body { background-color: var(--bs-body-bg); color: var(--bs-body-color); }
C. :root { background-color: #000000; color: #ffffff; }
D. body { --bs-body-bg: #000000; --bs-body-color: #ffffff; }
Solution
Step 1: Define CSS variables globally
Use :root to set --bs-body-bg and --bs-body-color for global theme colors.
Step 2: Apply variables to body styles
Set body's background-color and color using the CSS variables for consistent theme.
Step 3: Check other options
Defining variables on html but applying only to .container limits the theme to containers; defining variables on body without applying them to styles shows no visible change; setting colors directly on :root bypasses CSS variables.
Final Answer:
:root { --bs-body-bg: #000000; --bs-body-color: #ffffff; } body { background-color: var(--bs-body-bg); color: var(--bs-body-color); } -> Option B
Quick Check:
Global variables + body styles = dark theme [OK]
Hint: Set variables in :root and apply on body [OK]
Common Mistakes:
Defining variables but not applying them
Setting colors directly without variables
Applying variables only to container, not whole page
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.