Switch
A selector component for switching between two states (On/Off).
Basic Usage
import { Component, signal } from '@angular/core';
import { PrismSwitchComponent } from '@devynelogic/prism-core';
@Component({
selector: 'app-switch-example',
imports: [PrismSwitchComponent],
template: '<prism-switch [(checked)]="checked" />'
})
export class SwitchExampleComponent {
checked = signal(false);
}Sizes
<prism-switch [(checked)]="checked" />
<prism-switch [(checked)]="checked" size="small" />Text & Icons
<prism-switch
[(checked)]="checked"
checkedChildren="ON"
unCheckedChildren="OFF"
/>
<prism-switch
[(checked)]="checked"
[checkedChildren]="checkIcon"
[unCheckedChildren]="closeIcon"
/>
<ng-template #checkIcon><i class="ri-check-line"></i></ng-template>
<ng-template #closeIcon><i class="ri-close-line"></i></ng-template>Interactive Loading
User Status: Deactivated
Click the switch to simulate a 2s API call.
export class MyComponent {
isLoading = signal(false);
isAccountActive = signal(false);
onAccountToggle() {
this.isLoading.set(true);
// Simulate API call
setTimeout(() => {
this.isAccountActive.update(v => !v);
this.isLoading.set(false);
}, 2000);
}
}States
<prism-switch [loading]="true" [checked]="true" />
<prism-switch [disabled]="true" [checked]="false" />| Name | Type | Default | Description |
|---|---|---|---|
checked | model<boolean> | false | Two-way binding for state. |
checkedChildren | string | TemplateRef | null | Content when ON. |
unCheckedChildren | string | TemplateRef | null | Content when OFF. |
loading | boolean | false | Show loading spinner. |
disabled | boolean | false | Disable interaction. |
size | 'default' | 'small' | 'default' | Size of the switch. |