UNPKG

3.47 kBSCSSView Raw
1/**
2 * @license
3 * Copyright Akveo. All Rights Reserved.
4 * Licensed under the MIT License. See License.txt in the project root for license information.
5 */
6
7@mixin nb-popover-theme {
8 nb-popover {
9 $arrow-size: nb-theme(popover-arrow-size);
10
11 border: nb-theme(popover-border-width) solid nb-theme(popover-border-color);
12 border-radius: nb-theme(popover-border-radius);
13 background: nb-theme(popover-background-color);
14 box-shadow: nb-theme(popover-shadow);
15 color: nb-theme(popover-text-color);
16
17 .primitive-overlay {
18 font-family: nb-theme(popover-text-font-family);
19 font-size: nb-theme(popover-text-font-size);
20 font-weight: nb-theme(popover-text-font-weight);
21 line-height: nb-theme(popover-text-line-height);
22 padding: nb-theme(popover-padding);
23 }
24
25 .arrow {
26 border-left: $arrow-size solid transparent;
27 border-right: $arrow-size solid transparent;
28 border-bottom: $arrow-size solid nb-theme(popover-border-color);
29
30 &::after {
31 position: absolute;
32 content: ' ';
33 width: 0;
34 height: 0;
35 top: 3px;
36 left: calc(50% - #{$arrow-size});
37 border-left: $arrow-size solid transparent;
38 border-right: $arrow-size solid transparent;
39 border-bottom: $arrow-size solid nb-theme(popover-background-color);
40 clip-path: inset(0 0 2px);
41 }
42 }
43
44 &.nb-overlay-bottom .arrow {
45 top: calc(-1 * #{$arrow-size} + 1px);
46 left: calc(50% - #{$arrow-size});
47 }
48
49 &.nb-overlay-bottom-start .arrow {
50 top: calc(-1 * #{$arrow-size} + 1px);
51 @include nb-ltr(right, $arrow-size);
52 @include nb-rtl(left, $arrow-size);
53 }
54
55 &.nb-overlay-bottom-end .arrow {
56 top: calc(-1 * #{$arrow-size} + 1px);
57 @include nb-ltr(left, $arrow-size);
58 @include nb-rtl(right, $arrow-size);
59 }
60
61 &.nb-overlay-left .arrow {
62 right: calc(-1 * #{$arrow-size} - #{$arrow-size} / 2 + 2px);
63 top: calc(50% - #{$arrow-size / 2});
64 transform: rotate(90deg);
65 }
66
67 &.nb-overlay-start-top .arrow {
68 right: calc(-1 * #{$arrow-size} - #{$arrow-size} / 2 + 2px);
69 bottom: $arrow-size;
70 transform: rotate(90deg);
71 }
72
73 &.nb-overlay-start-bottom .arrow {
74 right: calc(-1 * #{$arrow-size} - #{$arrow-size} / 2 + 2px);
75 top: $arrow-size;
76 transform: rotate(90deg);
77 }
78
79 &.nb-overlay-top .arrow {
80 bottom: calc(-1 * #{$arrow-size} + 1px);
81 left: calc(50% - #{$arrow-size});
82 transform: rotate(180deg);
83 }
84
85 &.nb-overlay-top-start .arrow {
86 bottom: calc(-1 * #{$arrow-size} + 1px);
87 @include nb-ltr(right, $arrow-size);
88 @include nb-rtl(left, $arrow-size);
89 transform: rotate(180deg);
90 }
91
92 &.nb-overlay-top-end .arrow {
93 bottom: calc(-1 * #{$arrow-size} + 1px);
94 @include nb-ltr(left, $arrow-size);
95 @include nb-rtl(right, $arrow-size);
96 transform: rotate(180deg);
97 }
98
99 &.nb-overlay-right .arrow {
100 left: calc(-1 * #{$arrow-size} - #{$arrow-size} / 2 + 2px);
101 top: calc(50% - #{$arrow-size / 2});
102 transform: rotate(270deg);
103 }
104
105 &.nb-overlay-end-top .arrow {
106 left: calc(-1 * #{$arrow-size} - #{$arrow-size} / 2 + 2px);
107 bottom: $arrow-size;
108 transform: rotate(270deg);
109 }
110
111 &.nb-overlay-end-bottom .arrow {
112 left: calc(-1 * #{$arrow-size} - #{$arrow-size} / 2 + 2px);
113 top: $arrow-size;
114 transform: rotate(270deg);
115 }
116 }
117}