summaryrefslogtreecommitdiffhomepage
path: root/packages/ui/src/components/popover.css
diff options
context:
space:
mode:
authorAaron Iker <[email protected]>2026-02-02 01:17:14 +0100
committerGitHub <[email protected]>2026-02-02 01:17:14 +0100
commit377bf7ff21a4f05807c38675ac70cd08fe67b516 (patch)
tree018639c6a87c248d2df325f6a32c511d7e9caf15 /packages/ui/src/components/popover.css
parentb39c1f158f5e78b41edd944dce792a8b602819c1 (diff)
downloadopencode-377bf7ff21a4f05807c38675ac70cd08fe67b516.tar.gz
opencode-377bf7ff21a4f05807c38675ac70cd08fe67b516.zip
feat(ui): Select, dropdown, popover styles & transitions (#11675)
Diffstat (limited to 'packages/ui/src/components/popover.css')
-rw-r--r--packages/ui/src/components/popover.css58
1 files changed, 46 insertions, 12 deletions
diff --git a/packages/ui/src/components/popover.css b/packages/ui/src/components/popover.css
index b49542afd..d200fe8b2 100644
--- a/packages/ui/src/components/popover.css
+++ b/packages/ui/src/components/popover.css
@@ -15,16 +15,35 @@
transform-origin: var(--kb-popover-content-transform-origin);
- &:focus-within {
- outline: none;
- }
+ animation: popoverContentHide var(--transition-duration) var(--transition-easing) forwards;
- &[data-closed] {
- animation: popover-close 0.15s ease-out;
+ @starting-style {
+ animation: none;
}
&[data-expanded] {
- animation: popover-open 0.15s ease-out;
+ pointer-events: auto;
+ animation: popoverContentShow var(--transition-duration) var(--transition-easing) forwards;
+ }
+
+ [data-origin-top-right] {
+ transform-origin: top right;
+ }
+
+ [data-origin-top-left] {
+ transform-origin: top left;
+ }
+
+ [data-origin-bottom-right] {
+ transform-origin: bottom right;
+ }
+
+ [data-origin-bottom-left] {
+ transform-origin: bottom left;
+ }
+
+ &:focus-within {
+ outline: none;
}
[data-slot="popover-header"] {
@@ -75,24 +94,39 @@
}
}
-@keyframes popover-open {
+@keyframes popoverContentShow {
from {
opacity: 0;
- transform: scale(0.96);
+ transform: scaleY(0.95);
}
to {
opacity: 1;
- transform: scale(1);
+ transform: scaleY(1);
}
}
-@keyframes popover-close {
+@keyframes popoverContentHide {
from {
opacity: 1;
- transform: scale(1);
+ transform: scaleY(1);
}
to {
opacity: 0;
- transform: scale(0.96);
+ transform: scaleY(0.95);
+ }
+}
+
+[data-component="model-popover-content"] {
+ transform-origin: var(--kb-popper-content-transform-origin);
+ pointer-events: none;
+ animation: popoverContentHide var(--transition-duration) var(--transition-easing) forwards;
+
+ @starting-style {
+ animation: none;
+ }
+
+ &[data-expanded] {
+ pointer-events: auto;
+ animation: popoverContentShow var(--transition-duration) var(--transition-easing) forwards;
}
}