Bird
Raised Fist0
Svelteframework~5 mins

Conditional classes (class:name) in Svelte - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does class:name={condition} do in Svelte?
It adds the CSS class <code>name</code> to the element only if <code>condition</code> is true. If false, the class is not added.
Click to reveal answer
beginner
How do you apply multiple conditional classes in Svelte?
You write multiple <code>class:name={condition}</code> attributes on the same element, each controlling one class based on its condition.
Click to reveal answer
intermediate
Can you use expressions inside the condition of class:name={condition}?
Yes, you can use any JavaScript expression that evaluates to true or false inside the curly braces to control the class application.
Click to reveal answer
intermediate
What happens if the condition in class:name={condition} changes during runtime?
Svelte automatically updates the element's classes to add or remove the class name based on the new condition value.
Click to reveal answer
beginner
Why is using class:name={condition} better than manually toggling classes with JavaScript in Svelte?
Because it keeps your code clean, declarative, and reactive. Svelte handles class changes automatically without extra code.
Click to reveal answer
What does class:active={isActive} do in Svelte?
ARemoves the class 'active' if isActive is true
BAdds the class 'active' only if isActive is true
CAlways adds the class 'active'
DAdds the class 'isActive' instead of 'active'
How can you add two conditional classes 'red' and 'bold' based on variables in Svelte?
A<div class={isRed ? 'red' : ''} class={isBold ? 'bold' : ''}>
B<div class='red bold' if={isRed && isBold}>
C<div class:red={isRed} class:bold={isBold}>
D<div class:red, bold={isRed && isBold}>
If class:highlight={score > 50} is used, when is the 'highlight' class applied?
AWhen score is greater than 50
BWhen score is less than 50
CAlways
DNever
What happens if the condition in class:name={condition} changes from true to false?
AThe class 'name' is removed from the element
BThe class 'name' stays on the element
CAn error occurs
DThe class 'name' is added twice
Which is a benefit of using class:name={condition} in Svelte?
AOnly works with static classes
BSlower performance
CRequires manual DOM updates
DCleaner and reactive class management
Explain how to use conditional classes in Svelte and why it helps with reactive UI.
Think about how Svelte updates classes when variables change.
You got /4 concepts.
    Describe how you would add multiple conditional classes to an element in Svelte.
    Remember each class gets its own class:name attribute.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does the Svelte syntax class:active={isActive} do in a component?
      easy
      A. Always adds the CSS class 'active' regardless of isActive value.
      B. Adds the CSS class 'active' only if the variable isActive is true.
      C. Removes the CSS class 'active' when isActive is true.
      D. Adds the CSS class 'active' only if isActive is false.

      Solution

      1. Step 1: Understand the syntax class:name={condition}

        This syntax adds the CSS class name only when the condition is true.
      2. Step 2: Apply to class:active={isActive}

        The class active is added only if isActive is true; otherwise, it is not added.
      3. Final Answer:

        Adds the CSS class 'active' only if the variable isActive is true. -> Option B
      4. Quick Check:

        Conditional class = Adds class if true [OK]
      Hint: class:name adds class only when condition is true [OK]
      Common Mistakes:
      • Thinking class:name adds class always
      • Confusing true and false conditions
      • Assuming it removes class when true
      2. Which of the following is the correct syntax to conditionally add a CSS class highlight in Svelte when isHighlighted is true?
      easy
      A. class:highlight = {isHighlighted}
      B. class.highlight={isHighlighted}
      C. class:highlight={isHighlighted}
      D. class={highlight: isHighlighted}

      Solution

      1. Step 1: Recall correct Svelte conditional class syntax

        The correct syntax is class:name={condition} without spaces around the equals sign.
      2. Step 2: Check each option

        class:highlight={isHighlighted} matches the correct syntax exactly: class:highlight={isHighlighted}. Others have syntax errors or invalid formats.
      3. Final Answer:

        class:highlight={isHighlighted} -> Option C
      4. Quick Check:

        Correct syntax = class:name={condition} [OK]
      Hint: No spaces around = in class:name={condition} [OK]
      Common Mistakes:
      • Adding spaces around = sign
      • Using dot instead of colon
      • Trying object syntax inside class attribute
      3. Given this Svelte code snippet:
      <script>
        let isError = false;
      </script>
      
      <div class:error={isError} class:success={!isError}>Status</div>

      What CSS classes will the <div> have when isError is false?
      medium
      A. No classes added
      B. Only the class error
      C. Both classes error and success
      D. Only the class success

      Solution

      1. Step 1: Evaluate class:error={isError} when isError is false

        Since isError is false, the class error is not added.
      2. Step 2: Evaluate class:success={!isError} when isError is false

        The expression !isError is true, so the class success is added.
      3. Final Answer:

        Only the class success -> Option D
      4. Quick Check:

        Negation adds success class when isError is false [OK]
      Hint: Check condition true to add class, false to skip [OK]
      Common Mistakes:
      • Adding both classes regardless of condition
      • Confusing negation operator !
      • Assuming false adds class
      4. Identify the error in this Svelte code:
      <script>
        let isActive = true;
      </script>
      
      <button class:active = {isActive}>Click Me</button>
      medium
      A. There should be no spaces around the equals sign in class:active = {isActive}.
      B. The class: directive cannot be used on a <button> element.
      C. The class name cannot be active.
      D. The variable isActive is not declared.

      Solution

      1. Step 1: Check variable declaration

        The variable isActive is declared correctly in the script block.
      2. Step 2: Check syntax of conditional class

        The syntax class:active = {isActive} has spaces around the equals sign, which is invalid in Svelte. It should be class:active={isActive} without spaces.
      3. Final Answer:

        There should be no spaces around the equals sign in class:active = {isActive}. -> Option A
      4. Quick Check:

        No spaces around = in class:name={condition} [OK]
      Hint: No spaces around = in class:name={condition} [OK]
      Common Mistakes:
      • Adding spaces around = sign
      • Thinking class:name can't be on button
      • Missing variable declaration
      5. You want to add two conditional classes visible and highlight to a <div> in Svelte. visible should be added when isVisible is true, and highlight only when isHighlighted is also true and isVisible is true.

      Which of the following is the correct way to write this?
      hard
      A.
      <div class:visible={isVisible} class:highlight={isHighlighted && isVisible}>Content</div>
      B.
      <div class:visible={isVisible} class:highlight={isHighlighted || isVisible}>Content</div>
      C.
      <div class:visible={isVisible && isHighlighted} class:highlight={isVisible}>Content</div>
      D.
      <div class:visible={isVisible} class:highlight={isHighlighted}>Content</div>

      Solution

      1. Step 1: Understand conditions for each class

        The class visible depends only on isVisible. The class highlight depends on both isHighlighted and isVisible being true.
      2. Step 2: Check each option's logic

        <div class:visible={isVisible} class:highlight={isHighlighted && isVisible}>Content</div>
        correctly uses class:visible={isVisible} and class:highlight={isHighlighted && isVisible}, matching the requirements.
        <div class:visible={isVisible} class:highlight={isHighlighted || isVisible}>Content</div>
        uses OR which is incorrect.
        <div class:visible={isVisible && isHighlighted} class:highlight={isVisible}>Content</div>
        swaps conditions incorrectly.
        <div class:visible={isVisible} class:highlight={isHighlighted}>Content</div>
        misses the isVisible condition for highlight.
      3. Final Answer:

        <div class:visible={isVisible} class:highlight={isHighlighted && isVisible}>Content</div> -> Option A
      4. Quick Check:

        Use && to combine conditions for conditional classes [OK]
      Hint: Use && to combine multiple conditions in class:name [OK]
      Common Mistakes:
      • Using || instead of && for combined conditions
      • Swapping conditions between classes
      • Omitting one condition in combined class
      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