0
0
Svelteframework~20 mins

Conditional classes (class:name) in Svelte - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Conditional Classes Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
component_behavior
intermediate
2:00remaining
What class is applied when isActive is true?

Consider this Svelte snippet:

<script>
  let isActive = true;
</script>

<div class:active={isActive}>Hello</div>

Which class will the <div> have when isActive is true?

Svelte
<script>
  let isActive = true;
</script>

<div class:active={isActive}>Hello</div>
AThe div will have no classes.
BThe div will have the class 'true'.
CThe div will have the class 'inactive'.
DThe div will have the class 'active'.
Attempts:
2 left
💡 Hint

Think about how class:name={condition} works in Svelte.

state_output
intermediate
2:00remaining
What classes are applied after toggling isError?

Given this Svelte component:

<script>
  let isError = false;
  function toggle() {
    isError = !isError;
  }
</script>

<button on:click={toggle}>Toggle Error</button>
<div class:error={isError} class:ok={!isError}>Status</div>

What classes does the <div> have after clicking the button once?

Svelte
<script>
  let isError = false;
  function toggle() {
    isError = !isError;
  }
</script>

<button on:click={toggle}>Toggle Error</button>
<div class:error={isError} class:ok={!isError}>Status</div>
AThe div has class 'error'.
BThe div has class 'ok'.
CThe div has classes 'error ok'.
DThe div has no classes.
Attempts:
2 left
💡 Hint

Clicking toggles isError from false to true.

📝 Syntax
advanced
2:00remaining
Which option causes a syntax error in conditional class usage?

Identify the option that will cause a syntax error in Svelte when using conditional classes.

A&lt;div class:active={isActive}&gt;Content&lt;/div&gt;
B&lt;div class:active=isActive&gt;Content&lt;/div&gt;
C&lt;div class:active={isActive ? true : false}&gt;Content&lt;/div&gt;
D&lt;div class:active={isActive && true}&gt;Content&lt;/div&gt;
Attempts:
2 left
💡 Hint

Check the syntax for binding class names conditionally in Svelte.

🔧 Debug
advanced
2:00remaining
Why does the class not toggle as expected?

Consider this Svelte code:

<script>
  let isVisible = false;
  function toggle() {
    isVisible == !isVisible;
  }
</script>

<button on:click={toggle}>Toggle</button>
<div class:visible={isVisible}>Show me</div>

Why does clicking the button not toggle the visible class?

Svelte
<script>
  let isVisible = false;
  function toggle() {
    isVisible == !isVisible;
  }
</script>

<button on:click={toggle}>Toggle</button>
<div class:visible={isVisible}>Show me</div>
ABecause '==' is used instead of '=' in the toggle function.
BBecause the class name 'visible' is not defined in CSS.
CBecause the button does not have a click event.
DBecause 'isVisible' is not declared as reactive.
Attempts:
2 left
💡 Hint

Look carefully at the assignment inside the toggle function.

🧠 Conceptual
expert
2:00remaining
What is the final class list on the element?

Given this Svelte snippet:

<script>
  let isRed = true;
  let isBlue = false;
  let isGreen = true;
</script>

<div class:red={isRed} class:blue={isBlue} class:green={isGreen}>Colors</div>

What classes will the <div> have when rendered?

Svelte
<script>
  let isRed = true;
  let isBlue = false;
  let isGreen = true;
</script>

<div class:red={isRed} class:blue={isBlue} class:green={isGreen}>Colors</div>
AThe div has no classes.
BThe div has classes 'red blue green'.
CThe div has classes 'red green'.
DThe div has class 'blue'.
Attempts:
2 left
💡 Hint

Only classes with true conditions are applied.