diff --git a/ionic/components/modal/modal.scss b/ionic/components/modal/modal.scss
index 63d2528bf3..ea0a115678 100644
--- a/ionic/components/modal/modal.scss
+++ b/ionic/components/modal/modal.scss
@@ -2,11 +2,13 @@
// Modals
// --------------------------------------------------
-$modal-background-color: #fff !default;
+$modal-background-color: $background-color !default;
-$modal-inset-mode-break-point: 680px !default; // @media min-width
-$modal-inset-mode-top: 20% !default;
-$modal-inset-mode-right: 20% !default;
-$modal-inset-mode-bottom: 20% !default;
-$modal-inset-mode-left: 20% !default;
-$modal-inset-mode-min-height: 240px !default;
+
+ion-page.modal {
+ background-color: $modal-background-color;
+ z-index: $z-index-overlay;
+
+ // hidden by default to prevent flickers, the animation will show it
+ transform: translate3d(0px, 100%, 0px);
+}
diff --git a/ionic/components/modal/test/basic/index.ts b/ionic/components/modal/test/basic/index.ts
index f49e7bede6..60181ed6f9 100644
--- a/ionic/components/modal/test/basic/index.ts
+++ b/ionic/components/modal/test/basic/index.ts
@@ -27,10 +27,13 @@ class MyAppCmp {
platform.ready().then(() => {
console.log('platform.ready')
});
-
}
openModal() {
+ this.modal.open(PlainPage);
+ }
+
+ openModalChildNav() {
this.modal.open(ContactModal, {
handle: 'my-awesome-modal'
});
@@ -44,10 +47,27 @@ class MyAppCmp {
}
}
+
+@Page({
+ template: `
+
Plain Page in a modal
+ Not inside of ion-content
+
+ `
+})
+class PlainPage {
+ constructor(private modal: Modal) {}
+
+ closeModal() {
+ this.modal.get().close();
+ }
+}
+
+
@Page({
template: ''
})
-export class ContactModal {
+class ContactModal {
constructor() {
console.log('ContactModal constructor')
this.rootView = ModalFirstPage;
@@ -94,7 +114,7 @@ export class ContactModal {
`
})
-export class ModalFirstPage {
+class ModalFirstPage {
constructor(
nav: NavController,
modal: Modal,
@@ -158,7 +178,7 @@ export class ModalFirstPage {
`
})
-export class ModalSecondPage {
+class ModalSecondPage {
constructor(
nav: NavController,
params: NavParams
@@ -181,7 +201,6 @@ class FadeIn extends Animation {
.fadeIn();
}
}
-
Animation.register('my-fade-in', FadeIn);
class FadeOut extends Animation {
@@ -193,5 +212,4 @@ class FadeOut extends Animation {
.fadeOut();
}
}
-
Animation.register('my-fade-out', FadeOut);
diff --git a/ionic/components/modal/test/basic/main.html b/ionic/components/modal/test/basic/main.html
index 5b6b688259..1fef972e8c 100644
--- a/ionic/components/modal/test/basic/main.html
+++ b/ionic/components/modal/test/basic/main.html
@@ -1,10 +1,14 @@
-
-
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/ionic/components/overlay/overlay-controller.ts b/ionic/components/overlay/overlay-controller.ts
index e037caa5ca..a7424483fd 100644
--- a/ionic/components/overlay/overlay-controller.ts
+++ b/ionic/components/overlay/overlay-controller.ts
@@ -40,6 +40,7 @@ export class OverlayController {
}
}
this.renderer.setElementStyle(ref.location, 'zIndex', ref._z);
+ this.renderer.setElementAttribute(ref.location, 'role', 'dialog');
util.extend(instance, opts);
@@ -59,7 +60,7 @@ export class OverlayController {
if (this.config.get('animate') === false) {
animation.duration(0);
}
- animation.before.addClass('show-overlay');
+ animation.before.addClass(overlayType);
this.app.setEnabled(false, animation.duration());
this.app.setTransitioning(true, animation.duration());
@@ -103,7 +104,6 @@ export class OverlayController {
if (this.config.get('animate') === false) {
animation.duration(0);
}
- animation.after.removeClass('show-overlay');
this.app.setEnabled(false, animation.duration());
this.app.setTransitioning(true, animation.duration());
diff --git a/ionic/components/overlay/overlay.ts b/ionic/components/overlay/overlay.ts
index 36030abdee..011db0ab93 100644
--- a/ionic/components/overlay/overlay.ts
+++ b/ionic/components/overlay/overlay.ts
@@ -5,7 +5,7 @@ import {OverlayController} from './overlay-controller';
@Component({
selector: 'ion-overlay',
- template: ''
+ template: ''
})
export class OverlayAnchor {
constructor(
@@ -23,7 +23,7 @@ export class OverlayAnchor {
}
append(componentType) {
- return this.loader.loadNextToLocation(componentType, this.elementRef).catch(err => {
+ return this.loader.loadIntoLocation(componentType, this.elementRef, 'contents').catch(err => {
console.error(err);
});
}