Skip to content

Commit ce89c2d

Browse files
author
Aaron Iker
committed
feat: popover & list
1 parent 50f10ed commit ce89c2d

2 files changed

Lines changed: 55 additions & 15 deletions

File tree

packages/ui/src/components/list.css

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,9 @@
3838
flex-shrink: 0;
3939
background-color: transparent;
4040
opacity: 0.5;
41-
transition: opacity 0.15s ease;
41+
transition-property: opacity;
42+
transition-duration: var(--transition-duration);
43+
transition-timing-function: var(--transition-easing);
4244

4345
&:hover:not(:disabled),
4446
&:focus:not(:disabled),
@@ -89,7 +91,9 @@
8991
height: 20px;
9092
background-color: transparent;
9193
opacity: 0.5;
92-
transition: opacity 0.15s ease;
94+
transition-property: opacity;
95+
transition-duration: var(--transition-duration);
96+
transition-timing-function: var(--transition-easing);
9397

9498
&:hover:not(:disabled),
9599
&:focus:not(:disabled),
@@ -189,7 +193,9 @@
189193
background: linear-gradient(to bottom, var(--surface-raised-stronger-non-alpha), transparent);
190194
pointer-events: none;
191195
opacity: 0;
192-
transition: opacity 0.15s ease;
196+
transition-property: opacity;
197+
transition-duration: var(--transition-duration);
198+
transition-timing-function: var(--transition-easing);
193199
}
194200

195201
&[data-stuck="true"]::after {

packages/ui/src/components/popover.css

Lines changed: 46 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,35 @@
1515

1616
transform-origin: var(--kb-popover-content-transform-origin);
1717

18-
&:focus-within {
19-
outline: none;
20-
}
18+
animation: popoverContentHide var(--transition-duration) var(--transition-easing) forwards;
2119

22-
&[data-closed] {
23-
animation: popover-close 0.15s ease-out;
20+
@starting-style {
21+
animation: none;
2422
}
2523

2624
&[data-expanded] {
27-
animation: popover-open 0.15s ease-out;
25+
pointer-events: auto;
26+
animation: popoverContentShow var(--transition-duration) var(--transition-easing) forwards;
27+
}
28+
29+
[data-origin-top-right] {
30+
transform-origin: top right;
31+
}
32+
33+
[data-origin-top-left] {
34+
transform-origin: top left;
35+
}
36+
37+
[data-origin-bottom-right] {
38+
transform-origin: bottom right;
39+
}
40+
41+
[data-origin-bottom-left] {
42+
transform-origin: bottom left;
43+
}
44+
45+
&:focus-within {
46+
outline: none;
2847
}
2948

3049
[data-slot="popover-header"] {
@@ -75,24 +94,39 @@
7594
}
7695
}
7796

78-
@keyframes popover-open {
97+
@keyframes popoverContentShow {
7998
from {
8099
opacity: 0;
81-
transform: scale(0.96);
100+
transform: scaleY(0.95);
82101
}
83102
to {
84103
opacity: 1;
85-
transform: scale(1);
104+
transform: scaleY(1);
86105
}
87106
}
88107

89-
@keyframes popover-close {
108+
@keyframes popoverContentHide {
90109
from {
91110
opacity: 1;
92-
transform: scale(1);
111+
transform: scaleY(1);
93112
}
94113
to {
95114
opacity: 0;
96-
transform: scale(0.96);
115+
transform: scaleY(0.95);
116+
}
117+
}
118+
119+
[data-component="model-popover-content"] {
120+
transform-origin: var(--kb-popper-content-transform-origin);
121+
pointer-events: none;
122+
animation: popoverContentHide var(--transition-duration) var(--transition-easing) forwards;
123+
124+
@starting-style {
125+
animation: none;
126+
}
127+
128+
&[data-expanded] {
129+
pointer-events: auto;
130+
animation: popoverContentShow var(--transition-duration) var(--transition-easing) forwards;
97131
}
98132
}

0 commit comments

Comments
 (0)