diff --git a/ionic/components/search-bar/modes/ios.scss b/ionic/components/search-bar/modes/ios.scss
index 2e702ce67a..c7f9d10922 100644
--- a/ionic/components/search-bar/modes/ios.scss
+++ b/ionic/components/search-bar/modes/ios.scss
@@ -15,8 +15,9 @@ $search-bar-ios-input-height: 28px !default;
$search-bar-ios-input-placeholder-color: #9D9D9D !default;
$search-bar-ios-input-text-color: #000 !default;
$search-bar-ios-input-background-color: #FFFFFF !default;
-$search-bar-ios-input-transition: all 0.3s linear !default;
-//cubic-bezier(.25, .45, .05, 1)
+$search-bar-ios-input-transition: all 400ms cubic-bezier(.25, .45, .05, 1) !default;
+$search-bar-ios-cancel-transition: all 400ms cubic-bezier(.25, .45, .05, 1) !default;
+
$search-bar-ios-input-close-icon-color: #8F8E94 !default;
$search-bar-ios-input-close-icon-svg: "" !default;
$search-bar-ios-input-close-icon-size: 17px !default;
@@ -88,19 +89,9 @@ $search-bar-ios-input-close-icon-size: 17px !default;
.search-bar-cancel {
@extend button[clear];
- // transition: all 2s cubic-bezier(.25, .45, .05, 1);
- transition: $search-bar-ios-input-transition;
- transition-duration: 3s !important;
- margin-right: calc(-100%);
- // transform: translate3d(100px,0,0);
- // max-width: 0;
- min-height: 0;
-}
-
-.search-bar-cancel.left-align {
- max-width: initial;
- margin-right: 0;
+ transition: $search-bar-ios-cancel-transition;
padding-left: 8px;
+ min-height: 0;
padding-right: 0;
}
diff --git a/ionic/components/search-bar/modes/md.scss b/ionic/components/search-bar/modes/md.scss
index 4605baf186..84a1c244bd 100644
--- a/ionic/components/search-bar/modes/md.scss
+++ b/ionic/components/search-bar/modes/md.scss
@@ -69,3 +69,7 @@ $search-bar-md-input-close-icon-size: 22px !default;
right: 13px;
top: 13px;
}
+
+.search-bar-cancel {
+ display: none;
+}
diff --git a/ionic/components/search-bar/search-bar.ts b/ionic/components/search-bar/search-bar.ts
index 7bc2933142..766fe60c6d 100644
--- a/ionic/components/search-bar/search-bar.ts
+++ b/ionic/components/search-bar/search-bar.ts
@@ -74,6 +74,16 @@ export class SearchBar extends Ion {
this.query = '';
}
+ // Add the margin for iOS
+ afterViewInit() {
+ this.cancelButton = this.elementRef.nativeElement.querySelector('.search-bar-cancel');
+
+ if (this.cancelButton) {
+ this.cancelWidth = this.cancelButton.offsetWidth;
+ this.cancelButton.style.marginRight = "-" + this.cancelWidth + "px";
+ }
+ }
+
/**
* Much like ngModel, this is called from our valueAccessor for the attached
* ControlDirective to update the value internally.
@@ -99,10 +109,18 @@ export class SearchBar extends Ion {
inputFocused() {
this.isFocused = true;
this.shouldLeftAlign = true;
+
+ if (this.cancelButton) {
+ this.cancelButton.style.marginRight = "0px";
+ }
}
inputBlurred() {
this.isFocused = false;
this.shouldLeftAlign = this.value.trim() != '';
+
+ if (this.cancelButton) {
+ this.cancelButton.style.marginRight = "-" + this.cancelWidth + "px";
+ }
}
clearInput() {
diff --git a/ionic/components/search-bar/test/floating/main.html b/ionic/components/search-bar/test/floating/main.html
index da43d4f498..9d04b18b29 100644
--- a/ionic/components/search-bar/test/floating/main.html
+++ b/ionic/components/search-bar/test/floating/main.html
@@ -13,6 +13,8 @@
+
+