UNPKG

2.39 kBSCSSView Raw
1// Copyright 2018 Palantir Technologies, Inc. All rights reserved.
2// Licensed under the Apache License, Version 2.0.
3
4@import "../../common/variables";
5@import "~@blueprintjs/core/src/common/react-transition";
6
7.#{$ns}-panel-stack {
8 overflow: hidden;
9 position: relative;
10}
11
12.#{$ns}-panel-stack-header {
13 align-items: center;
14 box-shadow: 0 1px $pt-divider-black;
15 display: flex;
16 flex-shrink: 0;
17 height: $pt-grid-size * 3;
18 z-index: 1;
19
20 .#{$ns}-dark & {
21 box-shadow: 0 1px $pt-dark-divider-white;
22 }
23
24 // two span children act as spacers to keep the title centered.
25 > span {
26 align-items: stretch;
27 display: flex;
28 flex: 1;
29 }
30
31 .#{$ns}-heading {
32 margin: 0 ($pt-grid-size / 2);
33 }
34}
35
36.#{$ns}-button.#{$ns}-panel-stack-header-back {
37 margin-left: $pt-grid-size / 2;
38 padding-left: 0;
39 white-space: nowrap;
40
41 .#{$ns}-icon {
42 // reduce margins around icon so it fits better in tight header
43 margin: 0 2px;
44 }
45}
46
47.#{$ns}-panel-stack-view {
48 @include position-all(absolute, 0);
49
50 background-color: $white;
51 border-right: 1px solid $pt-divider-black;
52 display: flex;
53 flex-direction: column;
54
55 // border between panels, visible during transition
56 margin-right: -1px;
57 overflow-y: auto;
58 z-index: 1;
59
60 .#{$ns}-dark & {
61 background-color: $dark-gray4;
62 }
63
64 &:nth-last-child(n + 4) {
65 display: none;
66 }
67}
68
69// PUSH transition: enter from right (100%), existing panel moves off left.
70.#{$ns}-panel-stack-push {
71 @include react-transition-phase(
72 "#{$ns}-panel-stack",
73 "enter",
74 (transform: translateX(100%) translate(0%), opacity: 0 1),
75 $easing: ease,
76 $duration: $pt-transition-duration * 4
77 );
78 @include react-transition-phase(
79 "#{$ns}-panel-stack",
80 "exit",
81 (transform: translateX(-50%) translate(0%), opacity: 0 1),
82 $easing: ease,
83 $duration: $pt-transition-duration * 4
84 );
85}
86
87// POP transition: enter from left (-50%), existing panel moves off right.
88.#{$ns}-panel-stack-pop {
89 @include react-transition-phase(
90 "#{$ns}-panel-stack",
91 "enter",
92 (transform: translateX(-50%) translate(0%), opacity: 0 1),
93 $easing: ease,
94 $duration: $pt-transition-duration * 4
95 );
96 @include react-transition-phase(
97 "#{$ns}-panel-stack",
98 "exit",
99 (transform: translateX(100%) translate(0%), opacity: 0 1),
100 $easing: ease,
101 $duration: $pt-transition-duration * 4
102 );
103}