Skip to content

Commit 9efa3ea

Browse files
committed
feat(sass): add support for contrast color in MD mode colors map
BREAKING CHANGE: Can now pass contrast to the colors map: ``` $colors-md: ( primary: ( base: #327eff, contrast: yellow ), secondary: ( base: #32db64, contrast: hotpink ), danger: #d91e18, light: #f4f4f4, dark: #222 ) !default; ``` references #5445
1 parent ff1a8ac commit 9efa3ea

File tree

18 files changed

+109
-104
lines changed

18 files changed

+109
-104
lines changed

ionic/components/alert/alert.md.scss

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ $alert-md-input-text-color: #000 !default;
3131

3232
$alert-md-input-border-width-focused: 2px !default;
3333
$alert-md-input-border-style-focused: $alert-md-input-border-style !default;
34-
$alert-md-input-border-color-focused: map-get($colors-md, primary) !default;
34+
$alert-md-input-border-color-focused: color($colors-md, primary) !default;
3535

3636
$alert-md-input-margin-top: 5px !default;
3737
$alert-md-input-margin-right: 0 !default;
@@ -45,7 +45,7 @@ $alert-md-button-group-justify-content: flex-end !default;
4545
$alert-md-button-padding: 10px !default;
4646
$alert-md-button-margin: 0 8px 0 0 !default;
4747
$alert-md-button-font-weight: 500 !default;
48-
$alert-md-button-text-color: map-get($colors-md, primary) !default;
48+
$alert-md-button-text-color: color($colors-md, primary) !default;
4949
$alert-md-button-background-color: transparent !default;
5050
$alert-md-button-background-color-activated: rgba(158, 158, 158, .2) !default;
5151
$alert-md-button-border-radius: 2px !default;
@@ -94,9 +94,9 @@ $alert-md-checkbox-icon-width: 6px !default;
9494
$alert-md-checkbox-icon-height: 10px !default;
9595
$alert-md-checkbox-icon-border-width: 2px !default;
9696
$alert-md-checkbox-icon-border-style: solid !default;
97+
$alert-md-checkbox-icon-border-color: color-contrast($colors-md, $alert-md-checkbox-border-color-on) !default;
9798
$alert-md-checkbox-icon-transform: rotate(45deg) !default;
9899

99-
100100
.alert-wrapper {
101101
max-width: $alert-md-max-width;
102102

@@ -304,7 +304,7 @@ $alert-md-checkbox-icon-transform: rotate(45deg) !default;
304304
border-top-width: 0;
305305
border-left-width: 0;
306306
border-style: $alert-md-checkbox-icon-border-style;
307-
border-color: $alert-md-background-color;
307+
border-color: $alert-md-checkbox-icon-border-color;
308308
transform: $alert-md-checkbox-icon-transform;
309309
}
310310

ionic/components/app/app.ios.scss

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ hr {
2525
}
2626

2727
@each $color-name, $color-base, $color-contrast in get-colors($colors-ios) {
28-
2928
h1,
3029
h2,
3130
h3,

ionic/components/app/app.md.scss

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ hr {
1919
background-color: rgba(0, 0, 0, .08);
2020
}
2121

22-
@each $color-name, $color-value in $colors-md {
22+
@each $color-name, $color-base, $color-contrast in get-colors($colors-md) {
2323
h1,
2424
h2,
2525
h3,
@@ -38,7 +38,7 @@ hr {
3838
sup,
3939
ion-icon {
4040
&[#{$color-name}] {
41-
color: $color-value;
41+
color: $color-base;
4242
}
4343
}
4444
}

ionic/components/badge/badge.md.scss

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,24 +4,25 @@
44
// --------------------------------------------------
55

66
$badge-md-border-radius: 4px !default;
7-
$badge-md-background-color: map-get($colors-md, primary) !default;
7+
$badge-md-background-color: color($colors-md, primary) !default;
8+
$badge-md-text-color: color-contrast($colors-md, $badge-md-background-color) !default;
89

910

1011
ion-badge {
1112
border-radius: $badge-md-border-radius;
12-
color: color-inverse($badge-md-background-color);
13+
color: $badge-md-text-color;
1314
background-color: $badge-md-background-color;
1415
}
1516

1617

1718
// Generate Material Design Badge Colors
1819
// --------------------------------------------------
1920

20-
@each $color-name, $color-value in $colors-md {
21+
@each $color-name, $color-base, $color-contrast in get-colors($colors-md) {
2122

2223
.badge-#{$color-name} {
23-
color: color-inverse($color-value);
24-
background-color: $color-value;
24+
color: $color-contrast;
25+
background-color: $color-base;
2526
}
2627

2728
}

ionic/components/button/button.md.scss

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,9 @@ $button-md-clear-ripple-background-color: #999 !default;
2222
$button-md-fab-box-shadow: 0 4px 6px 0 rgba(0, 0, 0, .14), 0 4px 5px rgba(0, 0, 0, .1) !default;
2323
$button-md-fab-box-shadow-active: 0 5px 15px 0 rgba(0, 0, 0, .4), 0 4px 7px 0 rgba(0, 0, 0, .1) !default;
2424

25-
$button-md-color: map-get($colors-md, primary) !default;
25+
$button-md-color: color($colors-md, primary) !default;
2626
$button-md-color-activated: color-shade($button-md-color) !default;
27-
$button-md-text-color: color-inverse($button-md-color) !default;
27+
$button-md-text-color: color-contrast($colors-md, $button-md-color) !default;
2828
$button-md-hover-opacity: .8 !default;
2929

3030
$button-md-large-font-size: 2rem !default;
@@ -77,12 +77,12 @@ $button-md-small-icon-font-size: 1.4em !default;
7777
// Material Design Default Button Color Mixin
7878
// --------------------------------------------------
7979

80-
@mixin md-button-default($color-name, $color-value) {
80+
@mixin md-button-default($color-name, $color-base, $color-contrast) {
8181

8282
.button-#{$color-name} {
83-
$background-color: $color-value;
83+
$background-color: $color-base;
8484
$background-color-activated: color-shade($background-color);
85-
$fg-color: color-inverse($background-color);
85+
$fg-color: $color-contrast;
8686

8787
color: $fg-color;
8888
background-color: $background-color;
@@ -177,10 +177,10 @@ $button-md-small-icon-font-size: 1.4em !default;
177177
// Material Design Outline Button Color Mixin
178178
// --------------------------------------------------
179179

180-
@mixin md-button-outline($color-name, $color-value) {
180+
@mixin md-button-outline($color-name, $color-base, $color-contrast) {
181181

182182
.button-outline-#{$color-name} {
183-
$fg-color: color-shade($color-value, 5%);
183+
$fg-color: color-shade($color-base, 5%);
184184
border-color: $fg-color;
185185
color: $fg-color;
186186
background-color: transparent;
@@ -229,10 +229,10 @@ $button-md-small-icon-font-size: 1.4em !default;
229229
// Material Design Clear Button Color Mixin
230230
// --------------------------------------------------
231231

232-
@mixin md-button-clear($color-name, $color-value) {
232+
@mixin md-button-clear($color-name, $color-base, $color-contrast) {
233233

234234
.button-clear-#{$color-name} {
235-
$fg-color: $color-value;
235+
$fg-color: $color-base;
236236
border-color: transparent;
237237
color: $fg-color;
238238
background-color: transparent;
@@ -304,10 +304,10 @@ ion-button-effect {
304304
// Generate Material Design Button Colors
305305
// --------------------------------------------------
306306

307-
@each $color-name, $color-value in $colors-md {
308-
@include md-button-default($color-name, $color-value);
309-
@include md-button-outline($color-name, $color-value);
310-
@include md-button-clear($color-name, $color-value);
307+
@each $color-name, $color-base, $color-contrast in get-colors($colors-md) {
308+
@include md-button-default($color-name, $color-base, $color-contrast);
309+
@include md-button-outline($color-name, $color-base, $color-contrast);
310+
@include md-button-clear($color-name, $color-base, $color-contrast);
311311
}
312312

313313

ionic/components/checkbox/checkbox.md.scss

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,18 +12,18 @@ $checkbox-md-media-margin: $item-md-padding-media-top 36px $item-m
1212
$checkbox-md-disabled-opacity: .3 !default;
1313

1414
$checkbox-md-icon-background-color-off: $list-md-background-color !default;
15-
$checkbox-md-icon-background-color-on: map-get($colors-md, primary) !default;
15+
$checkbox-md-icon-background-color-on: color($colors-md, primary) !default;
1616
$checkbox-md-icon-size: 16px !default;
1717

1818
$checkbox-md-icon-checkmark-width: 2px !default;
1919
$checkbox-md-icon-checkmark-style: solid !default;
20-
$checkbox-md-icon-checkmark-color: $background-md-color !default;
20+
$checkbox-md-icon-checkmark-color: color-contrast($colors-md, $checkbox-md-icon-background-color-on) !default;
2121

2222
$checkbox-md-icon-border-width: 2px !default;
2323
$checkbox-md-icon-border-style: solid !default;
2424
$checkbox-md-icon-border-radius: 2px !default;
2525
$checkbox-md-icon-border-color-off: darken($list-md-border-color, 40%) !default;
26-
$checkbox-md-icon-border-color-on: map-get($colors-md, primary) !default;
26+
$checkbox-md-icon-border-color-on: color($colors-md, primary) !default;
2727

2828
$checkbox-md-transition-duration: 280ms !default;
2929
$checkbox-md-transition-easing: cubic-bezier(.4, 0, .2, 1) !default;
@@ -114,14 +114,14 @@ ion-checkbox + .item-inner ion-label {
114114
// Material Design Checkbox Color Mixin
115115
// --------------------------------------------------
116116

117-
@mixin checkbox-theme-md($color-name, $bg-on) {
117+
@mixin checkbox-theme-md($color-name, $color-base, $color-contrast) {
118118

119119
ion-checkbox[#{$color-name}] .checkbox-checked {
120-
border-color: $bg-on;
121-
background-color: $bg-on;
120+
border-color: $color-base;
121+
background-color: $color-base;
122122

123123
.checkbox-inner {
124-
border-color: color-inverse($bg-on);
124+
border-color: $color-contrast;
125125
}
126126
}
127127

@@ -131,6 +131,6 @@ ion-checkbox + .item-inner ion-label {
131131
// Generate Material Design Checkbox Colors
132132
// --------------------------------------------------
133133

134-
@each $color-name, $color-value in $colors-md {
135-
@include checkbox-theme-md($color-name, $color-value);
134+
@each $color-name, $color-base, $color-contrast in get-colors($colors-md) {
135+
@include checkbox-theme-md($color-name, $color-base, $color-contrast);
136136
}

ionic/components/chip/chip.md.scss

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@
77
// Generate Material Design Chip Colors
88
// --------------------------------------------------
99

10-
@each $color-name, $color-value in $colors-md {
10+
@each $color-name, $color-base, $color-contrast in get-colors($colors-md) {
1111

1212
ion-chip {
1313
ion-icon[#{$color-name}] {
14-
color: color-inverse($color-value);
15-
background-color: $color-value;
14+
color: $color-contrast;
15+
background-color: $color-base;
1616
}
1717
}
1818

ionic/components/input/input.md.scss

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
// --------------------------------------------------
66

77
$text-input-md-background-color: $list-md-background-color !default;
8-
$text-input-md-highlight-color: map-get($colors-md, primary) !default;
9-
$text-input-md-hightlight-color-valid: map-get($colors-md, secondary) !default;
10-
$text-input-md-hightlight-color-invalid: map-get($colors-md, danger) !default;
8+
$text-input-md-highlight-color: color($colors-md, primary) !default;
9+
$text-input-md-hightlight-color-valid: color($colors-md, secondary) !default;
10+
$text-input-md-hightlight-color-invalid: color($colors-md, danger) !default;
1111

1212
$text-input-md-margin-top: $item-md-padding-top !default;
1313
$text-input-md-margin-right: ($item-md-padding-right / 2) !default;

ionic/components/item/item.md.scss

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -168,10 +168,10 @@ ion-item-divider {
168168
// Generate Material Design Item Divider Colors
169169
// --------------------------------------------------
170170

171-
@each $color-name, $color-value in $colors-md {
171+
@each $color-name, $color-base, $color-contrast in get-colors($colors-md) {
172172
ion-item-divider[#{$color-name}] {
173-
color: color-inverse($color-value);
174-
background-color: $color-value;
173+
color: $color-contrast;
174+
background-color: $color-base;
175175
}
176176
}
177177

ionic/components/label/label.md.scss

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
// --------------------------------------------------
66

77
$label-md-text-color: #999 !default;
8-
$label-md-text-color-focused: map-get($colors-md, primary) !default;
8+
$label-md-text-color-focused: color($colors-md, primary) !default;
99
$label-md-margin: $item-md-padding-top ($item-md-padding-right / 2) $item-md-padding-bottom 0 !default;
1010

1111

@@ -69,10 +69,10 @@ ion-label[floating] {
6969
// Generate Material Design Label colors
7070
// --------------------------------------------------
7171

72-
@each $color-name, $color-value in $colors-md {
72+
@each $color-name, $color-base, $color-contrast in get-colors($colors-md) {
7373

7474
ion-label[#{$color-name}] {
75-
color: $color-value;
75+
color: $color-base;
7676
}
7777

7878
}

0 commit comments

Comments
 (0)