158 lines
3.5 KiB
SCSS
158 lines
3.5 KiB
SCSS
///
|
|
/// @filename _views.scss
|
|
/// @project SOGo
|
|
/// @version 3.alpha
|
|
/// @module views
|
|
///
|
|
///
|
|
@import 'LoginUI.scss';
|
|
@import 'MailerUI.scss';
|
|
@import 'ContactsUI.scss';
|
|
@import 'MessageEditorUI';
|
|
@import 'SchedulerUI';
|
|
|
|
.view[layout=row] {
|
|
max-height: 100%;
|
|
}
|
|
|
|
// We make intensive use of the list/detail view pattern, here are some base
|
|
// definitions for this
|
|
// ----------------------------------------------------------------------------
|
|
|
|
// Variables
|
|
$listView-width: grid-step(6) !global;
|
|
$detailView-width: grid-step(8) !global;
|
|
|
|
//[id="messagesList"] {
|
|
// flex: 0 0 $listView-width;
|
|
//
|
|
//}
|
|
//
|
|
//[id ="contactsList"] {
|
|
// flex: 0 1 $listView-width;
|
|
// min-width: ($listView-width - ($pitch * 2));
|
|
//}
|
|
|
|
[class|="view"] {
|
|
position: relative;
|
|
|
|
}
|
|
|
|
.view-list {
|
|
z-index: ($z-index-view - 1);
|
|
min-width: ($listView-width - ($pitch * 2));
|
|
@include at(md){
|
|
@include flex-col(md, 7, 1, 1);
|
|
min-width: ($pitch * 3);
|
|
}
|
|
@include from(lg) {
|
|
@include flex-col(lg, 6, 1, 0);
|
|
}
|
|
@include to(sm) {
|
|
width: 100%;
|
|
min-width: 100%;
|
|
}
|
|
}
|
|
|
|
.view-detail {
|
|
z-index: $z-index-view;
|
|
overflow-x: hidden;
|
|
background-color: $background-base-color;
|
|
|
|
@include from(lg) {
|
|
@include flex-col(lg, 8, 2, 1);
|
|
margin: 0 auto $mg auto;
|
|
}
|
|
|
|
@include at(md) {
|
|
@include flex-col(md, 9);
|
|
margin: 0;
|
|
}
|
|
|
|
@include from(md) {
|
|
.viewer {
|
|
position: absolute;
|
|
max-width: 100%;
|
|
transform: translate3d(0, 0, 0);
|
|
transition: all 0.5s $swift-ease-in-out-timing-function;
|
|
&.ng-enter {
|
|
transform: translate(-105%, 0);
|
|
&.ng-enter-active {
|
|
transform: translate(0%, 0%);
|
|
transition-delay: 0.5s;
|
|
}
|
|
}
|
|
|
|
&.ng-leave {
|
|
transition-delay: 0;
|
|
transition-duration: 0.1s;
|
|
transform: translate(0, 0);
|
|
|
|
&.ng-leave-active {
|
|
transition-delay: 0.1s;
|
|
transition-duration: 0.4s;
|
|
transform: translate(-105%, 100%);
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
@include to(sm) {
|
|
position: absolute;
|
|
width: 100%;
|
|
min-width: 100%;
|
|
// caution: limited support in Android (<=4.4), full-support in v. 37
|
|
height: calc(100vh - #{$toolbar-tall-height});
|
|
transform: translateX(-100%) scale(1);
|
|
transform-origin: 50% 50%;
|
|
transition: all 0.5s $swift-ease-in-out-timing-function;
|
|
// .view-detail.sg-close hides the background
|
|
&.sg-close {
|
|
transition-delay: 0.1s;
|
|
transition-duration: 0.4s;
|
|
transform: translateX(-100%) scale(0);
|
|
// .viewer is the card itself
|
|
.viewer {
|
|
&.ng-leave,
|
|
&.ng-enter,
|
|
&.ng-leave.ng-leave-active {
|
|
transform: translateY(0) scale(0);
|
|
}
|
|
// ui-sref might add ng-animate class early
|
|
&.ng-enter.ng-enter-active {
|
|
transform: translateY(0) scale(0);
|
|
}
|
|
}
|
|
}
|
|
// .viewer is the card itself
|
|
.viewer {
|
|
&.ng-leave,
|
|
&.ng-leave.ng-leave-active {
|
|
transform: translateY(100%) scale(0);
|
|
}
|
|
|
|
&.ng-enter {
|
|
transition: all 0.5s $swift-ease-in-out-timing-function;
|
|
transform: translateY(100%) scale(0);
|
|
}
|
|
&.ng-enter.ng-enter-active {
|
|
transform: translateY(0) scale(1);
|
|
}
|
|
}
|
|
|
|
&.ng-leave,
|
|
&.ng-leave.ng-leave-active {
|
|
transform: translateX(-100%) scale(0);
|
|
}
|
|
|
|
&.ng-enter {
|
|
transition: all 0.5s $swift-ease-in-out-timing-function;
|
|
transform: translateX(-100%) scale(0);
|
|
}
|
|
&.ng-enter.ng-enter-active {
|
|
transform: translateX(-100%) scale(1);
|
|
}
|
|
}
|
|
}
|