Bird
Raised Fist0
Bootsrapmarkup~3 mins

Creating custom component variants in Bootsrap - Why You Should Know This

Choose your learning style10 modes available
The Big Idea

What if you could create new button styles just once and use them everywhere without rewriting CSS?

The Scenario

Imagine you want a button on your website that looks different from the standard Bootstrap buttons. You try to change colors and sizes by writing separate CSS for each style manually.

The Problem

Manually writing CSS for each button style is slow and confusing. If you want to update the button look later, you must change many places. It's easy to make mistakes and hard to keep styles consistent.

The Solution

Creating custom component variants lets you define new button styles by extending Bootstrap's system. You write one set of rules and reuse them everywhere, keeping your design consistent and easy to update.

Before vs After
✗ Before
.btn-red { background-color: red; color: white; }
.btn-green { background-color: green; color: white; }
✓ After
.btn-red { @include button-variant(red, white); }
.btn-green { @include button-variant(green, white); }
What It Enables

You can quickly create many consistent button styles that fit your brand and update them all at once.

Real Life Example

A company wants primary, secondary, and special offer buttons with unique colors. Using custom variants, they create these styles once and apply them everywhere on their site easily.

Key Takeaways

Manual CSS for each style is slow and error-prone.

Custom variants let you reuse and maintain styles easily.

This keeps your site consistent and simple to update.

Practice

(1/5)
1. What is the main purpose of creating custom component variants in Bootstrap?
easy
A. To change the Bootstrap grid system
B. To remove default Bootstrap styles completely
C. To write JavaScript code for Bootstrap components
D. To create new styles based on existing Bootstrap components

Solution

  1. Step 1: Understand Bootstrap components

    Bootstrap provides ready-made components with default styles.
  2. Step 2: Purpose of custom variants

    Custom variants let you create new styles that build on these defaults without rewriting everything.
  3. Final Answer:

    To create new styles based on existing Bootstrap components -> Option D
  4. Quick Check:

    Custom variants = new styles from existing components [OK]
Hint: Custom variants extend styles, not replace or remove [OK]
Common Mistakes:
  • Thinking custom variants remove all Bootstrap styles
  • Confusing variants with JavaScript functionality
  • Believing variants change grid layout
2. Which of the following is the correct way to define a custom button variant in Bootstrap SCSS?
easy
A. button-variant($btn-custom-color, #fff); $btn-custom-color: #ff6600;
B. $btn-custom-color: #ff6600; @include button-variant($btn-custom-color, #fff);
C. @include button-variant(#fff, $btn-custom-color); $btn-custom-color: #ff6600;
D. $btn-custom-color: #ff6600; button-variant(#fff, $btn-custom-color);

Solution

  1. Step 1: Define color variable first

    You must declare the color variable before using it in mixins.
  2. Step 2: Use the button-variant mixin correctly

    The mixin syntax is @include button-variant(background-color, text-color); so $btn-custom-color first, then #fff.
  3. Final Answer:

    $btn-custom-color: #ff6600; @include button-variant($btn-custom-color, #fff); -> Option B
  4. Quick Check:

    Variable first, then mixin with correct order [OK]
Hint: Declare variables before mixins; mixin args: background, text color [OK]
Common Mistakes:
  • Using mixin before defining variables
  • Swapping background and text colors in mixin
  • Forgetting @include keyword
3. Given this SCSS code snippet, what will be the background color of the button with class btn-custom?
$btn-custom-bg: #28a745;
@include button-variant($btn-custom-bg, #fff);
Test
medium
A. #28a745 (green)
B. #fff (white)
C. Default Bootstrap button color
D. No background color applied

Solution

  1. Step 1: Understand button-variant mixin

    The mixin sets the background color to the first argument and text color to the second.
  2. Step 2: Check variable value

    $btn-custom-bg is #28a745, a green shade, so background becomes green.
  3. Final Answer:

    #28a745 (green) -> Option A
  4. Quick Check:

    Mixin background color = #28a745 [OK]
Hint: First mixin argument sets background color [OK]
Common Mistakes:
  • Confusing background and text colors
  • Expecting default Bootstrap colors
  • Ignoring variable value
4. You wrote this SCSS to create a custom variant but the button does not show the new style:
$btn-special-bg: #ff5733;
@include button-variant($btn-special-bg, #fff);
What is the most likely reason your custom variant btn-special is not working?
medium
A. You need to import Bootstrap JavaScript for styles to work
B. You used the wrong color code format
C. You forgot to add the custom class btn-special to the button element
D. You must use !important in SCSS to override styles

Solution

  1. Step 1: Check SCSS usage

    The SCSS defines styles for the btn-special class but does not apply it automatically.
  2. Step 2: Confirm HTML class usage

    To see the style, the button element must have class btn-special along with btn.
  3. Final Answer:

    You forgot to add the custom class btn-special to the button element -> Option C
  4. Quick Check:

    Custom class must be on element to apply styles [OK]
Hint: Add your custom class to HTML element to see styles [OK]
Common Mistakes:
  • Assuming SCSS applies styles without HTML class
  • Thinking JavaScript is needed for CSS styles
  • Using !important unnecessarily
5. You want to create a custom Bootstrap card variant with a blue border and light blue background. Which SCSS code correctly creates a card-blue variant and applies it to a card?
hard
A. $card-blue-border: #007bff; $card-blue-bg: #cce5ff; .card-blue { border: 1px solid $card-blue-border; background-color: $card-blue-bg; @include card-border-radius; padding: 1rem; }
Content
B. $card-blue-border: #007bff; .card-blue { border-color: $card-blue-border; background-color: #cce5ff; }
Content
C. $card-blue-bg: #cce5ff; .card-blue { border: 1px solid blue; background-color: $card-blue-bg; }
Content
D. $card-blue-border: #007bff; $card-blue-bg: #cce5ff; @include card-variant($card-blue-border, $card-blue-bg);
Content

Solution

  1. Step 1: Define variables and styles properly

    $card-blue-border: #007bff; $card-blue-bg: #cce5ff; .card-blue { border: 1px solid $card-blue-border; background-color: $card-blue-bg; @include card-border-radius; padding: 1rem; }
    Content defines border and background colors as variables, then uses them in a CSS class with proper properties and Bootstrap mixin for border radius.
  2. Step 2: Apply class with Bootstrap card class

    The HTML uses both card and card-blue classes to keep Bootstrap card styles and add custom variant styles.
  3. Final Answer:

    Option A code correctly creates and applies the custom card variant -> Option A
  4. Quick Check:

    Custom variant needs variables, CSS rules, and combined classes [OK]
Hint: Combine Bootstrap class with custom class for variants [OK]
Common Mistakes:
  • Not combining custom class with Bootstrap base class
  • Missing border or background properties
  • Using undefined mixins or wrong mixin names
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard