Skip to content

Commit b7bcd39

Browse files
committed
feat(windows): add toggles
references #5565
1 parent fe11ecc commit b7bcd39

File tree

2 files changed

+148
-0
lines changed

2 files changed

+148
-0
lines changed

ionic/components.wp.scss

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,5 @@
1515
"components/content/content.wp",
1616
"components/radio/radio.wp",
1717
"components/segment/segment.wp",
18+
"components/toggle/toggle.wp",
1819
"components/toolbar/toolbar.wp";
Lines changed: 147 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,147 @@
1+
@import "../../globals.wp";
2+
3+
// Windows Toggle
4+
// --------------------------------------------------
5+
6+
$toggle-wp-inactive-color: #323232 !default;
7+
$toggle-wp-active-color: map-get($colors-wp, primary) !default;
8+
9+
$toggle-wp-track-width: 40px !default;
10+
$toggle-wp-track-height: 18px !default;
11+
$toggle-wp-track-background-color-off: transparent !default;
12+
$toggle-wp-track-background-color-on: $toggle-wp-active-color !default;
13+
14+
$toggle-wp-track-border-width: 2px !default;
15+
$toggle-wp-track-border-color-off: $toggle-wp-inactive-color !default;
16+
$toggle-wp-track-border-color-on: $toggle-wp-active-color !default;
17+
18+
$toggle-wp-handle-width: 10px !default;
19+
$toggle-wp-handle-height: 10px !default;
20+
$toggle-wp-handle-top: 2px !default;
21+
$toggle-wp-handle-left: 2px !default;
22+
$toggle-wp-handle-background-color-off: $toggle-wp-inactive-color !default;
23+
$toggle-wp-handle-background-color-on: color-inverse($toggle-wp-active-color) !default;
24+
$toggle-wp-handle-border-radius: 50% !default;
25+
26+
$toggle-wp-media-margin: 0 !default;
27+
$toggle-wp-media-padding: 12px ($item-wp-padding-right / 2) 12px $item-wp-padding-left !default;
28+
29+
$toggle-wp-disabled-opacity: 0.3 !default;
30+
31+
32+
// Windows Toggle
33+
// -----------------------------------------
34+
35+
ion-toggle {
36+
position: relative;
37+
}
38+
39+
40+
// Windows Toggle Background Track: Unchecked
41+
// -----------------------------------------
42+
43+
.toggle-icon {
44+
position: relative;
45+
display: block;
46+
width: $toggle-wp-track-width;
47+
height: $toggle-wp-track-height;
48+
pointer-events: none;
49+
border-radius: $toggle-wp-track-height;
50+
51+
background-color: $toggle-wp-track-background-color-off;
52+
border: $toggle-wp-track-border-width solid $toggle-wp-track-border-color-off;
53+
}
54+
55+
56+
// Windows Toggle Inner Knob: Unchecked
57+
// -----------------------------------------
58+
59+
.toggle-inner {
60+
position: absolute;
61+
top: $toggle-wp-handle-top;
62+
left: $toggle-wp-handle-left;
63+
64+
width: $toggle-wp-handle-width;
65+
height: $toggle-wp-handle-height;
66+
67+
border-radius: $toggle-wp-handle-border-radius;
68+
background-color: $toggle-wp-handle-background-color-off;
69+
}
70+
71+
72+
// Windows Toggle Background Track: Checked
73+
// -----------------------------------------
74+
75+
.toggle-checked {
76+
background-color: $toggle-wp-track-background-color-on;
77+
border-color: $toggle-wp-track-background-color-on;
78+
}
79+
80+
81+
// Windows Toggle Inner Knob: Checked
82+
// -----------------------------------------
83+
84+
.toggle-checked .toggle-inner {
85+
background-color: $toggle-wp-handle-background-color-on;
86+
// transform: translate3d(23px, 0, 0);
87+
transform: translate3d($toggle-wp-track-width - $toggle-wp-handle-width - ( $toggle-wp-track-border-width * 2 ) - ( $toggle-wp-handle-left * 2 ), 0, 0);
88+
}
89+
90+
91+
// Windows Toggle: Disabled
92+
// -----------------------------------------
93+
94+
.toggle-disabled,
95+
.item-toggle-disabled ion-label {
96+
opacity: $toggle-wp-disabled-opacity;
97+
pointer-events: none;
98+
}
99+
100+
.toggle-disabled ion-radio {
101+
opacity: $toggle-wp-disabled-opacity;
102+
}
103+
104+
105+
// Windows Toggle Within An Item
106+
// -----------------------------------------
107+
108+
.item ion-toggle {
109+
margin: $toggle-wp-media-margin;
110+
padding: $toggle-wp-media-padding;
111+
cursor: pointer;
112+
}
113+
114+
.item-toggle ion-label {
115+
margin-left: 0;
116+
}
117+
118+
119+
// Windows Color Mixin
120+
// --------------------------------------------------
121+
122+
@mixin toggle-theme-wp($color-name, $color-value) {
123+
124+
ion-toggle[#{$color-name}] {
125+
126+
.toggle-checked {
127+
background-color: $color-value;
128+
border-color: $color-value;
129+
}
130+
131+
.toggle-checked .toggle-inner {
132+
background-color: color-inverse($color-value);
133+
}
134+
135+
}
136+
137+
}
138+
139+
140+
// Generate Windows Toggle Auxiliary Colors
141+
// --------------------------------------------------
142+
143+
@each $color-name, $color-value in $colors-wp {
144+
145+
@include toggle-theme-wp($color-name, $color-value);
146+
147+
}

0 commit comments

Comments
 (0)