diff --git a/ionic/components/popup/modes/ios.scss b/ionic/components/popup/modes/ios.scss index a1f7c298f0..f3cad9cbb5 100644 --- a/ionic/components/popup/modes/ios.scss +++ b/ionic/components/popup/modes/ios.scss @@ -9,14 +9,22 @@ $popup-ios-background: rgba(0,0,0,0) !default; $popup-ios-border-radius: 13px !default; $popup-ios-background-color: #f8f8f8 !default; +$popup-ios-head-padding: 12px 16px 20px !default; $popup-ios-head-text-align: center !default; + +$popup-ios-title-margin-top: 12px !default; +$popup-ios-title-font-weight: bold !default; $popup-ios-title-font-size: 17px !default; $popup-ios-sub-title-font-size: 14px !default; $popup-ios-sub-title-text-color: #666 !default; + +$popup-ios-body-padding: 0px 16px 24px !default; $popup-ios-body-text-color: inherit !default; $popup-ios-body-text-align: center !default; $popup-ios-body-font-size: 13px !default; +$popup-ios-prompt-input-padding: 6px !default; +$popup-ios-prompt-input-margin-top: 24px !default; $popup-ios-prompt-input-background-color: #fff !default; $popup-ios-prompt-input-border: 1px solid #ccc !default; $popup-ios-prompt-input-border-radius: 4px !default; @@ -29,23 +37,23 @@ $popup-ios-button-activated-background-color: #e9e9e9 !default; ion-popup { background: $popup-ios-background; +} - popup-wrapper { - border-radius: $popup-ios-border-radius; - background-color: $popup-ios-background-color; - max-width: $popup-ios-max-width; - overflow: hidden; - } +.popup-wrapper { + border-radius: $popup-ios-border-radius; + background-color: $popup-ios-background-color; + max-width: $popup-ios-max-width; + overflow: hidden; } .popup-head { - padding: 12px 16px 20px; + padding: $popup-ios-head-padding; text-align: $popup-ios-head-text-align; } .popup-title { - margin-top: 12px; - font-weight: bold; + margin-top: $popup-ios-title-margin-top; + font-weight: $popup-ios-title-font-weight; font-size: $popup-ios-title-font-size; } @@ -55,15 +63,15 @@ ion-popup { } .popup-body { - padding: 0px 16px 24px; + padding: $popup-ios-body-padding; color: $popup-ios-body-text-color; text-align: $popup-ios-body-text-align; font-size: $popup-ios-body-font-size; } .prompt-input { - padding: 6px; - margin-top: 24px; + padding: $popup-ios-prompt-input-padding; + margin-top: $popup-ios-prompt-input-margin-top; background-color: $popup-ios-prompt-input-background-color; border: $popup-ios-prompt-input-border; @@ -72,39 +80,37 @@ ion-popup { } .popup-buttons { - button { - @extend button[clear]; + :last-child { + font-weight: bold; + border-right: 0; + } +} - margin: 0; - flex: 1; - border-radius: 0; - font-size: $popup-ios-button-font-size; - min-height: $popup-ios-button-min-height; - border-right: 1px solid $popup-ios-button-border-color; +.popup-button { + margin: 0; + flex: 1; + border-radius: 0; + font-size: $popup-ios-button-font-size; + min-height: $popup-ios-button-min-height; + border-right: 1px solid $popup-ios-button-border-color; - &.activated { - opacity: 1; - background-color: $popup-ios-button-activated-background-color; - } + &.activated { + opacity: 1; + background-color: $popup-ios-button-activated-background-color; + } - &:hover:not(.disable-hover) { - opacity: 1; - } + &:hover:not(.disable-hover) { + opacity: 1; + } - &:before { - position: absolute; - top: 0; - right: 0; - left: 0; - border-top: 1px solid $popup-ios-button-border-color; - content: ''; - pointer-events: none; - } - - &:last-child { - font-weight: bold; - border-right: 0; - } + &:before { + position: absolute; + top: 0; + right: 0; + left: 0; + border-top: 1px solid $popup-ios-button-border-color; + content: ''; + pointer-events: none; } } @@ -113,13 +119,11 @@ ion-popup { border-width: 0.55px; } - .popup-buttons { - button { - border-right-width: 0.55px; + .popup-button { + border-right-width: 0.55px; - &:before { - border-top-width: 0.55px; - } + &:before { + border-top-width: 0.55px; } } } diff --git a/ionic/components/popup/modes/md.scss b/ionic/components/popup/modes/md.scss index 5e57c9f567..901287bb23 100644 --- a/ionic/components/popup/modes/md.scss +++ b/ionic/components/popup/modes/md.scss @@ -10,33 +10,35 @@ $popup-md-background-color: #fafafa !default; $popup-md-box-shadow: 0px 16px 20px rgba(0, 0, 0, 0.4) !default; $popup-md-head-text-align: left !default; +$popup-md-head-padding: 24px 24px 10px 24px !default; + $popup-md-title-font-size: 20px !default; $popup-md-sub-title-font-size: 15px !default; -$popup-md-body-text-color: rgba(0,0,0,.5) !default; -$popup-md-button-min-height: 36px !default; +$popup-md-body-padding: 10px 24px 24px 24px !default; +$popup-md-body-text-color: rgba(0,0,0,.5) !default; $popup-md-prompt-input-border-color: #dedede !default; $popup-md-prompt-input-text-color: #000000 !default; $popup-md-prompt-input-highlight-color: map-get($colors-md, primary) !default; -$popup-md-prompt-input-placeholder-color: #b9b9b9 !default; $popup-md-prompt-input-margin-top: 5px !default; $popup-md-prompt-input-margin-bottom: 5px !default; +$popup-md-buttons-padding: 8px 8px 8px 24px !default; +$popup-md-buttons-justify-content: flex-end !default; -ion-popup { - popup-wrapper { - max-width: $popup-md-max-width; - border-radius: $popup-md-border-radius; - background-color: $popup-md-background-color; - box-shadow: $popup-md-box-shadow; - } +.popup-wrapper { + max-width: $popup-md-max-width; + border-radius: $popup-md-border-radius; + background-color: $popup-md-background-color; + + box-shadow: $popup-md-box-shadow; } .popup-head { text-align: $popup-md-head-text-align; - padding: 24px 24px 10px 24px; + padding: $popup-md-head-padding; } .popup-title { @@ -48,7 +50,7 @@ ion-popup { } .popup-body { - padding: 10px 24px 24px 24px; + padding: $popup-md-body-padding; color: $popup-md-body-text-color; } @@ -64,16 +66,10 @@ ion-popup { } .popup-buttons { - padding: 8px 8px 8px 24px; - justify-content: flex-end; - - button { - @extend button[clear]; - - min-height: $popup-md-button-min-height; - - &.activated { - opacity: 1; - } - } + padding: $popup-md-buttons-padding; + justify-content: $popup-md-buttons-justify-content; +} + +.popup-button.activated { + opacity: 1; } diff --git a/ionic/components/popup/popup.scss b/ionic/components/popup/popup.scss index 4429b65223..2ea36cfbbf 100644 --- a/ionic/components/popup/popup.scss +++ b/ionic/components/popup/popup.scss @@ -4,7 +4,6 @@ // -------------------------------------------------- $popup-min-width: 250px !default; -$popup-max-width: 100% !default; $popup-max-height: 90% !default; $popup-button-line-height: 20px !default; @@ -24,24 +23,23 @@ ion-popup { justify-content: center; align-items: center; - popup-wrapper { - z-index: $z-index-overlay-wrapper; - min-width: $popup-min-width; - max-width: $popup-max-width; - max-height: $popup-max-height; - - display: flex; - flex-direction: column; - - opacity: 0; - } - input, textarea { width: 100%; } } +.popup-wrapper { + z-index: $z-index-overlay-wrapper; + min-width: $popup-min-width; + max-height: $popup-max-height; + + display: flex; + flex-direction: column; + + opacity: 0; +} + .popup-title { margin: 0; padding: 0; @@ -56,7 +54,6 @@ ion-popup { .popup-body { overflow: auto; - // TODO is this needed, it is never empty &:empty { padding: 0; } @@ -73,12 +70,12 @@ ion-popup { .popup-buttons { display: flex; flex-direction: row; - - button { - display: block; - margin: 0; - line-height: $popup-button-line-height; - font-size: $popup-button-font-size; - margin-right: $popup-button-margin-right; - } +} + +.popup-button { + display: block; + margin: 0; + line-height: $popup-button-line-height; + font-size: $popup-button-font-size; + margin-right: $popup-button-margin-right; } diff --git a/ionic/components/popup/popup.ts b/ionic/components/popup/popup.ts index 125197776e..a08f0bffb0 100644 --- a/ionic/components/popup/popup.ts +++ b/ionic/components/popup/popup.ts @@ -270,8 +270,8 @@ const OVERLAY_TYPE = 'popup'; @Component({ selector: 'ion-popup', template: - '' + - '' + + '
' + + '', host: { 'role': 'dialog' }, @@ -352,8 +352,8 @@ class PopupPopIn extends Animation { super(null, opts); let ele = enteringView.pageRef().nativeElement; - let backdrop = new Animation(ele.querySelector('backdrop')); - let wrapper = new Animation(ele.querySelector('popup-wrapper')); + let backdrop = new Animation(ele.querySelector('.backdrop')); + let wrapper = new Animation(ele.querySelector('.popup-wrapper')); wrapper.fromTo('opacity', '0.01', '1').fromTo('scale', '1.1', '1'); backdrop.fromTo('opacity', '0.01', '0.3'); @@ -372,8 +372,8 @@ class PopupPopOut extends Animation { super(null, opts); let ele = leavingView.pageRef().nativeElement; - let backdrop = new Animation(ele.querySelector('backdrop')); - let wrapper = new Animation(ele.querySelector('popup-wrapper')); + let backdrop = new Animation(ele.querySelector('.backdrop')); + let wrapper = new Animation(ele.querySelector('.popup-wrapper')); wrapper.fromTo('opacity', '1', '0').fromTo('scale', '1', '0.9'); backdrop.fromTo('opacity', '0.3', '0'); @@ -392,8 +392,8 @@ class PopupMdPopIn extends Animation { super(null, opts); let ele = enteringView.pageRef().nativeElement; - let backdrop = new Animation(ele.querySelector('backdrop')); - let wrapper = new Animation(ele.querySelector('popup-wrapper')); + let backdrop = new Animation(ele.querySelector('.backdrop')); + let wrapper = new Animation(ele.querySelector('.popup-wrapper')); wrapper.fromTo('opacity', '0.01', '1').fromTo('scale', '1.1', '1'); backdrop.fromTo('opacity', '0.01', '0.5'); @@ -412,8 +412,8 @@ class PopupMdPopOut extends Animation { super(null, opts); let ele = leavingView.pageRef().nativeElement; - let backdrop = new Animation(ele.querySelector('backdrop')); - let wrapper = new Animation(ele.querySelector('popup-wrapper')); + let backdrop = new Animation(ele.querySelector('.backdrop')); + let wrapper = new Animation(ele.querySelector('.popup-wrapper')); wrapper.fromTo('opacity', '1', '0').fromTo('scale', '1', '0.9'); backdrop.fromTo('opacity', '0.5', '0');