diff --git a/packages/core/src/components/action-sheet/action-sheet.ios.scss b/packages/core/src/components/action-sheet/action-sheet.ios.scss
index ed50a1d5eb..2914db8b63 100644
--- a/packages/core/src/components/action-sheet/action-sheet.ios.scss
+++ b/packages/core/src/components/action-sheet/action-sheet.ios.scss
@@ -31,7 +31,7 @@
@include border-radius($action-sheet-ios-border-radius);
@include margin(null, null, $action-sheet-ios-group-margin-bottom - 2, null);
- background: $action-sheet-ios-background;
+ background: $action-sheet-ios-background-color;
}
.action-sheet-ios .action-sheet-group:first-child {
@@ -47,7 +47,7 @@
// -----------------------------------------
.action-sheet-translucent-ios .action-sheet-group {
- background: rgba($action-sheet-ios-background, $action-sheet-ios-translucent-opacity);
+ background: $action-sheet-ios-translucent-background-color;
backdrop-filter: $action-sheet-ios-translucent-filter;
-webkit-backdrop-filter: $action-sheet-ios-translucent-filter;
@@ -117,7 +117,7 @@
.action-sheet-ios .action-sheet-selected {
font-weight: bold;
- background: #fff;
+ background: $action-sheet-ios-button-background-selected;
}
.action-sheet-ios .action-sheet-destructive {
diff --git a/packages/core/src/components/action-sheet/action-sheet.ios.vars.scss b/packages/core/src/components/action-sheet/action-sheet.ios.vars.scss
index 22f86dc275..e93ce5e890 100644
--- a/packages/core/src/components/action-sheet/action-sheet.ios.vars.scss
+++ b/packages/core/src/components/action-sheet/action-sheet.ios.vars.scss
@@ -28,7 +28,10 @@ $action-sheet-ios-group-margin-top: 10px !default;
$action-sheet-ios-group-margin-bottom: 10px !default;
/// @prop - Background color of the action sheet
-$action-sheet-ios-background: #f9f9f9 !default;
+$action-sheet-ios-background-color: $background-ios-color-step-100 !default;
+
+/// @prop - Background color of the action sheet when translucent
+$action-sheet-ios-translucent-background-color: ion-color-alpha($background-ios-color-value, background-ios-color, $alpha-ios-high) !default;
/// @prop - Border radius of the action sheet
$action-sheet-ios-border-radius: 13px !default;
@@ -46,7 +49,7 @@ $action-sheet-ios-title-padding-bottom: $action-sheet-ios-title-
$action-sheet-ios-title-padding-start: $action-sheet-ios-title-padding-end !default;
/// @prop - Color of the action sheet title
-$action-sheet-ios-title-color: #8f8f8f !default;
+$action-sheet-ios-title-color: $text-ios-color-step-300 !default;
/// @prop - Font size of the action sheet title
$action-sheet-ios-title-font-size: 13px !default;
@@ -61,7 +64,7 @@ $action-sheet-ios-title-border-width: $hairlines-width !defaul
$action-sheet-ios-title-border-style: solid !default;
/// @prop - Border color of the action sheet title
-$action-sheet-ios-title-border-color: rgba(0, 0, 0, .1) !default;
+$action-sheet-ios-title-border-color: $background-ios-color-step-100 !default;
/// @prop - Font size of the action sheet sub title
$action-sheet-ios-sub-title-font-size: 12px !default;
@@ -85,7 +88,7 @@ $action-sheet-ios-button-min-height: 56px !default;
$action-sheet-ios-button-padding: 18px !default;
/// @prop - Text color of the action sheet button
-$action-sheet-ios-button-text-color: #007aff !default;
+$action-sheet-ios-button-text-color: ion-color($colors-ios, primary, base, ios) !default;
/// @prop - Font size of the action sheet button icon
$action-sheet-ios-button-icon-font-size: 1.4em !default;
@@ -109,25 +112,25 @@ $action-sheet-ios-button-border-width: $hairlines-width !defaul
$action-sheet-ios-button-border-style: solid !default;
/// @prop - Border color of the action sheet button
-$action-sheet-ios-button-border-color: rgba(0, 0, 0, .1) !default;
+$action-sheet-ios-button-border-color: $background-ios-color-step-100 !default;
/// @prop - Background color of the action sheet button
$action-sheet-ios-button-background: transparent !default;
/// @prop - Background color of the activated action sheet button
-$action-sheet-ios-button-background-activated: rgba(115, 115, 115, .1) !default;
+$action-sheet-ios-button-background-activated: ion-color-alpha($text-ios-color-value, text-ios-color, $alpha-ios-lowest) !default;
+
+/// @prop - Background color of the selected action sheet button
+$action-sheet-ios-button-background-selected: $background-ios-color !default;
/// @prop - Destructive text color of the action sheet button
-$action-sheet-ios-button-destructive-text-color: #f53d3d !default;
+$action-sheet-ios-button-destructive-text-color: ion-color($colors-ios, danger, base, ios) !default;
/// @prop - Background color of the action sheet cancel button
-$action-sheet-ios-button-cancel-background: #fff !default;
+$action-sheet-ios-button-cancel-background: $background-ios-color !default;
/// @prop - Font weight of the action sheet cancel button
$action-sheet-ios-button-cancel-font-weight: 600 !default;
/// @prop - Filter of the translucent action-sheet
$action-sheet-ios-translucent-filter: saturate(180%) blur(20px) !default;
-
-/// @prop - Opacity of the translucent action-sheet
-$action-sheet-ios-translucent-opacity: .88 !default;
diff --git a/packages/core/src/components/action-sheet/action-sheet.md.scss b/packages/core/src/components/action-sheet/action-sheet.md.scss
index 08d24f4181..4aad294252 100644
--- a/packages/core/src/components/action-sheet/action-sheet.md.scss
+++ b/packages/core/src/components/action-sheet/action-sheet.md.scss
@@ -77,4 +77,5 @@
.action-sheet-md .action-sheet-selected {
font-weight: bold;
+ background-color: $action-sheet-md-button-background-selected;
}
diff --git a/packages/core/src/components/action-sheet/action-sheet.md.vars.scss b/packages/core/src/components/action-sheet/action-sheet.md.vars.scss
index 9d6e3a72d1..0af7b413ba 100644
--- a/packages/core/src/components/action-sheet/action-sheet.md.vars.scss
+++ b/packages/core/src/components/action-sheet/action-sheet.md.vars.scss
@@ -10,7 +10,7 @@ $action-sheet-md-font-family: $font-family-md-base !de
$action-sheet-md-text-align: start !default;
/// @prop - Background color of the action sheet
-$action-sheet-md-background: #fafafa !default;
+$action-sheet-md-background: $background-md-color-step-100 !default;
/// @prop - Padding top of the action sheet
$action-sheet-md-padding-top: 8px !default;
@@ -19,7 +19,7 @@ $action-sheet-md-padding-top: 8px !default;
$action-sheet-md-padding-bottom: 8px !default;
/// @prop - Color of the action sheet title
-$action-sheet-md-title-color: #757575 !default;
+$action-sheet-md-title-color: $text-md-color-step-200 !default;
/// @prop - Font size of the action sheet title
$action-sheet-md-title-font-size: 16px !default;
@@ -55,7 +55,7 @@ $action-sheet-md-sub-title-padding-start: $action-sheet-md-sub-tit
$action-sheet-md-button-min-height: 48px !default;
/// @prop - Text color of the action sheet button
-$action-sheet-md-button-text-color: #222 !default;
+$action-sheet-md-button-text-color: $text-md-color-step-100 !default;
/// @prop - Font size of the action sheet button
$action-sheet-md-button-font-size: 16px !default;
@@ -76,7 +76,10 @@ $action-sheet-md-button-padding-start: $action-sheet-md-button-
$action-sheet-md-button-background: transparent !default;
/// @prop - Background color of the action sheet activated button
-$action-sheet-md-button-background-activated: #f1f1f1 !default;
+$action-sheet-md-button-background-activated: $background-md-color-step-100 !default;
+
+/// @prop - Background color of the selected action sheet button
+$action-sheet-md-button-background-selected: null !default;
/// @prop - Font size of the icon in the action sheet button
$action-sheet-md-icon-font-size: 24px !default;
diff --git a/packages/core/src/components/action-sheet/test/basic/index.html b/packages/core/src/components/action-sheet/test/basic/index.html
index 5fb2fb566e..1be92f52a6 100644
--- a/packages/core/src/components/action-sheet/test/basic/index.html
+++ b/packages/core/src/components/action-sheet/test/basic/index.html
@@ -64,6 +64,7 @@
}, {
text: 'Favorite',
icon: 'heart',
+ role: 'selected',
handler: () => {
console.log('Favorite clicked');
}
diff --git a/packages/core/src/components/alert/alert.ios.scss b/packages/core/src/components/alert/alert.ios.scss
index 5b1b504606..30fea57ae5 100644
--- a/packages/core/src/components/alert/alert.ios.scss
+++ b/packages/core/src/components/alert/alert.ios.scss
@@ -15,7 +15,7 @@
max-width: $alert-ios-max-width;
- background-color: $alert-ios-background;
+ background-color: $alert-ios-background-color;
box-shadow: $alert-ios-box-shadow;
}
@@ -25,7 +25,7 @@
// -----------------------------------------
.alert-translucent-ios .alert-wrapper {
- background: rgba($alert-ios-background, $alert-ios-translucent-opacity);
+ background: $alert-ios-translucent-background-color;
backdrop-filter: $alert-ios-translucent-filter;
-webkit-backdrop-filter: $alert-ios-translucent-filter;
@@ -80,6 +80,7 @@
// --------------------------------------------------
.alert-ios .alert-input {
+ @include placeholder($alert-ios-input-placeholder-color);
@include appearance(none);
@include border-radius($alert-ios-input-border-radius);
diff --git a/packages/core/src/components/alert/alert.ios.vars.scss b/packages/core/src/components/alert/alert.ios.vars.scss
index 4a3ce0e579..18b9ffe229 100644
--- a/packages/core/src/components/alert/alert.ios.vars.scss
+++ b/packages/core/src/components/alert/alert.ios.vars.scss
@@ -15,7 +15,10 @@ $alert-ios-max-width: 270px !default;
$alert-ios-border-radius: 13px !default;
/// @prop - Background color of the alert
-$alert-ios-background: #f8f8f8 !default;
+$alert-ios-background-color: $background-ios-color-step-100 !default;
+
+/// @prop - Background color of the alert when translucent
+$alert-ios-translucent-background-color: ion-color-alpha($background-ios-color-value, background-ios-color, $alpha-ios-highest) !default;
/// @prop - Box shadow of the alert
$alert-ios-box-shadow: none !default;
@@ -48,7 +51,7 @@ $alert-ios-title-font-weight: 600 !default;
$alert-ios-sub-title-font-size: 14px !default;
/// @prop - Text color of the alert sub title
-$alert-ios-sub-title-text-color: #666 !default;
+$alert-ios-sub-title-text-color: $text-ios-color-step-200 !default;
/// @prop - Padding top of the alert message
$alert-ios-message-padding-top: 0 !default;
@@ -101,8 +104,11 @@ $alert-ios-input-padding-bottom: $alert-ios-input-padding-top !de
/// @prop - Padding start on the alert input
$alert-ios-input-padding-start: $alert-ios-input-padding-end !default;
+/// @prop - Placeholder Color for input
+$alert-ios-input-placeholder-color: $placeholder-text-ios-color !default;
+
/// @prop - Border color of the alert input
-$alert-ios-input-border-color: #ccc !default;
+$alert-ios-input-border-color: $background-ios-color-step-200 !default;
/// @prop - Border of the alert input
$alert-ios-input-border: $hairlines-width solid $alert-ios-input-border-color !default;
@@ -111,7 +117,7 @@ $alert-ios-input-border: $hairlines-width solid $alert-io
$alert-ios-input-border-radius: 4px !default;
/// @prop - Background color of the alert input
-$alert-ios-input-background-color: #fff !default;
+$alert-ios-input-background-color: $background-ios-color !default;
/// @prop - Flex wrap of the alert button group
$alert-ios-button-group-flex-wrap: wrap !default;
@@ -132,13 +138,13 @@ $alert-ios-button-min-height: 44px !default;
$alert-ios-button-font-size: 17px !default;
/// @prop - Color of the text in the alert button
-$alert-ios-button-text-color: color($colors-ios, primary) !default;
+$alert-ios-button-text-color: ion-color($colors-ios, primary, base, ios) !default;
/// @prop - Background color of the alert button
$alert-ios-button-background-color: transparent !default;
/// @prop - Background color of the alert activated button
-$alert-ios-button-background-color-activated: rgba(115, 115, 115, .1) !default;
+$alert-ios-button-background-color-activated: ion-color-alpha($text-ios-color-value, text-ios-color, $alpha-ios-lowest) !default;
/// @prop - Border width of the alert button
$alert-ios-button-border-width: $hairlines-width !default;
@@ -147,7 +153,7 @@ $alert-ios-button-border-width: $hairlines-width !default;
$alert-ios-button-border-style: solid !default;
/// @prop - Border color of the alert button
-$alert-ios-button-border-color: rgba(0, 0, 0, .1) !default;
+$alert-ios-button-border-color: $background-ios-color-step-100 !default;
/// @prop - Border radius of the alert button
$alert-ios-button-border-radius: 0 !default;
@@ -171,7 +177,7 @@ $alert-ios-radio-label-padding-bottom: $alert-ios-radio-label-padding-t
$alert-ios-radio-label-padding-start: $alert-ios-radio-label-padding-end !default;
/// @prop - Text color of the label for the radio alert
-$alert-ios-radio-label-text-color: initial !default;
+$alert-ios-radio-label-text-color: $text-ios-color !default;
/// @prop - Text color of the label for the checked radio alert
$alert-ios-radio-label-text-color-checked: $alert-ios-button-text-color !default;
@@ -216,10 +222,10 @@ $alert-ios-checkbox-label-padding-bottom: $alert-ios-checkbox-label-paddin
$alert-ios-checkbox-label-padding-start: $alert-ios-checkbox-label-padding-end !default;
/// @prop - Text color of the label for the checkbox in the alert
-$alert-ios-checkbox-label-text-color: initial !default;
+$alert-ios-checkbox-label-text-color: $text-ios-color !default;
/// @prop - Text color of the label for the checked checkbox in the alert
-$alert-ios-checkbox-label-text-color-checked: initial !default;
+$alert-ios-checkbox-label-text-color-checked: ion-color($colors-ios, primary, base, ios) !default;
/// @prop - Margin top of the checkbox in the alert
$alert-ios-checkbox-margin-top: 10px !default;
@@ -246,16 +252,16 @@ $alert-ios-checkbox-border-style: solid !default;
$alert-ios-checkbox-border-radius: 50% !default;
/// @prop - Border color of the checkbox in the alert when off
-$alert-ios-checkbox-border-color-off: $list-ios-border-color !default;
+$alert-ios-checkbox-border-color-off: $item-ios-border-color !default;
/// @prop - Border color of the checkbox in the alert when on
-$alert-ios-checkbox-border-color-on: color($colors-ios, primary) !default;
+$alert-ios-checkbox-border-color-on: ion-color($colors-ios, primary, base, ios) !default;
/// @prop - Background color of the checkbox in the alert when off
-$alert-ios-checkbox-background-color-off: $list-ios-background-color !default;
+$alert-ios-checkbox-background-color-off: $item-ios-background-color !default;
/// @prop - Background color of the checkbox in the alert when on
-$alert-ios-checkbox-background-color-on: color($colors-ios, primary) !default;
+$alert-ios-checkbox-background-color-on: ion-color($colors-ios, primary, base, ios) !default;
/// @prop - Top of the icon in the checkbox alert
$alert-ios-checkbox-icon-top: 4px !default;
@@ -284,8 +290,5 @@ $alert-ios-checkbox-icon-transform: rotate(45deg) !default;
/// @prop - Filter of the translucent alert
$alert-ios-translucent-filter: saturate(180%) blur(20px) !default;
-/// @prop - Opacity of the translucent alert
-$alert-ios-translucent-opacity: .88 !default;
-
/// @prop - Minimum height of the tappable inputs in the checkbox alert
$alert-ios-tappable-min-height: $item-min-height !default;
diff --git a/packages/core/src/components/alert/alert.md.scss b/packages/core/src/components/alert/alert.md.scss
index 11b38a2668..91aa3460a7 100644
--- a/packages/core/src/components/alert/alert.md.scss
+++ b/packages/core/src/components/alert/alert.md.scss
@@ -61,6 +61,7 @@
// --------------------------------------------------
.alert-md .alert-input {
+ @include placeholder($alert-md-input-placeholder-color);
@include margin($alert-md-input-margin-top, $alert-md-input-margin-end, $alert-md-input-margin-bottom, $alert-md-input-margin-start);
border-bottom: $alert-md-input-border-width $alert-md-input-border-style $alert-md-input-border-color;
diff --git a/packages/core/src/components/alert/alert.md.vars.scss b/packages/core/src/components/alert/alert.md.vars.scss
index f004133626..b7b11d86bb 100644
--- a/packages/core/src/components/alert/alert.md.vars.scss
+++ b/packages/core/src/components/alert/alert.md.vars.scss
@@ -15,7 +15,7 @@ $alert-md-max-width: 280px !default;
$alert-md-border-radius: 2px !default;
/// @prop - Background color of the alert
-$alert-md-background-color: #fafafa !default;
+$alert-md-background-color: $background-md-color-step-100 !default;
/// @prop - Box shadow color of the alert
$alert-md-box-shadow-color: rgba(0, 0, 0, .4) !default;
@@ -60,7 +60,7 @@ $alert-md-message-padding-start: 24px !default;
$alert-md-message-font-size: 15px !default;
/// @prop - Text color of the alert message
-$alert-md-message-text-color: rgba(0, 0, 0, .5) !default;
+$alert-md-message-text-color: $text-md-color-step-300 !default;
/// @prop - Padding top of the alert empty message
$alert-md-message-empty-padding-top: 0 !default;
@@ -84,10 +84,10 @@ $alert-md-input-border-width: 1px !default;
$alert-md-input-border-style: solid !default;
/// @prop - Border color of the alert input
-$alert-md-input-border-color: #dedede !default;
+$alert-md-input-border-color: $border-md-color !default;
/// @prop - Text color of the alert input
-$alert-md-input-text-color: #000 !default;
+$alert-md-input-text-color: $text-md-color !default;
/// @prop - Border width of the alert input when focused
$alert-md-input-border-width-focused: 2px !default;
@@ -96,7 +96,7 @@ $alert-md-input-border-width-focused: 2px !default;
$alert-md-input-border-style-focused: $alert-md-input-border-style !default;
/// @prop - Border color of the alert input when focused
-$alert-md-input-border-color-focused: color($colors-md, primary) !default;
+$alert-md-input-border-color-focused: ion-color($colors-md, primary, base, md) !default;
/// @prop - Margin top of the alert input
$alert-md-input-margin-top: 5px !default;
@@ -110,6 +110,9 @@ $alert-md-input-margin-bottom: 5px !default;
/// @prop - Margin start of the alert input
$alert-md-input-margin-start: 0 !default;
+/// @prop - Placeholder Color for input
+$alert-md-input-placeholder-color: $placeholder-text-md-color !default;
+
/// @prop - Flex wrap of the alert button group
$alert-md-button-group-flex-wrap: wrap-reverse !default;
@@ -156,13 +159,13 @@ $alert-md-button-margin-start: 0 !default;
$alert-md-button-font-weight: 500 !default;
/// @prop - Text color of the alert button
-$alert-md-button-text-color: color($colors-md, primary) !default;
+$alert-md-button-text-color: ion-color($colors-md, primary, base, md) !default;
/// @prop - Background color of the alert button
$alert-md-button-background-color: transparent !default;
/// @prop - Background color of the alert activated button
-$alert-md-button-background-color-activated: rgba(158, 158, 158, .2) !default;
+$alert-md-button-background-color-activated: $background-color-step-200 !default;
/// @prop - Border radius of the alert button
$alert-md-button-border-radius: 2px !default;
@@ -192,7 +195,7 @@ $alert-md-radio-label-padding-bottom: $alert-md-radio-label-padding-top
$alert-md-radio-label-padding-start: $alert-md-radio-label-padding-end !default;
/// @prop - Text color of the label for the radio alert
-$alert-md-radio-label-text-color: initial !default;
+$alert-md-radio-label-text-color: $text-md-color !default;
/// @prop - Text color of the label for the checked radio alert
$alert-md-radio-label-text-color-checked: $alert-md-button-text-color !default;
@@ -219,7 +222,7 @@ $alert-md-radio-border-style: solid !default;
$alert-md-radio-border-radius: 50% !default;
/// @prop - Border color of the alert radio when off
-$alert-md-radio-border-color-off: darken($list-md-border-color, 40%) !default;
+$alert-md-radio-border-color-off: $text-md-color-step-300 !default;
/// @prop - Border color of the alert radio when on
$alert-md-radio-border-color-on: $alert-md-button-text-color !default;
@@ -261,10 +264,10 @@ $alert-md-checkbox-label-padding-bottom: $alert-md-checkbox-label-padding-t
$alert-md-checkbox-label-padding-start: $alert-md-checkbox-label-padding-end !default;
/// @prop - Text color of the label for the checkbox in the alert
-$alert-md-checkbox-label-text-color: initial !default;
+$alert-md-checkbox-label-text-color: $text-md-color !default;
/// @prop - Text color of the label for the checked checkbox in the alert
-$alert-md-checkbox-label-text-color-checked: initial !default;
+$alert-md-checkbox-label-text-color-checked: ion-color($colors-md, primary, base, md) !default;
/// @prop - Top of the checkbox in the alert
$alert-md-checkbox-top: 0 !default;
@@ -288,7 +291,7 @@ $alert-md-checkbox-border-style: solid !default;
$alert-md-checkbox-border-radius: 2px !default;
/// @prop - Border color of the checkbox in the alert when off
-$alert-md-checkbox-border-color-off: darken($list-md-border-color, 40%) !default;
+$alert-md-checkbox-border-color-off: $border-md-color !default;
/// @prop - Border color of the checkbox in the alert when on
$alert-md-checkbox-border-color-on: $alert-md-button-text-color !default;
@@ -312,7 +315,7 @@ $alert-md-checkbox-icon-border-width: 2px !default;
$alert-md-checkbox-icon-border-style: solid !default;
/// @prop - Border color of the icon in the checkbox alert
-$alert-md-checkbox-icon-border-color: color-contrast($colors-md, $alert-md-checkbox-border-color-on) !default;
+$alert-md-checkbox-icon-border-color: ion-color($colors-md, $alert-md-checkbox-border-color-on, contrast, md) !default;
/// @prop - Transform of the icon in the checkbox alert
$alert-md-checkbox-icon-transform: rotate(45deg) !default;
diff --git a/packages/core/src/components/alert/alert.scss b/packages/core/src/components/alert/alert.scss
index aac6032c54..4124a88882 100644
--- a/packages/core/src/components/alert/alert.scss
+++ b/packages/core/src/components/alert/alert.scss
@@ -61,7 +61,6 @@ ion-alert input {
}
.alert-input {
- @include placeholder($alert-input-placeholder-color);
@include padding(10px, 0);
border: 0;
diff --git a/packages/core/src/components/alert/alert.vars.scss b/packages/core/src/components/alert/alert.vars.scss
index 208d779b4b..b043e5c7cd 100644
--- a/packages/core/src/components/alert/alert.vars.scss
+++ b/packages/core/src/components/alert/alert.vars.scss
@@ -14,6 +14,3 @@ $alert-button-line-height: 20px !default;
/// @prop - Font size of the alert button
$alert-button-font-size: 14px !default;
-
-/// @prop - Color of the alert input placeholder
-$alert-input-placeholder-color: #999 !default;
diff --git a/packages/core/src/components/app/app.ios.scss b/packages/core/src/components/app/app.ios.scss
index 1f9b0de9e7..ddbd1448b2 100644
--- a/packages/core/src/components/app/app.ios.scss
+++ b/packages/core/src/components/app/app.ios.scss
@@ -24,7 +24,7 @@
}
a {
- color: $link-ios-color;
+ color: $app-ios-link-color;
}
@import "../icon/icon.ios";
diff --git a/packages/core/src/components/app/app.ios.vars.scss b/packages/core/src/components/app/app.ios.vars.scss
index 36af720534..0097466ec5 100644
--- a/packages/core/src/components/app/app.ios.vars.scss
+++ b/packages/core/src/components/app/app.ios.vars.scss
@@ -5,5 +5,8 @@
// iOS App
// --------------------------------------------------
+/// @prop - Color for links for the app
+$app-ios-link-color: ion-color($colors-ios, primary, base, ios) !default;
+
/// @prop - Statusbar padding for the app
$app-ios-statusbar-padding: 20px !default;
diff --git a/packages/core/src/components/app/app.md.scss b/packages/core/src/components/app/app.md.scss
index f05af076cf..e5dafa3252 100644
--- a/packages/core/src/components/app/app.md.scss
+++ b/packages/core/src/components/app/app.md.scss
@@ -23,7 +23,7 @@
}
a {
- color: $link-md-color;
+ color: $app-md-link-color;
}
@import "../icon/icon.md";
diff --git a/packages/core/src/components/app/app.md.vars.scss b/packages/core/src/components/app/app.md.vars.scss
index 6089d06453..8cd780bbd1 100644
--- a/packages/core/src/components/app/app.md.vars.scss
+++ b/packages/core/src/components/app/app.md.vars.scss
@@ -6,5 +6,8 @@
// Material Design App
// --------------------------------------------------
+/// @prop - Color for links for the app
+$app-md-link-color: ion-color($colors-md, primary, base, md) !default;
+
/// @prop - Statusbar padding for the app
$app-md-statusbar-padding: 20px !default;
diff --git a/packages/core/src/components/backdrop/backdrop.ios.scss b/packages/core/src/components/backdrop/backdrop.ios.scss
new file mode 100644
index 0000000000..5b0e3349f4
--- /dev/null
+++ b/packages/core/src/components/backdrop/backdrop.ios.scss
@@ -0,0 +1,6 @@
+@import "./backdrop";
+@import "./backdrop.ios.vars";
+
+.backdrop-ios {
+ background-color: $backdrop-ios-color;
+}
diff --git a/packages/core/src/components/backdrop/backdrop.ios.vars.scss b/packages/core/src/components/backdrop/backdrop.ios.vars.scss
new file mode 100644
index 0000000000..c9a4083192
--- /dev/null
+++ b/packages/core/src/components/backdrop/backdrop.ios.vars.scss
@@ -0,0 +1 @@
+@import "../../themes/ionic.globals.ios";
diff --git a/packages/core/src/components/backdrop/backdrop.md.scss b/packages/core/src/components/backdrop/backdrop.md.scss
new file mode 100644
index 0000000000..abc5104e72
--- /dev/null
+++ b/packages/core/src/components/backdrop/backdrop.md.scss
@@ -0,0 +1,6 @@
+@import "./backdrop";
+@import "./backdrop.md.vars";
+
+.backdrop-md {
+ background-color: $backdrop-md-color;
+}
diff --git a/packages/core/src/components/backdrop/backdrop.md.vars.scss b/packages/core/src/components/backdrop/backdrop.md.vars.scss
new file mode 100644
index 0000000000..74f1acdc02
--- /dev/null
+++ b/packages/core/src/components/backdrop/backdrop.md.vars.scss
@@ -0,0 +1 @@
+@import "../../themes/ionic.globals.md";
diff --git a/packages/core/src/components/backdrop/backdrop.scss b/packages/core/src/components/backdrop/backdrop.scss
index a240f215b0..7d88292566 100644
--- a/packages/core/src/components/backdrop/backdrop.scss
+++ b/packages/core/src/components/backdrop/backdrop.scss
@@ -13,7 +13,6 @@ ion-backdrop {
width: 100%;
height: 100%;
- background-color: $backdrop-color;
opacity: .01;
transform: translateZ(0);
diff --git a/packages/core/src/components/backdrop/backdrop.tsx b/packages/core/src/components/backdrop/backdrop.tsx
index 2360c9f098..dbbe5d8b61 100644
--- a/packages/core/src/components/backdrop/backdrop.tsx
+++ b/packages/core/src/components/backdrop/backdrop.tsx
@@ -1,9 +1,20 @@
-import { Component } from '@stencil/core';
+import { Component, Prop } from '@stencil/core';
@Component({
tag: 'ion-backdrop',
- styleUrl: 'backdrop.scss'
+ styleUrls: {
+ ios: 'backdrop.ios.scss',
+ md: 'backdrop.md.scss'
+ },
+ host: {
+ theme: 'backdrop'
+ }
})
export class Backdrop {
+ /**
+ * The mode determines which platform styles to use.
+ * Possible values are: `"ios"` or `"md"`.
+ */
+ @Prop() mode: 'ios' | 'md';
}
diff --git a/packages/core/src/components/backdrop/backdrop.vars.scss b/packages/core/src/components/backdrop/backdrop.vars.scss
index 809165e27f..e21c162d17 100644
--- a/packages/core/src/components/backdrop/backdrop.vars.scss
+++ b/packages/core/src/components/backdrop/backdrop.vars.scss
@@ -1,7 +1 @@
@import "../../themes/ionic.globals";
-
-// Backdrop
-// --------------------------------------------------
-
-/// @prop - Color of the backdrop
-$backdrop-color: #000 !default;
diff --git a/packages/core/src/components/backdrop/readme.md b/packages/core/src/components/backdrop/readme.md
index bfdb0d777d..eeb5f59ee4 100644
--- a/packages/core/src/components/backdrop/readme.md
+++ b/packages/core/src/components/backdrop/readme.md
@@ -10,6 +10,26 @@ Backdrops are full screen components that overlay other components. They are use
+## Properties
+
+#### mode
+
+any
+
+The mode determines which platform styles to use.
+Possible values are: `"ios"` or `"md"`.
+
+
+## Attributes
+
+#### mode
+
+any
+
+The mode determines which platform styles to use.
+Possible values are: `"ios"` or `"md"`.
+
+
----------------------------------------------
diff --git a/packages/core/src/components/badge/badge.ios.scss b/packages/core/src/components/badge/badge.ios.scss
index 7251333256..dba4582d81 100644
--- a/packages/core/src/components/badge/badge.ios.scss
+++ b/packages/core/src/components/badge/badge.ios.scss
@@ -17,11 +17,13 @@
// Generate iOS Badge Colors
// --------------------------------------------------
-@each $color-name, $color-base, $color-contrast in get-colors($colors-ios) {
+@each $color-name, $color-value in $colors-ios {
+ $base-color: ion-color($colors-ios, $color-name, base, ios);
+ $contrast-color: ion-color($colors-ios, $color-name, contrast, ios);
.badge-ios-#{$color-name} {
- color: $color-contrast;
- background-color: $color-base;
+ color: $base-color;
+ background-color: $contrast-color;
}
}
diff --git a/packages/core/src/components/badge/badge.ios.vars.scss b/packages/core/src/components/badge/badge.ios.vars.scss
index 9d466436e3..769d4ae40f 100644
--- a/packages/core/src/components/badge/badge.ios.vars.scss
+++ b/packages/core/src/components/badge/badge.ios.vars.scss
@@ -10,7 +10,7 @@ $badge-ios-border-radius: 10px !default;
$badge-ios-font-family: $font-family-ios-base !default;
/// @prop - Background color of the badge
-$badge-ios-background-color: color($colors-ios, primary) !default;
+$badge-ios-background-color: ion-color($colors-ios, primary, base, ios) !default;
/// @prop - Text color of the badge
-$badge-ios-text-color: color-contrast($colors-ios, $badge-ios-background-color) !default;
+$badge-ios-text-color: ion-color($colors-ios, $badge-ios-background-color, contrast, ios) !default;
diff --git a/packages/core/src/components/badge/badge.md.scss b/packages/core/src/components/badge/badge.md.scss
index c1bf337376..0a74e4b3b3 100644
--- a/packages/core/src/components/badge/badge.md.scss
+++ b/packages/core/src/components/badge/badge.md.scss
@@ -17,12 +17,13 @@
// Generate Material Design Badge Colors
// --------------------------------------------------
-@each $color-name, $color-base, $color-contrast in get-colors($colors-md) {
+@each $color-name, $color-value in $colors-md {
+ $base-color: ion-color($colors-md, $color-name, base, md);
+ $contrast-color: ion-color($colors-md, $color-name, contrast, md);
.badge-md-#{$color-name} {
- color: $color-contrast;
- background-color: $color-base;
+ color: $base-color;
+ background-color: $contrast-color;
}
-
}
diff --git a/packages/core/src/components/badge/badge.md.vars.scss b/packages/core/src/components/badge/badge.md.vars.scss
index 6f1fea6732..7ecc3e1b48 100644
--- a/packages/core/src/components/badge/badge.md.vars.scss
+++ b/packages/core/src/components/badge/badge.md.vars.scss
@@ -10,7 +10,7 @@ $badge-md-border-radius: 4px !default;
$badge-md-font-family: $font-family-md-base !default;
/// @prop - Background color of the badge
-$badge-md-background-color: color($colors-md, primary) !default;
+$badge-md-background-color: ion-color($colors-md, primary, base, ios) !default;
/// @prop - Text color of the badge
-$badge-md-text-color: color-contrast($colors-md, $badge-md-background-color) !default;
+$badge-md-text-color: ion-color($colors-md, $badge-md-background-color, contrast, ios) !default;
diff --git a/packages/core/src/components/button/button.ios.scss b/packages/core/src/components/button/button.ios.scss
index 4ba5404abe..047832e75c 100644
--- a/packages/core/src/components/button/button.ios.scss
+++ b/packages/core/src/components/button/button.ios.scss
@@ -37,11 +37,11 @@
// iOS Default Button Color Mixin
// --------------------------------------------------
-@mixin ios-button-default($color-name, $color-base, $color-contrast) {
- $bg-color: $color-base;
- $bg-color-activated: color-shade($bg-color);
- $bg-color-focused: color-shade($color-base, 12%);
- $fg-color: $color-contrast;
+@mixin ios-button-default($color-name) {
+ $bg-color: ion-color($colors-ios, $color-name, base, ios);
+ $bg-color-activated: ion-color($colors-ios, $color-name, tint, ios);
+ $bg-color-focused: ion-color($colors-ios, $color-name, shade, ios);
+ $fg-color: ion-color($colors-ios, $color-name, contrast, ios);
.button-ios-#{$color-name} {
color: $fg-color;
@@ -119,15 +119,18 @@
}
.button-outline-ios.activated.focused {
- border-color: color-shade($button-ios-background-color, 12%);
- background-color: color-shade($button-ios-background-color, 12%);
+ border-color: ion-color($colors-ios, $button-ios-background-color, shade, ios);
+ background-color: ion-color($colors-ios, $button-ios-background-color, shade, ios);
}
// iOS Outline Button Color Mixin
// --------------------------------------------------
-@mixin ios-button-outline($color-name, $color-base, $color-contrast) {
- $bg-color-focused: rgba($color-base, .12);
+@mixin ios-button-outline($color-name) {
+ $color-base: ion-color($colors-ios, $color-name, base, ios);
+ $color-contrast: ion-color($colors-ios, $color-name, contrast, ios);
+ $color-tint: ion-color($colors-ios, $color-name, shade, ios);
+ $bg-color-focused: ion-color-alpha($colors-ios, $color-name, $alpha-ios-low, ios);
.button-outline-ios-#{$color-name} {
border-color: $color-base;
@@ -145,8 +148,8 @@
}
.button-outline-ios-#{$color-name}.activated.focused {
- border-color: color-shade($color-base, 12%);
- background-color: color-shade($color-base, 12%);
+ border-color: $color-tint;
+ background-color: $color-tint;
}
}
@@ -178,9 +181,9 @@
// iOS Clear Button Color Mixin
// --------------------------------------------------
-@mixin ios-button-clear($color-name, $color-base, $color-contrast) {
- $fg-color: $color-base;
- $bg-color-focused: rgba($color-base, .12);
+@mixin ios-button-clear($color-name) {
+ $fg-color: ion-color($colors-ios, $color-name, base, ios);
+ $bg-color-focused: ion-color-alpha($colors-ios, $color-name, $alpha-ios-low, ios);
.button-clear-ios-#{$color-name} {
border-color: $button-ios-clear-border-color;
@@ -215,10 +218,10 @@
// Generate iOS Button Colors
// --------------------------------------------------
-@each $color-name, $color-base, $color-contrast in get-colors($colors-ios) {
- @include ios-button-default($color-name, $color-base, $color-contrast);
- @include ios-button-outline($color-name, $color-base, $color-contrast);
- @include ios-button-clear($color-name, $color-base, $color-contrast);
+@each $color-name, $color-value in $colors-ios {
+ @include ios-button-default($color-name);
+ @include ios-button-outline($color-name);
+ @include ios-button-clear($color-name);
}
diff --git a/packages/core/src/components/button/button.ios.vars.scss b/packages/core/src/components/button/button.ios.vars.scss
index 3fc98079cb..7a25c13591 100644
--- a/packages/core/src/components/button/button.ios.vars.scss
+++ b/packages/core/src/components/button/button.ios.vars.scss
@@ -40,13 +40,13 @@ $button-ios-border-radius: 4px !default;
$button-ios-font-size: 16px !default;
/// @prop - Background color of the button
-$button-ios-background-color: color($colors-ios, primary) !default;
+$button-ios-background-color: ion-color($colors-ios, primary, base, ios) !default;
/// @prop - Text color of the button
-$button-ios-text-color: color-contrast($colors-ios, $button-ios-background-color) !default;
+$button-ios-text-color: ion-color($colors-ios, $button-ios-background-color, contrast, ios) !default;
/// @prop - Background color of the activated button
-$button-ios-background-color-activated: color-shade($button-ios-background-color) !default;
+$button-ios-background-color-activated: ion-color($colors-ios, $button-ios-background-color, tint, ios) !default;
/// @prop - Opacity of the activated button
$button-ios-opacity-activated: 1 !default;
@@ -55,7 +55,7 @@ $button-ios-opacity-activated: 1 !default;
$button-ios-opacity-hover: .8 !default;
/// @prop - Background color of the focused button
-$button-ios-background-color-focused: color-shade($button-ios-background-color, 12%) !default;
+$button-ios-background-color-focused: ion-color($colors-ios, $button-ios-background-color, shade, ios) !default;
// iOS Large Button
@@ -124,7 +124,7 @@ $button-ios-outline-text-color: $button-ios-background-color
$button-ios-outline-background-color: transparent !default;
/// @prop - Text color of the activated outline button
-$button-ios-outline-text-color-activated: color-contrast($colors-ios, $button-ios-background-color) !default;
+$button-ios-outline-text-color-activated: ion-color($colors-ios, $button-ios-background-color, contrast, ios) !default;
/// @prop - Background color of the activated outline button
$button-ios-outline-background-color-activated: $button-ios-background-color !default;
@@ -133,8 +133,7 @@ $button-ios-outline-background-color-activated: $button-ios-background-color
$button-ios-outline-opacity-activated: 1 !default;
/// @prop - Background color of the focused outline button
-$button-ios-outline-background-color-focused: rgba($button-ios-background-color, .12) !default;
-
+$button-ios-outline-background-color-focused: ion-color-alpha($colors-ios, primary, $alpha-ios-low, ios) !default;
// iOS Clear Button
// --------------------------------------------------
@@ -158,7 +157,7 @@ $button-ios-clear-text-color-hover: $button-ios-background-color
$button-ios-clear-opacity-hover: .6 !default;
/// @prop - Background color of the focused clear button
-$button-ios-clear-background-color-focused: rgba($button-ios-background-color, .12) !default;
+$button-ios-clear-background-color-focused: ion-color-alpha($colors-ios, primary, $alpha-ios-low, ios) !default;
// iOS Round Button
diff --git a/packages/core/src/components/button/button.md.scss b/packages/core/src/components/button/button.md.scss
index 87f8839e4c..8bdada729d 100644
--- a/packages/core/src/components/button/button.md.scss
+++ b/packages/core/src/components/button/button.md.scss
@@ -50,11 +50,11 @@
// Material Design Default Button Color Mixin
// --------------------------------------------------
-@mixin md-button-default($color-name, $color-base, $color-contrast) {
- $bg-color: $color-base;
- $bg-color-activated: color-shade($bg-color);
- $bg-color-focused: color-shade($bg-color, 12%);
- $fg-color: $color-contrast;
+@mixin md-button-default($color-name) {
+ $bg-color: ion-color($colors-md, $color-name, base, md);
+ $bg-color-activated: ion-color($colors-md, $color-name, tint, md);
+ $bg-color-focused: ion-color($colors-md, $color-name, shade, md);
+ $fg-color: ion-color($colors-md, $color-name, contrast, md);
.button-md-#{$color-name} {
color: $fg-color;
@@ -151,9 +151,9 @@
// Material Design Outline Button Color Mixin
// --------------------------------------------------
-@mixin md-button-outline($color-name, $color-base, $color-contrast) {
- $fg-color: color-shade($color-base, 5%);
- $bg-color-focused: rgba($color-base, .12);
+@mixin md-button-outline($color-name) {
+ $fg-color: ion-color($colors-md, $color-name, tint, md);
+ $bg-color-focused: ion-color-alpha($colors-md, $color-name, $alpha-md-lowest, md);
.button-outline-md-#{$color-name} {
border-color: $fg-color;
@@ -211,9 +211,9 @@
// Material Design Clear Button Color Mixin
// --------------------------------------------------
-@mixin md-button-clear($color-name, $color-base, $color-contrast) {
- $fg-color: $color-base;
- $bg-color-focused: rgba($color-base, .12);
+@mixin md-button-clear($color-name) {
+ $fg-color: ion-color($colors-md, $color-name, base, md);
+ $bg-color-focused: ion-color-alpha($colors-md, $color-name, $alpha-md-lowest, md);
.button-clear-md-#{$color-name} {
border-color: $button-md-clear-border-color;
@@ -253,10 +253,10 @@
// Generate Material Design Button Colors
// --------------------------------------------------
-@each $color-name, $color-base, $color-contrast in get-colors($colors-md) {
- @include md-button-default($color-name, $color-base, $color-contrast);
- @include md-button-outline($color-name, $color-base, $color-contrast);
- @include md-button-clear($color-name, $color-base, $color-contrast);
+@each $color-name, $color-value in $colors-md {
+ @include md-button-default($color-name);
+ @include md-button-outline($color-name);
+ @include md-button-clear($color-name);
}
diff --git a/packages/core/src/components/button/button.md.vars.scss b/packages/core/src/components/button/button.md.vars.scss
index d66584f089..c7d5a77d04 100644
--- a/packages/core/src/components/button/button.md.vars.scss
+++ b/packages/core/src/components/button/button.md.vars.scss
@@ -46,10 +46,10 @@ $button-md-font-weight: 500 !default;
$button-md-text-transform: uppercase !default;
/// @prop - Background color of the button
-$button-md-background-color: color($colors-md, primary) !default;
+$button-md-background-color: ion-color($colors-md, primary, base, md) !default;
/// @prop - Text color of the button
-$button-md-text-color: color-contrast($colors-md, $button-md-background-color) !default;
+$button-md-text-color: ion-color($colors-md, $button-md-background-color, contrast, md) !default;
/// @prop - Box shadow of the button
$button-md-box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .14), 0 3px 1px -2px rgba(0, 0, 0, .2), 0 1px 5px 0 rgba(0, 0, 0, .12) !default;
@@ -64,7 +64,7 @@ $button-md-transition-timing-function: cubic-bezier(.4, 0, .2, 1) !default;
$button-md-background-color-hover: $button-md-background-color !default;
/// @prop - Background color of the activated button
-$button-md-background-color-activated: color-shade($button-md-background-color) !default;
+$button-md-background-color-activated: ion-color($colors-md, $button-md-background-color, tint, md) !default;
/// @prop - Opacity of the activated button
$button-md-opacity-activated: 1 !default;
@@ -73,10 +73,10 @@ $button-md-opacity-activated: 1 !default;
$button-md-box-shadow-activated: 0 3px 5px rgba(0, 0, 0, .14), 0 3px 5px rgba(0, 0, 0, .21), 0 0 0 0 transparent !default;
/// @prop - Background color of the ripple on the button
-$button-md-ripple-background-color: #555 !default;
+$button-md-ripple-background-color: $text-md-color-step-200 !default;
/// @prop - Background color of the focused button
-$button-md-background-color-focused: color-shade($button-md-background-color, 12%) !default;
+$button-md-background-color-focused: ion-color($colors-md, $button-md-background-color, shade, md) !default;
// Material Design Large Button
@@ -145,7 +145,7 @@ $button-md-outline-background-color: transparent !default;
$button-md-outline-box-shadow: none !default;
/// @prop - Background color of the outline button on hover
-$button-md-outline-background-color-hover: rgba(158, 158, 158, .1) !default;
+$button-md-outline-background-color-hover: ion-color-alpha($text-md-color-value, text-md-color, $alpha-md-lowest) !default;
/// @prop - Background color of the activated outline button
$button-md-outline-background-color-activated: transparent !default;
@@ -160,8 +160,7 @@ $button-md-outline-opacity-activated: 1 !default;
$button-md-outline-ripple-background-color: $button-md-background-color !default;
/// @prop - Background color of the focused outline button
-$button-md-outline-background-color-focused: rgba($button-md-background-color, .12) !default;
-
+$button-md-outline-background-color-focused: ion-color-alpha($colors-md, primary, $alpha-md-low, md) !default;
// Material Design Clear Button
// --------------------------------------------------
@@ -182,19 +181,19 @@ $button-md-clear-box-shadow: none !default;
$button-md-clear-opacity: 1 !default;
/// @prop - Background color of the activated clear button
-$button-md-clear-background-color-activated: rgba(158, 158, 158, .2) !default;
+$button-md-clear-background-color-activated: ion-color-alpha($text-md-color-value, text-md-color, $alpha-md-lowest) !default;
/// @prop - Box shadow of the activated clear button
$button-md-clear-box-shadow-activated: $button-md-clear-box-shadow !default;
/// @prop - Background color of the clear button on hover
-$button-md-clear-background-color-hover: rgba(158, 158, 158, .1) !default;
+$button-md-clear-background-color-hover: ion-color-alpha($text-md-color-value, text-md-color, $alpha-md-lowest) !default;
/// @prop - Background color of the ripple on the clear button
-$button-md-clear-ripple-background-color: #999 !default;
+$button-md-clear-ripple-background-color: $text-md-color-step-300 !default;
/// @props - Background color of the focused clear button
-$button-md-clear-background-color-focused: rgba($button-md-background-color, .12) !default;
+$button-md-clear-background-color-focused: ion-color-alpha($colors-md, primary, $alpha-md-low, md) !default;
// Material Design Round Button
diff --git a/packages/core/src/components/card-content/card-content.ios.scss b/packages/core/src/components/card-content/card-content.ios.scss
index dda6de45d8..febb235956 100644
--- a/packages/core/src/components/card-content/card-content.ios.scss
+++ b/packages/core/src/components/card-content/card-content.ios.scss
@@ -15,14 +15,18 @@
// Generate iOS Card Content Colors
// --------------------------------------------------
-@each $color-name, $color-base, $color-contrast in get-colors($colors-ios) {
+@each $color-name, $color-value in $colors-ios {
+ $color-base: ion-color($colors-ios, $color-name, base, ios);
+ $color-contrast: ion-color($colors-ios, $color-name, contrast, ios);
.card-ios-#{$color-name} {
.card-content-ios {
color: $color-contrast;
}
- @each $color-name, $color-base, $color-contrast in get-colors($colors-ios) {
+ @each $color-name, $color-value in $colors-ios {
+ $color-base: ion-color($colors-ios, $color-name, base, ios);
+
.card-content-ios-#{$color-name} {
color: $color-base;
}
@@ -32,5 +36,4 @@
.card-content-ios-#{$color-name} {
color: $color-base;
}
-
}
diff --git a/packages/core/src/components/card-content/card-content.md.scss b/packages/core/src/components/card-content/card-content.md.scss
index ba3a2bd9c6..a29a2c9baa 100644
--- a/packages/core/src/components/card-content/card-content.md.scss
+++ b/packages/core/src/components/card-content/card-content.md.scss
@@ -15,7 +15,9 @@
// Generate Material Design Card Content Colors
// --------------------------------------------------
-@each $color-name, $color-base, $color-contrast in get-colors($colors-md) {
+@each $color-name, $color-value in $colors-md {
+ $color-base: ion-color($colors-md, $color-name, base, md);
+ $color-contrast: ion-color($colors-md, $color-name, contrast, md);
.card-md-#{$color-name} {
@@ -23,7 +25,9 @@
color: $color-contrast;
}
- @each $color-name, $color-base, $color-contrast in get-colors($colors-md) {
+ @each $color-name, $color-value in $colors-md {
+ $color-base: ion-color($colors-md, $color-name, base, md);
+
.card-content-md-#{$color-name} {
color: $color-base;
}
@@ -33,5 +37,4 @@
.card-content-md-#{$color-name} {
color: $color-base;
}
-
}
diff --git a/packages/core/src/components/card-header/card-header.ios.scss b/packages/core/src/components/card-header/card-header.ios.scss
index 33decbf736..2661ba8ca6 100644
--- a/packages/core/src/components/card-header/card-header.ios.scss
+++ b/packages/core/src/components/card-header/card-header.ios.scss
@@ -9,7 +9,7 @@
}
.card-header-translucent-ios {
- background-color: rgba($card-ios-header-translucent-background, $card-ios-header-translucent-opacity);
+ background-color: $card-ios-header-translucent-background-color;
-webkit-backdrop-filter: $card-ios-header-translucent-filter;
backdrop-filter: $card-ios-header-translucent-filter;
diff --git a/packages/core/src/components/card-header/card-header.ios.vars.scss b/packages/core/src/components/card-header/card-header.ios.vars.scss
index 33cf50c54b..ba1167af96 100644
--- a/packages/core/src/components/card-header/card-header.ios.vars.scss
+++ b/packages/core/src/components/card-header/card-header.ios.vars.scss
@@ -4,22 +4,19 @@
// --------------------------------------------------
/// @prop - Padding top of the card header
-$card-ios-header-padding-top: 20px !default;
+$card-ios-header-padding-top: 20px !default;
/// @prop - Padding end of the card header
-$card-ios-header-padding-end: $card-ios-header-padding-top !default;
+$card-ios-header-padding-end: $card-ios-header-padding-top !default;
/// @prop - Padding bottom of the card header
-$card-ios-header-padding-bottom: 16px !default;
+$card-ios-header-padding-bottom: 16px !default;
/// @prop - Padding start of the card header
-$card-ios-header-padding-start: $card-ios-header-padding-end !default;
+$card-ios-header-padding-start: $card-ios-header-padding-end !default;
/// @prop - Filter of the translucent card header
-$card-ios-header-translucent-background: #fff !default;
+$card-ios-header-translucent-background-color: ion-color-alpha($background-ios-color-value, background-ios-color, $alpha-ios-highest) !default;
/// @prop - Filter of the translucent card header
-$card-ios-header-translucent-filter: saturate(180%) blur(30px) !default;
-
-/// @prop - Opacity of the translucent cardheader
-$card-ios-header-translucent-opacity: .88 !default;
+$card-ios-header-translucent-filter: saturate(180%) blur(30px) !default;
diff --git a/packages/core/src/components/card-subtitle/card-subtitle.ios.scss b/packages/core/src/components/card-subtitle/card-subtitle.ios.scss
index 6e8399bf48..a72f7027fb 100644
--- a/packages/core/src/components/card-subtitle/card-subtitle.ios.scss
+++ b/packages/core/src/components/card-subtitle/card-subtitle.ios.scss
@@ -18,7 +18,9 @@
// Generate iOS Card subtitle Colors
// --------------------------------------------------
-@each $color-name, $color-base, $color-contrast in get-colors($colors-ios) {
+@each $color-name, $color-value in $colors-ios {
+ $color-base: ion-color($colors-ios, $color-name, base, ios);
+ $color-contrast: ion-color($colors-ios, $color-name, contrast, ios);
.card-ios-#{$color-name} {
@@ -26,7 +28,9 @@
color: $color-contrast;
}
- @each $color-name, $color-base, $color-contrast in get-colors($colors-ios) {
+ @each $color-name, $color-value in $colors-ios {
+ $color-base: ion-color($colors-ios, $color-name, base, ios);
+
.card-subtitle-ios-#{$color-name} {
color: $color-base;
}
@@ -36,5 +40,4 @@
.card-subtitle-ios-#{$color-name} {
color: $color-base;
}
-
}
diff --git a/packages/core/src/components/card-subtitle/card-subtitle.ios.vars.scss b/packages/core/src/components/card-subtitle/card-subtitle.ios.vars.scss
index 97f7ddab47..68d5de1f45 100644
--- a/packages/core/src/components/card-subtitle/card-subtitle.ios.vars.scss
+++ b/packages/core/src/components/card-subtitle/card-subtitle.ios.vars.scss
@@ -28,4 +28,4 @@ $card-ios-subtitle-padding-bottom: $card-ios-subtitle-padding-top !default
$card-ios-subtitle-padding-start: $card-ios-subtitle-padding-end !default;
/// @prop - Color of the card subtitle
-$card-ios-subtitle-color: rgba(0, 0, 0, .4) !default;
+$card-ios-subtitle-color: $text-ios-color-step-200 !default;
diff --git a/packages/core/src/components/card-subtitle/card-subtitle.md.scss b/packages/core/src/components/card-subtitle/card-subtitle.md.scss
index 377e0e7aa1..d28ac9791e 100644
--- a/packages/core/src/components/card-subtitle/card-subtitle.md.scss
+++ b/packages/core/src/components/card-subtitle/card-subtitle.md.scss
@@ -15,7 +15,9 @@
// Generate Material Design Card subtitle Colors
// --------------------------------------------------
-@each $color-name, $color-base, $color-contrast in get-colors($colors-md) {
+@each $color-name, $color-value in $colors-md {
+ $color-base: ion-color($colors-md, $color-name, base, md);
+ $color-contrast: ion-color($colors-md, $color-name, contrast, md);
.card-md-#{$color-name} {
@@ -23,7 +25,9 @@
color: $color-contrast;
}
- @each $color-name, $color-base, $color-contrast in get-colors($colors-md) {
+ @each $color-name, $color-value in $colors-md {
+ $color-base: ion-color($colors-md, $color-name, base, md);
+
.card-subtitle-md-#{$color-name} {
color: $color-base;
}
@@ -33,5 +37,4 @@
.card-subtitle-md-#{$color-name} {
color: $color-base;
}
-
}
diff --git a/packages/core/src/components/card-subtitle/card-subtitle.md.vars.scss b/packages/core/src/components/card-subtitle/card-subtitle.md.vars.scss
index 294d0e070a..7050c991ac 100644
--- a/packages/core/src/components/card-subtitle/card-subtitle.md.vars.scss
+++ b/packages/core/src/components/card-subtitle/card-subtitle.md.vars.scss
@@ -19,4 +19,4 @@ $card-md-subtitle-padding-bottom: $card-md-subtitle-padding-top !default;
$card-md-subtitle-padding-start: $card-md-subtitle-padding-end !default;
/// @prop - Color of the card subtitle
-$card-md-subtitle-color: #222 !default;
+$card-md-subtitle-color: $text-md-color-step-100 !default;
diff --git a/packages/core/src/components/card-title/card-title.ios.scss b/packages/core/src/components/card-title/card-title.ios.scss
index fb9309c7e6..4a92e8874f 100644
--- a/packages/core/src/components/card-title/card-title.ios.scss
+++ b/packages/core/src/components/card-title/card-title.ios.scss
@@ -21,7 +21,9 @@
// Generate iOS Card Title Colors
// --------------------------------------------------
-@each $color-name, $color-base, $color-contrast in get-colors($colors-ios) {
+@each $color-name, $color-value in $colors-ios {
+ $color-base: ion-color($colors-ios, $color-name, base, ios);
+ $color-contrast: ion-color($colors-ios, $color-name, contrast, ios);
.card-ios-#{$color-name} {
@@ -29,7 +31,9 @@
color: $color-contrast;
}
- @each $color-name, $color-base, $color-contrast in get-colors($colors-ios) {
+ @each $color-name, $color-value in $colors-ios {
+ $color-base: ion-color($colors-ios, $color-name, base, ios);
+
.card-title-ios-#{$color-name} {
color: $color-base;
}
@@ -39,5 +43,4 @@
.card-title-ios-#{$color-name} {
color: $color-base;
}
-
}
diff --git a/packages/core/src/components/card-title/card-title.ios.vars.scss b/packages/core/src/components/card-title/card-title.ios.vars.scss
index 024a1610ae..efb5c869cc 100644
--- a/packages/core/src/components/card-title/card-title.ios.vars.scss
+++ b/packages/core/src/components/card-title/card-title.ios.vars.scss
@@ -34,4 +34,4 @@ $card-ios-title-margin-bottom: $card-ios-title-margin-top !default;
$card-ios-title-margin-start: $card-ios-title-margin-top !default;
/// @prop - Color of the card title
-$card-ios-title-text-color: #000 !default;
+$card-ios-title-text-color: $text-ios-color !default;
diff --git a/packages/core/src/components/card-title/card-title.md.scss b/packages/core/src/components/card-title/card-title.md.scss
index 8a3109bf91..c552e51789 100644
--- a/packages/core/src/components/card-title/card-title.md.scss
+++ b/packages/core/src/components/card-title/card-title.md.scss
@@ -20,7 +20,9 @@
// Generate Material Design Card Title Colors
// --------------------------------------------------
-@each $color-name, $color-base, $color-contrast in get-colors($colors-md) {
+@each $color-name, $color-value in $colors-md {
+ $color-base: ion-color($colors-md, $color-name, base, md);
+ $color-contrast: ion-color($colors-md, $color-name, contrast, md);
.card-md-#{$color-name} {
@@ -28,7 +30,9 @@
color: $color-contrast;
}
- @each $color-name, $color-base, $color-contrast in get-colors($colors-md) {
+ @each $color-name, $color-value in $colors-md {
+ $color-base: ion-color($colors-md, $color-name, base, md);
+
.card-title-md-#{$color-name} {
color: $color-base;
}
@@ -38,5 +42,4 @@
.card-title-md-#{$color-name} {
color: $color-base;
}
-
}
diff --git a/packages/core/src/components/card-title/card-title.md.vars.scss b/packages/core/src/components/card-title/card-title.md.vars.scss
index 7a487224e8..0dc11d90f2 100644
--- a/packages/core/src/components/card-title/card-title.md.vars.scss
+++ b/packages/core/src/components/card-title/card-title.md.vars.scss
@@ -31,4 +31,4 @@ $card-md-title-margin-bottom: $card-md-title-margin-top !default;
$card-md-title-margin-start: $card-md-title-margin-end !default;
/// @prop - Color of the card title
-$card-md-title-text-color: #222 !default;
+$card-md-title-text-color: $text-md-color-step-100 !default;
diff --git a/packages/core/src/components/card/card.ios.scss b/packages/core/src/components/card/card.ios.scss
index 87e37e8b01..7497bf4826 100755
--- a/packages/core/src/components/card/card.ios.scss
+++ b/packages/core/src/components/card/card.ios.scss
@@ -11,10 +11,9 @@
width: calc(100% - #{($card-ios-margin-end + $card-ios-margin-start)});
font-family: $card-ios-font-family;
-
font-size: $card-ios-font-size;
-
- background: $card-ios-background-color;
+ color: $card-ios-text-color;
+ background-color: $card-ios-background-color;
box-shadow: $card-ios-box-shadow;
transform: translateZ(0);
@@ -73,11 +72,12 @@
// @include margin(0, null, null, null);
// }
-
// Generate iOS Card Colors
// --------------------------------------------------
-@each $color-name, $color-base, $color-contrast in get-colors($colors-ios) {
+@each $color-name, $color-value in $colors-ios {
+ $color-base: ion-color($colors-ios, $color-name, base, ios);
+ $color-contrast: ion-color($colors-ios, $color-name, contrast, ios);
.card-ios .text-ios-#{$color-name} {
color: $color-base;
@@ -91,11 +91,12 @@
color: $color-contrast;
}
- @each $color-name, $color-base, $color-contrast in get-colors($colors-ios) {
+ @each $color-name, $color-value in $colors-ios {
+ $color-base: ion-color($colors-ios, $color-name, base, ios);
+
.text-ios-#{$color-name} {
color: $color-base;
}
}
}
-
}
diff --git a/packages/core/src/components/card/card.ios.vars.scss b/packages/core/src/components/card/card.ios.vars.scss
index 863f2a6672..63b042eab5 100755
--- a/packages/core/src/components/card/card.ios.vars.scss
+++ b/packages/core/src/components/card/card.ios.vars.scss
@@ -16,7 +16,7 @@ $card-ios-margin-bottom: 30px !default;
$card-ios-margin-start: 20px !default;
/// @prop - Background color of the card
-$card-ios-background-color: $list-ios-background-color !default;
+$card-ios-background-color: $item-ios-background-color !default;
/// @prop - Box shadow color of the card
$card-ios-box-shadow-color: rgba(0, 0, 0, .18) !default;
@@ -34,4 +34,4 @@ $card-ios-font-family: $font-family-ios-base !default;
$card-ios-font-size: 14px !default;
/// @prop - Color of the card text
-$card-ios-text-color: #666 !default;
+$card-ios-text-color: $text-ios-color-step-200 !default;
diff --git a/packages/core/src/components/card/card.md.scss b/packages/core/src/components/card/card.md.scss
index 935265dc25..d51f925c87 100755
--- a/packages/core/src/components/card/card.md.scss
+++ b/packages/core/src/components/card/card.md.scss
@@ -11,10 +11,9 @@
width: calc(100% - #{($card-md-margin-end + $card-md-margin-start)});
font-family: $card-md-font-family;
-
font-size: $card-md-font-size;
-
- background: $card-md-background-color;
+ color: $card-md-text-color;
+ background-color: $card-md-background-color;
box-shadow: $card-md-box-shadow;
}
@@ -80,7 +79,9 @@
// Generate Material Design Card Colors
// --------------------------------------------------
-@each $color-name, $color-base, $color-contrast in get-colors($colors-md) {
+@each $color-name, $color-value in $colors-md {
+ $color-base: ion-color($colors-md, $color-name, base, md);
+ $color-contrast: ion-color($colors-md, $color-name, contrast, md);
.card-md .text-md-#{$color-name} {
color: $color-base;
@@ -100,7 +101,9 @@
color: $color-contrast;
}
- @each $color-name, $color-base, $color-contrast in get-colors($colors-md) {
+ @each $color-name, $color-value in $colors-md {
+ $color-base: ion-color($colors-md, $color-name, base, md);
+
.text-md-#{$color-name} {
color: $color-base;
}
diff --git a/packages/core/src/components/card/card.md.vars.scss b/packages/core/src/components/card/card.md.vars.scss
index d466556549..b790670c80 100755
--- a/packages/core/src/components/card/card.md.vars.scss
+++ b/packages/core/src/components/card/card.md.vars.scss
@@ -16,7 +16,7 @@ $card-md-margin-bottom: 10px !default;
$card-md-margin-start: 10px !default;
/// @prop - Background color of the card
-$card-md-background-color: $list-md-background-color !default;
+$card-md-background-color: $item-md-background-color !default;
/// @prop - Box shadow of the card
$card-md-box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .14), 0 3px 1px -2px rgba(0, 0, 0, .2), 0 1px 5px 0 rgba(0, 0, 0, .12) !default;
@@ -34,4 +34,4 @@ $card-md-font-family: $font-family-md-base !default;
$card-md-line-height: 1.5 !default;
/// @prop - Color of the card text
-$card-md-text-color: #222 !default;
+$card-md-text-color: $text-md-color-step-100 !default;
diff --git a/packages/core/src/components/checkbox/checkbox.ios.scss b/packages/core/src/components/checkbox/checkbox.ios.scss
index b148da67cd..20dc3025ea 100644
--- a/packages/core/src/components/checkbox/checkbox.ios.scss
+++ b/packages/core/src/components/checkbox/checkbox.ios.scss
@@ -76,11 +76,11 @@
width: 36px;
height: 36px;
- background: #86a8df;
+ background: $checkbox-ios-background-color-focused;
content: "";
- opacity: .3;
+ opacity: .2;
}
@@ -102,7 +102,9 @@
// iOS Checkbox Color Mixin
// --------------------------------------------------
-@mixin checkbox-theme-ios($color-name, $color-base, $color-contrast) {
+@mixin checkbox-theme-ios($color-name) {
+ $color-base: ion-color($colors-ios, $color-name, base, ios);
+ $color-contrast: ion-color($colors-ios, $color-name, contrast, ios);
.checkbox-ios-#{$color-name} .checkbox-checked {
border-color: $color-base;
@@ -112,13 +114,12 @@
.checkbox-ios-#{$color-name} .checkbox-checked .checkbox-inner {
border-color: $color-contrast;
}
-
}
// Generate iOS Checkbox Colors
// --------------------------------------------------
-@each $color-name, $color-base, $color-contrast in get-colors($colors-ios) {
- @include checkbox-theme-ios($color-name, $color-base, $color-contrast);
+@each $color-name, $color-value in $colors-ios {
+ @include checkbox-theme-ios($color-name);
}
diff --git a/packages/core/src/components/checkbox/checkbox.ios.vars.scss b/packages/core/src/components/checkbox/checkbox.ios.vars.scss
index de8be69742..b00dcdba3f 100644
--- a/packages/core/src/components/checkbox/checkbox.ios.vars.scss
+++ b/packages/core/src/components/checkbox/checkbox.ios.vars.scss
@@ -6,16 +6,19 @@
// --------------------------------------------------
/// @prop - Background color of the checkbox when off
-$checkbox-ios-background-color-off: $list-ios-background-color !default;
+$checkbox-ios-background-color-off: $item-ios-background-color !default;
/// @prop - Background color of the checkbox when on
-$checkbox-ios-background-color-on: color($colors-ios, primary) !default;
+$checkbox-ios-background-color-on: ion-color($colors-ios, primary, base, ios) !default;
+
+/// @prop - Background color of focus indicator for checkbox when focused
+$checkbox-ios-background-color-focused: ion-color($colors-ios, primary, tint, ios) !default;
/// @prop - Size of the checkbox icon
$checkbox-ios-icon-size: 21px !default;
/// @prop - Border color of the checkbox icon when off
-$checkbox-ios-icon-border-color-off: $list-ios-border-color !default;
+$checkbox-ios-icon-border-color-off: $item-ios-border-color !default;
/// @prop - Border color of the checkbox icon when on
$checkbox-ios-icon-border-color-on: $checkbox-ios-background-color-on !default;
@@ -36,7 +39,7 @@ $checkbox-ios-icon-checkmark-width: 1px !default;
$checkbox-ios-icon-checkmark-style: solid !default;
/// @prop - Color of the checkbox icon checkmark
-$checkbox-ios-icon-checkmark-color: color-contrast($colors-ios, $checkbox-ios-background-color-on) !default;
+$checkbox-ios-icon-checkmark-color: ion-color($colors-ios, $checkbox-ios-background-color-on, contrast, ios) !default;
/// @prop - Opacity of the disabled checkbox
$checkbox-ios-disabled-opacity: .3 !default;
diff --git a/packages/core/src/components/checkbox/checkbox.md.scss b/packages/core/src/components/checkbox/checkbox.md.scss
index 2e89d73d3a..443fd9f6f8 100644
--- a/packages/core/src/components/checkbox/checkbox.md.scss
+++ b/packages/core/src/components/checkbox/checkbox.md.scss
@@ -80,11 +80,11 @@
width: 36px;
height: 36px;
- background: #86a8df;
+ background: $checkbox-md-background-color-focused;
content: "";
- opacity: .3;
+ opacity: .2;
}
@@ -110,7 +110,9 @@
// Material Design Checkbox Color Mixin
// --------------------------------------------------
-@mixin checkbox-theme-md($color-name, $color-base, $color-contrast) {
+@mixin checkbox-theme-md($color-name) {
+ $color-base: ion-color($colors-md, $color-name, base, md);
+ $color-contrast: ion-color($colors-md, $color-name, contrast, md);
.checkbox-md-#{$color-name} .checkbox-checked {
border-color: $color-base;
@@ -120,13 +122,12 @@
.checkbox-md-#{$color-name} .checkbox-checked .checkbox-inner {
border-color: $color-contrast;
}
-
}
// Generate Material Design Checkbox Colors
// --------------------------------------------------
-@each $color-name, $color-base, $color-contrast in get-colors($colors-md) {
- @include checkbox-theme-md($color-name, $color-base, $color-contrast);
+@each $color-name, $color-value in $colors-md {
+ @include checkbox-theme-md($color-name);
}
diff --git a/packages/core/src/components/checkbox/checkbox.md.vars.scss b/packages/core/src/components/checkbox/checkbox.md.vars.scss
index 408a4cd4df..480e0665c4 100644
--- a/packages/core/src/components/checkbox/checkbox.md.vars.scss
+++ b/packages/core/src/components/checkbox/checkbox.md.vars.scss
@@ -9,10 +9,13 @@
$checkbox-md-disabled-opacity: .3 !default;
/// @prop - Background color of the checkbox icon when off
-$checkbox-md-icon-background-color-off: $list-md-background-color !default;
+$checkbox-md-icon-background-color-off: $item-md-background-color !default;
+
+/// @prop - Background color of focus indicator for checkbox when focused
+$checkbox-md-background-color-focused: ion-color($colors-md, primary, tint, md) !default;
/// @prop - Background color of the checkbox icon when on
-$checkbox-md-icon-background-color-on: color($colors-md, primary) !default;
+$checkbox-md-icon-background-color-on: ion-color($colors-md, primary, base, md) !default;
/// @prop - Size of the checkbox icon
$checkbox-md-icon-size: 16px !default;
@@ -24,7 +27,7 @@ $checkbox-md-icon-checkmark-width: 2px !default;
$checkbox-md-icon-checkmark-style: solid !default;
/// @prop - Color of the checkbox icon checkmark
-$checkbox-md-icon-checkmark-color: color-contrast($colors-md, $checkbox-md-icon-background-color-on) !default;
+$checkbox-md-icon-checkmark-color: ion-color($colors-md, $checkbox-md-icon-background-color-on, contrast, md) !default;
/// @prop - Border width of the checkbox icon
$checkbox-md-icon-border-width: 2px !default;
@@ -36,10 +39,10 @@ $checkbox-md-icon-border-style: solid !default;
$checkbox-md-icon-border-radius: 2px !default;
/// @prop - Border color of the checkbox icon when off
-$checkbox-md-icon-border-color-off: darken($list-md-border-color, 40%) !default;
+$checkbox-md-icon-border-color-off: $border-md-color !default;
/// @prop - Border color of the checkbox icon when on
-$checkbox-md-icon-border-color-on: color($colors-md, primary) !default;
+$checkbox-md-icon-border-color-on: ion-color($colors-md, primary, base, md) !default;
/// @prop - Transition duration of the checkbox
$checkbox-md-transition-duration: 280ms !default;
diff --git a/packages/core/src/components/chip-button/chip-button.ios.scss b/packages/core/src/components/chip-button/chip-button.ios.scss
index d310a84b1a..2b76051b7a 100644
--- a/packages/core/src/components/chip-button/chip-button.ios.scss
+++ b/packages/core/src/components/chip-button/chip-button.ios.scss
@@ -29,7 +29,9 @@
// Generate iOS Chip Button Colors
// --------------------------------------------------
-@each $color-name, $color-base, $color-contrast in get-colors($colors-ios) {
+@each $color-name, $color-value in $colors-ios {
+ $color-base: ion-color($colors-ios, $color-name, base, ios);
+ $color-contrast: ion-color($colors-ios, $color-name, contrast, ios);
.chip-button-ios-#{$color-name} {
color: $color-contrast;
diff --git a/packages/core/src/components/chip-button/chip-button.ios.vars.scss b/packages/core/src/components/chip-button/chip-button.ios.vars.scss
index 7a60940cb7..bb575bea5a 100644
--- a/packages/core/src/components/chip-button/chip-button.ios.vars.scss
+++ b/packages/core/src/components/chip-button/chip-button.ios.vars.scss
@@ -4,16 +4,16 @@
// --------------------------------------------------
/// @prop - Background color of the chip button
-$chip-button-ios-background-color: color($colors-ios, primary) !default;
+$chip-button-ios-background-color: ion-color($colors-ios, primary, base, ios) !default;
/// @prop - Fill color of the icon in the chip button
-$chip-button-ios-icon-fill-color: color-contrast($colors-ios, $chip-button-ios-background-color) !default;
+$chip-button-ios-icon-fill-color: ion-color($colors-ios, $chip-button-ios-background-color, contrast, ios) !default;
/// @prop - Background color of the clear chip button
$chip-button-ios-clear-background-color: transparent !default;
/// @prop - Text color of the clear chip button
-$chip-button-ios-clear-text-color: color($colors-ios, primary) !default;
+$chip-button-ios-clear-text-color: ion-color($colors-ios, primary, base, ios) !default;
/// @prop - Fill color of the icon in the clear chip button
-$chip-button-ios-clear-icon-fill-color: color($colors-ios, primary) !default;
+$chip-button-ios-clear-icon-fill-color: ion-color($colors-ios, primary, base, ios) !default;
diff --git a/packages/core/src/components/chip-button/chip-button.md.scss b/packages/core/src/components/chip-button/chip-button.md.scss
index 10cac697f4..113b4053e8 100644
--- a/packages/core/src/components/chip-button/chip-button.md.scss
+++ b/packages/core/src/components/chip-button/chip-button.md.scss
@@ -29,7 +29,9 @@
// Generate Material Design Chip Button Colors
// --------------------------------------------------
-@each $color-name, $color-base, $color-contrast in get-colors($colors-md) {
+@each $color-name, $color-value in $colors-md {
+ $color-base: ion-color($colors-md, $color-name, base, md);
+ $color-contrast: ion-color($colors-md, $color-name, contrast, md);
.chip-button-md-#{$color-name} {
color: $color-contrast;
@@ -47,5 +49,4 @@
.chip-button-clear-md-#{$color-name} .icon {
fill: $color-base;
}
-
}
diff --git a/packages/core/src/components/chip-button/chip-button.md.vars.scss b/packages/core/src/components/chip-button/chip-button.md.vars.scss
index 288f98c5a4..f5f7275dbb 100644
--- a/packages/core/src/components/chip-button/chip-button.md.vars.scss
+++ b/packages/core/src/components/chip-button/chip-button.md.vars.scss
@@ -4,16 +4,16 @@
// --------------------------------------------------
/// @prop - Background color of the chip button
-$chip-button-md-background-color: color($colors-md, primary) !default;
+$chip-button-md-background-color: ion-color($colors-md, primary, base, md) !default;
/// @prop - Fill color of the icon in the chip button
-$chip-button-md-icon-fill-color: color-contrast($colors-md, $chip-button-md-background-color) !default;
+$chip-button-md-icon-fill-color: ion-color($colors-md, $chip-button-md-background-color, contrast, md) !default;
/// @prop - Background color of the clear chip button
$chip-button-md-clear-background-color: transparent !default;
/// @prop - Text color of the clear chip button
-$chip-button-md-clear-text-color: color($colors-md, primary) !default;
+$chip-button-md-clear-text-color: ion-color($colors-md, primary, base, md) !default;
/// @prop - Fill color of the icon in the clear chip button
-$chip-button-md-clear-icon-fill-color: color($colors-md, primary) !default;
+$chip-button-md-clear-icon-fill-color: ion-color($colors-md, primary, base, md) !default;
diff --git a/packages/core/src/components/chip/chip.ios.scss b/packages/core/src/components/chip/chip.ios.scss
index 13fba1895f..77e95b984c 100644
--- a/packages/core/src/components/chip/chip.ios.scss
+++ b/packages/core/src/components/chip/chip.ios.scss
@@ -37,7 +37,9 @@
// Generate iOS Chip Colors
// --------------------------------------------------
-@each $color-name, $color-base, $color-contrast in get-colors($colors-ios) {
+@each $color-name, $color-value in $colors-ios {
+ $color-base: ion-color($colors-ios, $color-name, base, ios);
+ $color-contrast: ion-color($colors-ios, $color-name, contrast, ios);
.chip-ios-#{$color-name} {
color: $color-contrast;
@@ -48,5 +50,4 @@
color: $color-contrast;
background-color: $color-base;
}
-
}
diff --git a/packages/core/src/components/chip/chip.ios.vars.scss b/packages/core/src/components/chip/chip.ios.vars.scss
index 388c1afba6..2295c19680 100644
--- a/packages/core/src/components/chip/chip.ios.vars.scss
+++ b/packages/core/src/components/chip/chip.ios.vars.scss
@@ -28,10 +28,10 @@ $chip-ios-font-family: $font-family-ios-base !default;
$chip-ios-font-size: 13px !default;
/// @prop - Text color of the chip
-$chip-ios-text-color: rgba(0, 0, 0, .87) !default;
+$chip-ios-text-color: $text-ios-color-step-100 !default;
/// @prop - Background color of the chip
-$chip-ios-background-color: rgba(0, 0, 0, .12) !default;
+$chip-ios-background-color: ion-color-alpha($text-ios-color-value, text-ios-color, $alpha-ios-low) !default;
/// @prop - Margin top of the label in the chip
$chip-ios-label-margin-top: 0 !default;
@@ -46,10 +46,10 @@ $chip-ios-label-margin-bottom: $chip-ios-label-margin-top !default;
$chip-ios-label-margin-start: $chip-ios-label-margin-end !default;
/// @prop - Background color of the icon in the chip
-$chip-ios-icon-background-color: color($colors-ios, primary) !default;
+$chip-ios-icon-background-color: ion-color($colors-ios, primary, base, ios) !default;
/// @prop - Fill color of the icon in the chip
-$chip-ios-icon-fill-color: color-contrast($colors-ios, $chip-ios-icon-background-color) !default;
+$chip-ios-icon-fill-color: ion-color($colors-ios, $chip-ios-icon-background-color, contrast, ios) !default;
/// @prop - Width of the avatar in the chip
$chip-ios-avatar-width: 32px !default;
diff --git a/packages/core/src/components/chip/chip.md.scss b/packages/core/src/components/chip/chip.md.scss
index ef3c659a81..5bf6ea8725 100644
--- a/packages/core/src/components/chip/chip.md.scss
+++ b/packages/core/src/components/chip/chip.md.scss
@@ -37,7 +37,9 @@
// Generate Material Design Chip Colors
// --------------------------------------------------
-@each $color-name, $color-base, $color-contrast in get-colors($colors-md) {
+@each $color-name, $color-value in $colors-md {
+ $color-base: ion-color($colors-md, $color-name, base, md);
+ $color-contrast: ion-color($colors-md, $color-name, contrast, md);
.chip-md-#{$color-name} {
color: $color-contrast;
@@ -48,5 +50,4 @@
color: $color-contrast;
background-color: $color-base;
}
-
}
diff --git a/packages/core/src/components/chip/chip.md.vars.scss b/packages/core/src/components/chip/chip.md.vars.scss
index 07199b00ed..43c95cb08e 100644
--- a/packages/core/src/components/chip/chip.md.vars.scss
+++ b/packages/core/src/components/chip/chip.md.vars.scss
@@ -28,10 +28,10 @@ $chip-md-font-family: $font-family-md-base !default;
$chip-md-font-size: 13px !default;
/// @prop - Text color of the chip
-$chip-md-text-color: rgba(0, 0, 0, .87) !default;
+$chip-md-text-color: $text-md-color-step-100 !default;
/// @prop - Background color of the chip
-$chip-md-background-color: rgba(0, 0, 0, .12) !default;
+$chip-md-background-color: ion-color-alpha($text-md-color-value, text-md-color, $alpha-md-low) !default;
/// @prop - Margin top of the label in the chip
$chip-md-label-margin-top: 0 !default;
@@ -46,10 +46,10 @@ $chip-md-label-margin-bottom: $chip-md-label-margin-top !default;
$chip-md-label-margin-start: $chip-md-label-margin-end !default;
/// @prop - Background color of the icon in the chip
-$chip-md-icon-background-color: color($colors-md, primary) !default;
+$chip-md-icon-background-color: ion-color($colors-md, primary, base, md) !default;
/// @prop - Fill color of the icon in the chip
-$chip-md-icon-fill-color: color-contrast($colors-md, $chip-md-icon-background-color) !default;
+$chip-md-icon-fill-color: ion-color($colors-md, $chip-md-icon-background-color, contrast, md) !default;
/// @prop - Width of the avatar in the chip
$chip-md-avatar-width: 32px !default;
diff --git a/packages/core/src/components/content/content.ios.scss b/packages/core/src/components/content/content.ios.scss
index 72235739be..4e9a7a7320 100644
--- a/packages/core/src/components/content/content.ios.scss
+++ b/packages/core/src/components/content/content.ios.scss
@@ -18,7 +18,7 @@
.content-ios hr {
height: $hairlines-width;
- background-color: rgba(0, 0, 0, .12);
+ background-color: ion-color-alpha($background-ios-color-value, background-ios-color, $alpha-ios-low);
}
diff --git a/packages/core/src/components/content/content.ios.vars.scss b/packages/core/src/components/content/content.ios.vars.scss
index 38e29c2a94..dd256438ee 100644
--- a/packages/core/src/components/content/content.ios.vars.scss
+++ b/packages/core/src/components/content/content.ios.vars.scss
@@ -7,7 +7,7 @@
$content-ios-font-family: $font-family-ios-base !default;
/// @prop - Background color of the outer content
-$content-ios-outer-background: #efeff4 !default;
+$content-ios-outer-background: $background-ios-color-step-100 !default;
/// @prop - Background color of the content when making transition
$content-ios-transition-background: #000 !default;
diff --git a/packages/core/src/components/content/content.md.scss b/packages/core/src/components/content/content.md.scss
index 1b9b208fef..65b1f9263b 100644
--- a/packages/core/src/components/content/content.md.scss
+++ b/packages/core/src/components/content/content.md.scss
@@ -12,7 +12,7 @@
}
.content-md hr {
- background-color: rgba(0, 0, 0, .08);
+ background-color: $background-color-step-100;
}
diff --git a/packages/core/src/components/content/content.scss b/packages/core/src/components/content/content.scss
index cdb63f024a..acd0dbfd54 100644
--- a/packages/core/src/components/content/content.scss
+++ b/packages/core/src/components/content/content.scss
@@ -45,11 +45,6 @@ ion-content.js-scroll ion-scroll {
will-change: initial;
}
-ion-content.has-refresher ion-scroll {
- background-color: inherit;
-}
-
-
// Content Padding
// --------------------------------------------------
diff --git a/packages/core/src/components/datetime/datetime.ios.vars.scss b/packages/core/src/components/datetime/datetime.ios.vars.scss
index 3de0449451..8a8b0b2e0e 100644
--- a/packages/core/src/components/datetime/datetime.ios.vars.scss
+++ b/packages/core/src/components/datetime/datetime.ios.vars.scss
@@ -6,19 +6,19 @@
// --------------------------------------------------
/// @prop - Padding top of the datetime
-$datetime-ios-padding-top: $item-ios-padding-top !default;
+$datetime-ios-padding-top: $item-ios-padding-top !default;
/// @prop - Padding end of the datetime
-$datetime-ios-padding-end: ($item-ios-padding-end / 2) !default;
+$datetime-ios-padding-end: ($item-ios-padding-end / 2) !default;
/// @prop - Padding bottom of the datetime
-$datetime-ios-padding-bottom: $item-ios-padding-bottom !default;
+$datetime-ios-padding-bottom: $item-ios-padding-bottom !default;
/// @prop - Padding start of the datetime
-$datetime-ios-padding-start: $item-ios-padding-start !default;
+$datetime-ios-padding-start: $item-ios-padding-start !default;
/// @prop - Font family of the datetime
-$datetime-ios-font-family: $font-family-ios-base !default;
+$datetime-ios-font-family: $font-family-ios-base !default;
/// @prop - Color of the datetime placeholder
-$datetime-ios-placeholder-color: #999 !default;
+$datetime-ios-placeholder-color: $text-ios-color-step-300 !default;
diff --git a/packages/core/src/components/datetime/datetime.md.vars.scss b/packages/core/src/components/datetime/datetime.md.vars.scss
index 1e1a5c4421..7b4f39022f 100644
--- a/packages/core/src/components/datetime/datetime.md.vars.scss
+++ b/packages/core/src/components/datetime/datetime.md.vars.scss
@@ -21,4 +21,4 @@ $datetime-md-padding-start: $item-md-padding-start !default;
$datetime-md-font-family: $font-family-md-base !default;
/// @prop - Color of the datetime placeholder
-$datetime-md-placeholder-color: #999 !default;
+$datetime-md-placeholder-color: $placeholder-text-md-color !default;
diff --git a/packages/core/src/components/fab-button/fab-button.ios.scss b/packages/core/src/components/fab-button/fab-button.ios.scss
index f63d57726e..585ae5100e 100755
--- a/packages/core/src/components/fab-button/fab-button.ios.scss
+++ b/packages/core/src/components/fab-button/fab-button.ios.scss
@@ -40,25 +40,24 @@
// --------------------------------------------------
.fab-translucent-ios {
- background-color: rgba($fab-ios-background-color, $fab-ios-translucent-opacity);
+ background-color: $fab-ios-translucent-background-color;
-webkit-backdrop-filter: $fab-ios-translucent-filter;
backdrop-filter: $fab-ios-translucent-filter;
}
.fab-translucent-ios-in-list {
- background-color: rgba($fab-ios-list-button-background-color, $fab-ios-translucent-opacity);
+ background-color: $fab-ios-list-button-translucent-background-color;
}
// Generate iOS FAB colors
// --------------------------------------------------
-@each $color-name, $color-base, $color-contrast in get-colors($colors-ios) {
-
- $bg-color: $color-base;
- $bg-color-activated: color-shade($bg-color);
- $fg-color: $color-contrast;
+@each $color-name, $color-value in $colors-ios {
+ $bg-color: ion-color($colors-ios, $color-name, base, ios);
+ $bg-color-activated: ion-color($colors-ios, $color-name, tint, ios);
+ $fg-color: ion-color($colors-ios, $color-name, contrast, ios);
.fab-button-ios-#{$color-name} {
color: $fg-color;
@@ -74,11 +73,12 @@
}
.fab-translucent-ios-#{$color-name} {
- background-color: rgba($bg-color, $fab-ios-translucent-opacity);
+ background-color: ion-color-alpha($colors-ios, $color-name, $alpha-ios-highest);
+ opacity: .8;
}
.fab-translucent-ios-#{$color-name}.activated {
- background-color: rgba($bg-color-activated, $fab-ios-translucent-opacity);
+ opacity: 1;
}
}
diff --git a/packages/core/src/components/fab-button/fab-button.ios.vars.scss b/packages/core/src/components/fab-button/fab-button.ios.vars.scss
index 1ae85d0b64..5db7ebbcd9 100755
--- a/packages/core/src/components/fab-button/fab-button.ios.vars.scss
+++ b/packages/core/src/components/fab-button/fab-button.ios.vars.scss
@@ -4,40 +4,43 @@
// --------------------------------------------------
/// @prop - Background color of the button
-$fab-ios-background-color: color($colors-ios, primary) !default;
+$fab-ios-background-color: ion-color($colors-ios, primary, base, ios) !default;
+
+/// @prop - Background color of the button in translucent mode
+$fab-ios-translucent-background-color: ion-color-alpha($colors-ios, primary, $alpha-ios-highest, ios) !default;
/// @prop - Text color of the button
-$fab-ios-text-color: color-contrast($colors-ios, $fab-ios-background-color) !default;
+$fab-ios-text-color: ion-color($colors-ios, $fab-ios-background-color, contrast, ios) !default;
/// @prop - Color of the button icon
-$fab-ios-icon-fill-color: $fab-ios-text-color !default;
+$fab-ios-icon-fill-color: $fab-ios-text-color !default;
/// @prop - Background color of the activated button
-$fab-ios-background-color-activated: color-shade($fab-ios-background-color) !default;
+$fab-ios-background-color-activated: ion-color($colors-ios, $fab-ios-background-color, tint, ios) !default;
/// @prop - Background color of the button in a list
-$fab-ios-list-button-background-color: $fab-list-button-background-color !default;
+$fab-ios-list-button-background-color: ion-color($colors-ios, tertiary, base, ios) !default;
+
+/// @prop - Background color of the button in a list
+$fab-ios-list-button-translucent-background-color: ion-color-alpha($background-ios-color-value, background-ios-color, $alpha-ios-high) !default;
/// @prop - Text color of the button in a list
-$fab-ios-list-button-text-color: color-contrast($colors-ios, $fab-ios-list-button-background-color) !default;
+$fab-ios-list-button-text-color: ion-color($colors-ios, $fab-ios-list-button-background-color, contrast, ios) !default;
/// @prop - Color of the button icon in a list
-$fab-ios-list-button-icon-fill-color: $fab-ios-list-button-text-color !default;
+$fab-ios-list-button-icon-fill-color: $fab-ios-list-button-text-color !default;
/// @prop - Background color of the activated button in a list
-$fab-ios-list-button-background-color-activated: color-shade($fab-ios-list-button-background-color) !default;
+$fab-ios-list-button-background-color-activated: ion-color($colors-ios, $fab-ios-list-button-background-color, tint, ios) !default;
/// @prop - Transition duration of the transform and opacity of the button in a list
-$fab-ios-list-button-transition-duration: 200ms !default;
+$fab-ios-list-button-transition-duration: 200ms !default;
/// @prop - Speed curve of the transition of the transform and opacity of the button in a list
-$fab-ios-list-button-transition-timing-function: ease !default;
+$fab-ios-list-button-transition-timing-function: ease !default;
/// @prop - Transition delay of the transform and opacity of the button in a list
-$fab-ios-list-button-transition-delay: 10ms !default;
+$fab-ios-list-button-transition-delay: 10ms !default;
/// @prop - Filter of the translucent fab
-$fab-ios-translucent-filter: saturate(180%) blur(20px) !default;
-
-/// @prop - Opacity of the translucent fab
-$fab-ios-translucent-opacity: .88 !default;
+$fab-ios-translucent-filter: saturate(180%) blur(20px) !default;
diff --git a/packages/core/src/components/fab-button/fab-button.md.scss b/packages/core/src/components/fab-button/fab-button.md.scss
index 6b928745d0..9a853b8a46 100755
--- a/packages/core/src/components/fab-button/fab-button.md.scss
+++ b/packages/core/src/components/fab-button/fab-button.md.scss
@@ -51,19 +51,19 @@
// Material Design FAB Ripple
// --------------------------------------------------
-.fab-button-md .ripple-effect {
- background-color: color-contrast($colors-md, $fab-md-background-color);
+.fab-button-md .button-effect {
+ background-color: ion-color($colors-md, $fab-md-background-color, contrast, md);
}
// Generate MD FAB colors
// --------------------------------------------------
-@each $color-name, $color-base, $color-contrast in get-colors($colors-md) {
+@each $color-name, $color-value in $colors-md {
- $bg-color: $color-base;
- $bg-color-activated: color-shade($bg-color);
- $fg-color: $color-contrast;
+ $bg-color: ion-color($colors-md, $color-name, base, md);
+ $bg-color-activated: ion-color($colors-md, $bg-color, tint, md);
+ $fg-color: ion-color($colors-md, $color-name, contrast, md);
.fab-button-md-#{$color-name} {
color: $fg-color;
diff --git a/packages/core/src/components/fab-button/fab-button.md.vars.scss b/packages/core/src/components/fab-button/fab-button.md.vars.scss
index 4dfd4dda54..79252eaeae 100755
--- a/packages/core/src/components/fab-button/fab-button.md.vars.scss
+++ b/packages/core/src/components/fab-button/fab-button.md.vars.scss
@@ -10,28 +10,28 @@ $fab-md-box-shadow: 0 4px 6px 0 rgba(0, 0, 0, .14)
$fab-md-box-shadow-activated: 0 5px 15px 0 rgba(0, 0, 0, .4), 0 4px 7px 0 rgba(0, 0, 0, .1) !default;
/// @prop - Background color of the button
-$fab-md-background-color: color($colors-md, primary) !default;
+$fab-md-background-color: ion-color($colors-md, primary, base, md) !default;
/// @prop - Text color of the button
-$fab-md-text-color: color-contrast($colors-md, $fab-md-background-color) !default;
+$fab-md-text-color: ion-color($colors-md, $fab-md-background-color, contrast, md) !default;
/// @prop - Color of the button icon
$fab-md-icon-fill-color: $fab-md-text-color !default;
/// @prop - Background color of the activated button
-$fab-md-background-color-activated: color-shade($fab-md-background-color) !default;
+$fab-md-background-color-activated: ion-color($colors-md, $fab-md-background-color, tint, md) !default;
/// @prop - Background color of the button in a list
-$fab-md-list-button-background-color: $fab-list-button-background-color !default;
+$fab-md-list-button-background-color: ion-color($colors-md, tertiary, base, md) !default;
/// @prop - Text color of the button in a list
-$fab-md-list-button-text-color: color-contrast($colors-md, $fab-md-list-button-background-color) !default;
+$fab-md-list-button-text-color: ion-color($colors-md, $fab-md-list-button-background-color, contrast, md) !default;
/// @prop - Color of the button icon in a list
$fab-md-list-button-icon-fill-color: $fab-md-list-button-text-color !default;
/// @prop - Background color of the activated button in a list
-$fab-md-list-button-background-color-activated: color-shade($fab-md-list-button-background-color) !default;
+$fab-md-list-button-background-color-activated: ion-color($colors-md, $fab-md-list-button-background-color, tint, md) !default;
/// @prop - Transition duration of the transform and opacity of the button in a list
$fab-md-list-button-transition-duration: 200ms !default;
diff --git a/packages/core/src/components/fab-button/fab-button.vars.scss b/packages/core/src/components/fab-button/fab-button.vars.scss
index 33caa1ffbb..7f8286dd91 100755
--- a/packages/core/src/components/fab-button/fab-button.vars.scss
+++ b/packages/core/src/components/fab-button/fab-button.vars.scss
@@ -8,6 +8,3 @@ $fab-size: 56px !default;
/// @prop - Width and height of the mini FAB button
$fab-mini-size: 40px !default;
-
-/// @prop - Background color of the button in a list
-$fab-list-button-background-color: #f4f4f4 !default;
diff --git a/packages/core/src/components/icon/icon.ios.scss b/packages/core/src/components/icon/icon.ios.scss
index eab3ad2ce3..ae495fe92f 100644
--- a/packages/core/src/components/icon/icon.ios.scss
+++ b/packages/core/src/components/icon/icon.ios.scss
@@ -7,10 +7,10 @@
// Generate iOS Icon Colors
// --------------------------------------------------
-@each $color-name, $color-base, $color-contrast in get-colors($colors-ios) {
+@each $color-name, $color-value in $colors-ios {
+ $color-base: ion-color($colors-ios, $color-name, base, ios);
.icon-ios-#{$color-name} {
color: $color-base;
}
-
}
diff --git a/packages/core/src/components/icon/icon.md.scss b/packages/core/src/components/icon/icon.md.scss
index 38c08d15b6..fdf2cfdd75 100644
--- a/packages/core/src/components/icon/icon.md.scss
+++ b/packages/core/src/components/icon/icon.md.scss
@@ -7,10 +7,10 @@
// Generate Material Design Icon Colors
// --------------------------------------------------
-@each $color-name, $color-base, $color-contrast in get-colors($colors-md) {
+@each $color-name, $color-value in $colors-md {
+ $color-base: ion-color($colors-md, $color-name, base, md);
.icon-md-#{$color-name} {
color: $color-base;
}
-
}
diff --git a/packages/core/src/components/infinite-scroll/infinite-scroll.ios.scss b/packages/core/src/components/infinite-scroll/infinite-scroll.ios.scss
new file mode 100644
index 0000000000..601d7996d6
--- /dev/null
+++ b/packages/core/src/components/infinite-scroll/infinite-scroll.ios.scss
@@ -0,0 +1,17 @@
+@import "./infinite-scroll.ios.vars";
+
+.infinite-scroll-ios .infinite-loading-text {
+ color: $infinite-scroll-ios-loading-text-color;
+}
+
+.infinite-scroll-ios .infinite-loading-spinner .spinner-ios line,
+.infinite-scroll-ios .infinite-loading-spinner .spinner-ios-small line,
+.infinite-scroll-ios .infinite-loading-spinner .spinner-crescent circle {
+ stroke: $infinite-scroll-ios-loading-color;
+}
+
+.infinite-scroll-ios .infinite-loading-spinner .spinner-bubbles circle,
+.infinite-scroll-ios .infinite-loading-spinner .spinner-circles circle,
+.infinite-scroll-ios .infinite-loading-spinner .spinner-dots circle {
+ fill: $infinite-scroll-ios-loading-color;
+}
diff --git a/packages/core/src/components/infinite-scroll/infinite-scroll.ios.vars.scss b/packages/core/src/components/infinite-scroll/infinite-scroll.ios.vars.scss
new file mode 100644
index 0000000000..aec5fc2c4d
--- /dev/null
+++ b/packages/core/src/components/infinite-scroll/infinite-scroll.ios.vars.scss
@@ -0,0 +1,10 @@
+@import "../../themes/ionic.globals.ios";
+
+// Material Design Infinite Scroll
+// --------------------------------------------------
+
+/// @prop - Color of the infinite scroll loading indicator
+$infinite-scroll-ios-loading-color: $text-ios-color-step-200 !default;
+
+/// @prop - Color of the infinite scroll loading indicator text
+$infinite-scroll-ios-loading-text-color: $infinite-scroll-ios-loading-color !default;
diff --git a/packages/core/src/components/infinite-scroll/infinite-scroll.md.scss b/packages/core/src/components/infinite-scroll/infinite-scroll.md.scss
new file mode 100644
index 0000000000..e15d69d256
--- /dev/null
+++ b/packages/core/src/components/infinite-scroll/infinite-scroll.md.scss
@@ -0,0 +1,15 @@
+@import "./infinite-scroll.md.vars";
+
+.infinite-scroll-md .infinite-loading-text {
+ color: $infinite-scroll-md-loading-text-color;
+}
+
+.infinite-scroll-md .infinite-loading-spinner .spinner-crescent circle {
+ stroke: $infinite-scroll-md-loading-color;
+}
+
+.infinite-scroll-md .infinite-loading-spinner .spinner-bubbles circle,
+.infinite-scroll-md .infinite-loading-spinner .spinner-circles circle,
+.infinite-scroll-md .infinite-loading-spinner .spinner-dots circle {
+ fill: $infinite-scroll-md-loading-color;
+}
diff --git a/packages/core/src/components/infinite-scroll/infinite-scroll.md.vars.scss b/packages/core/src/components/infinite-scroll/infinite-scroll.md.vars.scss
new file mode 100644
index 0000000000..8a06bd1a99
--- /dev/null
+++ b/packages/core/src/components/infinite-scroll/infinite-scroll.md.vars.scss
@@ -0,0 +1,10 @@
+@import "../../themes/ionic.globals.md";
+
+// Material Design Infinite Scroll
+// --------------------------------------------------
+
+/// @prop - Color of the infinite scroll loading indicator
+$infinite-scroll-md-loading-color: $text-md-color-step-200 !default;
+
+/// @prop - Color of the infinite scroll loading indicator text
+$infinite-scroll-md-loading-text-color: $infinite-scroll-md-loading-color !default;
diff --git a/packages/core/src/components/infinite-scroll/infinite-scroll.scss b/packages/core/src/components/infinite-scroll/infinite-scroll.scss
index 6412ffab26..ed5918472a 100644
--- a/packages/core/src/components/infinite-scroll/infinite-scroll.scss
+++ b/packages/core/src/components/infinite-scroll/infinite-scroll.scss
@@ -39,21 +39,8 @@ ion-infinite-scroll-content {
.infinite-loading-text {
@include margin($infinite-scroll-loading-text-margin-top, $infinite-scroll-loading-text-margin-end, $infinite-scroll-loading-text-margin-bottom, $infinite-scroll-loading-text-margin-start);
-
- color: $infinite-scroll-loading-text-color;
}
-.infinite-loading-spinner .spinner-ios line,
-.infinite-loading-spinner .spinner-ios-small line,
-.infinite-loading-spinner .spinner-crescent circle {
- stroke: $infinite-scroll-loading-color;
-}
-
-.infinite-loading-spinner .spinner-bubbles circle,
-.infinite-loading-spinner .spinner-circles circle,
-.infinite-loading-spinner .spinner-dots circle {
- fill: $infinite-scroll-loading-color;
-}
// Infinite Scroll Content States
diff --git a/packages/core/src/components/infinite-scroll/infinite-scroll.tsx b/packages/core/src/components/infinite-scroll/infinite-scroll.tsx
index 1e7df61a98..6afbf50b3f 100644
--- a/packages/core/src/components/infinite-scroll/infinite-scroll.tsx
+++ b/packages/core/src/components/infinite-scroll/infinite-scroll.tsx
@@ -9,7 +9,13 @@ const enum Position {
@Component({
tag: 'ion-infinite-scroll',
- styleUrl: 'infinite-scroll.scss'
+ styleUrls: {
+ ios: 'infinite-scroll.ios.scss',
+ md: 'infinite-scroll.md.scss'
+ },
+ host: {
+ theme: 'infinite-scroll'
+ }
})
export class InfiniteScroll {
diff --git a/packages/core/src/components/infinite-scroll/infinite-scroll.vars.scss b/packages/core/src/components/infinite-scroll/infinite-scroll.vars.scss
index 9e11dababb..8fdd8d5775 100644
--- a/packages/core/src/components/infinite-scroll/infinite-scroll.vars.scss
+++ b/packages/core/src/components/infinite-scroll/infinite-scroll.vars.scss
@@ -18,12 +18,6 @@ $infinite-scroll-loading-margin-bottom: 32px !default;
/// @prop - Margin start of the infinite scroll loading icon
$infinite-scroll-loading-margin-start: $infinite-scroll-loading-margin-end !default;
-/// @prop - Color of the infinite scroll loading indicator
-$infinite-scroll-loading-color: #666 !default;
-
-/// @prop - Text color of the infinite scroll loading indicator
-$infinite-scroll-loading-text-color: $infinite-scroll-loading-color !default;
-
/// @prop - Margin top of the infinite scroll loading text
$infinite-scroll-loading-text-margin-top: 4px !default;
diff --git a/packages/core/src/components/input/input.ios.scss b/packages/core/src/components/input/input.ios.scss
index 5220ded5f5..2e86c70147 100644
--- a/packages/core/src/components/input/input.ios.scss
+++ b/packages/core/src/components/input/input.ios.scss
@@ -5,6 +5,7 @@
// --------------------------------------------------
.native-input-ios {
+ @include placeholder($input-ios-placeholder-color);
@include margin($input-ios-margin-top, $input-ios-margin-end, $input-ios-margin-bottom, $input-ios-margin-start);
@include padding(0);
diff --git a/packages/core/src/components/input/input.ios.vars.scss b/packages/core/src/components/input/input.ios.vars.scss
index e3bd289d6e..edce485b40 100644
--- a/packages/core/src/components/input/input.ios.vars.scss
+++ b/packages/core/src/components/input/input.ios.vars.scss
@@ -54,7 +54,7 @@ $input-ios-inset-margin-start: 0 !default;
$input-ios-input-clear-icon-width: 30px !default;
/// @prop - Color of the icon used to clear the input
-$input-ios-input-clear-icon-color: rgba(0, 0, 0, .5) !default;
+$input-ios-input-clear-icon-color: $text-ios-color-step-200 !default;
/// @prop - Icon used to clear the input
$input-ios-input-clear-icon-svg: "" !default;
@@ -65,6 +65,9 @@ $input-ios-input-clear-icon-size: 18px !default;
/// @prop - Padding end of the input with clear input
$input-ios-input-clear-padding-end: ($input-ios-input-clear-icon-width + $item-ios-padding-end) !default;
+/// @prop - Placeholder Text color of the input
+$input-ios-placeholder-color: $placeholder-text-ios-color !default;
+
/// @prop - Show the focus highlight when the input has focus
$input-ios-show-focus-highlight: false !default;
@@ -75,10 +78,10 @@ $input-ios-show-valid-highlight: $input-ios-show-focus-highlight !defau
$input-ios-show-invalid-highlight: $input-ios-show-focus-highlight !default;
/// @prop - Color of the input highlight
-$input-ios-highlight-color: color($colors-ios, primary) !default;
+$input-ios-highlight-color: ion-color($colors-ios, primary, base, ios) !default;
/// @prop - Color of the input highlight when valid
-$input-ios-highlight-color-valid: $input-highlight-color-valid !default;
+$input-ios-highlight-color-valid: ion-color($colors-ios, success, base, ios) !default;
/// @prop - Color of the input highlight when invalid
-$input-ios-highlight-color-invalid: $input-highlight-color-invalid !default;
+$input-ios-highlight-color-invalid: ion-color($colors-ios, danger, base, ios) !default;
diff --git a/packages/core/src/components/input/input.md.scss b/packages/core/src/components/input/input.md.scss
index 278086703a..13fc24ab42 100644
--- a/packages/core/src/components/input/input.md.scss
+++ b/packages/core/src/components/input/input.md.scss
@@ -5,6 +5,7 @@
// --------------------------------------------------
.native-input-md {
+ @include placeholder($input-md-placeholder-color);
@include margin($input-md-margin-top, $input-md-margin-end, $input-md-margin-bottom, $input-md-margin-start);
@include padding(0);
diff --git a/packages/core/src/components/input/input.md.vars.scss b/packages/core/src/components/input/input.md.vars.scss
index 47841d417e..920839706b 100644
--- a/packages/core/src/components/input/input.md.vars.scss
+++ b/packages/core/src/components/input/input.md.vars.scss
@@ -27,7 +27,7 @@ $input-md-margin-start: ($item-md-padding-start / 2) !default;
$input-md-input-clear-icon-width: 30px !default;
/// @prop - Color of the icon used to clear the input
-$input-md-input-clear-icon-color: #5b5b5b !default;
+$input-md-input-clear-icon-color: $text-md-color-step-200 !default;
/// @prop - Icon used to clear the input
$input-md-input-clear-icon-svg: "" !default;
@@ -35,6 +35,9 @@ $input-md-input-clear-icon-svg: "" !default;
diff --git a/packages/core/src/components/item/item.md.scss b/packages/core/src/components/item/item.md.scss
index 720010131c..83cca9cd8b 100644
--- a/packages/core/src/components/item/item.md.scss
+++ b/packages/core/src/components/item/item.md.scss
@@ -14,14 +14,14 @@
font-weight: normal;
text-transform: none;
- color: $list-md-text-color;
- background-color: $list-md-background-color;
+ color: $item-md-text-color;
+ background-color: $item-md-background-color;
box-shadow: none;
transition: background-color 300ms cubic-bezier(.4, 0, .2, 1);
}
.item-md.activated {
- background-color: $list-md-activated-background-color;
+ background-color: $item-md-background-color-active;
}
.item-md[no-lines] {
@@ -67,7 +67,7 @@
.item-md.item-block .item-inner {
@include padding-horizontal(null, ($item-md-padding-end / 2));
- border-bottom: 1px solid $list-md-border-color;
+ border-bottom: 1px solid $item-md-border-color;
}
@@ -169,8 +169,19 @@
// Generate Material Design Item and Item Divider Colors
// --------------------------------------------------
-@each $color-name, $color-base, $color-contrast in get-colors($colors-md) {
- .item-md-#{$color-name} {
+@each $color-name, $color-value in $colors-md {
+ $color-base: ion-color($colors-md, $color-name, base, md);
+ $color-contrast: ion-color($colors-md, $color-name, contrast, md);
+ $color-tint: ion-color($colors-md, $color-name, tint, md);
+
+ // If there is text with a color it should use this color
+ // and override whatever item sets it to
+ .item-md .text-md-#{$color-name} {
+ color: $color-base;
+ }
+
+ .item-md-#{$color-name},
+ .item-divider-md-#{$color-name} {
color: $color-contrast;
background-color: $color-base;
@@ -179,7 +190,7 @@
}
&.activated {
- background-color: color-shade($color-base);
+ background-color: $color-tint;
}
}
}
diff --git a/packages/core/src/components/item/item.md.vars.scss b/packages/core/src/components/item/item.md.vars.scss
index aaa597ea2c..75b5c3c561 100644
--- a/packages/core/src/components/item/item.md.vars.scss
+++ b/packages/core/src/components/item/item.md.vars.scss
@@ -4,7 +4,7 @@
// --------------------------------------------------
/// @prop - Color of the item paragraph
-$item-md-paragraph-text-color: #666 !default;
+$item-md-paragraph-text-color: $text-color-step-200 !default;
/// @prop - Font family of the item
$item-md-font-family: $font-family-md-base !default;
@@ -28,7 +28,7 @@ $item-md-thumbnail-height: $item-md-thumbnail-width !default;
$item-md-detail-push-show: false !default;
/// @prop - Color of the detail arrow icon
-$item-md-detail-push-color: $list-md-border-color !default;
+$item-md-detail-push-color: $item-md-text-color !default;
/// @prop - Icon for the detail arrow
$item-md-detail-push-svg: "" !default;
diff --git a/packages/core/src/components/label/label.ios.scss b/packages/core/src/components/label/label.ios.scss
index 6a8999bf47..f1ed43ba3d 100644
--- a/packages/core/src/components/label/label.ios.scss
+++ b/packages/core/src/components/label/label.ios.scss
@@ -8,6 +8,7 @@
@include margin($label-ios-margin-top, $label-ios-margin-end, $label-ios-margin-bottom, $label-ios-margin-start);
font-family: $label-ios-font-family;
+ color: $label-ios-text-color;
}
@@ -52,7 +53,8 @@
// Generate iOS Label colors
// --------------------------------------------------
-@each $color-name, $color-base, $color-contrast in get-colors($colors-ios) {
+@each $color-name, $color-value in $colors-ios {
+ $color-base: ion-color($colors-ios, $color-name, base, ios);
.label-ios-#{$color-name},
.item-input .label-ios-#{$color-name},
@@ -60,5 +62,4 @@
.item-datetime .label-ios-#{$color-name} {
color: $color-base;
}
-
}
diff --git a/packages/core/src/components/label/label.md.scss b/packages/core/src/components/label/label.md.scss
index b4386f4256..c584dd5191 100644
--- a/packages/core/src/components/label/label.md.scss
+++ b/packages/core/src/components/label/label.md.scss
@@ -8,6 +8,7 @@
@include margin($label-md-margin-top, $label-md-margin-end, $label-md-margin-bottom, $label-md-margin-start);
font-family: $label-md-font-family;
+ color: $label-md-text-color;
}
[text-wrap] .label-md {
@@ -59,7 +60,8 @@
// Generate Material Design Label colors
// --------------------------------------------------
-@each $color-name, $color-base, $color-contrast in get-colors($colors-md) {
+@each $color-name, $color-value in $colors-md {
+ $color-base: ion-color($colors-md, $color-name, base, md);
.label-md-#{$color-name},
.item-input .label-md-#{$color-name},
@@ -67,5 +69,4 @@
.item-datetime .label-md-#{$color-name} {
color: $color-base;
}
-
}
diff --git a/packages/core/src/components/label/label.md.vars.scss b/packages/core/src/components/label/label.md.vars.scss
index 1f342d3f97..a147901b62 100644
--- a/packages/core/src/components/label/label.md.vars.scss
+++ b/packages/core/src/components/label/label.md.vars.scss
@@ -9,10 +9,10 @@
$label-md-font-family: $font-family-md-base !default;
/// @prop - Text color of the label by an input, select, or datetime
-$label-md-text-color: #999 !default;
+$label-md-text-color: $text-md-color-step-300 !default;
/// @prop - Text color of the stacked/floating label when it is focused
-$label-md-text-color-focused: color($colors-md, primary) !default;
+$label-md-text-color-focused: ion-color($colors-md, primary, base, md) !default;
/// @prop - Margin top of the label
$label-md-margin-top: $item-md-padding-top !default;
diff --git a/packages/core/src/components/list-header/list-header.ios.scss b/packages/core/src/components/list-header/list-header.ios.scss
index 0dbfaf2856..df693db172 100644
--- a/packages/core/src/components/list-header/list-header.ios.scss
+++ b/packages/core/src/components/list-header/list-header.ios.scss
@@ -22,7 +22,10 @@
// Generate iOS List Header Colors
// --------------------------------------------------
-@each $color-name, $color-base, $color-contrast in get-colors($colors-ios) {
+@each $color-name, $color-value in $colors-ios {
+ $color-base: ion-color($colors-ios, $color-name, base, ios);
+ $color-contrast: ion-color($colors-ios, $color-name, contrast, ios);
+
.list-header-ios-#{$color-name} {
color: $color-contrast;
background-color: $color-base;
diff --git a/packages/core/src/components/list-header/list-header.ios.vars.scss b/packages/core/src/components/list-header/list-header.ios.vars.scss
index 3dd8fb3717..1465d021a2 100644
--- a/packages/core/src/components/list-header/list-header.ios.vars.scss
+++ b/packages/core/src/components/list-header/list-header.ios.vars.scss
@@ -9,7 +9,7 @@
$list-ios-header-padding-start: $item-ios-padding-start !default;
/// @prop - Border bottom of the header in a list
-$list-ios-header-border-bottom: $hairlines-width solid $list-ios-border-color !default;
+$list-ios-header-border-bottom: $hairlines-width solid $item-ios-border-color !default;
/// @prop - Font size of the header in a list
$list-ios-header-font-size: 12px !default;
@@ -24,7 +24,7 @@ $list-ios-header-letter-spacing: 1px !default;
$list-ios-header-text-transform: uppercase !default;
/// @prop - Text color of the header in a list
-$list-ios-header-color: #333 !default;
+$list-ios-header-color: $text-ios-color-step-100 !default;
/// @prop - Background color of the header in a list
$list-ios-header-background-color: transparent !default;
diff --git a/packages/core/src/components/list-header/list-header.md.scss b/packages/core/src/components/list-header/list-header.md.scss
index 74aced900c..a80da9fb52 100644
--- a/packages/core/src/components/list-header/list-header.md.scss
+++ b/packages/core/src/components/list-header/list-header.md.scss
@@ -19,7 +19,10 @@
// Generate Material Design List Header Colors
// --------------------------------------------------
-@each $color-name, $color-base, $color-contrast in get-colors($colors-md) {
+@each $color-name, $color-value in $colors-md {
+ $color-base: ion-color($colors-md, $color-name, base, md);
+ $color-contrast: ion-color($colors-md, $color-name, contrast, md);
+
.list-header-md-#{$color-name} {
color: $color-contrast;
background-color: $color-base;
diff --git a/packages/core/src/components/list-header/list-header.md.vars.scss b/packages/core/src/components/list-header/list-header.md.vars.scss
index 626cf0c36a..ff3fa2e4e6 100644
--- a/packages/core/src/components/list-header/list-header.md.vars.scss
+++ b/packages/core/src/components/list-header/list-header.md.vars.scss
@@ -15,10 +15,10 @@ $list-md-header-padding-start: $item-md-padding-start !default;
$list-md-header-min-height: 45px !default;
/// @prop - Border top of the header in a list
-$list-md-header-border-top: 1px solid $list-md-border-color !default;
+$list-md-header-border-top: 1px solid $item-md-border-color !default;
/// @prop - Font size of the header in a list
$list-md-header-font-size: 14px !default;
/// @prop - Text color of the header in a list
-$list-md-header-color: #757575 !default;
+$list-md-header-color: $text-md-color-step-200 !default;
diff --git a/packages/core/src/components/list/list.ios.scss b/packages/core/src/components/list/list.ios.scss
index cca4aa95c1..1d45d05808 100644
--- a/packages/core/src/components/list/list.ios.scss
+++ b/packages/core/src/components/list/list.ios.scss
@@ -9,12 +9,12 @@
}
.list-ios > .item-block:first-child {
- border-top: $hairlines-width solid $list-ios-border-color;
+ border-top: $hairlines-width solid $item-ios-border-color;
}
.list-ios > .item-block:last-child,
.list-ios > .item-wrapper:last-child .item-block {
- border-bottom: $hairlines-width solid $list-ios-border-color;
+ border-bottom: $hairlines-width solid $item-ios-border-color;
}
.list-ios > .item-block:last-child .item-inner,
@@ -23,7 +23,7 @@
}
.list-ios .item-block .item-inner {
- border-bottom: $hairlines-width solid $list-ios-border-color;
+ border-bottom: $hairlines-width solid $item-ios-border-color;
}
// If the item has the no-lines attribute remove the bottom border from:
@@ -49,11 +49,11 @@
}
.list-ios[inset] ion-list-header {
- background-color: $list-ios-background-color;
+ background-color: $item-ios-background-color;
}
.list-ios[inset] .item {
- border-bottom: 1px solid $list-ios-border-color;
+ border-bottom: 1px solid $item-ios-border-color;
}
.list-ios[inset] .item-inner {
diff --git a/packages/core/src/components/list/list.md.scss b/packages/core/src/components/list/list.md.scss
index a439f2be81..2b4d114c30 100644
--- a/packages/core/src/components/list/list.md.scss
+++ b/packages/core/src/components/list/list.md.scss
@@ -9,7 +9,7 @@
}
.list-md .item-block .item-inner {
- border-bottom: 1px solid $list-md-border-color;
+ border-bottom: 1px solid $item-md-border-color;
}
.list-md > .item-block:last-child,
@@ -66,7 +66,7 @@
}
.list-md[inset] ion-list-header {
- background-color: $list-md-background-color;
+ background-color: $item-md-background-color;
}
@@ -83,5 +83,5 @@
// --------------------------------------------------
.list-md .item-input:last-child {
- border-bottom: 1px solid $list-md-border-color;
+ border-bottom: 1px solid $item-md-border-color;
}
diff --git a/packages/core/src/components/loading/loading.ios.scss b/packages/core/src/components/loading/loading.ios.scss
index e666ed0139..b9e345ffe0 100644
--- a/packages/core/src/components/loading/loading.ios.scss
+++ b/packages/core/src/components/loading/loading.ios.scss
@@ -1,6 +1,10 @@
@import "./loading";
@import "./loading.ios.vars";
+.loading-backdrop-ios {
+ background-color: $loading-backdrop-ios-color;
+}
+
// iOS Loading Indicator
// --------------------------------------------------
@@ -13,7 +17,7 @@
max-height: $loading-ios-max-height;
color: $loading-ios-text-color;
- background: $loading-ios-background;
+ background-color: $loading-ios-background-color;
}
@@ -21,7 +25,7 @@
// -----------------------------------------
.loading-translucent-ios .loading-wrapper {
- background: rgba($loading-ios-background, $loading-ios-translucent-opacity);
+ background-color: $loading-ios-translucent-background-color;
backdrop-filter: $loading-ios-translucent-filter;
-webkit-backdrop-filter: $loading-ios-translucent-filter;
diff --git a/packages/core/src/components/loading/loading.ios.vars.scss b/packages/core/src/components/loading/loading.ios.vars.scss
index dda6a6a83e..cc9e237e60 100644
--- a/packages/core/src/components/loading/loading.ios.vars.scss
+++ b/packages/core/src/components/loading/loading.ios.vars.scss
@@ -3,56 +3,59 @@
// iOS Loading Indicator
// --------------------------------------------------
+/// @prop - Color of backdrop
+$loading-backdrop-ios-color: $backdrop-ios-color !default;
+
/// @prop - Padding top of the loading wrapper
-$loading-ios-padding-top: 24px !default;
+$loading-ios-padding-top: 24px !default;
/// @prop - Padding end of the loading wrapper
-$loading-ios-padding-end: 34px !default;
+$loading-ios-padding-end: 34px !default;
/// @prop - Padding bottom of the loading wrapper
-$loading-ios-padding-bottom: $loading-ios-padding-top !default;
+$loading-ios-padding-bottom: $loading-ios-padding-top !default;
/// @prop - Padding start of the loading wrapper
-$loading-ios-padding-start: $loading-ios-padding-end !default;
+$loading-ios-padding-start: $loading-ios-padding-end !default;
/// @prop - Max width of the loading wrapper
-$loading-ios-max-width: 270px !default;
+$loading-ios-max-width: 270px !default;
/// @prop - Maximum height of the loading wrapper
-$loading-ios-max-height: 90% !default;
+$loading-ios-max-height: 90% !default;
/// @prop - Border radius of the loading wrapper
-$loading-ios-border-radius: 8px !default;
+$loading-ios-border-radius: 8px !default;
/// @prop - Text color of the loading wrapper
-$loading-ios-text-color: #000 !default;
+$loading-ios-text-color: $text-ios-color !default;
/// @prop - Background of the loading wrapper
-$loading-ios-background: #f8f8f8 !default;
+$loading-ios-background-color: $background-ios-color-step-100 !default;
+
+/// @prop - Background of the loading wrapper
+$loading-ios-translucent-background-color: ion-color-alpha($background-ios-color-value, background-ios-color, $alpha-ios-high) !default;
/// @prop - Font weight of the loading content
-$loading-ios-content-font-weight: bold !default;
+$loading-ios-content-font-weight: bold !default;
/// @prop - Color of the loading spinner
-$loading-ios-spinner-color: #69717d !default;
+$loading-ios-spinner-color: $text-ios-color-step-200 !default;
/// @prop - Color of the ios loading spinner
-$loading-ios-spinner-ios-color: $loading-ios-spinner-color !default;
+$loading-ios-spinner-ios-color: $loading-ios-spinner-color !default;
/// @prop - Color of the bubbles loading spinner
-$loading-ios-spinner-bubbles-color: $loading-ios-spinner-color !default;
+$loading-ios-spinner-bubbles-color: $loading-ios-spinner-color !default;
/// @prop - Color of the circles loading spinner
-$loading-ios-spinner-circles-color: $loading-ios-spinner-color !default;
+$loading-ios-spinner-circles-color: $loading-ios-spinner-color !default;
/// @prop - Color of the crescent loading spinner
-$loading-ios-spinner-crescent-color: $loading-ios-spinner-color !default;
+$loading-ios-spinner-crescent-color: $loading-ios-spinner-color !default;
/// @prop - Color of the dots loading spinner
-$loading-ios-spinner-dots-color: $loading-ios-spinner-color !default;
+$loading-ios-spinner-dots-color: $loading-ios-spinner-color !default;
/// @prop - Filter of the translucent loading
-$loading-ios-translucent-filter: saturate(180%) blur(20px) !default;
-
-/// @prop - Opacity of the translucent loading
-$loading-ios-translucent-opacity: .88 !default;
+$loading-ios-translucent-filter: saturate(180%) blur(20px) !default;
diff --git a/packages/core/src/components/loading/loading.md.scss b/packages/core/src/components/loading/loading.md.scss
index 23451b4296..07a85ca0bb 100644
--- a/packages/core/src/components/loading/loading.md.scss
+++ b/packages/core/src/components/loading/loading.md.scss
@@ -1,6 +1,10 @@
@import "./loading";
@import "./loading.md.vars";
+.loading-backdrop-ios {
+ background-color: $loading-backdrop-md-color;
+}
+
// Material Design Loading Indicator
// --------------------------------------------------
diff --git a/packages/core/src/components/loading/loading.md.vars.scss b/packages/core/src/components/loading/loading.md.vars.scss
index 089f89af82..c83cc50239 100644
--- a/packages/core/src/components/loading/loading.md.vars.scss
+++ b/packages/core/src/components/loading/loading.md.vars.scss
@@ -3,6 +3,9 @@
// Material Design Loading Indicator
// --------------------------------------------------
+/// @prop - Color of backdrop
+$loading-backdrop-md-color: $backdrop-md-color !default;
+
/// @prop - Padding top of the loading wrapper
$loading-md-padding-top: 24px !default;
@@ -25,10 +28,10 @@ $loading-md-max-height: 90% !default;
$loading-md-border-radius: 2px !default;
/// @prop - Text color of the loading wrapper
-$loading-md-text-color: rgba(0, 0, 0, .5) !default;
+$loading-md-text-color: $text-color-step-100 !default;
/// @prop - Background of the loading wrapper
-$loading-md-background: #fafafa !default;
+$loading-md-background: $background-color-step-100 !default;
/// @prop - Box shadow color of the loading wrapper
$loading-md-box-shadow-color: rgba(0, 0, 0, .4) !default;
@@ -37,7 +40,7 @@ $loading-md-box-shadow-color: rgba(0, 0, 0, .4) !default;
$loading-md-box-shadow: 0 16px 20px $loading-md-box-shadow-color !default;
/// @prop - Color of the loading spinner
-$loading-md-spinner-color: color($colors-md, primary) !default;
+$loading-md-spinner-color: ion-color($colors-md, primary, base, md) !default;
/// @prop - Color of the ios loading spinner
$loading-md-spinner-ios-color: $loading-md-spinner-color !default;
diff --git a/packages/core/src/components/loading/loading.scss b/packages/core/src/components/loading/loading.scss
index 62687f357e..d780d9f21a 100644
--- a/packages/core/src/components/loading/loading.scss
+++ b/packages/core/src/components/loading/loading.scss
@@ -41,7 +41,6 @@ ion-loading-controller {
width: 100%;
height: 100%;
- background-color: $loading-backdrop-color;
opacity: .01;
transform: translateZ(0);
}
diff --git a/packages/core/src/components/loading/loading.tsx b/packages/core/src/components/loading/loading.tsx
index 39b4dc8a52..1b74bbcb8b 100644
--- a/packages/core/src/components/loading/loading.tsx
+++ b/packages/core/src/components/loading/loading.tsx
@@ -234,6 +234,14 @@ export class Loading {
}
render() {
+ const themedClasses = createThemedClasses(this.mode, this.color, 'loading-backdrop');
+
+ if (this.cssClass) {
+ this.cssClass.split(' ').forEach(cssClass => {
+ if (cssClass.trim() !== '') this.el.classList.add(cssClass);
+ });
+ }
+
const loadingInner: any[] = [];
if (this.spinner !== 'hide') {
@@ -257,7 +265,7 @@ export class Loading {
attachTo='parent'
autoBlockAll
class={{
- 'loading-backdrop': true,
+ ...themedClasses,
'hide-backdrop': !this.showBackdrop
}}
>,
diff --git a/packages/core/src/components/loading/loading.vars.scss b/packages/core/src/components/loading/loading.vars.scss
index fd12d32ad1..e21c162d17 100644
--- a/packages/core/src/components/loading/loading.vars.scss
+++ b/packages/core/src/components/loading/loading.vars.scss
@@ -1,7 +1 @@
@import "../../themes/ionic.globals";
-
-// Loading
-// --------------------------------------------------
-
-/// @prop - Color of the loading backdrop
-$loading-backdrop-color: #000 !default;
diff --git a/packages/core/src/components/modal/modal.ios.scss b/packages/core/src/components/modal/modal.ios.scss
index 3222fec1c1..fc61b3901e 100644
--- a/packages/core/src/components/modal/modal.ios.scss
+++ b/packages/core/src/components/modal/modal.ios.scss
@@ -1,6 +1,10 @@
@import "./modal";
@import "./modal.ios.vars";
+.modal-backdrop-ios {
+ background-color: $modal-backdrop-ios-color;
+}
+
// iOS Modals
// --------------------------------------------------
diff --git a/packages/core/src/components/modal/modal.ios.vars.scss b/packages/core/src/components/modal/modal.ios.vars.scss
index b6dcd56489..80566f10f1 100644
--- a/packages/core/src/components/modal/modal.ios.vars.scss
+++ b/packages/core/src/components/modal/modal.ios.vars.scss
@@ -3,6 +3,9 @@
// iOS Modals
// --------------------------------------------------
+/// @prop - Color of backdrop
+$modal-backdrop-ios-color: $backdrop-ios-color !default;
+
/// @prop - Background color for the modal
$modal-ios-background-color: $background-ios-color !default;
diff --git a/packages/core/src/components/modal/modal.md.scss b/packages/core/src/components/modal/modal.md.scss
index e041129c3b..0230c203d2 100644
--- a/packages/core/src/components/modal/modal.md.scss
+++ b/packages/core/src/components/modal/modal.md.scss
@@ -1,6 +1,10 @@
@import "./modal";
@import "./modal.md.vars";
+.modal-backdrop-md {
+ background-color: $modal-backdrop-md-color;
+}
+
// Material Design Modals
// --------------------------------------------------
diff --git a/packages/core/src/components/modal/modal.md.vars.scss b/packages/core/src/components/modal/modal.md.vars.scss
index 4791342a96..c5152dfd9e 100644
--- a/packages/core/src/components/modal/modal.md.vars.scss
+++ b/packages/core/src/components/modal/modal.md.vars.scss
@@ -3,6 +3,9 @@
// Material Design Modals
// --------------------------------------------------
+/// @prop - Color of backdrop
+$modal-backdrop-md-color: $backdrop-md-color !default;
+
/// @prop - Background color for the modal
$modal-md-background-color: $background-md-color !default;
diff --git a/packages/core/src/components/modal/modal.scss b/packages/core/src/components/modal/modal.scss
index ca6d30b2b5..657099a15c 100644
--- a/packages/core/src/components/modal/modal.scss
+++ b/packages/core/src/components/modal/modal.scss
@@ -31,7 +31,6 @@ ion-modal-controller {
width: 100%;
height: 100%;
- background-color: $modal-backdrop-color;
opacity: .01;
transform: translateZ(0);
diff --git a/packages/core/src/components/modal/modal.tsx b/packages/core/src/components/modal/modal.tsx
index 2a5587da38..d0fb95f3fb 100644
--- a/packages/core/src/components/modal/modal.tsx
+++ b/packages/core/src/components/modal/modal.tsx
@@ -208,12 +208,13 @@ export class Modal {
}
render() {
- const dialogClasses = createThemedClasses(this.mode, this.color, 'modal-wrapper');
+ const backdropClasses = createThemedClasses(this.mode, this.color, 'modal-backdrop'),
+ dialogClasses = createThemedClasses(this.mode, this.color, 'modal-wrapper');
return [
,
diff --git a/packages/core/src/components/modal/modal.vars.scss b/packages/core/src/components/modal/modal.vars.scss
index 38b32223ac..0798d6d15f 100644
--- a/packages/core/src/components/modal/modal.vars.scss
+++ b/packages/core/src/components/modal/modal.vars.scss
@@ -20,6 +20,3 @@ $modal-inset-height-small: 500px !default;
/// @prop - Height of the large modal inset
$modal-inset-height-large: 600px !default;
-
-/// @prop - Color of the modal backdrop
-$modal-backdrop-color: #000 !default;
diff --git a/packages/core/src/components/note/note.ios.scss b/packages/core/src/components/note/note.ios.scss
index 87d71ffc7a..f0d18f62e2 100644
--- a/packages/core/src/components/note/note.ios.scss
+++ b/packages/core/src/components/note/note.ios.scss
@@ -13,10 +13,10 @@
// Generate iOS Note Colors
// --------------------------------------------------
-@each $color-name, $color-base, $color-contrast in get-colors($colors-ios) {
+@each $color-name, $color-value in $colors-ios {
+ $color-base: ion-color($colors-ios, $color-name, base, ios);
.note-ios-#{$color-name} {
color: $color-base;
}
-
}
diff --git a/packages/core/src/components/note/note.ios.vars.scss b/packages/core/src/components/note/note.ios.vars.scss
index e45695ef90..cc5c22e8bd 100644
--- a/packages/core/src/components/note/note.ios.vars.scss
+++ b/packages/core/src/components/note/note.ios.vars.scss
@@ -7,4 +7,4 @@
$note-ios-font-family: $font-family-ios-base !default;
/// @prop - Text color of the note
-$note-ios-color: darken($list-ios-border-color, 10%) !default;
+$note-ios-color: $text-ios-color-step-400 !default;
diff --git a/packages/core/src/components/note/note.md.scss b/packages/core/src/components/note/note.md.scss
index 1061b45e96..5a1432faf7 100644
--- a/packages/core/src/components/note/note.md.scss
+++ b/packages/core/src/components/note/note.md.scss
@@ -13,10 +13,10 @@
// Generate Material Design Note Colors
// --------------------------------------------------
-@each $color-name, $color-base, $color-contrast in get-colors($colors-md) {
+@each $color-name, $color-value in $colors-md {
+ $color-base: ion-color($colors-md, $color-name, base, md);
.note-md-#{$color-name} {
color: $color-base;
}
-
}
diff --git a/packages/core/src/components/note/note.md.vars.scss b/packages/core/src/components/note/note.md.vars.scss
index 4537ce4576..57ed95b0dc 100644
--- a/packages/core/src/components/note/note.md.vars.scss
+++ b/packages/core/src/components/note/note.md.vars.scss
@@ -7,4 +7,4 @@
$note-md-font-family: $font-family-md-base !default;
/// @prop - Text color of the note
-$note-md-color: darken($list-md-border-color, 10%) !default;
+$note-md-color: $text-md-color-step-400 !default;
diff --git a/packages/core/src/components/picker/picker.ios.scss b/packages/core/src/components/picker/picker.ios.scss
index 709ff2a719..4b1f8eea68 100644
--- a/packages/core/src/components/picker/picker.ios.scss
+++ b/packages/core/src/components/picker/picker.ios.scss
@@ -118,8 +118,8 @@
border-bottom: 1px solid $picker-ios-border-color;
background: linear-gradient(to bottom,
- rgba($picker-ios-background-color, 1) 20%,
- rgba($picker-ios-background-color, .7) 100%);
+ $picker-ios-top-background-color 20%,
+ $picker-ios-bottom-background-color 100%);
}
.picker-ios .picker-below-highlight {
@@ -137,6 +137,6 @@
border-top: 1px solid $picker-ios-border-color;
background: linear-gradient(to top,
- rgba($picker-ios-background-color, 1) 30%,
- rgba($picker-ios-background-color, .7) 100%);
+ $picker-ios-top-background-color 30%,
+ $picker-ios-bottom-background-color 100%);
}
diff --git a/packages/core/src/components/picker/picker.ios.vars.scss b/packages/core/src/components/picker/picker.ios.vars.scss
index 13df274593..486a391ef5 100644
--- a/packages/core/src/components/picker/picker.ios.vars.scss
+++ b/packages/core/src/components/picker/picker.ios.vars.scss
@@ -4,85 +4,91 @@
// --------------------------------------------------
/// @prop - Font family of the picker
-$picker-ios-font-family: $font-family-ios-base !default;
+$picker-ios-font-family: $font-family-ios-base !default;
/// @prop - Height of the picker wrapper
-$picker-ios-height: 260px !default;
+$picker-ios-height: 260px !default;
/// @prop - Border color of the picker wrapper
-$picker-ios-border-color: $list-ios-border-color !default;
+$picker-ios-border-color: $item-ios-border-color !default;
-/// @prop - Background of the picker wrapper
-$picker-ios-background-color: $list-ios-background-color !default;
+/// @prop - Background Color of the picker wrapper
+$picker-ios-background-color: $background-ios-color !default;
+
+/// @prop - Top Background Color of the picker wrapper gradient
+$picker-ios-top-background-color: $picker-ios-background-color !default;
+
+/// @prop - Bottom Background Color of the picker wrapper gradient
+$picker-ios-bottom-background-color: ion-color-alpha($background-ios-color-value, background-ios-color, $alpha-ios-high) !default;
/// @prop - Height of the picker toolbar
-$picker-ios-toolbar-height: 44px !default;
+$picker-ios-toolbar-height: 44px !default;
/// @prop - Background color of the picker toolbar
-$picker-ios-toolbar-background-color: $picker-ios-background-color !default;
+$picker-ios-toolbar-background-color: $picker-ios-top-background-color !default;
/// @prop - Height of the picker button
-$picker-ios-button-height: $picker-ios-toolbar-height !default;
+$picker-ios-button-height: $picker-ios-toolbar-height !default;
/// @prop - Text color of the picker button
-$picker-ios-button-text-color: color($colors-ios, primary) !default;
+$picker-ios-button-text-color: ion-color($colors-ios, primary, base, ios) !default;
/// @prop - Background of the picker button
-$picker-ios-button-background-color: transparent !default;
+$picker-ios-button-background-color: transparent !default;
/// @prop - Font size of the picker button
-$picker-ios-button-font-size: 16px !default;
+$picker-ios-button-font-size: 16px !default;
/// @prop - Padding top of the picker button
-$picker-ios-button-padding-top: 0 !default;
+$picker-ios-button-padding-top: 0 !default;
/// @prop - Padding end of the picker button
-$picker-ios-button-padding-end: 1em !default;
+$picker-ios-button-padding-end: 1em !default;
/// @prop - Padding bottom of the picker button
-$picker-ios-button-padding-bottom: $picker-ios-button-padding-top !default;
+$picker-ios-button-padding-bottom: $picker-ios-button-padding-top !default;
/// @prop - Padding start of the picker button
-$picker-ios-button-padding-start: $picker-ios-button-padding-end !default;
+$picker-ios-button-padding-start: $picker-ios-button-padding-end !default;
/// @prop - Font weight of the strong picker button
-$picker-ios-button-strong-font-weight: 600 !default;
+$picker-ios-button-strong-font-weight: 600 !default;
/// @prop - Padding top of the picker column
-$picker-ios-column-padding-top: 0 !default;
+$picker-ios-column-padding-top: 0 !default;
/// @prop - Padding end of the picker column
-$picker-ios-column-padding-end: 4px !default;
+$picker-ios-column-padding-end: 4px !default;
/// @prop - Padding bottom of the picker column
-$picker-ios-column-padding-bottom: $picker-ios-column-padding-top !default;
+$picker-ios-column-padding-bottom: $picker-ios-column-padding-top !default;
/// @prop - Padding start of the picker column
-$picker-ios-column-padding-start: $picker-ios-column-padding-end !default;
+$picker-ios-column-padding-start: $picker-ios-column-padding-end !default;
/// @prop - Perspective of the picker column
-$picker-ios-column-perspective: 1000px !default;
+$picker-ios-column-perspective: 1000px !default;
/// @prop - Padding top of the picker option
-$picker-ios-option-padding-top: 0 !default;
+$picker-ios-option-padding-top: 0 !default;
/// @prop - Padding end of the picker option
-$picker-ios-option-padding-end: $picker-ios-option-padding-top !default;
+$picker-ios-option-padding-end: $picker-ios-option-padding-top !default;
/// @prop - Padding bottom of the picker option
-$picker-ios-option-padding-bottom: $picker-ios-option-padding-top !default;
+$picker-ios-option-padding-bottom: $picker-ios-option-padding-top !default;
/// @prop - Padding start of the picker option
-$picker-ios-option-padding-start: $picker-ios-option-padding-end !default;
+$picker-ios-option-padding-start: $picker-ios-option-padding-end !default;
/// @prop - Text color of the picker option
-$picker-ios-option-text-color: $list-ios-text-color !default;
+$picker-ios-option-text-color: $item-ios-text-color !default;
/// @prop - Font size of the picker option
-$picker-ios-option-font-size: 20px !default;
+$picker-ios-option-font-size: 20px !default;
/// @prop - Height of the picker option
-$picker-ios-option-height: 42px !default;
+$picker-ios-option-height: 42px !default;
/// @prop - Offset y of the picker option
-$picker-ios-option-offset-y: (($picker-ios-height - $picker-ios-toolbar-height) / 2) - ($picker-ios-option-height / 2) - 10 !default;
+$picker-ios-option-offset-y: (($picker-ios-height - $picker-ios-toolbar-height) / 2) - ($picker-ios-option-height / 2) - 10 !default;
diff --git a/packages/core/src/components/picker/picker.md.scss b/packages/core/src/components/picker/picker.md.scss
index 142c0ad285..f92d6b450f 100644
--- a/packages/core/src/components/picker/picker.md.scss
+++ b/packages/core/src/components/picker/picker.md.scss
@@ -107,8 +107,8 @@
border-bottom: 1px solid $picker-md-border-color;
background: linear-gradient(to bottom,
- rgba($picker-md-background-color, 1) 20%,
- rgba($picker-md-background-color, .7) 100%);
+ $picker-md-top-background-color 20%,
+ $picker-md-bottom-background-color 100%);
}
.picker-md .picker-below-highlight {
@@ -124,6 +124,6 @@
border-top: 1px solid $picker-md-border-color;
background: linear-gradient(to top,
- rgba($picker-md-background-color, 1) 30%,
- rgba($picker-md-background-color, .7) 100%);
+ $picker-md-top-background-color 30%,
+ $picker-md-bottom-background-color 100%);
}
diff --git a/packages/core/src/components/picker/picker.md.vars.scss b/packages/core/src/components/picker/picker.md.vars.scss
index 230db0e057..cf0ad8e3d7 100644
--- a/packages/core/src/components/picker/picker.md.vars.scss
+++ b/packages/core/src/components/picker/picker.md.vars.scss
@@ -4,70 +4,76 @@
// --------------------------------------------------
/// @prop - Font family of the picker
-$picker-md-font-family: $font-family-md-base !default;
+$picker-md-font-family: $font-family-md-base !default;
/// @prop - Height of the picker wrapper
-$picker-md-height: 260px !default;
+$picker-md-height: 260px !default;
/// @prop - Border color of the picker wrapper
-$picker-md-border-color: $list-md-border-color !default;
+$picker-md-border-color: $item-md-border-color !default;
-/// @prop - Background of the picker wrapper
-$picker-md-background-color: $list-md-background-color !default;
+/// @prop - Background Color of the picker wrapper
+$picker-md-background-color: $background-md-color !default;
+
+/// @prop - Top Background Color of the picker wrapper gradient
+$picker-md-top-background-color: $picker-md-background-color !default;
+
+/// @prop - Bottom Background Color of the picker wrapper gradient
+$picker-md-bottom-background-color: ion-color-alpha($background-md-color-value, background-md-color, $alpha-md-high) !default;
/// @prop - Height of the picker toolbar
-$picker-md-toolbar-height: 44px !default;
+$picker-md-toolbar-height: 44px !default;
/// @prop - Background of the picker toolbar
-$picker-md-toolbar-background-color: $picker-md-background-color !default;
+$picker-md-toolbar-background-color: $picker-md-top-background-color !default;
/// @prop - Height of the picker button
-$picker-md-button-height: $picker-md-toolbar-height !default;
+$picker-md-button-height: $picker-md-toolbar-height !default;
/// @prop - Text color of the picker button
-$picker-md-button-text-color: color($colors-md, primary) !default;
+$picker-md-button-text-color: ion-color($colors-md, primary, base, md) !default;
/// @prop - Background of the picker button
-$picker-md-button-background-color: transparent !default;
+$picker-md-button-background-color: transparent !default;
/// @prop - Font size of the picker button
-$picker-md-button-font-size: 14px !default;
+$picker-md-button-font-size: 14px !default;
/// @prop - Padding top of the picker column
-$picker-md-column-padding-top: 0 !default;
+$picker-md-column-padding-top: 0 !default;
/// @prop - Padding end of the picker column
-$picker-md-column-padding-end: 8px !default;
+$picker-md-column-padding-end: 8px !default;
/// @prop - Padding bottom of the picker column
-$picker-md-column-padding-bottom: $picker-md-column-padding-top !default;
+$picker-md-column-padding-bottom: $picker-md-column-padding-top !default;
/// @prop - Padding start of the picker column
-$picker-md-column-padding-start: $picker-md-column-padding-end !default;
+$picker-md-column-padding-start: $picker-md-column-padding-end !default;
/// @prop - Padding top of the picker option
-$picker-md-option-padding-top: 0 !default;
+$picker-md-option-padding-top: 0 !default;
/// @prop - Padding end of the picker option
-$picker-md-option-padding-end: $picker-md-option-padding-top !default;
+$picker-md-option-padding-end: $picker-md-option-padding-top !default;
/// @prop - Padding bottom of the picker option
-$picker-md-option-padding-bottom: $picker-md-option-padding-top !default;
+$picker-md-option-padding-bottom: $picker-md-option-padding-top !default;
/// @prop - Padding start of the picker option
-$picker-md-option-padding-start: $picker-md-option-padding-end !default;
+$picker-md-option-padding-start: $picker-md-option-padding-end !default;
/// @prop - Text color of the picker option
-$picker-md-option-text-color: $list-md-text-color !default;
+$picker-md-option-text-color: $item-md-text-color !default;
/// @prop - Font size of the picker option
-$picker-md-option-font-size: 22px !default;
+$picker-md-option-font-size: 22px !default;
/// @prop - Height of the picker option
-$picker-md-option-height: 42px !default;
+$picker-md-option-height: 42px !default;
/// @prop - Offset y of the picker option
-$picker-md-option-offset-y: (($picker-md-height - $picker-md-toolbar-height) / 2) - ($picker-md-option-height / 2) - 10 !default;
+$picker-md-option-offset-y: (($picker-md-height - $picker-md-toolbar-height) / 2) - ($picker-md-option-height / 2) - 10 !default;
/// @prop - Text color of the selected picker option
-$picker-md-option-selected-color: color($colors-md, primary) !default;
+$picker-md-option-selected-color: ion-color($colors-md, primary, base, md) !default;
diff --git a/packages/core/src/components/popover/popover.ios.scss b/packages/core/src/components/popover/popover.ios.scss
index 237383112e..3acf0b6f1a 100644
--- a/packages/core/src/components/popover/popover.ios.scss
+++ b/packages/core/src/components/popover/popover.ios.scss
@@ -1,6 +1,10 @@
@import "./popover";
@import "./popover.ios.vars";
+.popover-backdrop-ios {
+ background-color: $popover-backdrop-ios-color;
+}
+
// iOS Popover
// --------------------------------------------------
@@ -13,7 +17,7 @@
max-height: $popover-ios-max-height;
color: $popover-ios-text-color;
- background: $popover-ios-background;
+ background-color: $popover-ios-background-color;
}
@@ -41,7 +45,7 @@
width: 14px;
height: 14px;
- background-color: $popover-ios-arrow-background;
+ background-color: $popover-ios-arrow-background-color;
content: "";
transform: rotate(45deg);
}
@@ -60,7 +64,7 @@
.popover-translucent-ios .popover-content,
.popover-translucent-ios .popover-arrow::after {
- background: rgba($popover-ios-background, $popover-ios-translucent-opacity);
+ background: $popover-ios-translucent-background-color;
-webkit-backdrop-filter: $popover-ios-translucent-filter;
backdrop-filter: $popover-ios-translucent-filter;
diff --git a/packages/core/src/components/popover/popover.ios.vars.scss b/packages/core/src/components/popover/popover.ios.vars.scss
index b87ef85fc4..a505397af3 100644
--- a/packages/core/src/components/popover/popover.ios.vars.scss
+++ b/packages/core/src/components/popover/popover.ios.vars.scss
@@ -1,34 +1,37 @@
@import "../../themes/ionic.globals.ios";
+/// @prop - Color of backdrop
+$popover-backdrop-ios-color: $backdrop-ios-color !default;
+
// iOS Popover
// --------------------------------------------------
/// @prop - Width of the popover content
-$popover-ios-width: 200px !default;
+$popover-ios-width: 200px !default;
/// @prop - Min width of the popover content
-$popover-ios-min-width: 0 !default;
+$popover-ios-min-width: 0 !default;
/// @prop - Minimum height of the popover content
-$popover-ios-min-height: 0 !default;
+$popover-ios-min-height: 0 !default;
/// @prop - Maximum height of the popover content
-$popover-ios-max-height: 90% !default;
+$popover-ios-max-height: 90% !default;
/// @prop - Border radius of the popover content
-$popover-ios-border-radius: 10px !default;
+$popover-ios-border-radius: 10px !default;
/// @prop - Text color of the popover content
-$popover-ios-text-color: $text-ios-color !default;
+$popover-ios-text-color: $text-ios-color !default;
/// @prop - Background of the popover content
-$popover-ios-background: $background-ios-color !default;
+$popover-ios-background-color: $background-ios-color !default;
+
+/// @prop - Background of the popover content
+$popover-ios-translucent-background-color: $background-ios-color !default;
/// @prop - Background of the popover arrow
-$popover-ios-arrow-background: $popover-ios-background !default;
+$popover-ios-arrow-background-color: $popover-ios-background-color !default;
/// @prop - Filter of the translucent popover
-$popover-ios-translucent-filter: saturate(180%) blur(20px) !default;
-
-/// @prop - Opacity of the translucent popover
-$popover-ios-translucent-opacity: .88 !default;
+$popover-ios-translucent-filter: saturate(180%) blur(20px) !default;
diff --git a/packages/core/src/components/popover/popover.md.scss b/packages/core/src/components/popover/popover.md.scss
index 5c3623d15d..e2681579d0 100644
--- a/packages/core/src/components/popover/popover.md.scss
+++ b/packages/core/src/components/popover/popover.md.scss
@@ -1,6 +1,10 @@
@import "./popover";
@import "./popover.md.vars";
+.popover-backdrop-md {
+ background-color: $popover-backdrop-md-color;
+}
+
// Material Design Popover
// --------------------------------------------------
diff --git a/packages/core/src/components/popover/popover.md.vars.scss b/packages/core/src/components/popover/popover.md.vars.scss
index 44318754c6..5258b881e5 100644
--- a/packages/core/src/components/popover/popover.md.vars.scss
+++ b/packages/core/src/components/popover/popover.md.vars.scss
@@ -1,5 +1,8 @@
@import "../../themes/ionic.globals.md";
+/// @prop - Color of backdrop
+$popover-backdrop-md-color: $backdrop-md-color !default;
+
// Material Design Popover
// --------------------------------------------------
diff --git a/packages/core/src/components/popover/popover.scss b/packages/core/src/components/popover/popover.scss
index 2c7ab44a37..971ab70605 100644
--- a/packages/core/src/components/popover/popover.scss
+++ b/packages/core/src/components/popover/popover.scss
@@ -61,7 +61,6 @@ ion-popover-controller {
width: 100%;
height: 100%;
- background-color: $popover-backdrop-color;
opacity: .01;
transform: translateZ(0);
}
diff --git a/packages/core/src/components/popover/popover.tsx b/packages/core/src/components/popover/popover.tsx
index f3bda6d96b..0bdbf37812 100644
--- a/packages/core/src/components/popover/popover.tsx
+++ b/packages/core/src/components/popover/popover.tsx
@@ -216,12 +216,15 @@ export class Popover {
}
render() {
- const wrapperClasses = createThemedClasses(this.mode, this.color, 'popover-wrapper');
+ const backdropClasses = createThemedClasses(this.mode, this.color, 'popover-backdrop'),
+ wrapperClasses = createThemedClasses(this.mode, this.color, 'popover-wrapper');
return [
,
diff --git a/packages/core/src/components/popover/popover.vars.scss b/packages/core/src/components/popover/popover.vars.scss
index ef72cfe9a1..e21c162d17 100644
--- a/packages/core/src/components/popover/popover.vars.scss
+++ b/packages/core/src/components/popover/popover.vars.scss
@@ -1,7 +1 @@
@import "../../themes/ionic.globals";
-
-// Popover
-// --------------------------------------------------
-
-/// @prop - Color of the popover backdrop
-$popover-backdrop-color: #000 !default;
diff --git a/packages/core/src/components/radio/radio.ios.scss b/packages/core/src/components/radio/radio.ios.scss
index bb09bade06..0be38776f3 100644
--- a/packages/core/src/components/radio/radio.ios.scss
+++ b/packages/core/src/components/radio/radio.ios.scss
@@ -61,11 +61,11 @@
width: 36px;
height: 36px;
- background: #86a8df;
+ background: $radio-ios-background-color-focused;
content: "";
- opacity: .3;
+ opacity: .2;
}
@@ -99,7 +99,8 @@
// iOS Radio Color Mixin
// --------------------------------------------------
-@mixin radio-theme-ios($color-name, $color-base) {
+@mixin radio-theme-ios($color-name) {
+ $color-base: ion-color($colors-ios, $color-name, base, ios);
.item-radio-ios-#{$color-name}.item-radio-checked ion-label {
color: $color-base;
@@ -112,13 +113,12 @@
.radio-ios-#{$color-name} .radio-checked .radio-inner {
border-color: $color-base;
}
-
}
// Generate iOS Radio Colors
// --------------------------------------------------
-@each $color-name, $color-base, $color-contrast in get-colors($colors-ios) {
- @include radio-theme-ios($color-name, $color-base);
+@each $color-name, $color-value in $colors-ios {
+ @include radio-theme-ios($color-name);
}
diff --git a/packages/core/src/components/radio/radio.ios.vars.scss b/packages/core/src/components/radio/radio.ios.vars.scss
index c143f2c49e..39fb3fc225 100644
--- a/packages/core/src/components/radio/radio.ios.vars.scss
+++ b/packages/core/src/components/radio/radio.ios.vars.scss
@@ -6,7 +6,10 @@
// --------------------------------------------------
/// @prop - Color of the checked radio
-$radio-ios-color-on: color($colors-ios, primary) !default;
+$radio-ios-color-on: ion-color($colors-ios, primary, base, ios) !default;
+
+/// @prop - Background color of focus indicator for radio when focused
+$radio-ios-background-color-focused: ion-color($colors-ios, primary, tint, ios) !default;
/// @prop - Width of the radio icon
$radio-ios-icon-width: 16px !default;
diff --git a/packages/core/src/components/radio/radio.md.scss b/packages/core/src/components/radio/radio.md.scss
index 6953bd0fd2..0f4c539a25 100644
--- a/packages/core/src/components/radio/radio.md.scss
+++ b/packages/core/src/components/radio/radio.md.scss
@@ -83,11 +83,11 @@
width: 36px;
height: 36px;
- background: #86a8df;
+ background: $radio-md-background-color-focused;
content: "";
- opacity: .3;
+ opacity: .2;
}
@@ -121,7 +121,8 @@
// Material Design Radio Color Mixin
// --------------------------------------------------
-@mixin radio-theme-md($color-name, $color-base, $color-contrast) {
+@mixin radio-theme-md($color-name) {
+ $color-base: ion-color($colors-md, $color-name, base, md);
.item-radio-md-#{$color-name}.item-radio-checked ion-label {
color: $color-base;
@@ -134,13 +135,12 @@
.radio-md-#{$color-name} .radio-inner {
background-color: $color-base;
}
-
}
// Generate Material Design Radio Colors
// --------------------------------------------------
-@each $color-name, $color-base, $color-contrast in get-colors($colors-md) {
- @include radio-theme-md($color-name, $color-base, $color-contrast);
+@each $color-name, $color-value in $colors-md {
+ @include radio-theme-md($color-name);
}
diff --git a/packages/core/src/components/radio/radio.md.vars.scss b/packages/core/src/components/radio/radio.md.vars.scss
index 0372c76d57..d8fdf21c07 100644
--- a/packages/core/src/components/radio/radio.md.vars.scss
+++ b/packages/core/src/components/radio/radio.md.vars.scss
@@ -6,10 +6,13 @@
// --------------------------------------------------
/// @prop - Color of the checked radio
-$radio-md-color-on: color($colors-md, primary) !default;
+$radio-md-color-on: ion-color($colors-md, primary, base, md) !default;
+
+/// @prop - Background color of focus indicator for radio when focused
+$radio-md-background-color-focused: ion-color($colors-md, primary, tint, md) !default;
/// @prop - Color of the unchecked radio
-$radio-md-color-off: darken($list-md-border-color, 40%) !default;
+$radio-md-color-off: $text-md-color-step-300 !default;
/// @prop - Width of the radio icon
$radio-md-icon-width: 16px !default;
diff --git a/packages/core/src/components/range/range.ios.scss b/packages/core/src/components/range/range.ios.scss
index 776a11b013..2b1ce206c2 100644
--- a/packages/core/src/components/range/range.ios.scss
+++ b/packages/core/src/components/range/range.ios.scss
@@ -136,7 +136,8 @@
// Generate iOS Range Colors
// --------------------------------------------------
-@each $color-name, $color-base, $color-contrast in get-colors($colors-ios) {
+@each $color-name, $color-value in $colors-ios {
+ $color-base: ion-color($colors-ios, $color-name, base, ios);
.range-ios-#{$color-name} {
.range-bar-active,
@@ -144,5 +145,4 @@
background: $color-base;
}
}
-
}
diff --git a/packages/core/src/components/range/range.ios.vars.scss b/packages/core/src/components/range/range.ios.vars.scss
index ccd1a6522e..7d88af5ed1 100644
--- a/packages/core/src/components/range/range.ios.vars.scss
+++ b/packages/core/src/components/range/range.ios.vars.scss
@@ -25,10 +25,10 @@ $range-ios-hit-height: $range-ios-slider-height !default;
$range-ios-bar-height: 1px !default;
/// @prop - Background of the range bar
-$range-ios-bar-background-color: #bdbdbd !default;
+$range-ios-bar-background-color: $background-ios-color-step-200 !default;
/// @prop - Background of the active range bar
-$range-ios-bar-active-background-color: color($colors-ios, primary) !default;
+$range-ios-bar-active-background-color: ion-color($colors-ios, primary, base, ios) !default;
/// @prop - Width of the range knob
$range-ios-knob-width: 28px !default;
@@ -43,7 +43,7 @@ $range-ios-knob-box-shadow: 0 3px 1px rgba(0, 0, 0, .1), 0 4px
$range-ios-knob-border-radius: 50% !default;
/// @prop - Background of the range knob
-$range-ios-knob-background-color: #fff !default;
+$range-ios-knob-background-color: $background-ios-color !default;
/// @prop - Width of the range tick
$range-ios-tick-width: $range-ios-bar-height !default;
diff --git a/packages/core/src/components/range/range.md.scss b/packages/core/src/components/range/range.md.scss
index 0fcc27dcb4..726fdbb65f 100644
--- a/packages/core/src/components/range/range.md.scss
+++ b/packages/core/src/components/range/range.md.scss
@@ -168,7 +168,7 @@
.range-pin,
.range-pin::before {
- color: color-contrast($colors-md, $range-md-pin-min-background-color);
+ color: ion-color($colors-md, primary, contrast, md);
background: $range-md-pin-min-background-color;
}
}
@@ -186,14 +186,14 @@
background-color: $range-md-bar-background-color;
transform: scale(.55);
}
-
}
// Generate Material Design Range Colors
// --------------------------------------------------
-@each $color-name, $color-base, $color-contrast in get-colors($colors-md) {
+@each $color-name, $color-value in $colors-md {
+ $color-base: ion-color($colors-md, $color-name, base, md);
.range-md-#{$color-name} {
@include md-range-min();
@@ -205,5 +205,4 @@
background: $color-base;
}
}
-
}
diff --git a/packages/core/src/components/range/range.md.vars.scss b/packages/core/src/components/range/range.md.vars.scss
index 643741f3b2..d3c293fa29 100644
--- a/packages/core/src/components/range/range.md.vars.scss
+++ b/packages/core/src/components/range/range.md.vars.scss
@@ -25,10 +25,10 @@ $range-md-hit-height: $range-md-slider-height !default;
$range-md-bar-height: 2px !default;
/// @prop - Background of the range bar
-$range-md-bar-background-color: #bdbdbd !default;
+$range-md-bar-background-color: $background-md-color-step-300 !default;
/// @prop - Background of the active range bar
-$range-md-bar-active-background-color: color($colors-md, primary) !default;
+$range-md-bar-active-background-color: ion-color($colors-md, primary, base, md) !default;
/// @prop - Width of the range knob
$range-md-knob-width: 18px !default;
@@ -55,7 +55,7 @@ $range-md-tick-height: $range-md-tick-width !default;
$range-md-tick-border-radius: 50% !default;
/// @prop - Background of the range tick
-$range-md-tick-background-color: #000 !default;
+$range-md-tick-background-color: $background-md-color !default;
/// @prop - Background of the active range tick
$range-md-tick-active-background-color: $range-md-tick-background-color !default;
@@ -64,7 +64,7 @@ $range-md-tick-active-background-color: $range-md-tick-background-color !de
$range-md-pin-background-color: $range-md-bar-active-background-color !default;
/// @prop - Color of the range pin
-$range-md-pin-color: color-contrast($colors-md, $range-md-bar-active-background-color) !default;
+$range-md-pin-color: ion-color($colors-md, $range-md-bar-active-background-color, contrast, md) !default;
/// @prop - Font size of the range pin
$range-md-pin-font-size: 12px !default;
diff --git a/packages/core/src/components/refresher/refresher.ios.scss b/packages/core/src/components/refresher/refresher.ios.scss
new file mode 100644
index 0000000000..cc49ec9af4
--- /dev/null
+++ b/packages/core/src/components/refresher/refresher.ios.scss
@@ -0,0 +1,27 @@
+@import "./refresher";
+@import "./refresher.ios.vars";
+
+// Refresher Content
+// --------------------------------------------------
+
+.refresher-ios .refresher-pulling-icon,
+.refresher-ios .refresher-refreshing-icon {
+ color: $refresher-ios-icon-color;
+}
+
+.refresher-ios .refresher-pulling-text,
+.refresher-ios .refresher-refreshing-text {
+ color: $refresher-ios-text-color;
+}
+
+.refresher-ios .refresher-refreshing .spinner-ios line,
+.refresher-ios .refresher-refreshing .spinner-ios-small line,
+.refresher-ios .refresher-refreshing .spinner-crescent circle {
+ stroke: $refresher-ios-icon-color;
+}
+
+.refresher-ios .refresher-refreshing .spinner-bubbles circle,
+.refresher-ios .refresher-refreshing .spinner-circles circle,
+.refresher-ios .refresher-refreshing .spinner-dots circle {
+ fill: $refresher-ios-icon-color;
+}
diff --git a/packages/core/src/components/refresher/refresher.ios.vars.scss b/packages/core/src/components/refresher/refresher.ios.vars.scss
new file mode 100644
index 0000000000..f328e941c2
--- /dev/null
+++ b/packages/core/src/components/refresher/refresher.ios.vars.scss
@@ -0,0 +1,7 @@
+@import "../../themes/ionic.globals.ios";
+
+/// @prop - Color of the refresher icon
+$refresher-ios-icon-color: $text-ios-color !default;
+
+/// @prop - Text color of the refresher content
+$refresher-ios-text-color: $text-ios-color !default;
diff --git a/packages/core/src/components/refresher/refresher.md.scss b/packages/core/src/components/refresher/refresher.md.scss
new file mode 100644
index 0000000000..eec6aaf3f5
--- /dev/null
+++ b/packages/core/src/components/refresher/refresher.md.scss
@@ -0,0 +1,27 @@
+@import "./refresher";
+@import "./refresher.md.vars";
+
+// Refresher Content
+// --------------------------------------------------
+
+.refresher-md .refresher-pulling-icon,
+.refresher-md .refresher-refreshing-icon {
+ color: $refresher-md-icon-color;
+}
+
+.refresher-md .refresher-pulling-text,
+.refresher-md .refresher-refreshing-text {
+ color: $refresher-md-text-color;
+}
+
+.refresher-md .refresher-refreshing .spinner-ios line,
+.refresher-md .refresher-refreshing .spinner-ios-small line,
+.refresher-md .refresher-refreshing .spinner-crescent circle {
+ stroke: $refresher-md-icon-color;
+}
+
+.refresher-md .refresher-refreshing .spinner-bubbles circle,
+.refresher-md .refresher-refreshing .spinner-circles circle,
+.refresher-md .refresher-refreshing .spinner-dots circle {
+ fill: $refresher-md-icon-color;
+}
diff --git a/packages/core/src/components/refresher/refresher.md.vars.scss b/packages/core/src/components/refresher/refresher.md.vars.scss
new file mode 100644
index 0000000000..7e1f4f08b5
--- /dev/null
+++ b/packages/core/src/components/refresher/refresher.md.vars.scss
@@ -0,0 +1,7 @@
+@import "../../themes/ionic.globals.md";
+
+/// @prop - Color of the refresher icon
+$refresher-md-icon-color: $text-md-color !default;
+
+/// @prop - Text color of the refresher content
+$refresher-md-text-color: $text-md-color !default;
diff --git a/packages/core/src/components/refresher/refresher.scss b/packages/core/src/components/refresher/refresher.scss
index d56cf92ae7..80db4c809f 100644
--- a/packages/core/src/components/refresher/refresher.scss
+++ b/packages/core/src/components/refresher/refresher.scss
@@ -1,26 +1,5 @@
@import "../../themes/ionic.globals";
-
-// Refresher
-// --------------------------------------------------
-
-/// @prop - Height of the refresher
-$refresher-height: 60px !default;
-
-/// @prop - Color of the refresher icon
-$refresher-icon-color: #000 !default;
-
-/// @prop - Font size of the refresher icon
-$refresher-icon-font-size: 30px !default;
-
-/// @prop - Text color of the refresher content
-$refresher-text-color: #000 !default;
-
-/// @prop - Font size of the refresher content
-$refresher-text-font-size: 16px !default;
-
-/// @prop - Border color of the refresher
-$refresher-border-color: #ddd !default;
-
+@import "./refresher.vars";
ion-refresher {
@include position(0, null, null, 0);
@@ -39,17 +18,6 @@ ion-refresher {
}
}
-.has-refresher > .scroll-content {
- // when the refresher is let go or has completed
- // this transition is what is used to put the
- // scroll content back into it's original location
- @include margin(-1px, null, null, null);
-
- border-top: 1px solid $refresher-border-color;
- transition: transform 320ms cubic-bezier(.36, .66, .04, 1);
-}
-
-
// Refresher Content
// --------------------------------------------------
@@ -75,7 +43,6 @@ ion-refresher-content {
@include transform-origin(center);
font-size: $refresher-icon-font-size;
- color: $refresher-icon-color;
transition: 200ms;
}
@@ -84,22 +51,8 @@ ion-refresher-content {
@include text-align(center);
font-size: $refresher-text-font-size;
- color: $refresher-text-color;
}
-.refresher-refreshing .spinner-ios line,
-.refresher-refreshing .spinner-ios-small line,
-.refresher-refreshing .spinner-crescent circle {
- stroke: $refresher-icon-color;
-}
-
-.refresher-refreshing .spinner-bubbles circle,
-.refresher-refreshing .spinner-circles circle,
-.refresher-refreshing .spinner-dots circle {
- fill: $refresher-icon-color;
-}
-
-
// Refresher Content States
// --------------------------------------------------
diff --git a/packages/core/src/components/refresher/refresher.tsx b/packages/core/src/components/refresher/refresher.tsx
index ed572c067e..f88d79f858 100644
--- a/packages/core/src/components/refresher/refresher.tsx
+++ b/packages/core/src/components/refresher/refresher.tsx
@@ -14,7 +14,13 @@ export const enum RefresherState {
@Component({
tag: 'ion-refresher',
- styleUrl: 'refresher.scss'
+ styleUrls: {
+ ios: 'refresher.ios.scss',
+ md: 'refresher.md.scss'
+ },
+ host: {
+ theme: 'refresher'
+ }
})
export class Refresher {
diff --git a/packages/core/src/components/refresher/refresher.vars.scss b/packages/core/src/components/refresher/refresher.vars.scss
new file mode 100644
index 0000000000..2f74eeb767
--- /dev/null
+++ b/packages/core/src/components/refresher/refresher.vars.scss
@@ -0,0 +1,11 @@
+// Refresher
+// --------------------------------------------------
+
+/// @prop - Height of the refresher
+$refresher-height: 60px !default;
+
+/// @prop - Font size of the refresher icon
+$refresher-icon-font-size: 30px !default;
+
+/// @prop - Font size of the refresher content
+$refresher-text-font-size: 16px !default;
diff --git a/packages/core/src/components/ripple-effect/ripple-effect.ios.scss b/packages/core/src/components/ripple-effect/ripple-effect.ios.scss
new file mode 100644
index 0000000000..2ea7f845b5
--- /dev/null
+++ b/packages/core/src/components/ripple-effect/ripple-effect.ios.scss
@@ -0,0 +1,7 @@
+@import "./ripple-effect";
+@import "./ripple-effect.ios.vars";
+
+// iOS Ripple Effect
+.ripple-iod .ripple-effect {
+ background-color: $ripple-ios-background-color;
+}
diff --git a/packages/core/src/components/ripple-effect/ripple-effect.ios.vars.scss b/packages/core/src/components/ripple-effect/ripple-effect.ios.vars.scss
new file mode 100644
index 0000000000..34da65d47c
--- /dev/null
+++ b/packages/core/src/components/ripple-effect/ripple-effect.ios.vars.scss
@@ -0,0 +1,6 @@
+@import "../../themes/ionic.globals.ios";
+
+// iOS Ripple Effect
+
+/// @prop - Background color of the ripple
+$ripple-ios-background-color: $text-ios-color;
diff --git a/packages/core/src/components/ripple-effect/ripple-effect.md.scss b/packages/core/src/components/ripple-effect/ripple-effect.md.scss
new file mode 100644
index 0000000000..448afd1a4d
--- /dev/null
+++ b/packages/core/src/components/ripple-effect/ripple-effect.md.scss
@@ -0,0 +1,7 @@
+@import "./ripple-effect";
+@import "./ripple-effect.md.vars";
+
+// Material Design Ripple Effect
+.ripple-md .ripple-effect {
+ background-color: $ripple-md-background-color;
+}
diff --git a/packages/core/src/components/ripple-effect/ripple-effect.md.vars.scss b/packages/core/src/components/ripple-effect/ripple-effect.md.vars.scss
new file mode 100644
index 0000000000..19e96ebc93
--- /dev/null
+++ b/packages/core/src/components/ripple-effect/ripple-effect.md.vars.scss
@@ -0,0 +1,6 @@
+@import "../../themes/ionic.globals.md";
+
+// Material Design Ripple Effect
+
+/// @prop - Background color of the ripple
+$ripple-md-background-color: $text-md-color;
diff --git a/packages/core/src/components/ripple-effect/ripple-effect.scss b/packages/core/src/components/ripple-effect/ripple-effect.scss
index a007c68c80..3fb88a4f68 100644
--- a/packages/core/src/components/ripple-effect/ripple-effect.scss
+++ b/packages/core/src/components/ripple-effect/ripple-effect.scss
@@ -17,7 +17,6 @@ ion-ripple-effect {
@include border-radius(50%);
position: absolute;
- background: #000;
opacity: 0;
will-change: transform, opacity;
diff --git a/packages/core/src/components/ripple-effect/ripple-effect.tsx b/packages/core/src/components/ripple-effect/ripple-effect.tsx
index 0a6c77ab91..afe8bb9565 100644
--- a/packages/core/src/components/ripple-effect/ripple-effect.tsx
+++ b/packages/core/src/components/ripple-effect/ripple-effect.tsx
@@ -4,7 +4,13 @@ import { DomController } from '../../global/dom-controller';
@Component({
tag: 'ion-ripple-effect',
- styleUrl: 'ripple-effect.scss'
+ styleUrls: {
+ ios: 'ripple-effect.ios.scss',
+ md: 'ripple-effect.md.scss'
+ },
+ host: {
+ theme: 'ripple'
+ }
})
export class RippleEffect {
diff --git a/packages/core/src/components/searchbar/searchbar.ios.scss b/packages/core/src/components/searchbar/searchbar.ios.scss
index cf2935eaa5..25f04ad40f 100644
--- a/packages/core/src/components/searchbar/searchbar.ios.scss
+++ b/packages/core/src/components/searchbar/searchbar.ios.scss
@@ -142,35 +142,39 @@
// Generate Default Search Bar Colors
// --------------------------------------------------
-@each $color-name, $color-base, $color-contrast in get-colors($colors-ios) {
- $fg-color: rgba($color-contrast, .5);
+@each $color-name, $color-value in $colors-ios {
+ $color-base: ion-color($colors-ios, $color-name, base, ios);
+ $color-contrast: ion-color($colors-ios, $color-name, contrast, ios);
+ $color-shade: ion-color($colors-ios, $color-name, shade, ios);
+ $color-tint: ion-color($colors-ios, $color-name, tint, ios);
.searchbar-ios-#{$color-name} .searchbar-ios-cancel {
color: $color-base;
}
.enable-hover .searchbar-ios-#{$color-name} .searchbar-ios-cancel:hover {
- color: color-shade($color-base);
+ color: $color-tint;
}
.toolbar-ios-#{$color-name} .searchbar-ios .searchbar-search-icon {
- @include ios-searchbar-icon($searchbar-ios-input-search-icon-svg, $fg-color);
+ @include ios-searchbar-icon($searchbar-ios-input-search-icon-svg, $color-contrast);
+ opacity: .5;
}
.toolbar-ios-#{$color-name} .searchbar-ios .searchbar-input {
- @include placeholder($fg-color);
+ @include placeholder($color-contrast, $opacity: .5);
color: $color-contrast;
- background: rgba($color-contrast, .1);
+ background: $color-shade;
}
.toolbar-ios-#{$color-name} .searchbar-ios .searchbar-clear-icon {
- @include ios-searchbar-icon($searchbar-ios-input-clear-icon-svg, $fg-color);
+ @include ios-searchbar-icon($searchbar-ios-input-clear-icon-svg, $color-contrast);
+ opacity: .5;
}
.toolbar-ios-#{$color-name} .searchbar-ios .searchbar-ios-cancel {
- color: color-contrast($colors-ios, $color-base, ios);
+ color: $color-contrast;
}
-
}
// Searchbar animation
diff --git a/packages/core/src/components/searchbar/searchbar.ios.vars.scss b/packages/core/src/components/searchbar/searchbar.ios.vars.scss
index 34dbe3f303..3bbf85e27d 100644
--- a/packages/core/src/components/searchbar/searchbar.ios.vars.scss
+++ b/packages/core/src/components/searchbar/searchbar.ios.vars.scss
@@ -22,7 +22,7 @@ $searchbar-ios-font-family: $font-family-ios-base !default;
$searchbar-ios-min-height: 44px !default;
/// @prop - Color of the searchbar input search icon
-$searchbar-ios-input-search-icon-color: rgba(0, 0, 0, .5) !default;
+$searchbar-ios-input-search-icon-color: $text-ios-color-step-200 !default;
/// @prop - Svg for the searchbar input search icon
$searchbar-ios-input-search-icon-svg: "
" !default;
@@ -37,13 +37,13 @@ $searchbar-ios-input-height: 36px !default;
$searchbar-ios-input-border-radius: 10px !default;
/// @prop - Color of the searchbar input placeholder
-$searchbar-ios-input-placeholder-color: rgba(0, 0, 0, .5) !default;
+$searchbar-ios-input-placeholder-color: $text-ios-color-step-200 !default;
/// @prop - Color of the searchbar input text
-$searchbar-ios-input-text-color: #000 !default;
+$searchbar-ios-input-text-color: $text-ios-color !default;
/// @prop - Background of the searchbar input
-$searchbar-ios-input-background-color: rgba(15, 22, 64, .1) !default;
+$searchbar-ios-input-background-color: ion-color-alpha($text-ios-color-value, text-ios-color, $alpha-ios-low) !default;
/// @prop - Transition of the searchbar input
$searchbar-ios-input-transition: all 300ms ease !default;
@@ -52,7 +52,7 @@ $searchbar-ios-input-transition: all 300ms ease !default;
$searchbar-ios-cancel-transition: all 300ms ease !default;
/// @prop - Color of the searchbar input clear icon
-$searchbar-ios-input-clear-icon-color: rgba(0, 0, 0, .5) !default;
+$searchbar-ios-input-clear-icon-color: $text-ios-color-step-200 !default;
/// @prop - Svg for the searchbar input clear icon
$searchbar-ios-input-clear-icon-svg: "
" !default;
diff --git a/packages/core/src/components/searchbar/searchbar.md.vars.scss b/packages/core/src/components/searchbar/searchbar.md.vars.scss
index 3537bdec70..5834f3152f 100644
--- a/packages/core/src/components/searchbar/searchbar.md.vars.scss
+++ b/packages/core/src/components/searchbar/searchbar.md.vars.scss
@@ -22,7 +22,7 @@ $searchbar-md-font-family: $font-family-md-base !default;
$searchbar-md-background: inherit !default;
/// @prop - Color of the searchbar input search icon
-$searchbar-md-input-search-icon-color: #5b5b5b !default;
+$searchbar-md-input-search-icon-color: $text-color-step-200 !default;
/// @prop - Svg for the searchbar input search icon
$searchbar-md-input-search-icon-svg: "
" !default;
@@ -40,19 +40,19 @@ $searchbar-md-input-line-height: 30px !default;
$searchbar-md-input-box-shadow: 0 2px 2px 0 rgba(0, 0, 0, .14), 0 3px 1px -2px rgba(0, 0, 0, .2), 0 1px 5px 0 rgba(0, 0, 0, .12) !default;
/// @prop - Color of the searchbar input placeholder
-$searchbar-md-input-placeholder-color: #aeaeae !default;
+$searchbar-md-input-placeholder-color: $placeholder-text-md-color !default;
/// @prop - Color of the searchbar input text
-$searchbar-md-input-text-color: #141414 !default;
+$searchbar-md-input-text-color: $text-md-color-step-100 !default;
/// @prop - Background of the searchbar input
-$searchbar-md-input-background-color: #fff !default;
+$searchbar-md-input-background-color: $background-md-color !default;
/// @prop - Border radius of the searchbar input
$searchbar-md-input-border-radius: 2px !default;
/// @prop - Color of the searchbar input clear icon
-$searchbar-md-input-clear-icon-color: #5b5b5b !default;
+$searchbar-md-input-clear-icon-color: $text-md-color-step-200 !default;
/// @prop - Svg for the searchbar input clear icon
$searchbar-md-input-clear-icon-svg: "
" !default;
diff --git a/packages/core/src/components/searchbar/test/toolbar/index.html b/packages/core/src/components/searchbar/test/toolbar/index.html
index c64ab5005d..61a53eb821 100644
--- a/packages/core/src/components/searchbar/test/toolbar/index.html
+++ b/packages/core/src/components/searchbar/test/toolbar/index.html
@@ -46,12 +46,23 @@
+`
+
Search - Success Toolbar
+
+
+
Search - Warning Toolbar
+
Search - Danger Toolbar
+
+
+
+
+
Search - Dark Toolbar
diff --git a/packages/core/src/components/segment/segment.ios.scss b/packages/core/src/components/segment/segment.ios.scss
index 3e35c5aa07..72a5103cc4 100644
--- a/packages/core/src/components/segment/segment.ios.scss
+++ b/packages/core/src/components/segment/segment.ios.scss
@@ -49,17 +49,16 @@
&.segment-activated {
color: $segment-button-ios-text-color;
background-color: $segment-button-ios-background-color-activated;
- opacity: $segment-button-ios-opacity-activated;
transition: $segment-button-ios-transition-activated;
}
&:hover:not(.segment-activated) {
- background-color: rgba($segment-button-ios-background-color-activated, $segment-button-ios-opacity-hover);
+ background-color: $segment-button-ios-background-color-hover;
transition: $segment-button-ios-transition-hover;
}
&:active:not(.segment-activated) {
- background-color: rgba($segment-button-ios-background-color-activated, $segment-button-ios-opacity-active);
+ background-color: $segment-button-ios-background-color-active;
transition: $segment-button-ios-transition-active;
}
}
@@ -82,7 +81,7 @@
}
.segment-ios .segment-button-disabled {
- color: rgba($segment-button-ios-background-color-activated, $segment-button-ios-opacity-disabled);
+ color: $segment-button-ios-background-color-disabled;
pointer-events: none;
}
@@ -117,7 +116,9 @@
// iOS Segment Button Mixin
// --------------------------------------------------
-@mixin ios-segment-button($color-name, $color-base, $color-contrast) {
+@mixin ios-segment-button($color-name) {
+ $color-base: ion-color($colors-ios, $color-name, base, ios);
+ $color-contrast: ion-color($colors-ios, $color-name, contrast, ios);
.segment-ios-#{$color-name} {
@@ -125,12 +126,13 @@
border-color: $color-base;
color: $color-base;
+
&:hover:not(.segment-activated) {
- background-color: rgba($color-base, $segment-button-ios-opacity-hover);
+ background-color: ion-color-alpha($colors-ios, $color-base, $alpha-ios-lowest);
}
&:active:not(.segment-activated) {
- background-color: rgba($color-base, $segment-button-ios-opacity-active);
+ background-color: ion-color-alpha($colors-ios, $color-base, $alpha-ios-lowest);
}
&.segment-activated {
@@ -140,20 +142,19 @@
}
.segment-button-disabled {
- color: rgba($color-base, $segment-button-ios-opacity-disabled);
+ color: ion-color-alpha($colors-ios, $color-base, $alpha-ios-medium);
}
-
}
-
}
// iOS Segment Color Generation
// --------------------------------------------------
-@each $color-name, $color-base, $color-contrast in get-colors($colors-ios) {
+@each $color-name, $color-value in $colors-ios {
+ $color-base: ion-color($colors-ios, $color-name, base, ios);
- @include ios-segment-button($color-name, $color-base, $color-contrast);
+ @include ios-segment-button($color-name);
.toolbar-ios-#{$color-name} .segment-ios .segment-button.segment-activated {
color: $color-base;
diff --git a/packages/core/src/components/segment/segment.ios.vars.scss b/packages/core/src/components/segment/segment.ios.vars.scss
index 8b52be94ea..eee499c800 100644
--- a/packages/core/src/components/segment/segment.ios.vars.scss
+++ b/packages/core/src/components/segment/segment.ios.vars.scss
@@ -10,70 +10,76 @@ $segment-ios-font-family: $font-family-ios-base !default;
// ---------------------------------------------
/// @prop - Background of the segment button
-$segment-button-ios-background-color: transparent !default;
+$segment-button-ios-background-color: transparent !default;
/// @prop - Background of the activated segment button
-$segment-button-ios-background-color-activated: $toolbar-ios-active-color !default;
+$segment-button-ios-background-color-activated: ion-color($colors-ios, primary, base, ios) !default;
+
+/// @prop - Background of the segment button when hovered
+$segment-button-ios-background-color-hover: ion-color-alpha($colors-ios, primary, $alpha-ios-lowest) !default;
+
+/// @prop - Background of the segment button when active
+$segment-button-ios-background-color-active: ion-color-alpha($colors-ios, primary, $alpha-ios-low) !default;
+
+/// @prop - Background of the activated segment button when active
+$segment-button-ios-background-color-disabled: ion-color-alpha($colors-ios, primary, $alpha-ios-medium) !default;
/// @prop - Text color of the segment button
-$segment-button-ios-text-color: color-contrast($colors-ios, $segment-button-ios-background-color-activated) !default;
+$segment-button-ios-text-color: ion-color($colors-ios, primary, contrast, ios) !default;
/// @prop - Transition of the activated segment button
-$segment-button-ios-transition-activated: 100ms all linear !default;
+$segment-button-ios-transition-activated: 100ms all linear !default;
/// @prop - Transition of the segment button on hover
-$segment-button-ios-transition-hover: 100ms all linear !default;
+$segment-button-ios-transition-hover: 100ms all linear !default;
/// @prop - Transition of the segment button when pressed
-$segment-button-ios-transition-active: 100ms all linear !default;
-
-/// @prop - Opacity of the segment button on hover
-$segment-button-ios-opacity-hover: .1 !default;
-
-/// @prop - Opacity of the segment button when pressed
-$segment-button-ios-opacity-active: .16 !default;
-
-/// @prop - Opacity of the activated segment button
-$segment-button-ios-opacity-activated: 1 !default;
-
-/// @prop - Opacity of the disabled segment button
-$segment-button-ios-opacity-disabled: .3 !default;
+$segment-button-ios-transition-active: 100ms all linear !default;
/// @prop - Border width of the segment button
-$segment-button-ios-border-width: 1px !default;
+$segment-button-ios-border-width: 1px !default;
/// @prop - Height of the segment button
-$segment-button-ios-height: 32px !default;
+$segment-button-ios-height: 32px !default;
/// @prop - Line height of the segment button
-$segment-button-ios-line-height: 28px !default;
+$segment-button-ios-line-height: 28px !default;
/// @prop - Font size of the segment button
-$segment-button-ios-font-size: 13px !default;
+$segment-button-ios-font-size: 13px !default;
/// @prop - Border radius of the segment button
-$segment-button-ios-border-radius: 4px !default;
+$segment-button-ios-border-radius: 4px !default;
/// @prop - Size of an icon in the segment button
-$segment-button-ios-icon-size: 26px !default;
+$segment-button-ios-icon-size: 26px !default;
/// @prop - Line height of an icon in the segment button
-$segment-button-ios-icon-line-height: 28px !default;
+$segment-button-ios-icon-line-height: 28px !default;
/// @prop - Max width of the segment button in a toolbar
-$segment-button-ios-toolbar-button-max-width: 100px !default;
+$segment-button-ios-toolbar-button-max-width: 100px !default;
/// @prop - Height of the segment button in a toolbar
-$segment-button-ios-toolbar-button-height: 26px !default;
+$segment-button-ios-toolbar-button-height: 26px !default;
/// @prop - Line height of the segment button in a toolbar
-$segment-button-ios-toolbar-line-height: 22px !default;
+$segment-button-ios-toolbar-line-height: 22px !default;
/// @prop - Font size of the segment button in a toolbar
-$segment-button-ios-toolbar-font-size: 12px !default;
+$segment-button-ios-toolbar-font-size: 12px !default;
/// @prop - Size of an icon in the segment button in a toolbar
-$segment-button-ios-toolbar-icon-size: 22px !default;
+$segment-button-ios-toolbar-icon-size: 22px !default;
/// @prop - Line height of an icon in the segment button in a toolbar
-$segment-button-ios-toolbar-icon-line-height: 24px !default;
+$segment-button-ios-toolbar-icon-line-height: 24px !default;
+
+/// @prop - Opacity of the segment button on hover
+$segment-button-ios-opacity-hover: .1 !default;
+
+/// @prop - Opacity of the segment button when pressed
+$segment-button-ios-opacity-active: .16 !default;
+
+/// @prop - Opacity of the disabled segment button
+$segment-button-ios-opacity-disabled: .3 !default;
diff --git a/packages/core/src/components/segment/segment.md.scss b/packages/core/src/components/segment/segment.md.scss
index 08307ff602..86f7fd7866 100644
--- a/packages/core/src/components/segment/segment.md.scss
+++ b/packages/core/src/components/segment/segment.md.scss
@@ -25,7 +25,7 @@
line-height: $segment-button-md-line-height;
text-transform: uppercase;
- color: $segment-button-md-text-color-activated;
+ color: $segment-button-md-text-color-active;
background-color: transparent;
opacity: $segment-button-md-opacity;
transition: 100ms all linear;
@@ -66,7 +66,8 @@
// Material Design Segment Button Mixin
// --------------------------------------------------
-@mixin md-segment-button($color-name, $color-base, $color-contrast) {
+@mixin md-segment-button($color-name) {
+ $color-base: ion-color($colors-md, $color-name, base, md);
.segment-md-#{$color-name} .segment-button {
color: $color-base;
@@ -85,6 +86,6 @@
// Material Design Segment Color Generation
// --------------------------------------------------
-@each $color-name, $color-base, $color-contrast in get-colors($colors-md) {
- @include md-segment-button($color-name, $color-base, $color-contrast);
+@each $color-name, $color-value in $colors-md {
+ @include md-segment-button($color-name);
}
diff --git a/packages/core/src/components/segment/segment.md.vars.scss b/packages/core/src/components/segment/segment.md.vars.scss
index 6b1d1a2326..abb2d5e91f 100644
--- a/packages/core/src/components/segment/segment.md.vars.scss
+++ b/packages/core/src/components/segment/segment.md.vars.scss
@@ -7,10 +7,10 @@
$segment-md-font-family: $font-family-md-base !default;
/// @prop - Text color of the activated segment button
-$segment-button-md-text-color-activated: $toolbar-md-active-color !default;
+$segment-button-md-text-color-active: $toolbar-md-color-active !default;
/// @prop - Border color of the activated segment button
-$segment-button-md-border-color-activated: $toolbar-md-active-color !default;
+$segment-button-md-border-color-activated: $toolbar-md-color-active !default;
/// @prop - Width of the bottom border on the segment button
$segment-button-md-border-bottom-width: 2px !default;
diff --git a/packages/core/src/components/select/select.ios.scss b/packages/core/src/components/select/select.ios.scss
index e7501548ca..6721de8957 100644
--- a/packages/core/src/components/select/select.ios.scss
+++ b/packages/core/src/components/select/select.ios.scss
@@ -8,6 +8,7 @@
@include padding($select-ios-padding-top, $select-ios-padding-end, $select-ios-padding-bottom, $select-ios-padding-start);
font-family: $select-ios-font-family;
+ color: $select-ios-text-color;
}
.select-ios .select-placeholder {
diff --git a/packages/core/src/components/select/select.ios.vars.scss b/packages/core/src/components/select/select.ios.vars.scss
index 7629bfad9f..41462d8e84 100644
--- a/packages/core/src/components/select/select.ios.vars.scss
+++ b/packages/core/src/components/select/select.ios.vars.scss
@@ -6,22 +6,25 @@
// --------------------------------------------------
/// @prop - Padding top of the select
-$select-ios-padding-top: $item-ios-padding-top !default;
+$select-ios-padding-top: $item-ios-padding-top !default;
/// @prop - Padding end of the select
-$select-ios-padding-end: ($item-ios-padding-end / 2) !default;
+$select-ios-padding-end: ($item-ios-padding-end / 2) !default;
/// @prop - Padding bottom of the select
-$select-ios-padding-bottom: $item-ios-padding-bottom !default;
+$select-ios-padding-bottom: $item-ios-padding-bottom !default;
/// @prop - Padding start of the select
-$select-ios-padding-start: $item-ios-padding-start !default;
+$select-ios-padding-start: $item-ios-padding-start !default;
/// @prop - Font family of the select
-$select-ios-font-family: $font-family-ios-base !default;
+$select-ios-font-family: $font-family-ios-base !default;
/// @prop - Color of the select icon
-$select-ios-icon-color: #999 !default;
+$select-ios-icon-color: $text-ios-color-step-400 !default;
/// @prop - Color of the select placeholder
-$select-ios-placeholder-color: $select-ios-icon-color !default;
+$select-ios-placeholder-color: $select-ios-icon-color !default;
+
+/// @prop - Text Color of the selected item
+$select-ios-text-color: $text-ios-color !default;
diff --git a/packages/core/src/components/select/select.md.scss b/packages/core/src/components/select/select.md.scss
index 4ec56d1a21..4a6fa7bc50 100644
--- a/packages/core/src/components/select/select.md.scss
+++ b/packages/core/src/components/select/select.md.scss
@@ -8,6 +8,7 @@
@include padding($select-md-padding-top, $select-md-padding-end, $select-md-padding-bottom, $select-md-padding-start);
font-family: $select-md-font-family;
+ color: $select-md-text-color;
}
.select-md .select-placeholder {
@@ -60,7 +61,7 @@
}
.select-popover-md .item-radio-checked {
- background-color: #dcdcdc;
+ background-color: $background-md-color-step-200;
}
.select-popover-md .item-radio-checked ion-label {
diff --git a/packages/core/src/components/select/select.md.vars.scss b/packages/core/src/components/select/select.md.vars.scss
index e6cc8367b1..46c6c46fad 100644
--- a/packages/core/src/components/select/select.md.vars.scss
+++ b/packages/core/src/components/select/select.md.vars.scss
@@ -21,7 +21,10 @@ $select-md-padding-start: $item-md-padding-start !default;
$select-md-font-family: $font-family-md-base !default;
/// @prop - Color of the select icon
-$select-md-icon-color: #999 !default;
+$select-md-icon-color: $text-md-color-step-300 !default;
/// @prop - Color of the select placeholder
$select-md-placeholder-color: $select-md-icon-color !default;
+
+/// @prop - Text Color of the selected item
+$select-md-text-color: $text-md-color !default;
diff --git a/packages/core/src/components/skeleton-text/skeleton-text.ios.scss b/packages/core/src/components/skeleton-text/skeleton-text.ios.scss
new file mode 100644
index 0000000000..76ace01982
--- /dev/null
+++ b/packages/core/src/components/skeleton-text/skeleton-text.ios.scss
@@ -0,0 +1,11 @@
+@import "./skeleton-text";
+@import "./skeleton-text.ios.vars";
+
+
+// iOS Skeleton Text
+// --------------------------------------------------
+
+.skeleton-text-ios span {
+ background-color: $skeleton-text-ios-bar-background-color;
+ opacity: $skeleton-text-ios-bar-opacity;
+}
diff --git a/packages/core/src/components/skeleton-text/skeleton-text.ios.vars.scss b/packages/core/src/components/skeleton-text/skeleton-text.ios.vars.scss
new file mode 100644
index 0000000000..419137d522
--- /dev/null
+++ b/packages/core/src/components/skeleton-text/skeleton-text.ios.vars.scss
@@ -0,0 +1,10 @@
+@import "../../themes/ionic.globals.ios";
+
+// iOS Skeleton Text
+// --------------------------------------------------
+
+/// @prop - Background color of the skeleton text bar
+$skeleton-text-ios-bar-background-color: $text-ios-color !default;
+
+/// @prop - Opacity of the text bar for the skeleton text
+$skeleton-text-ios-bar-opacity: .1 !default;
diff --git a/packages/core/src/components/skeleton-text/skeleton-text.md.scss b/packages/core/src/components/skeleton-text/skeleton-text.md.scss
new file mode 100644
index 0000000000..41708d3686
--- /dev/null
+++ b/packages/core/src/components/skeleton-text/skeleton-text.md.scss
@@ -0,0 +1,11 @@
+@import "./skeleton-text";
+@import "./skeleton-text.md.vars";
+
+
+// Material Design Skeleton Text
+// --------------------------------------------------
+
+.skeleton-text-md span {
+ background-color: $skeleton-text-md-bar-background-color;
+ opacity: $skeleton-text-md-bar-opacity;
+}
diff --git a/packages/core/src/components/skeleton-text/skeleton-text.md.vars.scss b/packages/core/src/components/skeleton-text/skeleton-text.md.vars.scss
new file mode 100644
index 0000000000..3106d6e7ef
--- /dev/null
+++ b/packages/core/src/components/skeleton-text/skeleton-text.md.vars.scss
@@ -0,0 +1,10 @@
+@import "../../themes/ionic.globals.md";
+
+// Material Design Skeleton Text
+// --------------------------------------------------
+
+/// @prop - Background color of the skeleton text bar
+$skeleton-text-md-bar-background-color: $text-md-color !default;
+
+/// @prop - Opacity of the text bar for the skeleton text
+$skeleton-text-md-bar-opacity: .1 !default;
diff --git a/packages/core/src/components/skeleton-text/skeleton-text.scss b/packages/core/src/components/skeleton-text/skeleton-text.scss
index eda4801a54..4347721dc9 100644
--- a/packages/core/src/components/skeleton-text/skeleton-text.scss
+++ b/packages/core/src/components/skeleton-text/skeleton-text.scss
@@ -17,5 +17,4 @@ ion-skeleton-text span {
display: inline-block;
font-size: 8px;
- background-color: #ececec;
}
diff --git a/packages/core/src/components/skeleton-text/skeleton-text.tsx b/packages/core/src/components/skeleton-text/skeleton-text.tsx
index 7eb55812d8..eea5acfca8 100644
--- a/packages/core/src/components/skeleton-text/skeleton-text.tsx
+++ b/packages/core/src/components/skeleton-text/skeleton-text.tsx
@@ -3,12 +3,18 @@ import { Component, Prop } from '@stencil/core';
@Component({
tag: 'ion-skeleton-text',
- styleUrl: 'skeleton-text.scss'
+ styleUrls: {
+ ios: 'skeleton-text.ios.scss',
+ md: 'skeleton-text.md.scss'
+ },
+ host: {
+ theme: 'skeleton-text'
+ }
})
export class SkeletonText {
@Prop() width = '100%';
- render() {
+ render () {
return ;
}
}
diff --git a/packages/core/src/components/skeleton-text/test/basic/index.html b/packages/core/src/components/skeleton-text/test/basic/index.html
new file mode 100644
index 0000000000..55fca6934e
--- /dev/null
+++ b/packages/core/src/components/skeleton-text/test/basic/index.html
@@ -0,0 +1,19 @@
+
+
+
+
+ Select - Basic
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/core/src/components/slides/slides-import.scss b/packages/core/src/components/slides/slides-vendor.scss
similarity index 92%
rename from packages/core/src/components/slides/slides-import.scss
rename to packages/core/src/components/slides/slides-vendor.scss
index fa16cf1117..f099e7eae3 100644
--- a/packages/core/src/components/slides/slides-import.scss
+++ b/packages/core/src/components/slides/slides-vendor.scss
@@ -20,9 +20,11 @@
/* Fix of Webkit flickering */
z-index: 1;
}
+
.swiper-container-no-flexbox .swiper-slide {
float: left;
}
+
.swiper-container-vertical > .swiper-wrapper {
-webkit-box-orient: vertical;
-moz-box-orient: vertical;
@@ -30,6 +32,7 @@
-webkit-flex-direction: column;
flex-direction: column;
}
+
.swiper-wrapper {
position: relative;
width: 100%;
@@ -49,6 +52,7 @@
-moz-box-sizing: content-box;
box-sizing: content-box;
}
+
.swiper-container-android .swiper-slide,
.swiper-wrapper {
-webkit-transform: translate3d(0px, 0, 0);
@@ -57,6 +61,7 @@
-ms-transform: translate3d(0px, 0, 0);
transform: translate3d(0px, 0, 0);
}
+
.swiper-container-multirow > .swiper-wrapper {
-webkit-box-lines: multiple;
-moz-box-lines: multiple;
@@ -64,6 +69,7 @@
-webkit-flex-wrap: wrap;
flex-wrap: wrap;
}
+
.swiper-container-free-mode > .swiper-wrapper {
-webkit-transition-timing-function: ease-out;
-moz-transition-timing-function: ease-out;
@@ -72,6 +78,7 @@
transition-timing-function: ease-out;
margin: 0 auto;
}
+
.swiper-slide {
-webkit-flex-shrink: 0;
-ms-flex: 0 0 auto;
@@ -80,11 +87,13 @@
height: 100%;
position: relative;
}
+
/* Auto Height */
.swiper-container-autoheight,
.swiper-container-autoheight .swiper-slide {
height: auto;
}
+
.swiper-container-autoheight .swiper-wrapper {
-webkit-box-align: start;
-ms-flex-align: start;
@@ -96,6 +105,7 @@
-ms-transition-property: -ms-transform;
transition-property: transform, height;
}
+
/* a11y */
.swiper-container .swiper-notification {
position: absolute;
@@ -105,15 +115,18 @@
opacity: 0;
z-index: -1000;
}
+
/* IE10 Windows Phone 8 Fixes */
.swiper-wp8-horizontal {
-ms-touch-action: pan-y;
touch-action: pan-y;
}
+
.swiper-wp8-vertical {
-ms-touch-action: pan-x;
touch-action: pan-x;
}
+
/* Arrows */
.swiper-button-prev,
.swiper-button-next {
@@ -130,40 +143,48 @@
background-position: center;
background-repeat: no-repeat;
}
+
.swiper-button-prev.swiper-button-disabled,
.swiper-button-next.swiper-button-disabled {
- opacity: 0.35;
+ opacity: .35;
cursor: auto;
pointer-events: none;
}
+
.swiper-button-prev,
.swiper-container-rtl .swiper-button-next {
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E");
left: 10px;
right: auto;
}
+
.swiper-button-prev.swiper-button-black,
.swiper-container-rtl .swiper-button-next.swiper-button-black {
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E");
}
+
.swiper-button-prev.swiper-button-white,
.swiper-container-rtl .swiper-button-next.swiper-button-white {
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M0%2C22L22%2C0l2.1%2C2.1L4.2%2C22l19.9%2C19.9L22%2C44L0%2C22L0%2C22L0%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E");
}
+
.swiper-button-next,
.swiper-container-rtl .swiper-button-prev {
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23007aff'%2F%3E%3C%2Fsvg%3E");
right: 10px;
left: auto;
}
+
.swiper-button-next.swiper-button-black,
.swiper-container-rtl .swiper-button-prev.swiper-button-black {
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23000000'%2F%3E%3C%2Fsvg%3E");
}
+
.swiper-button-next.swiper-button-white,
.swiper-container-rtl .swiper-button-prev.swiper-button-white {
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2027%2044'%3E%3Cpath%20d%3D'M27%2C22L27%2C22L5%2C44l-2.1-2.1L22.8%2C22L2.9%2C2.1L5%2C0L27%2C22L27%2C22z'%20fill%3D'%23ffffff'%2F%3E%3C%2Fsvg%3E");
}
+
/* Pagination Styles */
.swiper-pagination {
position: absolute;
@@ -178,9 +199,11 @@
transform: translate3d(0, 0, 0);
z-index: 10;
}
+
.swiper-pagination.swiper-pagination-hidden {
opacity: 0;
}
+
/* Common Styles */
.swiper-pagination-fraction,
.swiper-pagination-custom,
@@ -189,15 +212,16 @@
left: 0;
width: 100%;
}
+
/* Bullets */
.swiper-pagination-bullet {
width: 8px;
height: 8px;
display: inline-block;
border-radius: 100%;
- background: #000;
- opacity: 0.2;
+ opacity: .2;
}
+
button.swiper-pagination-bullet {
border: none;
margin: 0;
@@ -208,22 +232,27 @@ button.swiper-pagination-bullet {
-webkit-appearance: none;
appearance: none;
}
+
.swiper-pagination-clickable .swiper-pagination-bullet {
cursor: pointer;
}
+
.swiper-pagination-white .swiper-pagination-bullet {
background: #fff;
}
+
.swiper-pagination-bullet-active {
opacity: 1;
- background: #007aff;
}
+
.swiper-pagination-white .swiper-pagination-bullet-active {
background: #fff;
}
+
.swiper-pagination-black .swiper-pagination-bullet-active {
background: #000;
}
+
.swiper-container-vertical > .swiper-pagination-bullets {
right: 10px;
top: 50%;
@@ -233,20 +262,22 @@ button.swiper-pagination-bullet {
-ms-transform: translate3d(0px, -50%, 0);
transform: translate3d(0px, -50%, 0);
}
+
.swiper-container-vertical > .swiper-pagination-bullets .swiper-pagination-bullet {
margin: 5px 0;
display: block;
}
+
.swiper-container-horizontal > .swiper-pagination-bullets .swiper-pagination-bullet {
margin: 0 5px;
}
+
/* Progress */
.swiper-pagination-progress {
- background: rgba(0, 0, 0, 0.25);
position: absolute;
}
+
.swiper-pagination-progress .swiper-pagination-progressbar {
- background: #007aff;
position: absolute;
left: 0;
top: 0;
@@ -262,6 +293,7 @@ button.swiper-pagination-bullet {
-o-transform-origin: left top;
transform-origin: left top;
}
+
.swiper-container-rtl .swiper-pagination-progress .swiper-pagination-progressbar {
-webkit-transform-origin: right top;
-moz-transform-origin: right top;
@@ -269,27 +301,33 @@ button.swiper-pagination-bullet {
-o-transform-origin: right top;
transform-origin: right top;
}
+
.swiper-container-horizontal > .swiper-pagination-progress {
width: 100%;
height: 4px;
left: 0;
top: 0;
}
+
.swiper-container-vertical > .swiper-pagination-progress {
width: 4px;
height: 100%;
left: 0;
top: 0;
}
+
.swiper-pagination-progress.swiper-pagination-white {
- background: rgba(255, 255, 255, 0.5);
+ background: rgba(255, 255, 255, .5);
}
+
.swiper-pagination-progress.swiper-pagination-white .swiper-pagination-progressbar {
background: #fff;
}
+
.swiper-pagination-progress.swiper-pagination-black .swiper-pagination-progressbar {
background: #000;
}
+
/* 3D Container */
.swiper-container-3d {
-webkit-perspective: 1200px;
@@ -297,11 +335,12 @@ button.swiper-pagination-bullet {
-o-perspective: 1200px;
perspective: 1200px;
}
+
.swiper-container-3d .swiper-wrapper,
.swiper-container-3d .swiper-slide,
.swiper-container-3d .swiper-slide-shadow-left,
.swiper-container-3d .swiper-slide-shadow-right,
-.swiper-container-3d .swiper-slide-shadow-top,
+.swiper-container-3d .swiper-slide-shadow-top, ¡
.swiper-container-3d .swiper-slide-shadow-bottom,
.swiper-container-3d .swiper-cube-shadow {
-webkit-transform-style: preserve-3d;
@@ -309,6 +348,7 @@ button.swiper-pagination-bullet {
-ms-transform-style: preserve-3d;
transform-style: preserve-3d;
}
+
.swiper-container-3d .swiper-slide-shadow-left,
.swiper-container-3d .swiper-slide-shadow-right,
.swiper-container-3d .swiper-slide-shadow-top,
@@ -321,65 +361,72 @@ button.swiper-pagination-bullet {
pointer-events: none;
z-index: 10;
}
+
.swiper-container-3d .swiper-slide-shadow-left {
- background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));
+ background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, .5)), to(rgba(0, 0, 0, 0)));
/* Safari 4+, Chrome */
- background-image: -webkit-linear-gradient(right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
+ background-image: -webkit-linear-gradient(right, rgba(0, 0, 0, .5), rgba(0, 0, 0, 0));
/* Chrome 10+, Safari 5.1+, iOS 5+ */
- background-image: -moz-linear-gradient(right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
+ background-image: -moz-linear-gradient(right, rgba(0, 0, 0, .5), rgba(0, 0, 0, 0));
/* Firefox 3.6-15 */
- background-image: -o-linear-gradient(right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
+ background-image: -o-linear-gradient(right, rgba(0, 0, 0, .5), rgba(0, 0, 0, 0));
/* Opera 11.10-12.00 */
- background-image: linear-gradient(to left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
+ background-image: linear-gradient(to left, rgba(0, 0, 0, .5), rgba(0, 0, 0, 0));
/* Firefox 16+, IE10, Opera 12.50+ */
}
+
.swiper-container-3d .swiper-slide-shadow-right {
- background-image: -webkit-gradient(linear, right top, left top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));
+ background-image: -webkit-gradient(linear, right top, left top, from(rgba(0, 0, 0, .5)), to(rgba(0, 0, 0, 0)));
/* Safari 4+, Chrome */
- background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
+ background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, .5), rgba(0, 0, 0, 0));
/* Chrome 10+, Safari 5.1+, iOS 5+ */
- background-image: -moz-linear-gradient(left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
+ background-image: -moz-linear-gradient(left, rgba(0, 0, 0, .5), rgba(0, 0, 0, 0));
/* Firefox 3.6-15 */
- background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
+ background-image: -o-linear-gradient(left, rgba(0, 0, 0, .5), rgba(0, 0, 0, 0));
/* Opera 11.10-12.00 */
- background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
+ background-image: linear-gradient(to right, rgba(0, 0, 0, .5), rgba(0, 0, 0, 0));
/* Firefox 16+, IE10, Opera 12.50+ */
}
+
.swiper-container-3d .swiper-slide-shadow-top {
- background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));
+ background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, .5)), to(rgba(0, 0, 0, 0)));
/* Safari 4+, Chrome */
- background-image: -webkit-linear-gradient(bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
+ background-image: -webkit-linear-gradient(bottom, rgba(0, 0, 0, .5), rgba(0, 0, 0, 0));
/* Chrome 10+, Safari 5.1+, iOS 5+ */
- background-image: -moz-linear-gradient(bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
+ background-image: -moz-linear-gradient(bottom, rgba(0, 0, 0, .5), rgba(0, 0, 0, 0));
/* Firefox 3.6-15 */
- background-image: -o-linear-gradient(bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
+ background-image: -o-linear-gradient(bottom, rgba(0, 0, 0, .5), rgba(0, 0, 0, 0));
/* Opera 11.10-12.00 */
- background-image: linear-gradient(to top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
+ background-image: linear-gradient(to top, rgba(0, 0, 0, .5), rgba(0, 0, 0, 0));
/* Firefox 16+, IE10, Opera 12.50+ */
}
+
.swiper-container-3d .swiper-slide-shadow-bottom {
- background-image: -webkit-gradient(linear, left bottom, left top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0)));
+ background-image: -webkit-gradient(linear, left bottom, left top, from(rgba(0, 0, 0, .5)), to(rgba(0, 0, 0, 0)));
/* Safari 4+, Chrome */
- background-image: -webkit-linear-gradient(top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
+ background-image: -webkit-linear-gradient(top, rgba(0, 0, 0, .5), rgba(0, 0, 0, 0));
/* Chrome 10+, Safari 5.1+, iOS 5+ */
- background-image: -moz-linear-gradient(top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
+ background-image: -moz-linear-gradient(top, rgba(0, 0, 0, .5), rgba(0, 0, 0, 0));
/* Firefox 3.6-15 */
- background-image: -o-linear-gradient(top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
+ background-image: -o-linear-gradient(top, rgba(0, 0, 0, .5), rgba(0, 0, 0, 0));
/* Opera 11.10-12.00 */
- background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0));
+ background-image: linear-gradient(to bottom, rgba(0, 0, 0, .5), rgba(0, 0, 0, 0));
/* Firefox 16+, IE10, Opera 12.50+ */
}
+
/* Coverflow */
.swiper-container-coverflow .swiper-wrapper,
.swiper-container-flip .swiper-wrapper {
/* Windows 8 IE 10 fix */
-ms-perspective: 1200px;
}
+
/* Cube + Flip */
.swiper-container-cube,
.swiper-container-flip {
overflow: visible;
}
+
.swiper-container-cube .swiper-slide,
.swiper-container-flip .swiper-slide {
pointer-events: none;
@@ -389,16 +436,19 @@ button.swiper-pagination-bullet {
backface-visibility: hidden;
z-index: 1;
}
+
.swiper-container-cube .swiper-slide .swiper-slide,
.swiper-container-flip .swiper-slide .swiper-slide {
pointer-events: none;
}
+
.swiper-container-cube .swiper-slide-active,
.swiper-container-flip .swiper-slide-active,
.swiper-container-cube .swiper-slide-active .swiper-slide-active,
.swiper-container-flip .swiper-slide-active .swiper-slide-active {
pointer-events: auto;
}
+
.swiper-container-cube .swiper-slide-shadow-top,
.swiper-container-flip .swiper-slide-shadow-top,
.swiper-container-cube .swiper-slide-shadow-bottom,
@@ -413,6 +463,7 @@ button.swiper-pagination-bullet {
-ms-backface-visibility: hidden;
backface-visibility: hidden;
}
+
/* Cube */
.swiper-container-cube .swiper-slide {
visibility: hidden;
@@ -423,12 +474,14 @@ button.swiper-pagination-bullet {
width: 100%;
height: 100%;
}
+
.swiper-container-cube.swiper-container-rtl .swiper-slide {
-webkit-transform-origin: 100% 0;
-moz-transform-origin: 100% 0;
-ms-transform-origin: 100% 0;
transform-origin: 100% 0;
}
+
.swiper-container-cube .swiper-slide-active,
.swiper-container-cube .swiper-slide-next,
.swiper-container-cube .swiper-slide-prev,
@@ -436,6 +489,7 @@ button.swiper-pagination-bullet {
pointer-events: auto;
visibility: visible;
}
+
.swiper-container-cube .swiper-cube-shadow {
position: absolute;
left: 0;
@@ -443,11 +497,12 @@ button.swiper-pagination-bullet {
width: 100%;
height: 100%;
background: #000;
- opacity: 0.6;
+ opacity: .6;
-webkit-filter: blur(50px);
filter: blur(50px);
z-index: 0;
}
+
/* Fade */
.swiper-container-fade.swiper-container-free-mode .swiper-slide {
-webkit-transition-timing-function: ease-out;
@@ -456,6 +511,7 @@ button.swiper-pagination-bullet {
-o-transition-timing-function: ease-out;
transition-timing-function: ease-out;
}
+
.swiper-container-fade .swiper-slide {
pointer-events: none;
-webkit-transition-property: opacity;
@@ -463,13 +519,16 @@ button.swiper-pagination-bullet {
-o-transition-property: opacity;
transition-property: opacity;
}
+
.swiper-container-fade .swiper-slide .swiper-slide {
pointer-events: none;
}
+
.swiper-container-fade .swiper-slide-active,
.swiper-container-fade .swiper-slide-active .swiper-slide-active {
pointer-events: auto;
}
+
.swiper-zoom-container {
width: 100%;
height: 100%;
@@ -490,6 +549,7 @@ button.swiper-pagination-bullet {
align-items: center;
text-align: center;
}
+
.swiper-zoom-container > img,
.swiper-zoom-container > svg,
.swiper-zoom-container > canvas {
@@ -497,13 +557,14 @@ button.swiper-pagination-bullet {
max-height: 100%;
object-fit: contain;
}
+
/* Scrollbar */
.swiper-scrollbar {
border-radius: 10px;
position: relative;
-ms-touch-action: none;
- background: rgba(0, 0, 0, 0.1);
}
+
.swiper-container-horizontal > .swiper-scrollbar {
position: absolute;
left: 1%;
@@ -512,6 +573,7 @@ button.swiper-pagination-bullet {
height: 5px;
width: 98%;
}
+
.swiper-container-vertical > .swiper-scrollbar {
position: absolute;
right: 3px;
@@ -520,18 +582,20 @@ button.swiper-pagination-bullet {
width: 5px;
height: 98%;
}
+
.swiper-scrollbar-drag {
height: 100%;
width: 100%;
position: relative;
- background: rgba(0, 0, 0, 0.5);
border-radius: 10px;
left: 0;
top: 0;
}
+
.swiper-scrollbar-cursor-drag {
cursor: move;
}
+
/* Preloader */
.swiper-lazy-preloader {
width: 42px;
@@ -549,6 +613,7 @@ button.swiper-pagination-bullet {
-moz-animation: swiper-preloader-spin 1s steps(12, end) infinite;
animation: swiper-preloader-spin 1s steps(12, end) infinite;
}
+
.swiper-lazy-preloader:after {
display: block;
content: "";
@@ -560,14 +625,17 @@ button.swiper-pagination-bullet {
background-size: 100%;
background-repeat: no-repeat;
}
+
.swiper-lazy-preloader-white:after {
background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg%20viewBox%3D'0%200%20120%20120'%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20xmlns%3Axlink%3D'http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink'%3E%3Cdefs%3E%3Cline%20id%3D'l'%20x1%3D'60'%20x2%3D'60'%20y1%3D'7'%20y2%3D'27'%20stroke%3D'%23fff'%20stroke-width%3D'11'%20stroke-linecap%3D'round'%2F%3E%3C%2Fdefs%3E%3Cg%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(30%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(60%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(90%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(120%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.27'%20transform%3D'rotate(150%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.37'%20transform%3D'rotate(180%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.46'%20transform%3D'rotate(210%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.56'%20transform%3D'rotate(240%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.66'%20transform%3D'rotate(270%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.75'%20transform%3D'rotate(300%2060%2C60)'%2F%3E%3Cuse%20xlink%3Ahref%3D'%23l'%20opacity%3D'.85'%20transform%3D'rotate(330%2060%2C60)'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
}
+
@-webkit-keyframes swiper-preloader-spin {
100% {
-webkit-transform: rotate(360deg);
}
}
+
@keyframes swiper-preloader-spin {
100% {
transform: rotate(360deg);
diff --git a/packages/core/src/components/slides/slides.ios.scss b/packages/core/src/components/slides/slides.ios.scss
new file mode 100644
index 0000000000..c3b8f7d9b0
--- /dev/null
+++ b/packages/core/src/components/slides/slides.ios.scss
@@ -0,0 +1,26 @@
+@import "./slides-vendor";
+@import "./slides.ios.vars";
+
+.slides-ios .swiper-pagination-bullet {
+ background-color: $slides-ios-bullet-background-color;
+}
+
+.slides-ios .swiper-pagination-bullet-active {
+ background-color: $slides-ios-bullet-background-color-active;
+}
+
+.slides-ios .swiper-pagination-progress {
+ background-color: $slides-ios-progress-background-color;
+}
+
+.slides-ios .swiper-pagination-progress .swiper-pagination-progressbar {
+ background-color: $slides-ios-progress-bar-background-color;
+}
+
+.slides-ios .swiper-scrollbar {
+ background-color: $slides-ios-scroll-bar-background-color;
+}
+
+.slides-ios .swiper-scrollbar-drag {
+ background-color: $slides-ios-scroll-bar-drag-background-color;
+}
diff --git a/packages/core/src/components/slides/slides.ios.vars.scss b/packages/core/src/components/slides/slides.ios.vars.scss
new file mode 100644
index 0000000000..c2445e4c70
--- /dev/null
+++ b/packages/core/src/components/slides/slides.ios.vars.scss
@@ -0,0 +1,19 @@
+@import "../../themes/ionic.globals.ios";
+
+/// @prop - Slides Bullet Background color
+$slides-ios-bullet-background-color: text-ios-color-step-200 !default;
+
+/// @prop - Slides Bullet Background color when Active
+$slides-ios-bullet-background-color-active: ion-color($colors-ios, primary, base, ios) !default;
+
+/// @prop - Slides Progress indicator Background color
+$slides-ios-progress-background-color: ion-color-alpha($text-ios-color-value, text-ios-color, $alpha-ios-low) !default;
+
+/// @prop - Slides Progress indicator bar Background color
+$slides-ios-progress-bar-background-color: ion-color($colors-ios, primary, shade, ios) !default;
+
+/// @prop - Slides Scroll bar Background color
+$slides-ios-scroll-bar-background-color: ion-color-alpha($text-ios-color-value, text-ios-color, $alpha-ios-low) !default;
+
+/// @prop - Slides Scroll bar drag handle Background color
+$slides-ios-scroll-bar-drag-background-color: ion-color-alpha($text-ios-color-value, text-ios-color, $alpha-ios-medium) !default;
diff --git a/packages/core/src/components/slides/slides.md.scss b/packages/core/src/components/slides/slides.md.scss
new file mode 100644
index 0000000000..fb1703747e
--- /dev/null
+++ b/packages/core/src/components/slides/slides.md.scss
@@ -0,0 +1,26 @@
+@import "./slides-vendor";
+@import "./slides.md.vars";
+
+.slides-md .swiper-pagination-bullet {
+ background-color: $slides-md-bullet-background-color;
+}
+
+.slides-md .swiper-pagination-bullet-active {
+ background-color: $slides-md-bullet-background-color-active;
+}
+
+.slides-md .swiper-pagination-progress {
+ background-color: $slides-md-progress-background-color;
+}
+
+.slides-md .swiper-pagination-progress .swiper-pagination-progressbar {
+ background-color: $slides-md-progress-bar-background-color;
+}
+
+.slides-md .swiper-scrollbar {
+ background-color: $slides-md-scroll-bar-background-color;
+}
+
+.slides-md .swiper-scrollbar-drag {
+ background-color: $slides-md-scroll-bar-drag-background-color;
+}
diff --git a/packages/core/src/components/slides/slides.md.vars.scss b/packages/core/src/components/slides/slides.md.vars.scss
new file mode 100644
index 0000000000..91a0c9d2f3
--- /dev/null
+++ b/packages/core/src/components/slides/slides.md.vars.scss
@@ -0,0 +1,19 @@
+@import "../../themes/ionic.globals.md";
+
+/// @prop - Slides Bullet Background color
+$slides-md-bullet-background-color: $text-md-color-step-200 !default;
+
+/// @prop - Slides Bullet Background color when Active
+$slides-md-bullet-background-color-active: ion-color($colors-md, primary, base, md) !default;
+
+/// @prop - Slides Progress indicator Background color
+$slides-md-progress-background-color: ion-color-alpha($text-md-color-value, text-md-color, $alpha-md-low) !default;
+
+/// @prop - Slides Progress indicator bar Background color
+$slides-md-progress-bar-background-color: ion-color($colors-md, primary, shade, md) !default;
+
+/// @prop - Slides Scroll bar Background color
+$slides-md-scroll-bar-background-color: ion-color-alpha($text-md-color-value, text-md-color, $alpha-md-low) !default;
+
+/// @prop - Slides Scroll bar drag handle Background color
+$slides-md-scroll-bar-drag-background-color: ion-color-alpha($text-md-color-value, text-md-color, $alpha-md-medium) !default;
diff --git a/packages/core/src/components/slides/slides.scss b/packages/core/src/components/slides/slides.scss
index 5dec024517..0baa29555a 100644
--- a/packages/core/src/components/slides/slides.scss
+++ b/packages/core/src/components/slides/slides.scss
@@ -1,5 +1,5 @@
@import "./slides.vars";
-@import "./slides-import";
+@import "./slides-vendor";
// Slides
// --------------------------------------------------
diff --git a/packages/core/src/components/slides/slides.tsx b/packages/core/src/components/slides/slides.tsx
index 315f9812b8..c7d90072d2 100644
--- a/packages/core/src/components/slides/slides.tsx
+++ b/packages/core/src/components/slides/slides.tsx
@@ -1,9 +1,14 @@
import { Component, Element, Event, EventEmitter, Method, Prop, Watch } from '@stencil/core';
import { Swiper } from './vendor/swiper.js';
-import { debounce } from '../../utils/helpers';
@Component({
tag: 'ion-slides',
- styleUrl: 'slides.scss',
+ styleUrls: {
+ ios: 'slides.ios.scss',
+ md: 'slides.md.scss'
+ },
+ host: {
+ theme: 'slides'
+ },
assetsDir: 'vendor'
})
export class Slides {
@@ -263,19 +268,8 @@ export class Slides {
* child slides.
*/
@Method()
- update(debounce = 300) {
+ update() {
this.swiper.update();
- // if (this.init) {
- // window.clearTimeout(this.tmr);
- // this.tmr = window.setTimeout(() => {
- // this.swiper.update();
- //
- // // Don't allow pager to show with > 10 slides
- // if (this.length() > 10) {
- // this.options.paginationType = undefined;
- // }
- // }, debounce);
- // }
}
/**
@@ -409,5 +403,3 @@ export class Slides {
this.enableKeyboardControl(false);
}
}
-
-let slidesId = -1;
diff --git a/packages/core/src/components/slides/test/basic/index.html b/packages/core/src/components/slides/test/basic/index.html
index 50f825e54b..85dadb6e44 100644
--- a/packages/core/src/components/slides/test/basic/index.html
+++ b/packages/core/src/components/slides/test/basic/index.html
@@ -7,13 +7,18 @@
+
-
+
Slide 1
diff --git a/packages/core/src/components/spinner/spinner.ios.scss b/packages/core/src/components/spinner/spinner.ios.scss
index dd16506bdd..633dc080c7 100644
--- a/packages/core/src/components/spinner/spinner.ios.scss
+++ b/packages/core/src/components/spinner/spinner.ios.scss
@@ -29,7 +29,8 @@
// Generate iOS Spinner Colors
// --------------------------------------------------
-@each $color-name, $color-base, $color-contrast in get-colors($colors-ios) {
+@each $color-name, $color-value in $colors-ios {
+ $color-base: ion-color($colors-ios, $color-name, base, ios);
.spinner-ios-#{$color-name} {
@@ -44,7 +45,5 @@
&.spinner-dots circle {
fill: $color-base;
}
-
}
-
}
diff --git a/packages/core/src/components/spinner/spinner.ios.vars.scss b/packages/core/src/components/spinner/spinner.ios.vars.scss
index c15e5ffffd..b6c72cff64 100644
--- a/packages/core/src/components/spinner/spinner.ios.vars.scss
+++ b/packages/core/src/components/spinner/spinner.ios.vars.scss
@@ -4,16 +4,16 @@
// --------------------------------------------------
/// @prop - Color of the ios spinner
-$spinner-ios-ios-color: #69717d !default;
+$spinner-ios-ios-color: $text-ios-color-step-200 !default;
/// @prop - Color of the bubbles spinner
-$spinner-ios-bubbles-color: #000 !default;
+$spinner-ios-bubbles-color: $text-ios-color !default;
/// @prop - Color of the circles spinner
-$spinner-ios-circles-color: #69717d !default;
+$spinner-ios-circles-color: $text-ios-color-step-200 !default;
/// @prop - Color of the crescent spinner
-$spinner-ios-crescent-color: #000 !default;
+$spinner-ios-crescent-color: $text-ios-color !default;
/// @prop - Color of the dots spinner
-$spinner-ios-dots-color: #444 !default;
+$spinner-ios-dots-color: $text-ios-color-step-200 !default;
diff --git a/packages/core/src/components/spinner/spinner.md.scss b/packages/core/src/components/spinner/spinner.md.scss
index 396e2069be..7946844692 100644
--- a/packages/core/src/components/spinner/spinner.md.scss
+++ b/packages/core/src/components/spinner/spinner.md.scss
@@ -29,7 +29,8 @@
// Generate Material Design Spinner Colors
// --------------------------------------------------
-@each $color-name, $color-base, $color-contrast in get-colors($colors-md) {
+@each $color-name, $color-value in $colors-md {
+ $color-base: ion-color($colors-md, $color-name, base, md);
.spinner-md-#{$color-name} {
@@ -44,7 +45,5 @@
&.spinner-dots circle {
fill: $color-base;
}
-
}
-
}
diff --git a/packages/core/src/components/spinner/spinner.md.vars.scss b/packages/core/src/components/spinner/spinner.md.vars.scss
index e16e8b298c..40162f1043 100644
--- a/packages/core/src/components/spinner/spinner.md.vars.scss
+++ b/packages/core/src/components/spinner/spinner.md.vars.scss
@@ -4,16 +4,16 @@
// --------------------------------------------------
/// @prop - Color of the ios spinner
-$spinner-md-ios-color: #69717d !default;
+$spinner-md-ios-color: $text-md-color-step-200 !default;
/// @prop - Color of the bubbles spinner
-$spinner-md-bubbles-color: #000 !default;
+$spinner-md-bubbles-color: $text-md-color !default;
/// @prop - Color of the circles spinner
-$spinner-md-circles-color: #69717d !default;
+$spinner-md-circles-color: $text-md-color-step-200 !default;
/// @prop - Color of the crescent spinner
-$spinner-md-crescent-color: #000 !default;
+$spinner-md-crescent-color: $text-md-color !default;
/// @prop - Color of the dots spinner
-$spinner-md-dots-color: #444 !default;
+$spinner-md-dots-color: $text-color-step-200 !default;
diff --git a/packages/core/src/components/split-pane/split-pane.ios.vars.scss b/packages/core/src/components/split-pane/split-pane.ios.vars.scss
index eadec310e3..67a968d9c5 100644
--- a/packages/core/src/components/split-pane/split-pane.ios.vars.scss
+++ b/packages/core/src/components/split-pane/split-pane.ios.vars.scss
@@ -10,4 +10,4 @@ $split-pane-ios-side-min-width: $split-pane-side-min-width !default;
$split-pane-ios-side-max-width: $split-pane-side-max-width !default;
/// @prop - Border style of the side pane
-$split-pane-ios-border: $hairlines-width solid $list-ios-border-color !default;
+$split-pane-ios-border: $hairlines-width solid $item-ios-border-color !default;
diff --git a/packages/core/src/components/split-pane/split-pane.md.vars.scss b/packages/core/src/components/split-pane/split-pane.md.vars.scss
index 17aad4d2ad..a600f620fa 100644
--- a/packages/core/src/components/split-pane/split-pane.md.vars.scss
+++ b/packages/core/src/components/split-pane/split-pane.md.vars.scss
@@ -10,4 +10,4 @@ $split-pane-md-side-min-width: $split-pane-side-min-width !default;
$split-pane-md-side-max-width: $split-pane-side-max-width !default;
/// @prop - Border style of the side pane
-$split-pane-md-border: 1px solid $list-md-border-color !default;
+$split-pane-md-border: 1px solid $item-md-border-color !default;
diff --git a/packages/core/src/components/tabs/readme.md b/packages/core/src/components/tabs/readme.md
index 351710d8f5..9216fded9a 100644
--- a/packages/core/src/components/tabs/readme.md
+++ b/packages/core/src/components/tabs/readme.md
@@ -90,6 +90,15 @@ components to switch to `TabsRoot3`:
## Properties
+#### color
+
+string
+
+The color to use from your Sass `$colors` map.
+Default options are: `"primary"`, `"secondary"`, `"danger"`, `"light"`, and `"dark"`.
+For more information, see [Theming your App](/docs/theming/theming-your-app).
+
+
#### name
string
@@ -142,6 +151,15 @@ Only affects `ios` mode. Defaults to `false`.
## Attributes
+#### color
+
+string
+
+The color to use from your Sass `$colors` map.
+Default options are: `"primary"`, `"secondary"`, `"danger"`, `"light"`, and `"dark"`.
+For more information, see [Theming your App](/docs/theming/theming-your-app).
+
+
#### name
string
diff --git a/packages/core/src/components/tabs/tabs.ios.scss b/packages/core/src/components/tabs/tabs.ios.scss
index 3c0c8714a5..7675c1c47c 100644
--- a/packages/core/src/components/tabs/tabs.ios.scss
+++ b/packages/core/src/components/tabs/tabs.ios.scss
@@ -10,7 +10,7 @@
height: $tabs-ios-tab-height;
border-top: $tabs-ios-border;
- background: $tabs-ios-background;
+ background-color: $tabbar-ios-background-color;
contain: strict;
}
@@ -21,7 +21,7 @@
}
.tabbar-ios .tabbar-highlight {
- background: $tabs-ios-tab-color-active;
+ background: $tabbar-ios-text-color-active;
}
.tabbar-ios > ion-tab-button {
@@ -90,6 +90,7 @@
.tabbar-ios.layout-title-hide ion-icon {
@include margin(0);
}
+
// .tabs-ios[tabsLayout=icon-hide] ion-tab-button,
// .tabs-ios ion-tab-button.has-title-only {
// min-height: $tabs-ios-tab-min-height - 8;
@@ -104,41 +105,52 @@
// --------------------------------------------------
.tabbar-translucent-ios {
- background-color: rgba($tabs-ios-background, $tabbar-ios-translucent-opacity);
+ // TODO: @color-mod in the future we will want to replace this with the following color-mod
+ // background-color: color-mod($tabbar-ios-background-color, a($alpha-ios-highest));
+ background-color: $tabbar-ios-translucent-background-color;
-webkit-backdrop-filter: $tabbar-ios-translucent-filter;
backdrop-filter: $tabbar-ios-translucent-filter;
}
-
// iOS Tabbar Color Mixin
// --------------------------------------------------
-@mixin tabbar-ios($color-name, $color-base, $color-contrast) {
+@mixin tabbar-ios($color-name) {
+ $color-base: ion-color($colors-ios, $color-name, base, ios);
+ $color-contrast: ion-color($colors-ios, $color-name, contrast, ios);
+ $color-shade: ion-color($colors-ios, $color-name, tint, ios);
+
+ $translucent-background-color: ion-color-alpha($colors-ios, $color-name, $alpha-ios-high, ios);
.tabbar-ios-#{$color-name} {
- border-color: darken($color-base, 10%);
- color: rgba($color-contrast, .7);
+ border-color: $background-ios-color-step-300;
+ color: $color-contrast;
background-color: $color-base;
- fill: rgba($color-contrast, .7);
+ fill: $color-contrast;
}
- .tabbar-ios-#{$color-name} .tab-selected {
+ .tabbar-ios-#{$color-name} ion-tab-button {
+ color: $color-contrast;
+ }
+
+ .tabbar-ios-#{$color-name} ion-tab-button:hover:not(.disable-hover), .tabbar-ios-#{$color-name} .tab-selected {
+ font-weight: bold;
+
color: $color-contrast;
fill: $color-contrast;
}
.tabbar-translucent-ios-#{$color-name} {
- background-color: rgba($color-base, $tabbar-ios-translucent-opacity);
+ background-color: $translucent-background-color;
}
-
}
// iOS Tabbar Color Generation
// --------------------------------------------------
-@each $color-name, $color-base, $color-contrast in get-colors($colors-ios) {
- @include tabbar-ios($color-name, $color-base, $color-contrast);
+@each $color-name, $color-value in $colors-ios {
+ @include tabbar-ios($color-name);
}
diff --git a/packages/core/src/components/tabs/tabs.ios.vars.scss b/packages/core/src/components/tabs/tabs.ios.vars.scss
index 8b6e275d70..58266a240b 100644
--- a/packages/core/src/components/tabs/tabs.ios.vars.scss
+++ b/packages/core/src/components/tabs/tabs.ios.vars.scss
@@ -4,7 +4,7 @@
// --------------------------------------------------
/// @prop - Border on the tabbar (border-top when [tabsPlacement=bottom] and border-bottom when [tabsPlacement=top])
-$tabs-ios-border: $hairlines-width solid $tabs-ios-border-color !default;
+$tabs-ios-border: $hairlines-width solid $tabbar-ios-border-color !default;
/// @prop - Padding top on the tab button
$tabs-ios-tab-padding-top: 0 !default;
@@ -25,16 +25,16 @@ $tabs-ios-tab-max-width: 240px !default;
$tabs-ios-tab-height: 50px !default;
/// @prop - Text color of the inactive tab button
-$tabs-ios-tab-text-color: $tabs-ios-tab-color-inactive !default;
+$tabs-ios-tab-text-color: $tabbar-ios-text-color !default;
/// @prop - Text color of the active tab button
-$tabs-ios-tab-text-color-active: $tabs-ios-tab-color-active !default;
+$tabs-ios-tab-text-color-active: $tabbar-ios-text-color-active !default;
/// @prop - Icon color of the inactive tab button
-$tabs-ios-tab-icon-color: $tabs-ios-tab-color-inactive !default;
+$tabs-ios-tab-icon-color: $tabbar-ios-text-color !default;
/// @prop - Icon color of the active tab button
-$tabs-ios-tab-icon-color-active: $tabs-ios-tab-color-active !default;
+$tabs-ios-tab-icon-color-active: $tabbar-ios-text-color-active !default;
/// @prop - Font size of the tab button text
$tabs-ios-tab-font-size: 10px !default;
@@ -43,8 +43,4 @@ $tabs-ios-tab-font-size: 10px !default;
$tabs-ios-tab-icon-size: 30px !default;
/// @prop - Filter of the translucent tabbar
-$tabbar-ios-translucent-filter: saturate(210%) blur(20px) !default;
-
-/// @prop - Opacity of the translucent tabbar
-$tabbar-ios-translucent-opacity: .8 !default;
-
+$tabbar-ios-translucent-filter: saturate(210%) blur(20px) !default;
diff --git a/packages/core/src/components/tabs/tabs.md.scss b/packages/core/src/components/tabs/tabs.md.scss
index f2edbbc653..28bf22da1d 100644
--- a/packages/core/src/components/tabs/tabs.md.scss
+++ b/packages/core/src/components/tabs/tabs.md.scss
@@ -4,14 +4,14 @@
.tabbar-md {
height: $tabs-md-tab-height;
- border-top: 1px solid $tabs-md-border-color;
- background: $tabs-md-background;
+ border-top: 1px solid $tabbar-md-border-color;
+ background: $tabbar-md-background-color;
contain: strict;
}
.tabbar-md .tabbar-highlight {
- background: $tabs-md-tab-color-active;
+ background: $tabbar-md-text-color-active;
}
// Material Design Tab Button
@@ -136,13 +136,15 @@
// Material Design Tabs Color Mixin
// --------------------------------------------------
-@mixin tabbar-md($color-name, $color-base, $color-contrast) {
+@mixin tabbar-md($color-name) {
+ $color-base: ion-color($colors-md, $color-name, base, md);
+ $color-contrast: ion-color($colors-md, $color-name, contrast, md);
.tabbar-md-#{$color-name} {
- color: rgba($color-contrast, $tabs-md-tab-opacity);
+ color: $color-contrast;
background-color: $color-base;
- fill: rgba($color-contrast, $tabs-md-tab-opacity);
+ fill: $color-contrast;
}
.enable-hover .tabbar-md-#{$color-name} ion-tab-button:hover,
@@ -155,12 +157,11 @@
.tabbar-md-#{$color-name} .tabbar-highlight {
background: $color-contrast;
}
-
}
// Material Design Tabbar Color Generation
// --------------------------------------------------
-@each $color-name, $color-base, $color-contrast in get-colors($colors-md) {
- @include tabbar-md($color-name, $color-base, $color-contrast);
+@each $color-name, $color-value in $colors-md {
+ @include tabbar-md($color-name);
}
diff --git a/packages/core/src/components/tabs/tabs.md.vars.scss b/packages/core/src/components/tabs/tabs.md.vars.scss
index 4ea29c6864..58e1d2a566 100644
--- a/packages/core/src/components/tabs/tabs.md.vars.scss
+++ b/packages/core/src/components/tabs/tabs.md.vars.scss
@@ -24,20 +24,17 @@ $tabs-md-tab-font-size: 12px !default;
/// @prop - Font weight of the tab button text
$tabs-md-tab-font-weight: normal !default;
-/// @prop - Opacity of the inactive tab button
-$tabs-md-tab-opacity: .7 !default;
-
/// @prop - Text color of the inactive tab button
-$tabs-md-tab-text-color: rgba($tabs-md-tab-color-inactive, $tabs-md-tab-opacity) !default;
+$tabs-md-tab-text-color: $tabbar-md-text-color !default;
/// @prop - Text color of the active tab button
-$tabs-md-tab-text-color-active: $tabs-md-tab-color-active !default;
+$tabs-md-tab-text-color-active: $tabbar-md-text-color-active !default;
/// @prop - Icon color of the inactive tab button
-$tabs-md-tab-icon-color: rgba($tabs-md-tab-color-inactive, $tabs-md-tab-opacity) !default;
+$tabs-md-tab-icon-color: $tabbar-md-text-color !default;
/// @prop - Icon color of the active tab button
-$tabs-md-tab-icon-color-active: $tabs-md-tab-color-active !default;
+$tabs-md-tab-icon-color-active: $tabbar-md-text-color-active !default;
/// @prop - Font size of the active tab button text
$tabs-md-tab-font-size-active: 14px !default;
@@ -104,3 +101,6 @@ $tabs-md-tab-icon-transition: transform .3s ease-in-out !default
/// @prop - Size of the tab button icon
$tabs-md-tab-icon-size: 24px !default;
+
+/// @prop - Opacity of the inactive tab button
+$tabs-md-tab-opacity: .7 !default;
diff --git a/packages/core/src/components/tabs/tabs.tsx b/packages/core/src/components/tabs/tabs.tsx
index d7cc78b938..9e5fc3b3ca 100644
--- a/packages/core/src/components/tabs/tabs.tsx
+++ b/packages/core/src/components/tabs/tabs.tsx
@@ -20,6 +20,13 @@ export class Tabs {
@Prop({ context: 'config' }) config: Config;
+ /**
+ * The color to use from your Sass `$colors` map.
+ * Default options are: `"primary"`, `"secondary"`, `"danger"`, `"light"`, and `"dark"`.
+ * For more information, see [Theming your App](/docs/theming/theming-your-app).
+ */
+ @Prop() color: string;
+
/**
* A unique name for the tabs
*/
@@ -214,6 +221,7 @@ export class Tabs {
dom.push(
-
+
diff --git a/packages/core/src/components/textarea/textarea.ios.scss b/packages/core/src/components/textarea/textarea.ios.scss
index da4d6f9e6e..6d1a286b37 100644
--- a/packages/core/src/components/textarea/textarea.ios.scss
+++ b/packages/core/src/components/textarea/textarea.ios.scss
@@ -5,6 +5,7 @@
// --------------------------------------------------
.native-textarea-ios {
+ @include placeholder($textarea-ios-placeholder-color);
@include margin($textarea-ios-margin-top, $textarea-ios-margin-end, $textarea-ios-margin-bottom, $textarea-ios-margin-start);
@include padding(0);
diff --git a/packages/core/src/components/textarea/textarea.ios.vars.scss b/packages/core/src/components/textarea/textarea.ios.vars.scss
index 9f2deff9b0..3ed51ac579 100644
--- a/packages/core/src/components/textarea/textarea.ios.vars.scss
+++ b/packages/core/src/components/textarea/textarea.ios.vars.scss
@@ -5,6 +5,15 @@
// iOS Textarea
// --------------------------------------------------
+/// @prop - Margin start of the textarea when it is after a label
+$textarea-ios-by-label-margin-start: $item-ios-padding-start !default;
+
+/// @prop - Font family of the textarea
+$textarea-ios-font-family: $font-family-ios-base !default;
+
+/// @prop - Font size of the textarea
+$textarea-ios-font-size: inherit !default;
+
/// @prop - Margin top of the textarea
$textarea-ios-margin-top: $item-ios-padding-top !default;
@@ -17,11 +26,5 @@ $textarea-ios-margin-bottom: $item-ios-padding-bottom !default;
/// @prop - Margin start of the textarea
$textarea-ios-margin-start: 0 !default;
-/// @prop - Font family of the textarea
-$textarea-ios-font-family: $font-family-ios-base !default;
-
-/// @prop - Font size of the textarea
-$textarea-ios-font-size: inherit !default;
-
-/// @prop - Margin start of the textarea when it is after a label
-$textarea-ios-by-label-margin-start: $item-ios-padding-start !default;
+/// @prop - Placeholder text color of the textarea
+$textarea-ios-placeholder-color: $placeholder-text-ios-color !default;
diff --git a/packages/core/src/components/textarea/textarea.md.scss b/packages/core/src/components/textarea/textarea.md.scss
index 2325eecac2..d2342a8de5 100644
--- a/packages/core/src/components/textarea/textarea.md.scss
+++ b/packages/core/src/components/textarea/textarea.md.scss
@@ -5,6 +5,7 @@
// --------------------------------------------------
.native-textarea-md {
+ @include placeholder($textarea-md-placeholder-color);
@include margin($textarea-md-margin-top, $textarea-md-margin-end, $textarea-md-margin-bottom, $textarea-md-margin-start);
@include padding(0);
diff --git a/packages/core/src/components/textarea/textarea.md.vars.scss b/packages/core/src/components/textarea/textarea.md.vars.scss
index ceba19df8c..a886ec4136 100644
--- a/packages/core/src/components/textarea/textarea.md.vars.scss
+++ b/packages/core/src/components/textarea/textarea.md.vars.scss
@@ -22,3 +22,6 @@ $textarea-md-margin-bottom: $item-md-padding-bottom !default;
/// @prop - Margin start of the textarea
$textarea-md-margin-start: ($item-md-padding-start / 2) !default;
+
+/// @prop - Placeholder text color of the textarea
+$textarea-md-placeholder-color: $placeholder-text-md-color !default;
diff --git a/packages/core/src/components/textarea/textarea.scss b/packages/core/src/components/textarea/textarea.scss
index 099ed89427..189ad15a7d 100644
--- a/packages/core/src/components/textarea/textarea.scss
+++ b/packages/core/src/components/textarea/textarea.scss
@@ -27,7 +27,6 @@ ion-textarea {
// --------------------------------------------------
.native-textarea {
- @include placeholder($textarea-placeholder-color);
@include appearance(none);
@include border-radius(0);
diff --git a/packages/core/src/components/textarea/textarea.vars.scss b/packages/core/src/components/textarea/textarea.vars.scss
index bda35e9134..e21c162d17 100644
--- a/packages/core/src/components/textarea/textarea.vars.scss
+++ b/packages/core/src/components/textarea/textarea.vars.scss
@@ -1,6 +1 @@
@import "../../themes/ionic.globals";
-
-// Textarea
-// --------------------------------------------------
-
-$textarea-placeholder-color: #999 !default;
diff --git a/packages/core/src/components/title/title.ios.scss b/packages/core/src/components/title/title.ios.scss
index bada6f2f66..145ab94ee1 100644
--- a/packages/core/src/components/title/title.ios.scss
+++ b/packages/core/src/components/title/title.ios.scss
@@ -28,10 +28,10 @@
pointer-events: auto;
}
-@each $color-name, $color-base, $color-contrast in get-colors($colors-ios) {
+@each $color-name, $color-value in $colors-ios {
+ $color-contrast: ion-color($colors-ios, $color-name, contrast, ios);
.toolbar-#{$color-name} .toolbar-title-ios {
color: $color-contrast;
}
-
}
diff --git a/packages/core/src/components/title/title.ios.vars.scss b/packages/core/src/components/title/title.ios.vars.scss
index 736906be1e..ca661e4234 100644
--- a/packages/core/src/components/title/title.ios.vars.scss
+++ b/packages/core/src/components/title/title.ios.vars.scss
@@ -13,4 +13,4 @@ $toolbar-ios-title-font-weight: 600 !default;
$toolbar-ios-title-text-align: center !default;
/// @prop - Text color of the toolbar title
-$toolbar-ios-title-text-color: color-contrast($colors-ios, $toolbar-ios-background) !default;
+$toolbar-ios-title-text-color: $toolbar-ios-text-color !default;
diff --git a/packages/core/src/components/title/title.md.scss b/packages/core/src/components/title/title.md.scss
index a2594642ba..bcb030c450 100644
--- a/packages/core/src/components/title/title.md.scss
+++ b/packages/core/src/components/title/title.md.scss
@@ -12,10 +12,10 @@
color: $toolbar-md-title-text-color;
}
-@each $color-name, $color-base, $color-contrast in get-colors($colors-md) {
+@each $color-name, $color-value in $colors-md {
+ $color-contrast: ion-color($colors-md, $color-name, contrast, md);
.toolbar-#{$color-name} .toolbar-title-md {
color: $color-contrast;
}
-
}
diff --git a/packages/core/src/components/title/title.md.vars.scss b/packages/core/src/components/title/title.md.vars.scss
index 0d26942bc4..9aacc073ba 100644
--- a/packages/core/src/components/title/title.md.vars.scss
+++ b/packages/core/src/components/title/title.md.vars.scss
@@ -7,4 +7,4 @@
$toolbar-md-title-font-size: 20px !default;
/// @prop - Text color of the toolbar title
-$toolbar-md-title-text-color: color-contrast($colors-md, $toolbar-md-background, md) !default;
+$toolbar-md-title-text-color: $toolbar-md-text-color !default;
diff --git a/packages/core/src/components/toast/toast.ios.scss b/packages/core/src/components/toast/toast.ios.scss
index d10ec7610f..2feeb6dff3 100644
--- a/packages/core/src/components/toast/toast.ios.scss
+++ b/packages/core/src/components/toast/toast.ios.scss
@@ -20,11 +20,11 @@
max-width: $toast-max-width;
- background: $toast-ios-background;
+ background: $toast-ios-background-color;
}
.toast-translucent-ios .toast-wrapper {
- background: rgba($toast-ios-background, $toast-ios-translucent-opacity);
+ background: $toast-ios-translucent-background-color;
backdrop-filter: $toast-ios-translucent-filter;
-webkit-backdrop-filter: $toast-ios-translucent-filter;
diff --git a/packages/core/src/components/toast/toast.ios.vars.scss b/packages/core/src/components/toast/toast.ios.vars.scss
index 2fac4136c8..1a75dbe95d 100644
--- a/packages/core/src/components/toast/toast.ios.vars.scss
+++ b/packages/core/src/components/toast/toast.ios.vars.scss
@@ -6,14 +6,17 @@
/// @prop - Font family of the toast
$toast-ios-font-family: $font-family-ios-base !default;
-/// @prop - Background of the toast wrapper
-$toast-ios-background: rgba(237, 237, 239, 1) !default;
+/// @prop - Background Color of the toast wrapper
+$toast-ios-background-color: $background-ios-color-step-100 !default;
+
+/// @prop - Background Color of the toast wrapper when translucent
+$toast-ios-translucent-background-color: ion-color-alpha($background-ios-color-value, background-ios-color, $alpha-ios-high) !default;
/// @prop - Border radius of the toast wrapper
$toast-ios-border-radius: 14px !default;
/// @prop - Color of the toast title
-$toast-ios-title-color: rgba(71, 71, 71, 1) !default;
+$toast-ios-title-color: $text-ios-color-step-100 !default;
/// @prop - Font size of the toast title
$toast-ios-title-font-size: 14px !default;
@@ -31,10 +34,7 @@ $toast-ios-title-padding-bottom: $toast-ios-title-padding-top !
$toast-ios-title-padding-start: $toast-ios-title-padding-end !default;
/// @prop - Color of the toast button
-$toast-ios-button-color: rgba(71, 71, 71, 1) !default;
+$toast-ios-button-color: $text-ios-color-step-200 !default;
/// @prop - Filter of the translucent toast
$toast-ios-translucent-filter: saturate(180%) blur(20px) !default;
-
-/// @prop - Opacity of the translucent toast
-$toast-ios-translucent-opacity: .88 !default;
diff --git a/packages/core/src/components/toast/toast.md.vars.scss b/packages/core/src/components/toast/toast.md.vars.scss
index aed438b5da..dfa76bb657 100644
--- a/packages/core/src/components/toast/toast.md.vars.scss
+++ b/packages/core/src/components/toast/toast.md.vars.scss
@@ -7,10 +7,10 @@
$toast-md-font-family: $font-family-md-base !default;
/// @prop - Background of the toast wrapper
-$toast-md-background: #333 !default;
+$toast-md-background: $text-md-color-step-100 !default;
/// @prop - Color of the toast title
-$toast-md-title-color: #fff !default;
+$toast-md-title-color: $background-md-color !default;
/// @prop - Font size of the toast title
$toast-md-title-font-size: 15px !default;
diff --git a/packages/core/src/components/toggle/toggle.ios.scss b/packages/core/src/components/toggle/toggle.ios.scss
index 646e1378ec..3201cb7d16 100644
--- a/packages/core/src/components/toggle/toggle.ios.scss
+++ b/packages/core/src/components/toggle/toggle.ios.scss
@@ -151,18 +151,18 @@
// iOS Toggle Color Mixin
// --------------------------------------------------
-@mixin ios-toggle-theme($color-name, $color-base) {
+@mixin ios-toggle-theme($color-name) {
+ $color-base: ion-color($colors-ios, $color-name, base, ios);
.toggle-ios-#{$color-name}.toggle-checked .toggle-icon {
background-color: $color-base;
}
-
}
// Generate iOS Toggle Colors
// --------------------------------------------------
-@each $color-name, $color-base, $color-contrast in get-colors($colors-ios) {
- @include ios-toggle-theme($color-name, $color-base);
+@each $color-name, $color-value in $colors-ios {
+ @include ios-toggle-theme($color-name);
}
diff --git a/packages/core/src/components/toggle/toggle.ios.vars.scss b/packages/core/src/components/toggle/toggle.ios.vars.scss
index 071e7e96fe..504f3d6398 100644
--- a/packages/core/src/components/toggle/toggle.ios.vars.scss
+++ b/packages/core/src/components/toggle/toggle.ios.vars.scss
@@ -18,13 +18,13 @@ $toggle-ios-border-width: 2px !default;
$toggle-ios-border-radius: $toggle-ios-height / 2 !default;
/// @prop - Background color of the unchecked toggle
-$toggle-ios-background-color-off: $list-ios-background-color !default;
+$toggle-ios-background-color-off: $item-ios-background-color !default;
/// @prop - Border color of the unchecked toggle
-$toggle-ios-border-color-off: grayscale(lighten($list-ios-border-color, 11%)) !default;
+$toggle-ios-border-color-off: $background-ios-color-step-100 !default;
/// @prop - Background color of the checked toggle
-$toggle-ios-background-color-on: color($colors-ios, primary) !default;
+$toggle-ios-background-color-on: ion-color($colors-ios, primary, base, ios) !default;
/// @prop - Width of the toggle handle
$toggle-ios-handle-width: $toggle-ios-height - ($toggle-ios-border-width * 2) !default;
diff --git a/packages/core/src/components/toggle/toggle.md.scss b/packages/core/src/components/toggle/toggle.md.scss
index 3ea6df6012..718bf229e9 100644
--- a/packages/core/src/components/toggle/toggle.md.scss
+++ b/packages/core/src/components/toggle/toggle.md.scss
@@ -118,22 +118,23 @@
// Material Design Color Mixin
// --------------------------------------------------
-@mixin toggle-theme-md($color-name, $color-base) {
+@mixin toggle-theme-md($color-name) {
+ $color-base: ion-color($colors-md, $color-name, base, md);
+ $color-tint: ion-color($colors-md, $color-name, tint, md);
.toggle-md-#{$color-name}.toggle-checked .toggle-icon {
- background-color: lighten($color-base, 25%);
+ background-color: $color-tint;
}
.toggle-md-#{$color-name}.toggle-checked .toggle-inner {
background-color: $color-base;
}
-
}
// Generate Material Design Toggle Auxiliary Colors
// --------------------------------------------------
-@each $color-name, $color-base, $color-contrast in get-colors($colors-md) {
- @include toggle-theme-md($color-name, $color-base);
+@each $color-name, $color-value in $colors-md {
+ @include toggle-theme-md($color-name);
}
diff --git a/packages/core/src/components/toggle/toggle.md.vars.scss b/packages/core/src/components/toggle/toggle.md.vars.scss
index 67f3aad494..d76aa84cdb 100644
--- a/packages/core/src/components/toggle/toggle.md.vars.scss
+++ b/packages/core/src/components/toggle/toggle.md.vars.scss
@@ -6,7 +6,7 @@
// --------------------------------------------------
/// @prop - Color of the active toggle
-$toggle-md-active-color: color($colors-md, primary) !default;
+$toggle-md-active-color: ion-color($colors-md, primary, base, md) !default;
/// @prop - Width of the toggle track
$toggle-md-track-width: 36px !default;
@@ -15,10 +15,10 @@ $toggle-md-track-width: 36px !default;
$toggle-md-track-height: 14px !default;
/// @prop - Background color of the toggle track
-$toggle-md-track-background-color-off: $list-md-border-color !default;
+$toggle-md-track-background-color-off: $item-md-border-color !default;
/// @prop - Background color of the checked toggle track
-$toggle-md-track-background-color-on: lighten($toggle-md-active-color, 25%) !default;
+$toggle-md-track-background-color-on: ion-color-alpha($colors-md, primary, $alpha-md-medium, md) !default;
/// @prop - Width of the toggle handle
$toggle-md-handle-width: 20px !default;
diff --git a/packages/core/src/components/toolbar/toolbar.ios.scss b/packages/core/src/components/toolbar/toolbar.ios.scss
index 0bb2bc49d5..4ea4784911 100644
--- a/packages/core/src/components/toolbar/toolbar.ios.scss
+++ b/packages/core/src/components/toolbar/toolbar.ios.scss
@@ -25,7 +25,7 @@
// --------------------------------------------------
.toolbar-background-ios {
- background: $toolbar-ios-background;
+ background: $toolbar-ios-background-color;
}
@@ -61,7 +61,9 @@
.header-translucent-ios .toolbar-background-ios,
.footer-translucent-ios .toolbar-background-ios,
.toolbar-translucent-ios .toolbar-background-ios {
- background: rgba($toolbar-ios-background, $toolbar-ios-translucent-opacity);
+ // TODO: @color-mod in the future we will want to replace this with the following color-mod
+ // background-color: color-mod($toolbar-ios-background-color, a($alpha-ios-highest));
+ background: $toolbar-ios-translucent-background-color;
}
.toolbar-translucent-ios .toolbar-background-ios {
@@ -80,7 +82,11 @@
min-width: 0;
}
-@mixin ios-toolbar-theme($color-name, $color-base, $color-contrast) {
+@mixin ios-toolbar-theme($color-name) {
+ $color-base: ion-color($colors-ios, $color-name, base, ios);
+ $color-contrast: ion-color($colors-ios, $color-name, contrast, ios);
+ $color-translucent: ion-color-alpha($colors-ios, $color-name, alpha-highest, ios);
+
.toolbar-ios-#{$color-name} {
.toolbar-background-ios {
@@ -92,10 +98,10 @@
color: $color-contrast;
}
- @each $color-name, $color-base, $color-contrast in get-colors($colors-ios) {
- @include ios-bar-button-default($color-name, $color-base, $color-contrast);
- @include ios-bar-button-outline($color-name, $color-base, $color-contrast);
- @include ios-bar-button-solid($color-name, $color-base, $color-contrast);
+ @each $color-name, $color-value in $colors-ios {
+ @include ios-bar-button-default($color-name);
+ @include ios-bar-button-outline($color-name);
+ @include ios-bar-button-solid($color-name);
}
}
@@ -105,9 +111,8 @@
.toolbar-translucent-ios-#{$color-name} {
.toolbar-background-ios {
- background: rgba($color-base, $toolbar-ios-translucent-opacity);
+ background: $color-translucent;
}
-
}
}
@@ -151,7 +156,10 @@
font-size: $toolbar-ios-button-font-size;
}
-@mixin ios-bar-button-default($color-name, $color-base, $color-contrast) {
+@mixin ios-bar-button-default($color-name, $color-base: null) {
+ @if ($color-base == null) {
+ $color-base: ion-color($colors-ios, $color-name, base, ios);
+ }
.bar-button-#{$color-name}-ios,
.bar-button-clear-ios-#{$color-name},
@@ -191,7 +199,7 @@
background-color: transparent;
&.activated {
- color: color-contrast($colors-ios, $toolbar-ios-button-color);
+ color: $toolbar-ios-text-color;
background-color: $toolbar-ios-button-color;
}
}
@@ -200,20 +208,20 @@
opacity: .4;
}
-@mixin ios-bar-button-outline($color-name, $color-base, $color-contrast) {
+@mixin ios-bar-button-outline($color-name) {
+ $color-base: ion-color($colors-ios, $color-name, base, ios);
+ $color-contrast: ion-color($colors-ios, $color-name, contrast, ios);
.bar-button-outline-ios-#{$color-name} {
- $fg-color: $color-base;
- border-color: $fg-color;
- color: $fg-color;
+ border-color: $color-base;
+ color: $color-base;
background-color: transparent;
&.activated {
color: $color-contrast;
- background-color: $fg-color;
+ background-color: $color-base;
}
}
-
}
@@ -221,22 +229,29 @@
// --------------------------------------------------
.bar-button-solid-ios {
- color: color-contrast($colors-ios, $toolbar-ios-button-color);
+ color: $toolbar-ios-button-background-color;
background-color: $toolbar-ios-button-color;
+ &:hover:not(.disable-hover) {
+ color: $toolbar-ios-button-background-color;
+ opacity: .4;
+ }
+
&.activated {
- color: color-contrast($colors-ios, $toolbar-ios-button-color);
- background-color: color-shade($toolbar-ios-button-color);
+ color: $toolbar-ios-button-background-color;
+ background-color: $toolbar-ios-button-background-color-activated;
opacity: .4;
}
}
.enable-hover .bar-button-solid-ios:hover {
- color: color-contrast($colors-ios, $toolbar-ios-button-color);
opacity: .4;
}
-@mixin ios-bar-button-solid($color-name, $color-base, $color-contrast) {
+@mixin ios-bar-button-solid($color-name) {
+ $color-base: ion-color($colors-ios, $color-name, base, ios);
+ $color-contrast: ion-color($colors-ios, $color-name, contrast, ios);
+ $color-shade: ion-color($colors-ios, $color-name, tint, ios);
.bar-button-solid-ios-#{$color-name} {
color: $color-contrast;
@@ -244,10 +259,9 @@
&.activated {
color: $color-contrast;
- background-color: color-shade($color-base);
+ background-color: $color-shade;
}
}
-
}
@@ -341,14 +355,14 @@
// iOS Toolbar Color Generation
// --------------------------------------------------
-@include ios-bar-button-default(default, $toolbar-ios-button-color, color-contrast($colors-ios, $toolbar-ios-button-color, ios));
-@include ios-bar-button-default(clear, $toolbar-ios-button-color, color-contrast($colors-ios, $toolbar-ios-button-color, ios));
+@include ios-bar-button-default(default, $toolbar-ios-button-color);
+@include ios-bar-button-default(clear, $toolbar-ios-button-color);
-@each $color-name, $color-base, $color-contrast in get-colors($colors-ios) {
- @include ios-toolbar-theme($color-name, $color-base, $color-contrast);
- @include ios-bar-button-default($color-name, $color-base, $color-contrast);
- @include ios-bar-button-outline($color-name, $color-base, $color-contrast);
- @include ios-bar-button-solid($color-name, $color-base, $color-contrast);
+@each $color-name, $color-value in $colors-ios {
+ @include ios-toolbar-theme($color-name);
+ @include ios-bar-button-default($color-name);
+ @include ios-bar-button-outline($color-name);
+ @include ios-bar-button-solid($color-name);
}
diff --git a/packages/core/src/components/toolbar/toolbar.ios.vars.scss b/packages/core/src/components/toolbar/toolbar.ios.vars.scss
index 79c9b9bd26..e157539951 100644
--- a/packages/core/src/components/toolbar/toolbar.ios.vars.scss
+++ b/packages/core/src/components/toolbar/toolbar.ios.vars.scss
@@ -16,25 +16,31 @@ $toolbar-order-ios: (
);
/// @prop - Font family of the toolbar
-$toolbar-ios-font-family: $font-family-ios-base !default;
+$toolbar-ios-font-family: $font-family-ios-base !default;
/// @prop - Font size of the toolbar button
-$toolbar-ios-button-font-size: 17px !default;
+$toolbar-ios-button-font-size: 17px !default;
/// @prop - Text color of the toolbar button
-$toolbar-ios-button-color: color-contrast($colors-ios, $toolbar-ios-background, ios) !default;
+$toolbar-ios-button-color: $toolbar-ios-text-color !default;
+
+/// @prop - Background color of the toolbar button
+$toolbar-ios-button-background-color: $toolbar-ios-background-color !default;
+
+/// @prop - Background color of the toolbar button when activated
+$toolbar-ios-button-background-color-activated: ion-color($colors-ios, primary, tint, ios);
/// @prop - Border radius of the toolbar button
-$toolbar-ios-button-border-radius: 4px !default;
+$toolbar-ios-button-border-radius: 4px !default;
/// @prop - Font weight of the strong toolbar button
-$toolbar-ios-button-strong-font-weight: 600 !default;
+$toolbar-ios-button-strong-font-weight: 600 !default;
/// @prop - Fill color of the toolbar button icon
-$toolbar-ios-button-icon-fill-color: currentColor !default;
+$toolbar-ios-button-icon-fill-color: currentColor !default;
/// @prop - Filter of the translucent toolbar
-$toolbar-ios-translucent-filter: saturate(180%) blur(20px) !default;
+$toolbar-ios-translucent-filter: saturate(180%) blur(20px) !default;
/// @prop - Opacity of the translucent toolbar
-$toolbar-ios-translucent-opacity: .88 !default;
+$toolbar-ios-translucent-opacity: .88 !default;
diff --git a/packages/core/src/components/toolbar/toolbar.md.scss b/packages/core/src/components/toolbar/toolbar.md.scss
index 7a6e4f3438..56aa3ece1a 100644
--- a/packages/core/src/components/toolbar/toolbar.md.scss
+++ b/packages/core/src/components/toolbar/toolbar.md.scss
@@ -18,7 +18,7 @@
.toolbar-background-md {
border-color: $toolbar-md-border-color;
- background: $toolbar-md-background;
+ background: $toolbar-md-background-color;
}
@@ -73,7 +73,10 @@
}
-@mixin md-toolbar-theme($color-name, $color-base, $color-contrast) {
+@mixin md-toolbar-theme($color-name) {
+ $color-base: ion-color($colors-md, $color-name, base, md);
+ $color-contrast: ion-color($colors-md, $color-name, contrast, md);
+
.toolbar-md-#{$color-name} {
.toolbar-background-md {
@@ -99,10 +102,10 @@
border-color: $color-contrast;
}
- @each $color-name, $color-base, $color-contrast in get-colors($colors-md, md) {
- @include md-bar-button-default($color-name, $color-base, $color-contrast);
- @include md-bar-button-outline($color-name, $color-base, $color-contrast);
- @include md-bar-button-solid($color-name, $color-base, $color-contrast);
+ @each $color-name, $color-value in $colors-md {
+ @include md-bar-button-default($color-name);
+ @include md-bar-button-outline($color-name);
+ @include md-bar-button-solid($color-name);
}
}
}
@@ -160,7 +163,10 @@
overflow: hidden;
}
-@mixin md-bar-button-default($color-name, $color-base, $color-contrast) {
+@mixin md-bar-button-default($color-name, $color-base: null) {
+ @if($color-base == null) {
+ $color-base: ion-color($colors-md, $color-name, base, md);
+ }
.bar-button-#{$color-name}-md,
.bar-button-clear-md-#{$color-name},
@@ -174,7 +180,6 @@
.enable-hover .bar-button-md-#{$color-name}:hover {
color: $color-base;
}
-
}
@@ -209,12 +214,12 @@
opacity: .4;
}
-@mixin md-bar-button-outline($color-name, $color-base, $color-contrast) {
+@mixin md-bar-button-outline($color-name) {
+ $color-shade: ion-color($colors-md, $color-name, tint, md);
.bar-button-outline-md-#{$color-name} {
- $fg-color: color-shade($color-base);
- border-color: $fg-color;
- color: $fg-color;
+ border-color: $color-shade;
+ color: $color-shade;
background-color: transparent;
&.activated {
@@ -222,10 +227,9 @@
}
.ripple-effect {
- background-color: $fg-color;
+ background-color: $color-shade;
}
}
-
}
@@ -233,22 +237,22 @@
// --------------------------------------------------
.bar-button-solid-md {
- color: color-contrast($colors-md, $toolbar-md-button-color, md);
+ color: $toolbar-md-button-background-color;
background-color: $toolbar-md-button-color;
&.activated {
- color: color-contrast($colors-md, $toolbar-md-button-color, md);
- background-color: color-shade($toolbar-md-button-color);
+ color: $toolbar-md-button-background-color;
+ background-color: $toolbar-md-button-background-color-activated;
}
}
.enable-hover .bar-button-solid-md:hover {
- color: color-contrast($colors-md, $toolbar-md-button-color, md);
+ color: $toolbar-md-button-background-color;
}
-
-
-@mixin md-bar-button-solid($color-name, $color-base, $color-contrast) {
+@mixin md-bar-button-solid($color-name) {
+ $color-base: ion-color($colors-md, $color-name, base, md);
+ $color-contrast: ion-color($colors-md, $color-name, contrast, md);
.bar-button-solid-md-#{$color-name} {
color: $color-contrast;
@@ -256,10 +260,9 @@
&.activated {
color: $color-contrast;
- background-color: color-shade($color-base);
+ background-color: ion-color($colors-md, $color-base, tint, md);
}
}
-
}
@@ -348,14 +351,14 @@
// Material Design Toolbar Color Generation
// --------------------------------------------------
-@include md-bar-button-default(default, $toolbar-md-button-color, color-contrast($colors-md, $toolbar-md-button-color, md));
-@include md-bar-button-default(clear, $toolbar-md-button-color, color-contrast($colors-md, $toolbar-md-button-color, md));
+@include md-bar-button-default(default, $toolbar-md-button-color);
+@include md-bar-button-default(clear, $toolbar-md-button-color);
-@each $color-name, $color-base, $color-contrast in get-colors($colors-md, md) {
- @include md-toolbar-theme($color-name, $color-base, $color-contrast);
- @include md-bar-button-default($color-name, $color-base, $color-contrast);
- @include md-bar-button-outline($color-name, $color-base, $color-contrast);
- @include md-bar-button-solid($color-name, $color-base, $color-contrast);
+@each $color-name, $color-value in $colors-md {
+ @include md-toolbar-theme($color-name);
+ @include md-bar-button-default($color-name);
+ @include md-bar-button-outline($color-name);
+ @include md-bar-button-solid($color-name);
}
diff --git a/packages/core/src/components/toolbar/toolbar.md.vars.scss b/packages/core/src/components/toolbar/toolbar.md.vars.scss
index 1677da3d54..9274bdf141 100644
--- a/packages/core/src/components/toolbar/toolbar.md.vars.scss
+++ b/packages/core/src/components/toolbar/toolbar.md.vars.scss
@@ -16,19 +16,25 @@ $toolbar-order-md: (
);
/// @prop - Font family of the toolbar
-$toolbar-md-font-family: $font-family-md-base !default;
+$toolbar-md-font-family: $font-family-md-base !default;
/// @prop - Font size of the toolbar button
-$toolbar-md-button-font-size: 14px !default;
+$toolbar-md-button-font-size: 14px !default;
/// @prop - Text color of the toolbar button
-$toolbar-md-button-color: color-contrast($colors-md, $toolbar-md-background, md) !default;
+$toolbar-md-button-color: $toolbar-md-text-color !default;
+
+/// @prop - Background color of the toolbar button
+$toolbar-md-button-background-color: $toolbar-md-background-color !default;
+
+/// @prop - Background color of the toolbar button when activated
+$toolbar-md-button-background-color-activated: ion-color($colors-md, primary, tint, md);
/// @prop - Border radius of the toolbar button
-$toolbar-md-button-border-radius: 2px !default;
+$toolbar-md-button-border-radius: 2px !default;
/// @prop - Fill color of the toolbar button icon
-$toolbar-md-button-icon-fill-color: currentColor !default;
+$toolbar-md-button-icon-fill-color: currentColor !default;
/// @prop - Font weight of the strong toolbar button
-$toolbar-md-button-strong-font-weight: bold !default;
+$toolbar-md-button-strong-font-weight: bold !default;
diff --git a/packages/core/src/themes/css/default.css b/packages/core/src/themes/css/default.css
index bbfeaba882..4b8553eb89 100644
--- a/packages/core/src/themes/css/default.css
+++ b/packages/core/src/themes/css/default.css
@@ -1,54 +1,119 @@
/** default theme **/
-
:root {
- --color-primary: #3880ff;
- --color-primary-tint: #5896ff;
- --color-primary-shade: #135ddf;
- --color-primary-contrast: #ffffff;
- --color-secondary: #0cd1e8;
- --color-secondary-tint: #5de6f6;
- --color-secondary-shade: #00bce0;
- --color-secondary-contrast: #ffffff;
- --color-tertiary: #7044ff;
- --color-tertiary-tint: #896bff;
- --color-tertiary-shade: #4d16d6;
- --color-tertiary-contrast: #ffffff;
- --color-success: #10dc60;
- --color-success-tint: #38ec7f;
- --color-success-shade: #00bc4a;
- --color-success-contrast: #ffffff;
- --color-warning: #ffce00;
- --color-warning-tint: #ffe05e;
- --color-warning-shade: #f5ad00;
- --color-warning-contrast: #ffffff;
- --color-danger: #f04141;
- --color-danger-tint: #ff6464;
- --color-danger-shade: #ca1717;
- --color-danger-contrast: #ffffff;
- --color-light: #f4f5f8;
- --color-light-tint: #ffffff;
- --color-light-shade: #e2e4e9;
- --color-light-contrast: #000000;
- --color-medium: #989aa2;
- --color-medium-tint: #c1c4cd;
- --color-medium-shade: #62646a;
- --color-medium-contrast: #000000;
- --color-dark: #222428;
- --color-dark-tint: #3f4248;
- --color-dark-shade: #000000;
- --color-dark-contrast: #ffffff;
- --text-color: #000000;
- --text-color-alt: #898b93;
- --background-color: #ffffff;
- --background-color-alt: #f4f5f8;
- --toolbar-background-color: #f4f5f8;
- --tabbar-background-color: #f4f5f8;
- --tabbar-text-color: #989aa2;
- --tabbar-text-color-active: #3880ff;
- --item-background-color: #ffffff;
- --item-background-color-alt: #c1c4cd;
- --border-color: #c1c4cd;
- --backdrop-color: #000000;
- --box-shadow-color: #000000;
-}
\ No newline at end of file
+ --ion-alpha-lowest: .06;
+ --ion-alpha-low: .1;
+ --ion-alpha-medium: .4;
+ --ion-alpha-high: .75;
+ --ion-alpha-highest: .9;
+ --ion-color-primary: #488aff;
+ --ion-color-primary-contrast: #fff;
+ --ion-color-primary-rgb: '72,138,255';
+ --ion-color-primary-shade: #3f79e0;
+ --ion-color-primary-tint: #427feb;
+ --ion-color-secondary: #32db64;
+ --ion-color-secondary-contrast: #fff;
+ --ion-color-secondary-rgb: '50,219,100';
+ --ion-color-secondary-shade: #2cc158;
+ --ion-color-secondary-tint: #2ec95c;
+ --ion-color-tertiary: #f4a942;
+ --ion-color-tertiary-contrast: #fff;
+ --ion-color-tertiary-rgb: '244,169,66';
+ --ion-color-tertiary-shade: #d6903d;
+ --ion-color-tertiary-tint: #ffa529;
+ --ion-color-success: #10dc60;
+ --ion-color-success-contrast: #fff;
+ --ion-color-success-rgb: '16,220,96';
+ --ion-color-success-shade: #10cb60;
+ --ion-color-success-tint: #23df6d;
+ --ion-color-warning: #ffce00;
+ --ion-color-warning-contrast: #000;
+ --ion-color-warning-rgb: '255,206,0';
+ --ion-color-warning-shade: #f1c100;
+ --ion-color-warning-tint: #ffd214;
+ --ion-color-danger: #f53d3d;
+ --ion-color-danger-contrast: #fff;
+ --ion-color-danger-rgb: '245,61,61';
+ --ion-color-danger-shade: #d83636;
+ --ion-color-danger-tint: #e13838;
+ --ion-color-light: #f4f4f4;
+ --ion-color-light-contrast: #000;
+ --ion-color-light-rgb: '244,244,244';
+ --ion-color-light-shade: #d7d7d7;
+ --ion-color-light-tint: #e0e0e0;
+ --ion-color-medium: #989aa2;
+ --ion-color-medium-contrast: #000;
+ --ion-color-medium-rgb: '152,154,162';
+ --ion-color-medium-shade: #8c8e95;
+ --ion-color-medium-tint: #86888f;
+ --ion-color-dark: #222;
+ --ion-color-dark-contrast: #fff;
+ --ion-color-dark-rgb: '34,34,34';
+ --ion-color-dark-shade: #343434;
+ --ion-color-dark-tint: #3d3d3d;
+ --ion-backdrop-color: #000;
+ --ion-background-color: #fff;
+ --ion-background-color-rgb: '255,255,255';
+ --ion-background-color-step-100: #f2f2f2;
+ --ion-background-color-step-200: #dcdcdc;
+ --ion-background-color-step-300: #bdbdbd;
+ --ion-background-color-step-400: #444;
+ --ion-border-color: #b2b2b2;
+ --ion-box-shadow-color: #000;
+ --ion-text-color: #000;
+ --ion-text-color-rgb: '0,0,0';
+ --ion-text-color-step-100: #222;
+ --ion-text-color-step-200: #666;
+ --ion-text-color-step-300: #999;
+ --ion-text-color-step-400: #c5c5c5;
+ --ion-tabbar-background-color: #f8f8f8;
+ --ion-tabbar-border-color: var(--ion-border-color);
+ --ion-tabbar-text-color: #8c8c8c;
+ --ion-tabbar-text-color-active: #488aff;
+ --ion-toolbar-background-color: #f8f8f8;
+ --ion-toolbar-border-color: var(--ion-border-color);
+ --ion-toolbar-color-active: #488aff;
+ --ion-toolbar-color-inactive: #8c8c8c;
+ --ion-toolbar-text-color: var(--ion-text-color);
+ --ion-item-background-color: var(--ion-background-color);
+ --ion-item-background-color-active: var(--ion-background-color);
+ --ion-item-border-color: #c8c7cc;
+ --ion-item-text-color: var(--ion-text-color);
+ --ion-placeholder-text-color: #999;
+
+ /* Material Design */
+ --ion-color-md-light: #e3e3e3;
+ --ion-color-md-light-contrast: #000;
+ --ion-color-md-light-rgb: '227,227,227';
+ --ion-color-md-light-shade: #d0d0d0;
+ --ion-color-md-light-tint: #f0f0f0;
+ --ion-border-md-color: #c1c4cd;
+ --ion-text-md-color-step-200: var(--ion-text-color-step-200);
+ --ion-tabbar-md-border-color: rgba(0, 0, 0, .07);
+ --ion-tabbar-md-text-color: var(--ion-text-md-color-step-200);
+ --ion-toolbar-md-border-color: var(--ion-border-md-color);
+ --ion-toolbar-md-text-color: #424242;
+ --ion-item-md-background-color-active: #f1f1f1;
+ --ion-item-md-border-color: #dedede;
+
+ /* iOS */
+ --ion-color-ios-primary: var(--ion-color-primary);
+ --ion-background-ios-color: var(--ion-background-color);
+ --ion-background-ios-color-step-100: #f7f7f7;
+ --ion-background-ios-color-step-200: #bdbdbd;
+ --ion-background-ios-color-step-300: #999;
+ --ion-background-ios-color-step-400: #222;
+ --ion-text-ios-color-step-100: #222;
+ --ion-text-ios-color-step-200: #666;
+ --ion-text-ios-color-step-300: #8f8f8f;
+ --ion-text-ios-color-step-400: #aeaeae;
+ --ion-border-ios-color: #c1c4cd;
+ --ion-tabbar-ios-translucent-background-color: rgba(248, 248, 248, 0.8);
+ --ion-tabbar-ios-border-color: rgba(0, 0, 0, .2);
+ --ion-tabbar-ios-text-color-active: var(--ion-color-ios-primary);
+ --ion-toolbar-ios-translucent-background-color: rgba(248, 248, 248, 0.8);
+ --ion-toolbar-ios-border-color: rgba(0, 0, 0, .2);
+ --ion-toolbar-ios-color-active: var(--ion-color-ios-primary);
+ --ion-item-ios-background-color: var(--ion-background-ios-color);
+ --ion-item-ios-background-color-active: #d9d9d9;
+}
diff --git a/packages/core/src/themes/css/oceanic.css b/packages/core/src/themes/css/oceanic.css
index b5d52be93d..0bb41ea916 100644
--- a/packages/core/src/themes/css/oceanic.css
+++ b/packages/core/src/themes/css/oceanic.css
@@ -1,54 +1,83 @@
/** oceanic theme **/
-
:root {
- --color-primary: #549ee7;
- --color-primary-tint: #59aafc;
- --color-primary-shade: #498bce;
- --color-primary-contrast: #ffffff;
- --color-secondary: #5fb3b3;
- --color-secondary-tint: #6ececf;
- --color-secondary-shade: #34a29d;
- --color-secondary-contrast: #ffffff;
- --color-tertiary: #fac863;
- --color-tertiary-tint: #ffd36a;
- --color-tertiary-shade: #eab30f;
- --color-tertiary-contrast: #ffffff;
- --color-success: #90d089;
- --color-success-tint: #a1eb9a;
- --color-success-shade: #81bc7b;
- --color-success-contrast: #ffffff;
- --color-warning: #f99157;
- --color-warning-tint: #ff9e60;
- --color-warning-shade: #ec8a54;
- --color-warning-contrast: #ffffff;
- --color-danger: #ec5f67;
- --color-danger-tint: #ff707b;
- --color-danger-shade: #cb535b;
- --color-danger-contrast: #ffffff;
- --color-light: #d8dee9;
- --color-light-tint: #ecf2ff;
- --color-light-shade: #bcc1cd;
- --color-light-contrast: #1b2b34;
- --color-medium: #65737e;
- --color-medium-tint: #a7adba;
- --color-medium-shade: #4f5b66;
- --color-medium-contrast: #ffffff;
- --color-dark: #1b2b34;
- --color-dark-tint: #343d46;
- --color-dark-shade: #070b0d;
- --color-dark-contrast: #d8dee9;
- --text-color: #ffffff;
- --text-color-alt: #a7adba;
- --background-color: #1b2b34;
- --background-color-alt: #343d46;
- --toolbar-background-color: #343d46;
- --tabbar-background-color: #343d46;
- --tabbar-text-color: #a7adba;
- --tabbar-text-color-active: #549ee7;
- --item-background-color: #343d46;
- --item-background-color-alt: #65737e;
- --border-color: #1b2b34;
- --backdrop-color: #1b2b34;
- --box-shadow-color: #000000;
-}
\ No newline at end of file
+ --ion-alpha-lowest: .06;
+ --ion-alpha-low: .1;
+ --ion-alpha-medium: .4;
+ --ion-alpha-high: .75;
+ --ion-alpha-highest: .9;
+ --ion-color-primary: #549ee7;
+ --ion-color-primary-contrast: #ffffff;
+ --ion-color-primary-rgb: '84,158,231';
+ --ion-color-primary-shade: #498bce;
+ --ion-color-primary-tint: #59aafc;
+ --ion-color-secondary: #5fb3b3;
+ --ion-color-secondary-contrast: #fff;
+ --ion-color-secondary-rgb: '95,179,179';
+ --ion-color-secondary-shade: #34a29d;
+ --ion-color-secondary-tint: #6ececf;
+ --ion-color-tertiary: #fac863;
+ --ion-color-tertiary-contrast: #fff;
+ --ion-color-tertiary-rgb: '250,200,99';
+ --ion-color-tertiary-shade: #eab30f;
+ --ion-color-tertiary-tint: #ffd36a;
+ --ion-color-success: #90d089;
+ --ion-color-success-contrast: #ffffff;
+ --ion-color-success-rgb: '144,208,137';
+ --ion-color-success-shade: #81bc7b;
+ --ion-color-success-tint: #a1eb9a;
+ --ion-color-warning: #f99157;
+ --ion-color-warning-contrast: #ffffff;
+ --ion-color-warning-rgb: '249,145,87';
+ --ion-color-warning-shade: #ec8a54;
+ --ion-color-warning-tint: #ff9e60;
+ --ion-color-danger: #ec5f67;
+ --ion-color-danger-contrast: #ffffff;
+ --ion-color-danger-rgb: '236,95,103';
+ --ion-color-danger-shade: #cb535b;
+ --ion-color-danger-tint: #ff707b;
+ --ion-color-light: #d8dee9;
+ --ion-color-light-contrast: #1b2b34;
+ --ion-color-light-rgb: '216,222,233';
+ --ion-color-light-shade: #bcc1cd;
+ --ion-color-light-tint: #ecf2ff;
+ --ion-color-medium: #65737e;
+ --ion-color-medium-contrast: #ffffff;
+ --ion-color-medium-rgb: '101,115,126';
+ --ion-color-medium-shade: #4f5b66;
+ --ion-color-medium-tint: #a7adba;
+ --ion-color-dark: #1b2b34;
+ --ion-color-dark-contrast: #d8dee9;
+ --ion-color-dark-rgb: '27,43,52';
+ --ion-color-dark-shade: #070b0d;
+ --ion-color-dark-tint: #343d46;
+ --ion-backdrop-color: #1b2b34;
+ --ion-background-color: #1b2b34;
+ --ion-background-color-rgb: '27,43,52';
+ --ion-background-color-step-100: #293a43;
+ --ion-background-color-step-200: #465b6e;
+ --ion-background-color-step-300: #61879e;
+ --ion-background-color-step-400: #91adbf;
+ --ion-border-color: #1b2b34;
+ --ion-box-shadow-color: #000000;
+ --ion-text-color: #ffffff;
+ --ion-text-color-rgb: '255,255,255';
+ --ion-text-color-step-100: #c5c5c5;
+ --ion-text-color-step-200: #b0b0b0;
+ --ion-text-color-step-300: #aeaeae;
+ --ion-text-color-step-400: #222;
+ --ion-tabbar-background-color: #343d46;
+ --ion-tabbar-border-color: var(--ion-border-color);
+ --ion-tabbar-text-color: #a7adba;
+ --ion-tabbar-text-color-active: #549ee7;
+ --ion-toolbar-background-color: #343d46;
+ --ion-toolbar-border-color: var(--ion-border-color);
+ --ion-toolbar-color-active: var(--ion-color-primary);
+ --ion-toolbar-color-inactive: #a7adba;
+ --ion-toolbar-text-color: var(--ion-text-color);
+ --ion-item-background-color: #343d46;
+ --ion-item-background-color-active: #232b34;
+ --ion-item-border-color: var(--ion-border-color);
+ --ion-item-text-color: var(--ion-text-color);
+ --ion-placeholder-text-color: #999;
+}
diff --git a/packages/core/src/themes/ionic.functions.color.scss b/packages/core/src/themes/ionic.functions.color.scss
new file mode 100644
index 0000000000..be36e6ace3
--- /dev/null
+++ b/packages/core/src/themes/ionic.functions.color.scss
@@ -0,0 +1,219 @@
+@import "./ionic.functions.list";
+@import "./ionic.functions.string";
+
+$css-variable-prefix: "--ion-";
+$default-color-variation: base;
+$default-color-prefix: color-;
+$enable-css-variables: true;
+$css-variables: ();
+$modes: (ios, md);
+
+@mixin css-variables-to-root {
+ :root {
+ @each $name, $color in $css-variables {
+ #{$name}: $color;
+ }
+ }
+}
+
+@function get-mode($name) {
+ @each $mode in $modes {
+ @if (str-contains($name, "-#{$mode}-") or (str-index($name, "#{$mode}-") == 1)) {
+ @return $mode;
+ }
+ }
+
+ @return null;
+}
+
+// Parses a color into its name/variation pairs from the color map
+// @private
+@function color-to-name-variation($colors, $color, $variation: null) {
+ $results: ();
+ $found: false;
+ @each $color-name, $color-value in $colors {
+ @if (not $found and type-of($color-value) == map) {
+ @each $color-variation-name, $color-variation-value in $color-value {
+ @if ($color == $color-variation-value) {
+ $variation: if($variation == $color-variation-name, $default-color-variation, $variation);
+ @if ($variation) {
+ $results: map-merge($results, (variation: $variation));
+ }
+ $results: map-merge($results, (name: $color-name));
+ $found: true;
+ }
+ }
+ } @else if (not $found and $color == $color-value) {
+ $results: map-merge($results, (name: $color-name));
+ $found: true;
+ }
+ }
+
+ @return $results;
+}
+
+@function color-to-rgb-list($color) {
+ @return #{red($color)},#{green($color)},#{blue($color)};
+}
+
+// Parses a css variable string into its original name/variation pair
+// @private
+@function css-variable-to-name-variation($variable) {
+ // Determine the name of this color from the CSS Variable
+ $prefix: #{$css-variable-prefix}#{$default-color-prefix};
+ // Extract the last css variable
+ $index: str-index($variable, $prefix);
+ $end-index: str-index($variable, ")");
+ $value: str-slice($variable, $index, $end-index);
+
+ // Find the name of the variable
+ $end-index: str-index($value, ",");
+ $name: str-slice($value, str-length($prefix) + 1, $end-index - 1);
+
+ // Default variation (base)
+ $variation: $default-color-variation;
+
+ // Check for a mode (-md-or -ios-)
+ $mode: get-mode($name);
+
+ // Determine if this CSS variable is itself a variation (e.g. primary-contrast)
+ $extracted: str-split($name, "-");
+
+ // If this color already has a mode prefix, remove it
+ @if ($mode != null) {
+ $extracted: remove-nth($extracted, 1);
+ }
+
+ @if (length($extracted) > 0) {
+ $name: nth($extracted, 1);
+ }
+
+ @if (length($extracted) > 1) {
+ $variation: nth($extracted, 2);
+ }
+
+ @return (name: $name, variation: $variation, mode: $mode);
+}
+
+@function css-var($color, $name) {
+ @if ($enable-css-variables) {
+ $is-reference: str-contains($color, $css-variable-prefix);
+ $global-css-variable: #{$css-variable-prefix}#{$name};
+ $mode: get-mode($name);
+
+ @if ($mode != null) {
+ $mode-css-variable: $global-css-variable;
+ $mode: "-#{$mode}-";
+ $global-css-variable: str-replace($mode-css-variable, $mode, "-");
+
+ $css-variables: map-merge($css-variables, ($mode-css-variable: $color)) !global;
+ $color: #{if($is-reference, "#{$color}", "var(#{$global-css-variable}, #{$color})")};
+ $color: "var(#{$mode-css-variable}, #{$color})";
+ } @else {
+ $css-variables: map-merge($css-variables, ($global-css-variable: $color)) !global;
+ $color: "var(#{$global-css-variable}, #{$color})";
+ }
+ }
+
+ $color: if(type-of($color) != string, $color, unquote($color));
+ @return $color;
+}
+
+@function ion-color($colors, $name, $variation: null, $mode: null) {
+
+ // If CSS variables are off or someone passed a raw color, we will be passed color values
+ // we need to look up the map in order to provide variations
+ @if (type-of($name) == color) {
+ $results: color-to-name-variation($colors, $name, $variation);
+ @if (map-has-key($results, name)) {
+ $name: map-get($results, name);
+ @if (map-has-key($results, variation)) {
+ $variation: map-get($results, variation);
+ } @else {
+ @if ($variation) {
+ @warn "Color '#{$name}' does not exist in map. Unable to set to variation '#{$variation}'"
+ }
+ }
+ }
+ }
+
+ // Does the name contain the CSS Variable color prefix
+ // If so this is this is a reference to a CSS variable
+ @if ($enable-css-variables and str-contains($name, $css-variable-prefix)) {
+ // If there is no variation change, just return the css variable
+ @if ($variation == null) {
+ @return unquote($name);
+ } @else {
+ // Convert the CSS Variable into a name/variation pair
+ $results: css-variable-to-name-variation($name);
+ $name: map-get($results, name);
+ $current-variation: map-get($results, variation);
+ $current-mode: map-get($results, mode);
+ $variation: if($variation == $current-variation, $default-color-variation, $variation);
+ $mode: if($current-mode != null, $current-mode, $mode);
+ }
+ }
+
+ $color: map-get($colors, $name);
+ @if ($color) {
+ // If there is no variation use the default
+ $variation: if($variation == null, $default-color-variation, $variation);
+
+ // If the color contains variations pick the appropriate one
+ @if (type-of($color) == map) {
+ @if (not map-has-key($color, $variation)) {
+ @if (not map-has-key($color, $variation)) {
+ @error "Unknown Color: '#{$name}' with variation '#{$variation}'.";
+ }
+ }
+ $color: map-get($color, $variation);
+ } @else if $variation != $default-color-variation {
+ @error "Color '#{$name}' is not a map. Cannot contain variation '#{$variation}'.";
+ }
+
+ $name: "#{$default-color-prefix}#{if($mode, '#{$mode}-', '')}#{$name}";
+ @if $variation != $default-color-variation {
+ $name: "#{$name}-#{$variation}";
+ }
+
+ @return css-var($color, $name);
+ }
+
+ @error "Unknown Color: '#{$name}' with variation '#{$variation}'";
+}
+
+// Also can take the format
+// ion-color-alpha($color-value, $css-variable-name, $alpha) {
+@function ion-color-alpha($colors, $name, $alpha, $mode: null) {
+ @if (type-of($colors) == color) {
+ $value: color-to-rgb-list($colors);
+ $fallback: css-var($value, $name);
+ @return unquote("rgba(#{$value}, #{$alpha})");
+ } @else {
+ $value: ion-color($colors, $name, rgb, $mode);
+ @return unquote("rgba(#{$value}, #{$alpha})");
+ }
+}
+
+@function ion-extend-colors($parent, $children...) {
+ $result: map-merge($parent, ());
+
+ @each $child in $children {
+ @each $key, $value in $child {
+ @if type-of($value) == map {
+ $obj: ();
+ @if (map-has-key($result, $key)) {
+ $obj: map-get($result, $key);
+
+ @if (type-of($obj) == color) {
+ $obj: (base: $obj);
+ }
+ }
+ $result: map-merge($result, ($key: ion-extend-colors($obj, $value)));
+ } @else {
+ $result: map-merge($result, ($key: $value));
+ }
+ }
+ }
+ @return $result;
+}
diff --git a/packages/core/src/themes/ionic.functions.list.scss b/packages/core/src/themes/ionic.functions.list.scss
new file mode 100644
index 0000000000..8290d94907
--- /dev/null
+++ b/packages/core/src/themes/ionic.functions.list.scss
@@ -0,0 +1,22 @@
+@function remove-nth($list, $index) {
+ $result: null;
+
+ @if type-of($index) != number {
+ @warn "$index: #{quote($index)} is not a number for `remove-nth`.";
+ } @else if $index == 0 {
+ @warn "List index 0 must be a non-zero integer for `remove-nth`.";
+ } @else if abs($index) > length($list) {
+ @warn "List index is #{$index} but list is only #{length($list)} item long for `remove-nth`.";
+ } @else {
+ $result: ();
+ $index: if($index < 0, length($list) + $index + 1, $index);
+
+ @for $i from 1 through length($list) {
+ @if $i != $index {
+ $result: append($result, nth($list, $i));
+ }
+ }
+ }
+
+ @return $result;
+}
diff --git a/packages/core/src/themes/ionic.functions.map.scss b/packages/core/src/themes/ionic.functions.map.scss
new file mode 100644
index 0000000000..ae9c849f71
--- /dev/null
+++ b/packages/core/src/themes/ionic.functions.map.scss
@@ -0,0 +1,13 @@
+// Fetch nested keys
+// @param {Map} $map - Map
+// @param {Arglist} $keys - Keys to fetch
+// @return {*}
+// --------------------------------------------------
+
+@function map-fetch($map, $keys...) {
+ @each $key in $keys {
+ $map: map-get($map, $key);
+ }
+
+ @return $map;
+}
diff --git a/packages/core/src/themes/ionic.functions.scss b/packages/core/src/themes/ionic.functions.scss
deleted file mode 100644
index 95bd56d129..0000000000
--- a/packages/core/src/themes/ionic.functions.scss
+++ /dev/null
@@ -1,338 +0,0 @@
-
-// Color Functions
-// --------------------------------------------------
-
-@function color-error($color-value, $color-name: null) {
- $error-msg: "
-
- The value `#{$color-value}` must be a color.
- If you are setting the value as a map make sure
- both the base and contrast are defined as colors.
-
- For example:
-
- $colors: (
- primary: #488aff,
- secondary: (base: #32db64, contrast: #000),
- );";
-
- // If there was a name passed it means the value doesn't exist
- // so error that the value isn't defined
- @if ($color-name) {
- $error-msg: "
-
- The map color `#{$color-name}` is not defined.
- Please make sure the color exists in your
- `$colors` map.
-
- For example:
-
- $colors: (
- #{$color-name}: #488aff
- );";
- }
-
- @error $error-msg;
-
- @return null;
-}
-
-@function color-brightness($color-value) {
- @if (type-of($color-value) != color) {
- @return color-error($color-value);
- }
-
- @return (red($color-value) * .299 + green($color-value) * .587 + blue($color-value) * .114) / 255 * 100%;
-}
-
-
-@function color-inverse($color-value, $dark: #000, $light: #fff) {
- @if (type-of($color-value) != color) {
- @return color-error($color-value);
- }
-
- $brightness: color-brightness($color-value);
- $red: red($color-value);
- $green: green($color-value);
-
- @if ($brightness > 79) {
- @return $dark;
- }
-
- @if ($green > 240) {
- @return $dark;
- }
-
- @if ($red > 220 and $green > 180) {
- @return $dark;
- }
-
- @return $light;
-}
-
-// Pass dark and light colors based on the mode
-// this is mostly used for toolbar buttons/titles
-//
-// @param {String} $color-value - color to get the inverse of
-// @param {Boolean} $custom-contrast-mode - the mode to use
-// in order to pass the custom colors
-//
-// @return {Color}
-// --------------------------------------------------
-@function mode-inverse($color-value, $custom-contrast-mode) {
- $dark: #000;
- $light: #fff;
-
- @if ($custom-contrast-mode == md) {
- $dark: #424242;
- $light: #fff;
- } @else if ($custom-contrast-mode == ios) {
- $dark: color($colors-ios, primary);
- $light: #fff;
- }
-
- @return color-inverse($color-value, $dark, $light);
-}
-
-
-@function color-shade($color-value, $amount:8%) {
- @if (type-of($color-value) != color) {
- @return color-error($color-value);
- }
-
- $lightness: lightness($color-value);
-
- $shade: #fff;
-
- @if ($lightness > 50) {
- $shade: #000;
- }
-
- @return mix($shade, $color-value, $amount);
-}
-
-// Copy Colors Map
-// --------------------------------------------------
-
-@function copy-colors($colors-map) {
- @return map-merge($colors-map, ());
-}
-
-
-// String Replace Function
-// --------------------------------------------------
-
-@function str-replace($string, $search, $replace: "") {
- $index: str-index($string, $search);
-
- @if $index {
- @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);
- }
-
- @return $string;
-}
-
-
-// String Split Function
-// --------------------------------------------------
-
-@function str-split($string, $separator) {
- // empty array/list
- $split-arr: ();
- // first index of separator in string
- $index: str-index($string, $separator);
- // loop through string
- @while $index != null {
- // get the substring from the first character to the separator
- $item: str-slice($string, 1, $index - 1);
- // push item to array
- $split-arr: append($split-arr, $item);
- // remove item and separator from string
- $string: str-slice($string, $index + 1);
- // find new index of separator
- $index: str-index($string, $separator);
- }
- // add the remaining string to list (the last item)
- $split-arr: append($split-arr, $string);
-
- @return $split-arr;
-}
-
-
-// Str extract between start and end
-// --------------------------------------------------
-
-@function str-extract($string, $start, $end) {
- $start-index: str-index($string, $start);
-
- @if $start-index {
- $post: str-slice($string, $start-index + str-length($start));
- $end-index: str-index($post, $end);
-
- @if $end-index {
- @return str-slice($post, 1, $end-index - 1);
- }
- }
-
- @return null;
-}
-
-
-// URL Encode Function
-// --------------------------------------------------
-
-@function url-encode($val) {
- $spaces: str-replace($val, " ", "%20");
- $encoded: str-replace($spaces, "#", "%23");
- @return $encoded;
-}
-
-
-// Fetch nested keys
-// @param {Map} $map - Map
-// @param {Arglist} $keys - Keys to fetch
-// @return {*}
-// --------------------------------------------------
-
-@function map-fetch($map, $keys...) {
- @each $key in $keys {
- $map: map-get($map, $key);
- }
-
- @return $map;
-}
-
-
-// Fetch map color value
-// @param {Map} $map - Map
-// @param {String} $color-name - Color name to get
-// @param {String} $color-key - Color key (optional), default base
-// @return {Color}
-// --------------------------------------------------
-
-@function color($map, $color-name, $color-key:null) {
- // Get the value from $color-name in the map
- // this can be of type color or a map
- $color-value: map-get($map, $color-name);
-
- // If we were given a map we need to grab the value
- // of the key that is passed or the base key
- @if(type-of($color-value) == map) {
- @if($color-key) {
- $color-value: map-fetch($map, $color-name, $color-key);
- } @else {
- $color-value: map-fetch($map, $color-name, base);
- }
- }
-
- // If the value is a color then return the value
- // otherwise we need to error with the name
- @if (type-of($color-value) == color) {
- @return $color-value;
- }
- @return color-error($color-value, $color-name);
-}
-
-// Get the color map key based on the value
-// if it doesn't exist then return the value
-// --------------------------------------------------
-@function color-key($colors, $value) {
- @each $color-name, $color-value in $colors {
- $base-value: color($colors, $color-name);
- @if ($base-value == $value) {
- @return map-get($colors, $color-name);
- }
- }
-
- @return $value;
-}
-
-// Fetch map color contrast
-// @param {Map} $colors - colors map
-// @param {String} $value - color value or color name
-//
-// Example values
-// --------------------------------------------------
-// primary | #488aff | #444
-// map key | map value | hex color not in map
-// --------------------------------------------------
-//
-// @param {Boolean} $custom-contrast-mode - use custom
-// contrast function
-// @return {Color}
-// --------------------------------------------------
-@function color-contrast($colors, $value, $custom-contrast-mode: null) {
- $color-value: null;
-
- // If the value is a color (e.g. #fff)
- // we need to call color-key to see if
- // it exists in the color map or not
- @if (type-of($value) == color) {
- $color-value: color-key($colors, $value);
-
- } @else {
- // If the value is a string (e.g. primary)
- // we want to get the value from the map
- // where it is the key
- $color-value: map-get($colors, $value);
- }
-
- // If the value is a map then get the contrast
- // from the map (e.g. (base: #488aff, contrast: blue))
- @if (type-of($color-value) == map) {
- // If the map has the contrast key then use that
- // otherwise it is a map with just a base so get
- // the inverse of that base color
- @if map-has-key($color-value, contrast) {
- $color-value: map-get($color-value, contrast);
- } @else {
- $color-value: color-inverse(map-get($color-value, base));
- }
-
- } @elseif ($custom-contrast-mode) {
- // If a mode was passed we need to call
- // the custom inverse function to get the inverse
- // color based on the mode
- $color-value: mode-inverse($color-value, $custom-contrast-mode);
-
- } @else {
- // Otherwise we were passed a color and can use the
- // function to get the inverse of that color
- // (e.g. #f4f4f4)
- $color-value: color-inverse($color-value);
- }
-
- // If the final value being returned is not a color
- // we should error
- @if (type-of($color-value) != color) {
- @return color-error($color-value);
- }
-
- @return $color-value;
-}
-
-
-// Create a list using the colors map
-// @param {Map} $colors - colors map
-// @return {List} $color-name, $color-base, $color-contrast
-// ----------------------------------------------------------
-@function get-colors($colors, $custom-contrast-mode: null) {
- $colors-list: ();
-
- @each $color-name, $color-value in $colors {
- $color-base: null;
- $color-contrast: null;
-
- @if(type-of($color-value) == map) {
- $color-base: map-get($color-value, base);
- $color-contrast: map-get($color-value, contrast);
- } @else {
- $color-base: $color-value;
- $color-contrast: color-contrast($colors, $color-value, $custom-contrast-mode);
- }
-
- $colors-list: append($colors-list, ($color-name, $color-base, $color-contrast), comma);
- }
-
- @return $colors-list;
-}
diff --git a/packages/core/src/themes/ionic.functions.string.scss b/packages/core/src/themes/ionic.functions.string.scss
new file mode 100644
index 0000000000..db588ab65f
--- /dev/null
+++ b/packages/core/src/themes/ionic.functions.string.scss
@@ -0,0 +1,80 @@
+// String Replace Function
+// --------------------------------------------------
+
+@function str-replace($string, $search, $replace: "") {
+ $index: str-index($string, $search);
+
+ @if $index {
+ @return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);
+ }
+
+ @return $string;
+}
+
+// String Split Function
+// --------------------------------------------------
+
+@function str-split($string, $separator) {
+ // empty array/list
+ $split-arr: ();
+ // first index of separator in string
+ $index: str-index($string, $separator);
+ // loop through string
+ @while $index != null {
+ // get the substring from the first character to the separator
+ $item: str-slice($string, 1, $index - 1);
+ // push item to array
+ $split-arr: append($split-arr, $item);
+ // remove item and separator from string
+ $string: str-slice($string, $index + 1);
+ // find new index of separator
+ $index: str-index($string, $separator);
+ }
+ // add the remaining string to list (the last item)
+ $split-arr: append($split-arr, $string);
+
+ @return $split-arr;
+}
+
+@function str-last-index($str, $search) {
+ $split: str-split($str, $search);
+ $len: length($split);
+
+ @if ($len > 1) {
+ $count: 0;
+ @for $i from 1 through ($len - 1) {
+ $item: nth($split, $i);
+ $count: $count + str-length($item);
+ }
+
+ @return $count + $len;
+ } @else {
+ @error "str-last-index was unable to find any instances of '#{$search}' inside '#{$str}'";
+ }
+}
+
+// Str extract between start and end
+// --------------------------------------------------
+
+@function str-extract($string, $start, $end) {
+ $start-index: str-index($string, $start);
+
+ @if $start-index {
+ $post: str-slice($string, $start-index + str-length($start));
+ $end-index: str-index($post, $end);
+
+ @if $end-index {
+ @return str-slice($post, 1, $end-index - 1);
+ }
+ }
+
+ @return null;
+}
+
+@function str-contains($string, $needle) {
+ @if (type-of($string) == string) {
+ @return str-index($string, $needle) != null;
+ }
+
+ @return false;
+}
diff --git a/packages/core/src/themes/ionic.functions.url.scss b/packages/core/src/themes/ionic.functions.url.scss
new file mode 100644
index 0000000000..bb359f12d9
--- /dev/null
+++ b/packages/core/src/themes/ionic.functions.url.scss
@@ -0,0 +1,10 @@
+@import "./ionic.functions.string";
+
+// URL Encode Function
+// --------------------------------------------------
+
+@function url-encode($val) {
+ $spaces: str-replace($val, " ", "%20");
+ $encoded: str-replace($spaces, "#", "%23");
+ @return $encoded;
+}
diff --git a/packages/core/src/themes/ionic.globals.scss b/packages/core/src/themes/ionic.globals.scss
index fbda7510d7..0091339fe5 100644
--- a/packages/core/src/themes/ionic.globals.scss
+++ b/packages/core/src/themes/ionic.globals.scss
@@ -2,15 +2,24 @@
// Ionic Version
@import "./version";
+// Global String Functions
+@import "./ionic.functions.string";
-// Global Functions
-@import "./ionic.functions";
+// Global List Functions
+@import "./ionic.functions.list";
+// Global Map Functions
+@import "./ionic.functions.map";
+
+// Global URL Functions
+@import "./ionic.functions.url";
+
+// Global Color Functions
+@import "./ionic.functions.color";
// Global Mixins
@import "./ionic.mixins";
-
// Global app direction
$app-direction: ltr !default;
diff --git a/packages/core/src/themes/ionic.mixins.scss b/packages/core/src/themes/ionic.mixins.scss
index 6e7e95e282..fdffb61acb 100644
--- a/packages/core/src/themes/ionic.mixins.scss
+++ b/packages/core/src/themes/ionic.mixins.scss
@@ -1,5 +1,3 @@
-@import "ionic.functions";
-
// Appearance
// --------------------------------------------------
@@ -13,19 +11,28 @@
// Input Placeholder
// --------------------------------------------------
-@mixin placeholder($color: #999, $text-indent: 0) {
+@mixin placeholder($color: #999, $text-indent: 0, $opacity: null) {
&::-moz-placeholder { // Firefox 19+
color: $color;
+ @if ($opacity) {
+ opacity: $opacity;
+ }
}
&:-ms-input-placeholder {
color: $color;
+ @if ($opacity) {
+ opacity: $opacity;
+ }
}
&::-webkit-input-placeholder {
// Safari placeholder margin issue
text-indent: $text-indent;
color: $color;
+ @if ($opacity) {
+ opacity: $opacity;
+ }
}
}
@@ -561,20 +568,20 @@
$safe-area-end-env: null;
@if ($start) {
- $safe-area-start: calc(constant(safe-area-inset-left) + #{$start});
- $safe-area-start-env: calc(env(safe-area-inset-left) + #{$start});
+ $safe-area-start: unquote("calc(constant(safe-area-inset-left) + #{$start})");
+ $safe-area-start-env: unquote("calc(env(safe-area-inset-left) + #{$start})");
}
@if ($end) {
- $safe-area-end: calc(constant(safe-area-inset-right) + #{$end});
- $safe-area-end-env: calc(env(safe-area-inset-right) + #{$end});
+ $safe-area-end: unquote("calc(constant(safe-area-inset-right) + #{$end})");
+ $safe-area-end-env: unquote("calc(env(safe-area-inset-right) + #{$end})");
}
@if ($top){
- $safe-area-top: calc(constant(safe-area-inset-top) + #{$top});
- $safe-area-top-env: calc(env(safe-area-inset-top) + #{$top});
+ $safe-area-top: unquote("calc(constant(safe-area-inset-top) + #{$top})");
+ $safe-area-top-env: unquote("calc(env(safe-area-inset-top) + #{$top})");
}
@if ($bottom){
- $safe-area-bottom: calc(constant(safe-area-inset-bottom) + #{$bottom});
- $safe-area-bottom-env: calc(env(safe-area-inset-bottom) + #{$bottom});
+ $safe-area-bottom: unquote("calc(constant(safe-area-inset-bottom) + #{$bottom})");
+ $safe-area-bottom-env: unquote("calc(env(safe-area-inset-bottom) + #{$bottom})");
}
@include padding($safe-area-top, $safe-area-end, $safe-area-bottom, $safe-area-start);
@@ -593,12 +600,12 @@
$safe-area-end-env: null;
@if ($end) {
- $safe-area-end: calc(constant(safe-area-inset-right) + #{$end});
- $safe-area-end-env: calc(env(safe-area-inset-right) + #{$end});
+ $safe-area-end: unquote("calc(constant(safe-area-inset-right) + #{$end})");
+ $safe-area-end-env: unquote("calc(env(safe-area-inset-right) + #{$end})");
}
@if ($start) {
- $safe-area-start: calc(constant(safe-area-inset-left) + #{$start});
- $safe-area-start-env: calc(env(safe-area-inset-left) + #{$start});
+ $safe-area-start: unquote("calc(constant(safe-area-inset-left) + #{$start})");
+ $safe-area-start-env: unquote("calc(env(safe-area-inset-left) + #{$start})");
}
@include padding-horizontal($safe-area-start, $safe-area-end);
@@ -616,12 +623,12 @@
$safe-area-start-env: null;
$safe-area-end-env: null;
@if ($start) {
- $safe-area-start: calc(constant(safe-area-inset-left) + #{$start});
- $safe-area-start-env: calc(env(safe-area-inset-left) + #{$start});
+ $safe-area-start: unquote("calc(constant(safe-area-inset-left) + #{$start})");
+ $safe-area-start-env: unquote("calc(env(safe-area-inset-left) + #{$start})");
}
@if ($end) {
- $safe-area-end: calc(constant(safe-area-inset-right) + #{$end});
- $safe-area-end-env: calc(env(safe-area-inset-right) + #{$end});
+ $safe-area-end: unquote("calc(constant(safe-area-inset-right) + #{$end})");
+ $safe-area-end-env: unquote("calc(env(safe-area-inset-right) + #{$end})");
}
@if $safe-area-start == $safe-area-end {
@@ -660,8 +667,8 @@
// @param {string} $value - additional value you want to modify, if none, pass 0px
// ----------------------------------------------------------
@mixin safe-area-sizing($prop, $safe-area-position, $value){
- #{$prop}: calc(#{$value} + constant(#{$safe-area-position}));
- #{$prop}: calc(#{$value} + env(#{$safe-area-position}));
+ #{$prop}: unquote("calc(#{$value} + constant(#{$safe-area-position}))");
+ #{$prop}: unquote("calc(#{$value} + env(#{$safe-area-position}))");
}
@@ -729,7 +736,7 @@
@include safe-area-padding(0px, null, null, null);
height: calc(#{$toolbar-height} + #{$statusbar-padding});
- @include safe-area-sizing(height, safe-area-inset-top, $toolbar-height)
+ @include safe-area-sizing(height, safe-area-inset-top, $toolbar-height);
min-height: calc(#{$toolbar-height} + #{$statusbar-padding});
@include safe-area-sizing(min-height, safe-area-inset-top, $toolbar-height)
diff --git a/packages/core/src/themes/ionic.theme.dark.ios.scss b/packages/core/src/themes/ionic.theme.dark.ios.scss
deleted file mode 100644
index 59913d204c..0000000000
--- a/packages/core/src/themes/ionic.theme.dark.ios.scss
+++ /dev/null
@@ -1,60 +0,0 @@
-@import "./ionic.theme.dark";
-
-// iOS Dark Theme
-// ----------------------------------
-
-$colors-ios: copy-colors($colors) !default;
-
-$link-ios-color: $link-color !default;
-$text-ios-color: $text-color !default;
-$background-ios-color: $background-color !default;
-$subdued-text-ios-color: $subdued-text-color !default;
-
-$font-family-ios-base: $font-family-base !default;
-$font-size-ios-base: $font-size-base !default;
-
-
-// iOS Outer content
-// --------------------------------------------------
-$content-ios-outer-background: $background-color !default;
-
-
-// iOS Toolbar
-// --------------------------------------------------
-
-$toolbar-ios-background: $toolbar-background !default;
-$toolbar-ios-border-color: rgba(255, 255, 255, .1) !default;
-$toolbar-ios-text-color: $toolbar-text-color !default;
-$toolbar-ios-active-color: $toolbar-active-color !default;
-$toolbar-ios-inactive-color: $toolbar-inactive-color !default;
-
-
-// iOS Tabs
-// --------------------------------------------------
-
-$tabs-ios-background: $tabs-background !default;
-$tabs-ios-border-color: rgba(255, 255, 255, .1) !default;
-$tabs-ios-tab-color-inactive: $tabs-tab-color-inactive !default;
-$tabs-ios-tab-color-active: $tabs-tab-color-active !default;
-
-
-// iOS List
-// --------------------------------------------------
-
-$list-ios-text-color: $list-text-color !default;
-$list-ios-border-color: $list-border-color !default;
-$list-ios-background-color: $list-background-color !default;
-$list-ios-activated-background-color: #d9d9d9 !default;
-
-
-// iOS List header
-// --------------------------------------------------
-$list-ios-header-color: $text-color !default;
-$item-ios-divider-background: #151515 !default;
-$item-ios-divider-color: $text-color !default;
-
-
-// iOS Toggle
-// --------------------------------------------------
-
-$toggle-ios-handle-background-color: #f4f4f4 !default;
diff --git a/packages/core/src/themes/ionic.theme.dark.md.scss b/packages/core/src/themes/ionic.theme.dark.md.scss
deleted file mode 100644
index 56cfc54ff0..0000000000
--- a/packages/core/src/themes/ionic.theme.dark.md.scss
+++ /dev/null
@@ -1,70 +0,0 @@
-@import "./ionic.theme.dark";
-
-// Material Design Dark Theme
-// ----------------------------------
-
-$colors-md: copy-colors($colors) !default;
-
-
-$link-md-color: $link-color !default;
-$text-md-color: $text-color !default;
-$background-md-color: $background-color !default;
-$subdued-text-md-color: $subdued-text-color !default;
-
-$font-family-md-base: "Roboto", "Helvetica Neue", sans-serif !default;
-$font-size-md-base: $font-size-base !default;
-
-
-// Material Design Toolbar
-// --------------------------------------------------
-
-$toolbar-md-background: $toolbar-background !default;
-$toolbar-md-border-color: $toolbar-border-color !default;
-$toolbar-md-text-color: #fff !default;
-$toolbar-md-active-color: $toolbar-active-color !default;
-$toolbar-md-inactive-color: $toolbar-inactive-color !default;
-
-
-// Material Design Tabs
-// --------------------------------------------------
-
-$tabs-md-background: $tabs-background !default;
-$tabs-md-border-color: rgba(255, 255, 255, .1) !default;
-$tabs-md-tab-color-inactive: $tabs-tab-color-inactive !default;
-$tabs-md-tab-color-active: $tabs-tab-color-active !default;
-
-
-// Material Design Card
-// --------------------------------------------------
-
-$card-md-title-text-color: #fff !default;
-$card-md-text-color: #ddd !default;
-
-
-// Material Design List
-// --------------------------------------------------
-
-$list-md-text-color: $list-text-color !default;
-$list-md-border-color: #dedede !default;
-$list-md-background-color: $list-background-color !default;
-$list-md-activated-background-color: #d9d9d9 !default;
-
-
-// Material Design Item
-// --------------------------------------------------
-
-$item-md-divider-background: #151515 !default;
-$item-md-divider-color: #f4f4f4 !default;
-
-
-// Material Design Toggle
-// ---------------------------------------------------
-$toggle-md-handle-background-color-off: #f4f4f4 !default;
-
-
-// Ripple Color
-// --------------------------------------------------
-
-@function ripple-background-color($button-color) {
- @return rgba(red($button-color), green($button-color), blue($button-color), .1);
-}
diff --git a/packages/core/src/themes/ionic.theme.dark.scss b/packages/core/src/themes/ionic.theme.dark.scss
deleted file mode 100644
index 82c063b027..0000000000
--- a/packages/core/src/themes/ionic.theme.dark.scss
+++ /dev/null
@@ -1,45 +0,0 @@
-@import "./ionic.globals";
-
-
-// Dark Theme
-// ----------------------------------
-
-$colors: (
-
- primary: #007aff,
- secondary: #32db64,
- warning: #ffeb3b,
- danger: #d91e18,
- light: #f4f4f4,
- dark: #222,
-
-) !default;
-
-
-$text-color: #fff !default;
-$link-color: color($colors, primary) !default;
-$background-color: #191919 !default;
-$subdued-text-color: #666 !default;
-
-$font-family-base: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Roboto", sans-serif !default;
-
-// TODO remove
-$font-size-base: 14px !default;
-
-$content-padding: 16px !default;
-$content-margin: 16px !default;
-
-$toolbar-background: #151515 !default;
-$toolbar-border-color: #222 !default;
-$toolbar-text-color: $text-color !default;
-$toolbar-active-color: $link-color !default;
-$toolbar-inactive-color: #8c8c8c !default;
-
-$tabs-background: #151515 !default;
-$tabs-border-color: #222 !default;
-$tabs-tab-color-inactive: #8c8c8c !default;
-$tabs-tab-color-active: $link-color !default;
-
-$list-text-color: $text-color !default;
-$list-background-color: #242424 !default;
-$list-border-color: #000 !default;
diff --git a/packages/core/src/themes/ionic.theme.default.ios.scss b/packages/core/src/themes/ionic.theme.default.ios.scss
index 23ae30f0a9..4f9b98f201 100644
--- a/packages/core/src/themes/ionic.theme.default.ios.scss
+++ b/packages/core/src/themes/ionic.theme.default.ios.scss
@@ -2,47 +2,86 @@
// iOS Default Theme
// ----------------------------------
+$colors-ios: () !default;
+$ion-colors-ios: ();
+$colors-ios: ion-extend-colors($colors, $ion-colors-ios, $colors-ios);
-$colors-ios: copy-colors($colors) !default;
+// iOS General
+// --------------------------------------------------
+$content-ios-margin: $content-margin !default;
+$content-ios-padding: $content-padding !default;
+$font-family-ios-base: $font-family-base !default;
+$font-size-ios-base: $font-size-base !default;
-$link-ios-color: $link-color !default;
-$text-ios-color: $text-color !default;
-$background-ios-color: $background-color !default;
-$subdued-text-ios-color: $subdued-text-color !default;
+// Default iOS Alpha levels
+// --------------------------------------------------
+$alpha-ios-lowest: css-var($alpha-lowest, alpha-ios-lowest);
+$alpha-ios-low: css-var($alpha-low, alpha-ios-low);
+$alpha-ios-medium: css-var($alpha-medium, alpha-ios-medium);
+$alpha-ios-high: css-var($alpha-high, alpha-ios-high);
+$alpha-ios-highest: css-var($alpha-highest, alpha-ios-highest);
-$font-family-ios-base: $font-family-base !default;
-$font-size-ios-base: $font-size-base !default;
+// Default Foreground and Background Colors values
+// Allows users to override an foreground / background colors
+// TODO: @color-mod: remove all this
+$background-ios-color-value: $background-color-value !default;
+$text-ios-color-value: $text-color-value !default;
-$content-ios-padding: $content-padding !default;
-$content-ios-margin: $content-margin !default;
+// Default iOS Foreground and Background Colors
+// --------------------------------------------------
+$background-ios-color: css-var($background-ios-color-value, background-ios-color) !default;
+$text-ios-color: css-var($text-ios-color-value, text-ios-color) !default;
+$placeholder-text-ios-color: css-var($placeholder-text-color, placeholder-text-ios-color) !default;
+// Generated Foreground and Background Colors for alpha
+// These variables are not used, but we call this here in order to add these colors
+// to the global list of css variables for a theme. This is only used to get a dump of all
+// css variables that the theme uses.
+// TODO: @color-mod: remove all of this
+// --------------------------------------------------
+$background-color-rgb: css-var(color-to-rgb-list($background-ios-color-value), background-ios-color-rgb) !default; //TODO: @color-mod: remove
+$text-color-rgb: css-var(color-to-rgb-list($text-ios-color-value), text-ios-color-rgb) !default; //TODO: @color-mod: remove
+
+// Default iOS Background & Text Color Steps
+// --------------------------------------------------
+$background-ios-color-step-100: css-var(#f7f7f7, background-ios-color-step-100) !default;
+$background-ios-color-step-200: css-var(#bdbdbd, background-ios-color-step-200) !default;
+$background-ios-color-step-300: css-var(#999, background-ios-color-step-300) !default;
+$background-ios-color-step-400: css-var(#222, background-ios-color-step-400) !default;
+$text-ios-color-step-100: css-var(#222, text-ios-color-step-100) !default;
+$text-ios-color-step-200: css-var(#666, text-ios-color-step-200) !default;
+$text-ios-color-step-300: css-var(#8f8f8f, text-ios-color-step-400) !default;
+$text-ios-color-step-400: css-var(#aeaeae, text-ios-color-step-300) !default;
+
+// iOS General Colors
+// --------------------------------------------------
+$backdrop-ios-color: css-var($backdrop-color, backdrop-ios-color) !default;
+$border-ios-color: css-var(#c1c4cd, border-ios-color) !default;
+$box-shadow-ios-color: css-var($box-shadow-color, box-shadow-ios-color) !default;
+
+// iOS Tabs & Tab bar
+// --------------------------------------------------
+$tabbar-ios-background-color: css-var($tabbar-background-color, tabbar-ios-background-color) !default;
+$tabbar-ios-translucent-background-color: css-var(rgba(248, 248, 248, .8), tabbar-ios-translucent-background-color) !default; // TODO: @color-mod: remove
+$tabbar-ios-border-color: css-var(rgba(0, 0, 0, .2), tabbar-ios-border-color) !default; // TODO: @color-mod($border-ios-color, a($alpha-ios-low))
+$tabbar-ios-text-color: css-var($tabbar-text-color, tabbar-ios-text-color) !default;
+$tabbar-ios-text-color-active: css-var(ion-color($colors-ios, primary, base, ios), tabbar-ios-text-color-active) !default;
// iOS Toolbar
// --------------------------------------------------
+$toolbar-ios-height: 44px !default;
+$toolbar-ios-padding: 4px !default;
+$toolbar-ios-background-color: css-var($toolbar-background-color, toolbar-ios-background-color) !default;
+$toolbar-ios-translucent-background-color: css-var(rgba(248, 248, 248, .8), toolbar-ios-background-color) !default; // TODO: @color-mod: remove
+$toolbar-ios-border-color: css-var(rgba(0, 0, 0, .2), toolbar-ios-border-color) !default; // TODO: @color-mod($border-ios-color, a($alpha-ios-low))
+$toolbar-ios-color-active: css-var(ion-color($colors-ios, primary, base, ios), toolbar-ios-color-active) !default;
+$toolbar-ios-color-inactive: css-var($toolbar-color-inactive, toolbar-ios-color-inactive) !default;
+$toolbar-ios-text-color: css-var($toolbar-text-color, toolbar-ios-text-color) !default;
-$toolbar-ios-height: 44px !default;
-$toolbar-ios-padding: 4px !default;
-$toolbar-ios-background: $toolbar-background !default;
-$toolbar-ios-border-color: rgba(0, 0, 0, .2) !default;
-$toolbar-ios-text-color: $toolbar-text-color !default;
-$toolbar-ios-active-color: $toolbar-active-color !default;
-$toolbar-ios-inactive-color: $toolbar-inactive-color !default;
-
-
-// iOS Tabs
+// iOS List & List Items
// --------------------------------------------------
-
-$tabs-ios-background: $tabs-background !default;
-$tabs-ios-border-color: rgba(0, 0, 0, .2) !default;
-$tabs-ios-tab-color-inactive: $tabs-tab-color-inactive !default;
-$tabs-ios-tab-color-active: $tabs-tab-color-active !default;
-
-
-// iOS List
-// --------------------------------------------------
-
-$list-ios-text-color: $list-text-color !default;
-$list-ios-border-color: $list-border-color !default;
-$list-ios-background-color: $list-background-color !default;
-$list-ios-activated-background-color: #d9d9d9 !default;
+$item-ios-background-color: css-var($background-ios-color, item-ios-background-color) !default;
+$item-ios-background-color-active: css-var(#d9d9d9, item-ios-background-color-active) !default;
+$item-ios-border-color: css-var($item-border-color, item-ios-border-color) !default;
+$item-ios-text-color: css-var($item-text-color, item-ios-text-color) !default;
diff --git a/packages/core/src/themes/ionic.theme.default.md.scss b/packages/core/src/themes/ionic.theme.default.md.scss
index f502d0097b..0765b0f2db 100644
--- a/packages/core/src/themes/ionic.theme.default.md.scss
+++ b/packages/core/src/themes/ionic.theme.default.md.scss
@@ -2,47 +2,93 @@
// Material Design Default Theme
// ----------------------------------
+$colors-md: () !default;
-$colors-md: copy-colors($colors) !default;
+$light-md: #e3e3e3;
+$ion-colors-md: (
+ light: (
+ base: $light-md,
+ contrast: #000,
+ rgb: color-to-rgb-list($light-md),
+ shade: #d0d0d0,
+ tint: #f0f0f0
+ )
+);
+$colors-md: ion-extend-colors($colors, $ion-colors-md, $colors-md);
+// Material Design General
+// --------------------------------------------------
+$content-md-margin: $content-margin !default;
+$content-md-padding: $content-padding !default;
+$font-family-md-base: "Roboto", "Helvetica Neue", sans-serif !default;
+$font-size-md-base: $font-size-base !default;
-$link-md-color: $link-color !default;
-$text-md-color: $text-color !default;
-$background-md-color: $background-color !default;
-$subdued-text-md-color: $subdued-text-color !default;
+// Default Material Design Alpha levels
+// --------------------------------------------------
+$alpha-md-lowest: css-var($alpha-lowest, alpha-md-lowest);
+$alpha-md-low: css-var($alpha-low, alpha-md-low);
+$alpha-md-medium: css-var($alpha-medium, alpha-md-medium);
+$alpha-md-high: css-var($alpha-high, alpha-md-high);
+$alpha-md-highest: css-var($alpha-highest, alpha-md-highest);
-$font-family-md-base: "Roboto", "Helvetica Neue", sans-serif !default;
-$font-size-md-base: $font-size-base !default;
+// Default Foreground and Background Colors values
+// Allows users to override an foreground / background colors
+// TODO: @color-mod: remove all this
+$background-md-color-value: $background-color-value !default;
+$text-md-color-value: $text-color-value !default;
-$content-md-padding: $content-padding !default;
-$content-md-margin: $content-margin !default;
+// Default Material Design Foreground and Background Colors
+// --------------------------------------------------
+$background-md-color: css-var($background-md-color-value, background-md-color) !default;
+$text-md-color: css-var($text-md-color-value, text-md-color) !default;
+$placeholder-text-md-color: css-var($placeholder-text-color, placeholder-text-md-color) !default;
+// Generated Foreground and Background Colors for alpha
+// These variables are not used, but we call this here in order to add these colors
+// to the global list of css variables for a theme. This is only used to get a dump of all
+// css variables that the theme uses.
+// TODO: @color-mod: remove all of this
+// --------------------------------------------------
+$background-color-rgb: css-var(color-to-rgb-list($background-md-color-value), background-md-color-rgb) !default;
+$text-color-rgb: css-var(color-to-rgb-list($text-md-color-value), text-md-color-rgb) !default;
+
+// Default Material Design Background & Text Color Steps
+// --------------------------------------------------
+$background-md-color-step-100: css-var($background-color-step-100, background-md-color-step-100) !default;
+$background-md-color-step-200: css-var($background-color-step-200, background-md-color-step-200) !default;
+$background-md-color-step-300: css-var($background-color-step-300, background-md-color-step-300) !default;
+$background-md-color-step-400: css-var($background-color-step-400, background-md-color-step-400) !default;
+$text-md-color-step-100: css-var($text-color-step-100, text-md-color-step-100) !default;
+$text-md-color-step-200: css-var($text-color-step-200, text-md-color-step-200) !default;
+$text-md-color-step-300: css-var($text-color-step-300, text-md-color-step-300) !default;
+$text-md-color-step-400: css-var($text-color-step-400, text-md-color-step-400) !default;
+
+// Material Design General Colors
+// --------------------------------------------------
+$backdrop-md-color: css-var($backdrop-color, backdrop-md-color) !default;
+$border-md-color: css-var(#c1c4cd, border-md-color) !default;
+$box-shadow-md-color: css-var($box-shadow-color, box-shadow-md-color) !default;
+
+// Material Design Tabs & Tab bar
+// --------------------------------------------------
+$tabbar-md-background-color: css-var($tabbar-background-color, tabbar-md-background-color) !default;
+$tabbar-md-border-color: css-var(rgba(0, 0, 0, .07), tabbar-md-border-color) !default; // TODO: @color-mod($border-md-color, a($alpha-ios-lowest))
+$tabbar-md-text-color: css-var($text-md-color-step-200, tabbar-md-text-color) !default; // TODO: @color-mod($text-md-color, a($alpha-ios-high))
+$tabbar-md-text-color-active: css-var($tabbar-text-color-active, tabbar-md-text-color-active) !default;
// Material Design Toolbar
// --------------------------------------------------
+$toolbar-md-height: 56px !default;
+$toolbar-md-padding: 4px !default;
+$toolbar-md-background-color: css-var($toolbar-background-color, toolbar-md-background-color) !default;
+$toolbar-md-border-color: css-var($border-md-color, toolbar-md-border-color) !default;
+$toolbar-md-color-active: css-var($toolbar-color-active, toolbar-md-color-active) !default;
+$toolbar-md-color-inactive: css-var($toolbar-color-inactive, toolbar-md-color-inactive) !default;
+$toolbar-md-text-color: css-var(#424242, toolbar-md-text-color) !default;
-$toolbar-md-height: 56px !default;
-$toolbar-md-padding: 4px !default;
-$toolbar-md-background: $toolbar-background !default;
-$toolbar-md-border-color: $toolbar-border-color !default;
-$toolbar-md-text-color: #424242 !default;
-$toolbar-md-active-color: $toolbar-active-color !default;
-$toolbar-md-inactive-color: $toolbar-inactive-color !default;
-
-
-// Material Design Tabs
+// Material Design List & List Items
// --------------------------------------------------
-
-$tabs-md-background: $tabs-background !default;
-$tabs-md-border-color: rgba(0, 0, 0, .07) !default;
-$tabs-md-tab-color-inactive: #3c3c3c !default;
-$tabs-md-tab-color-active: $tabs-tab-color-active !default;
-
-
-// Material Design List
-// --------------------------------------------------
-
-$list-md-text-color: $list-text-color !default;
-$list-md-border-color: #dedede !default;
-$list-md-background-color: $list-background-color !default;
-$list-md-activated-background-color: #f1f1f1 !default;
+$item-md-background-color: css-var($item-background-color, item-md-background-color) !default;
+$item-md-background-color-active: css-var(#f1f1f1, item-md-background-color-active) !default;
+$item-md-border-color: css-var(#dedede, item-md-border-color) !default;
+$item-md-text-color: css-var($item-text-color, item-md-text-color) !default;
diff --git a/packages/core/src/themes/ionic.theme.default.scss b/packages/core/src/themes/ionic.theme.default.scss
index 83ef845e77..090a2b9424 100644
--- a/packages/core/src/themes/ionic.theme.default.scss
+++ b/packages/core/src/themes/ionic.theme.default.scss
@@ -1,45 +1,177 @@
@import "./ionic.globals";
-
// Default Theme
// ----------------------------------
-$colors: (
+// Private color variables, use colors() to override
+$primary: #488aff;
+$secondary: #32db64;
+$tertiary: #f4a942;
+$success: #10dc60;
+$warning: #ffce00;
+$danger: #f53d3d;
+$light: #f4f4f4;
+$medium: #989aa2;
+$dark: #222;
- primary: #488aff,
- secondary: #32db64,
- warning: #ffeb3b,
- danger: #f53d3d,
- light: #f4f4f4,
- dark: #222,
+// Allows users to override an individual color
+$colors: () !default;
-) !default;
+// Allows users to override all alpha levels
+$alpha-lowest: .06 !default;
+$alpha-low: .1 !default;
+$alpha-medium: .4 !default;
+$alpha-high: .75 !default;
+$alpha-highest: .9 !default;
+// Primary color map should provide
+// - base: main color to be used.
+// - rgb: a R,G,B list version of the base color. Used for alpha processing
+// - contrast: Color that will provide readable text against the base color
+// - shade: slightly darker version of the base color (mix with black)
+// - tint: slightly lighter version of the base color (mix with white)
+$ion-colors: (
+ primary: (
+ base: $primary,
+ contrast: #fff,
+ rgb: color-to-rgb-list($primary),
+ shade: #3f79e0,
+ tint: #427feb
+ ),
+ secondary: (
+ base: $secondary,
+ contrast: #fff,
+ rgb: color-to-rgb-list($secondary),
+ shade: #2cc158,
+ tint: #2ec95c
+ ),
+ tertiary: (
+ base: $tertiary,
+ contrast: #fff,
+ rgb: color-to-rgb-list($tertiary),
+ shade: #d6903d,
+ tint: #ffa529
+ ),
+ success: (
+ base: $success,
+ contrast: #fff,
+ rgb: color-to-rgb-list($success),
+ shade: #10cb60,
+ tint: #23df6d
+ ),
+ warning: (
+ base: $warning,
+ contrast: #000,
+ rgb: color-to-rgb-list($warning),
+ shade: #f1c100,
+ tint: #ffd214
+ ),
+ danger: (
+ base: $danger,
+ contrast: #fff,
+ rgb: color-to-rgb-list($danger),
+ shade: #d83636,
+ tint: #e13838
+ ),
+ light: (
+ base: $light,
+ contrast: #000,
+ rgb: color-to-rgb-list($light),
+ shade: #d7d7d7,
+ tint: #e0e0e0
+ ),
+ medium: (
+ base: $medium,
+ contrast: #000,
+ rgb: color-to-rgb-list($medium),
+ shade: #8c8e95,
+ tint: #86888f
+ ),
+ dark: (
+ base: $dark,
+ contrast: #fff,
+ rgb: color-to-rgb-list($dark),
+ shade: #343434,
+ tint: #3d3d3d
+ )
+);
+$colors: ion-extend-colors($ion-colors, $colors);
-$text-color: #000 !default;
-$link-color: color($colors, primary) !default;
-$background-color: #fff !default;
-$subdued-text-color: #666 !default;
+// Default Alpha levels
+// --------------------------------------------------
+$alpha-lowest: css-var(.1, alpha-lowest) !default;
+$alpha-low: css-var(.25, alpha-low) !default;
+$alpha-medium: css-var(.5, alpha-medium) !default;
+$alpha-high: css-var(.75, alpha-high) !default;
+$alpha-highest: css-var(.9, alpha-highest) !default;
-$font-family-base: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Roboto", sans-serif !default;
+// Default General
+// --------------------------------------------------
+$content-margin: 16px !default;
+$content-padding: 16px !default;
+$font-family-base: -apple-system, BlinkMacSystemFont, "Helvetica Neue", "Roboto", sans-serif !default;
+$font-size-base: 14px !default; // TODO: remove
-// TODO remove
-$font-size-base: 14px !default;
+// Default Foreground and Background Colors values
+// Allows users to override an foreground / background colors
+// TODO: @color-mod: remove all this
+$background-color-value: #fff !default;
+$text-color-value: #000 !default;
-$content-padding: 16px !default;
-$content-margin: 16px !default;
+// Default Foreground and Background Colors
+// --------------------------------------------------
+$background-color: css-var($background-color-value, background-color) !default;
+$text-color: css-var($text-color-value, text-color) !default;
+$placeholder-text-color: css-var(#999, placeholder-text-color) !default;
-$toolbar-background: #f8f8f8 !default;
-$toolbar-border-color: #b2b2b2 !default;
-$toolbar-text-color: $text-color !default;
-$toolbar-active-color: $link-color !default;
-$toolbar-inactive-color: #8c8c8c !default;
+// Generated Foreground and Background Colors for alpha
+// These variables are not used, but we call this here in order to add these colors
+// to the global list of css variables for a theme. This is only used to get a dump of all
+// css variables that the theme uses.
+// TODO: @color-mod: remove all of this
+// --------------------------------------------------
+$background-color-rgb: css-var(color-to-rgb-list($background-color-value), background-color-rgb) !default; // TODO: @color-mod: remove
+$text-color-rgb: css-var(color-to-rgb-list($text-color-value), text-color-rgb) !default; // TODO: @color-mod: remove
-$tabs-background: #f8f8f8 !default;
-$tabs-border-color: #b2b2b2 !default;
-$tabs-tab-color-inactive: #8c8c8c !default;
-$tabs-tab-color-active: $link-color !default;
+// Default Background & Text Color Steps
+// Color Steps are used to provide variations in text and background colors of elements.
+// Steps are generally meant to move "away from" their base color.
+// For example a $text-color of white would generally step towards black,
+// but a $text-color of black would step towards white.
+// --------------------------------------------------
+$background-color-step-100: css-var(#f2f2f2, background-color-step-100) !default;
+$background-color-step-200: css-var(#dcdcdc, background-color-step-200) !default;
+$background-color-step-300: css-var(#bdbdbd, background-color-step-300) !default;
+$background-color-step-400: css-var(#444, background-color-step-400) !default;
+$text-color-step-100: css-var(#222, text-color-step-100) !default;
+$text-color-step-200: css-var(#666, text-color-step-200) !default;
+$text-color-step-300: css-var(#999, text-color-step-300) !default;
+$text-color-step-400: css-var(#c5c5c5, text-color-step-400) !default;
-$list-text-color: $text-color !default;
-$list-background-color: $background-color !default;
-$list-border-color: #c8c7cc !default;
+// Default General Colors
+// --------------------------------------------------
+$backdrop-color: css-var(#000, backdrop-color) !default;
+$border-color: css-var(#b2b2b2, border-color) !default;
+$box-shadow-color: css-var(#000, box-shadow-color) !default;
+
+// Default Tabs & Tab bar
+// --------------------------------------------------
+$tabbar-background-color: css-var(#f8f8f8, tabbar-background-color) !default;
+$tabbar-border-color: css-var($border-color, tabbar-border-color) !default;
+$tabbar-text-color-active: css-var(#488aff, tabbar-text-color-active) !default;
+$tabbar-text-color: css-var(#8c8c8c, tabbar-text-color) !default;
+
+// Default Toolbar
+// --------------------------------------------------
+$toolbar-background-color: css-var(#f8f8f8, toolbar-background-color) !default;
+$toolbar-border-color: css-var($border-color, toolbar-border-color) !default;
+$toolbar-color-active: css-var(#488aff, toolbar-color-active) !default;
+$toolbar-color-inactive: css-var(#8c8c8c, toolbar-color-inactive) !default;
+$toolbar-text-color: css-var($text-color, toolbar-text-color) !default;
+
+// Default List & List Items
+// --------------------------------------------------
+$item-background-color: css-var($background-color, item-background-color) !default;
+$item-background-color-active: css-var($background-color, item-background-color-active) !default;
+$item-border-color: css-var(#c8c7cc, item-border-color) !default;
+$item-text-color: css-var($text-color, item-text-color) !default;
diff --git a/packages/core/src/themes/test/css-variables/index.html b/packages/core/src/themes/test/css-variables/index.html
new file mode 100644
index 0000000000..6909e921da
--- /dev/null
+++ b/packages/core/src/themes/test/css-variables/index.html
@@ -0,0 +1,305 @@
+
+
+
+
+ CSS Variable - Basic
+
+
+
+
+
+
+
+
+
+ CSS Variable - Basic
+
+
+ Select a Theme:
+
+ Default
+ Oceanic
+
+
+
+
+
+
+
+
+ Default
+ Default.activated
+
+
+
+ Primary
+ Primary.activated
+
+
+
+ Primary Outline
+ Primary Outline.activated
+
+
+
+ Primary Clear
+ Primary Clear.activated
+
+
+
+ Secondary
+ Secondary.activated
+
+
+
+ Tertiary
+ Tertiary.activated
+
+
+
+ Warning
+ Warning.activated
+
+
+
+ Danger
+ Danger.activated
+
+
+
+ Light
+ Light.activated
+
+
+
+ Medium
+ Medium.activated
+
+
+
+ Dark
+ Dark.activated
+
+
+
+ Button Disabled
+ Secondary Disabled
+
+
+
+
+
+
+ Card Header
+
+
+
+ Keep close to Nature's heart... and break clear away, once in awhile,
+ and climb a mountain or spend a week in the woods. Wash your spirit clean.
+
+
+
+
+
+ ion-item in a card, icon left, button right
+ View
+
+
+
+ This is content, without any paragraph or header tags,
+ within an ion-card-content element.
+
+
+
+
+
+
+ Card Link Item 1 .activated
+
+
+
+
+ Card Link Item 2
+
+
+
+
+ Card Button Item 1 .activated
+
+
+
+
+ Card Button Item 2
+
+
+
+
+
+
+ Pokémon Yellow
+ Super Metroid
+ Mega Man X
+ The Legend of Zelda
+ Pac-Man
+ Super Mario World
+ Street Fighter II
+ Half Life
+ Portal
+ Final Fantasy VII
+ Star Fox
+ Tetris
+ Donkey Kong III
+ Goldeneye 007
+ Doom
+ Fallout
+ GTA
+ Halo
+
+
+
+
+
+
+ Fruits (Group w/ values)
+
+
+ Apple
+
+
+
+
+ Grape, checked, disabled
+
+
+
+
+ Cherry
+
+
+
+
+
+
+
+
+
+ Apple
+
+
+
+
+
+
+
+ Default
+
+
+ Default
+
+
+
+
+
+
+ Default
+
+
+
+ Primary
+
+
+
+ Secondary
+
+
+
+ Warning
+
+
+
+ Danger
+
+
+
+ Light
+
+
+
+ Dark
+
+
+
+ Unchecked by Default
+
+
+
+ Disabled
+
+
+
+
+
+
+
+
+
+