Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions src/dev-app/slide-toggle/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ ng_project(
"//:node_modules/@angular/core",
"//:node_modules/@angular/forms",
"//src/material/button",
"//src/material/icon",
"//src/material/slide-toggle",
],
)
Expand Down
15 changes: 15 additions & 0 deletions src/dev-app/slide-toggle/slide-toggle-demo.html
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,21 @@
>No icon</mat-slide-toggle
>

<p>With icon as part of the label.</p>

<mat-slide-toggle [(ngModel)]="firstToggle">
<span class="demo-slide-toggle-label-with-icon">
<mat-icon>notifications</mat-icon>
Notifications
</span>
</mat-slide-toggle>
<mat-slide-toggle labelPosition="before" [(ngModel)]="firstToggle">
<span class="demo-slide-toggle-label-with-icon">
<mat-icon>volume_up</mat-icon>
Sounds
</span>
</mat-slide-toggle>

<p>With no label.</p>

<mat-slide-toggle aria-label="Toggle only" hideLabel color="primary" [(ngModel)]="firstToggle" />
Expand Down
6 changes: 6 additions & 0 deletions src/dev-app/slide-toggle/slide-toggle-demo.scss
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,9 @@
border: 1px solid #ccc;
padding: 16px;
}

.demo-slide-toggle-label-with-icon {
display: inline-flex;
align-items: center;
gap: 4px;
}
3 changes: 2 additions & 1 deletion src/dev-app/slide-toggle/slide-toggle-demo.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,14 @@
import {Component} from '@angular/core';
import {FormsModule} from '@angular/forms';
import {MatButtonModule} from '@angular/material/button';
import {MatIconModule} from '@angular/material/icon';
import {MatSlideToggleModule} from '@angular/material/slide-toggle';

@Component({
selector: 'slide-toggle-demo',
templateUrl: 'slide-toggle-demo.html',
styleUrl: 'slide-toggle-demo.css',
imports: [FormsModule, MatButtonModule, MatSlideToggleModule],
imports: [FormsModule, MatButtonModule, MatIconModule, MatSlideToggleModule],
})
export class SlideToggleDemo {
firstToggle = false;
Expand Down
6 changes: 6 additions & 0 deletions src/material/slide-toggle/slide-toggle.scss
Original file line number Diff line number Diff line change
Expand Up @@ -489,6 +489,12 @@ $fallbacks: m3-slide-toggle.get-tokens();
// Remove the native outline since we use the ripple for focus indication.
outline: 0;

& .mat-icon {
// stylelint-disable material/no-prefixes
min-height: fit-content;
flex-shrink: 0;
}

// The ripple needs extra specificity so the base ripple styling doesn't override its `position`.
.mat-mdc-slide-toggle-ripple,
.mdc-switch__ripple::after {
Expand Down
Loading