@import "../../themes/ionic.globals.ios"; // iOS Searchbar // -------------------------------------------------- /// @prop - Padding top/bottom of the searchbar $searchbar-ios-padding-vertical: 0 !default; /// @prop - Padding start/end of the searchbar $searchbar-ios-padding-horizontal: 8px !default; /// @prop - Background of the searchbar $searchbar-ios-background-color: rgba(0, 0, 0, .2) !default; /// @prop - Border color of the searchbar $searchbar-ios-border-color: rgba(0, 0, 0, .05) !default; /// @prop - Minimum height of the searchbar $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; /// @prop - Svg for the searchbar input search icon $searchbar-ios-input-search-icon-svg: "" !default; /// @prop - Size of the searchbar input search icon $searchbar-ios-input-search-icon-size: 13px !default; /// @prop - Height of the searchbar input $searchbar-ios-input-height: 3rem !default; /// @prop - Color of the searchbar input placeholder $searchbar-ios-input-placeholder-color: rgba(0, 0, 0, .5) !default; /// @prop - Color of the searchbar input text $searchbar-ios-input-text-color: #000 !default; /// @prop - Background of the searchbar input $searchbar-ios-input-background-color: #fff !default; /// @prop - Transition of the searchbar input $searchbar-ios-input-transition: all 300ms ease !default; /// @prop - Transition of the searchbar input cancel button $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; /// @prop - Svg for the searchbar input clear icon $searchbar-ios-input-clear-icon-svg: "" !default; /// @prop - Size of the searchbar input clear icon $searchbar-ios-input-clear-icon-size: 18px !default; /// @prop - Background of the searchbar input inside of a toolbar $searchbar-ios-toolbar-input-background: rgba(0, 0, 0, .08) !default; // Searchbar // ----------------------------------------- .searchbar-ios { @include padding($searchbar-ios-padding-vertical, $searchbar-ios-padding-horizontal); min-height: $searchbar-ios-min-height; border-top: $hairlines-width solid transparent; border-bottom: $hairlines-width solid $searchbar-ios-border-color; background: $searchbar-ios-background-color; } // Searchbar Mixin for Icons // ----------------------------------------- @mixin ios-searchbar-icon($svg-icon, $fg-color) { $svg: str-replace($svg-icon, 'fg-color', $fg-color); @include svg-background-image($svg, true); } // Searchbar Search Icon // ----------------------------------------- .searchbar-ios .searchbar-search-icon { @include position(9px, null, null, 9px); @include ios-searchbar-icon($searchbar-ios-input-search-icon-svg, $searchbar-ios-input-search-icon-color); @include margin-horizontal(calc(50% - 60px), null); position: absolute; width: $searchbar-ios-input-search-icon-size + 1; height: $searchbar-ios-input-search-icon-size + 1; background-repeat: no-repeat; background-size: $searchbar-ios-input-search-icon-size; } // Searchbar Input Field // ----------------------------------------- .searchbar-ios .searchbar-input { @include placeholder($searchbar-ios-input-placeholder-color); @include padding(0, 28px); @include border-radius(5px); height: $searchbar-ios-input-height; font-size: 1.4rem; font-weight: 400; color: $searchbar-ios-input-text-color; background-color: $searchbar-ios-input-background-color; } // Searchbar Clear Input Icon // ----------------------------------------- .searchbar-ios .searchbar-clear-icon { @include position(0, 0, null, null); @include ios-searchbar-icon($searchbar-ios-input-clear-icon-svg, $searchbar-ios-input-clear-icon-color); @include background-position(center); position: absolute; width: 30px; height: 100%; background-repeat: no-repeat; background-size: $searchbar-ios-input-clear-icon-size; } // Searchbar Cancel (iOS only) // ----------------------------------------- .searchbar-ios .searchbar-ios-cancel { @include padding(0, 0, 0, 8px); @include margin-horizontal(0, null); display: none; flex-shrink: 0; height: 30px; cursor: pointer; } // Searchbar Left Aligned (iOS only) // ----------------------------------------- .searchbar-ios.searchbar-left-aligned .searchbar-search-icon { @include margin-horizontal(0, null); } .searchbar-ios.searchbar-left-aligned .searchbar-input { @include padding-horizontal(30px, null); } // Searchbar Has Focus // ----------------------------------------- .searchbar-ios.searchbar-show-cancel.searchbar-has-focus .searchbar-ios-cancel { display: block; } // Searchbar in Toolbar // ----------------------------------------- .toolbar .searchbar-ios { border-bottom-width: 0; background: transparent; } .toolbar .searchbar-ios .searchbar-input { background: $searchbar-ios-toolbar-input-background; } .toolbar .searchbar-ios .searchbar-ios-cancel { @include padding(0); } .toolbar .searchbar-ios.searchbar-has-focus .searchbar-ios-cancel { @include padding-horizontal(8px, null); } // Searchbar Cancel (MD only) // ----------------------------------------- .searchbar-ios .searchbar-md-cancel { display: none; } // Generate Default Search Bar Colors // -------------------------------------------------- @each $color-name, $color-base, $color-contrast in get-colors($colors-ios) { $fg-color: rgba($color-contrast, .5); .searchbar-ios-#{$color-name} .searchbar-ios-cancel { color: $color-base; } .searchbar-ios-#{$color-name} .searchbar-ios-cancel:hover:not(.disable-hover) { color: color-shade($color-base); } .toolbar-ios-#{$color-name} .searchbar-ios .searchbar-search-icon { @include ios-searchbar-icon($searchbar-ios-input-search-icon-svg, $fg-color); } .toolbar-ios-#{$color-name} .searchbar-ios .searchbar-input { @include placeholder($fg-color); color: $color-contrast; background: rgba($color-contrast, .08); } .toolbar-ios-#{$color-name} .searchbar-ios .searchbar-clear-icon { @include ios-searchbar-icon($searchbar-ios-input-clear-icon-svg, $fg-color); } .toolbar-ios-#{$color-name} .searchbar-ios .searchbar-ios-cancel { color: color-contrast($colors-ios, $color-base, ios); } } // Searchbar animation // ----------------------------------------- .searchbar-ios.searchbar-animated.searchbar-show-cancel .searchbar-ios-cancel { display: block; } .searchbar-ios.searchbar-animated .searchbar-search-icon, .searchbar-ios.searchbar-animated .searchbar-input { transition: $searchbar-ios-input-transition; } .searchbar-animated.searchbar-has-focus .searchbar-ios-cancel { opacity: 1; pointer-events: auto; } .searchbar-animated .searchbar-ios-cancel { @include margin-horizontal(null, -100%); @include transform(translate3d(0, 0, 0)); opacity: 0; transition: $searchbar-ios-cancel-transition; pointer-events: none; }