Conditional classes let you add or remove CSS classes based on a condition. This helps change styles easily without extra code.
Conditional classes (class:name) in Svelte
<element class:name={condition}>The name is the CSS class you want to add.
The condition is a JavaScript expression that returns true or false.
active class only if isActive is true.<button class:active={isActive}>Click me</button>hidden class when isVisible is false.<div class:hidden={!isVisible}>Content</div>error class if hasError is true.<p class:error={hasError}>Warning!</p>This Svelte component shows a button that toggles an active class when clicked. The button text and style change based on the isActive state.
It uses class:active={isActive} to add the class only when isActive is true.
ARIA attribute aria-pressed improves accessibility by indicating the toggle state.
<script> let isActive = false; function toggle() { isActive = !isActive; } </script> <button class:active={isActive} on:click={toggle} aria-pressed={isActive}> {isActive ? 'Active' : 'Inactive'} </button> <style> button { padding: 0.5rem 1rem; font-size: 1rem; border: 2px solid #333; background-color: white; color: #333; cursor: pointer; border-radius: 0.25rem; transition: background-color 0.3s, color 0.3s; } button.active { background-color: #007acc; color: white; } </style>
You can use multiple conditional classes on one element.
Use clear and simple conditions for readability.
Remember to add accessible attributes like aria-pressed for toggle buttons.
Conditional classes add CSS classes based on true/false conditions.
Use class:name={condition} syntax in Svelte.
This helps style elements dynamically without extra JavaScript.