diff options
| author | Aaron Iker <[email protected]> | 2026-02-02 01:17:14 +0100 |
|---|---|---|
| committer | GitHub <[email protected]> | 2026-02-02 01:17:14 +0100 |
| commit | 377bf7ff21a4f05807c38675ac70cd08fe67b516 (patch) | |
| tree | 018639c6a87c248d2df325f6a32c511d7e9caf15 /packages/ui/src/components/cycle-label.css | |
| parent | b39c1f158f5e78b41edd944dce792a8b602819c1 (diff) | |
| download | opencode-377bf7ff21a4f05807c38675ac70cd08fe67b516.tar.gz opencode-377bf7ff21a4f05807c38675ac70cd08fe67b516.zip | |
feat(ui): Select, dropdown, popover styles & transitions (#11675)
Diffstat (limited to 'packages/ui/src/components/cycle-label.css')
| -rw-r--r-- | packages/ui/src/components/cycle-label.css | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/packages/ui/src/components/cycle-label.css b/packages/ui/src/components/cycle-label.css new file mode 100644 index 000000000..3c98fcd26 --- /dev/null +++ b/packages/ui/src/components/cycle-label.css @@ -0,0 +1,49 @@ +.cycle-label { + --c-duration: 200ms; + --c-stagger: 30ms; + --c-opacity-start: 0; + --c-opacity-end: 1; + --c-blur-start: 0px; + --c-blur-end: 0px; + --c-skew: 10deg; + + display: inline-flex; + position: relative; + + transform-style: preserve-3d; + perspective: 500px; + transition: width var(--transition-duration) var(--transition-easing); + will-change: width; + overflow: hidden; + + .cycle-char { + display: inline-block; + transform-style: preserve-3d; + min-width: 0.25em; + backface-visibility: hidden; + + transition-property: transform, opacity, filter; + transition-duration: var(--transition-duration); + transition-timing-function: var(--transition-easing); + transition-delay: calc(var(--i, 0) * var(--c-stagger)); + + &.enter { + opacity: var(--c-opacity-end); + filter: blur(var(--c-blur-end)); + transform: translateY(0) rotateX(0) skewX(0); + } + + &.exit { + opacity: var(--c-opacity-start); + filter: blur(var(--c-blur-start)); + transform: translateY(50%) rotateX(90deg) skewX(var(--c-skew)); + } + + &.pre { + opacity: var(--c-opacity-start); + filter: blur(var(--c-blur-start)); + transition: none; + transform: translateY(-50%) rotateX(-90deg) skewX(calc(var(--c-skew) * -1)); + } + } +} |
