@ -4728,6 +4728,32 @@
--motion-stagger-index-rev : 23 ;
}
[ data-debug-stagger ] {
counter-reset : motion-stagger -1 ;
}
[ data-debug-stagger ] > * {
counter-increment : motion-stagger ;
}
[ data-debug-stagger ] > [ data-animation-style ] {
position : relative ;
}
[ data-debug-stagger ] > [ data-animation-style ] :: after {
content : counter ( motion-stagger ) ;
position : absolute ;
inset-block-start : 0 ;
inset-inline-start : 0 ;
z-index : 2147483647 ;
padding : 0 4px ;
font : 600 10px / 1 . 5 ui-monospace , SFMono-Regular , monospace ;
color : # fff ;
background : # d6409f ;
border-end-end-radius : 4px ;
pointer-events : none ;
}
@ keyframes fade-in {
from {
opacity : 0 ;
@ -4764,6 +4790,55 @@
}
}
@ keyframes select-pop-in {
0 % {
scale : 1 ;
}
45 % {
scale : 1 . 06 ;
}
100 % {
scale : 1 ;
}
}
@ keyframes loop-spin {
to {
rotate : 360deg ;
}
}
@ keyframes loop-pulse {
0 % , 100 % {
opacity : 1 ;
}
50 % {
opacity : 0 . 45 ;
}
}
@ keyframes loop-ping {
0 % {
scale : 1 ;
opacity : 1 ;
}
75 % , 100 % {
scale : 2 ;
opacity : 0 ;
}
}
@ keyframes loop-bounce {
0 % , 100 % {
translate : 0 -22 % ;
animation-timing-function : cubic-bezier ( 0 . 8 , 0 , 1 , 1 ) ;
}
50 % {
translate : 0 0 ;
animation-timing-function : cubic-bezier ( 0 , 0 , 0 . 2 , 1 ) ;
}
}
@ keyframes slide-from-top {
from {
translate : 0 calc ( var ( --motion-distance-md ) * -1 ) ;
@ -5115,35 +5190,41 @@
}
[ data-animation-style = 'fade' ] [ data-state = 'open' ] ,
[ data-stagger ] [ data-state = 'open' ] > [ data-animation-style = 'fade' ] {
[ data-stagger ] [ data-state = 'open' ] > [ data-animation-style = 'fade' ] ,
[ data-animation-style = 'fade' ] [ data-motion-state = 'open' ] {
animation : fade-in var ( --motion-duration-enter , var ( --duration-moderate ) ) var ( --motion-ease-enter , var ( --ease-out ) ) backwards ;
animation-delay : calc ( var ( --motion-stagger-index , 0 ) * var ( --motion-stagger-each , 0ms ) ) ;
}
[ data-animation-style = 'fade' ] [ data-state = 'closed' ] {
[ data-animation-style = 'fade' ] [ data-state = 'closed' ] ,
[ data-stagger ] [ data-state = 'closed' ] > [ data-animation-style = 'fade' ] {
animation : fade-out var ( --motion-duration-exit , var ( --duration-fast ) ) var ( --motion-ease-exit , var ( --ease-in ) ) forwards ;
animation-delay : calc ( var ( --motion-stagger-index-rev , 0 ) * var ( --motion-stagger-each , 0ms ) ) ;
}
[ data-animation-style = 'scale-fade' ] [ data-state = 'open' ] ,
[ data-stagger ] [ data-state = 'open' ] > [ data-animation-style = 'scale-fade' ] {
[ data-stagger ] [ data-state = 'open' ] > [ data-animation-style = 'scale-fade' ] ,
[ data-animation-style = 'scale-fade' ] [ data-motion-state = 'open' ] {
animation : scale-in var ( --motion-duration-enter , var ( --duration-moderate ) ) var ( --motion-ease-enter , var ( --ease-out ) ) backwards , fade-in var ( --motion-duration-enter , var ( --duration-moderate ) ) var ( --motion-ease-enter , var ( --ease-out ) ) backwards ;
animation-delay : calc ( var ( --motion-stagger-index , 0 ) * var ( --motion-stagger-each , 0ms ) ) ;
transform-origin : var ( --floating-transform-origin ) ;
}
[ data-animation-style = 'scale-fade' ] [ data-state = 'closed' ] {
[ data-animation-style = 'scale-fade' ] [ data-state = 'closed' ] ,
[ data-stagger ] [ data-state = 'closed' ] > [ data-animation-style = 'scale-fade' ] {
animation : scale-out var ( --motion-duration-exit , var ( --duration-fast ) ) var ( --motion-ease-exit , var ( --ease-in ) ) forwards , fade-out var ( --motion-duration-exit , var ( --duration-fast ) ) var ( --motion-ease-exit , var ( --ease-in ) ) forwards ;
animation-delay : calc ( var ( --motion-stagger-index-rev , 0 ) * var ( --motion-stagger-each , 0ms ) ) ;
transform-origin : var ( --floating-transform-origin ) ;
}
[ data-motion = 'reduce' ] [ data-animation-style = 'scale-fade' ] [ data-state = 'open' ] {
[ data-motion = 'reduce' ] [ data-animation-style = 'scale-fade' ] [ data-state = 'open' ] ,
[ data-motion = 'reduce' ] [ data-animation-style = 'scale-fade' ] [ data-motion-state = 'open' ] {
animation : fade-in var ( --duration-fast ) var ( --ease-out ) backwards ! important ;
}
@ media ( prefers-reduced-motion : reduce ) {
[ data-animation-style = 'scale-fade' ] [ data-state = 'open' ] {
[ data-animation-style = 'scale-fade' ] [ data-state = 'open' ] ,
[ data-animation-style = 'scale-fade' ] [ data-motion-state = 'open' ] {
animation : fade-in var ( --duration-fast ) var ( --ease-out ) backwards ! important ;
}
}
@ -5159,7 +5240,8 @@
}
[ data-animation-style = 'slide-fade' ] [ data-state = 'open' ] ,
[ data-stagger ] [ data-state = 'open' ] > [ data-animation-style = 'slide-fade' ] {
[ data-stagger ] [ data-state = 'open' ] > [ data-animation-style = 'slide-fade' ] ,
[ data-animation-style = 'slide-fade' ] [ data-motion-state = 'open' ] {
animation : slide-from-bottom var ( --motion-duration-enter , var ( --duration-moderate ) ) var ( --motion-ease-enter , var ( --ease-out ) ) backwards , scale-in var ( --motion-duration-enter , var ( --duration-moderate ) ) var ( --motion-ease-enter , var ( --ease-out ) ) backwards , fade-in var ( --motion-duration-enter , var ( --duration-moderate ) ) var ( --motion-ease-enter , var ( --ease-out ) ) backwards ;
animation-delay : calc ( var ( --motion-stagger-index , 0 ) * var ( --motion-stagger-each , 0ms ) ) ;
}
@ -5184,7 +5266,8 @@
animation-delay : calc ( var ( --motion-stagger-index , 0 ) * var ( --motion-stagger-each , 0ms ) ) ;
}
[ data-animation-style = 'slide-fade' ] [ data-state = 'closed' ] {
[ data-animation-style = 'slide-fade' ] [ data-state = 'closed' ] ,
[ data-stagger ] [ data-state = 'closed' ] > [ data-animation-style = 'slide-fade' ] {
animation : slide-to-bottom var ( --motion-duration-exit , var ( --duration-fast ) ) var ( --motion-ease-exit , var ( --ease-in ) ) forwards , scale-out var ( --motion-duration-exit , var ( --duration-fast ) ) var ( --motion-ease-exit , var ( --ease-in ) ) forwards , fade-out var ( --motion-duration-exit , var ( --duration-fast ) ) var ( --motion-ease-exit , var ( --ease-in ) ) forwards ;
animation-delay : calc ( var ( --motion-stagger-index-rev , 0 ) * var ( --motion-stagger-each , 0ms ) ) ;
}
@ -5209,12 +5292,14 @@
animation-delay : calc ( var ( --motion-stagger-index-rev , 0 ) * var ( --motion-stagger-each , 0ms ) ) ;
}
[ data-motion = 'reduce' ] [ data-animation-style = 'slide-fade' ] [ data-state = 'open' ] {
[ data-motion = 'reduce' ] [ data-animation-style = 'slide-fade' ] [ data-state = 'open' ] ,
[ data-motion = 'reduce' ] [ data-animation-style = 'slide-fade' ] [ data-motion-state = 'open' ] {
animation : fade-in var ( --duration-fast ) var ( --ease-out ) backwards ! important ;
}
@ media ( prefers-reduced-motion : reduce ) {
[ data-animation-style = 'slide-fade' ] [ data-state = 'open' ] {
[ data-animation-style = 'slide-fade' ] [ data-state = 'open' ] ,
[ data-animation-style = 'slide-fade' ] [ data-motion-state = 'open' ] {
animation : fade-in var ( --duration-fast ) var ( --ease-out ) backwards ! important ;
}
}
@ -5230,7 +5315,8 @@
}
[ data-animation-style = 'slide-full' ] [ data-state = 'open' ] ,
[ data-stagger ] [ data-state = 'open' ] > [ data-animation-style = 'slide-full' ] {
[ data-stagger ] [ data-state = 'open' ] > [ data-animation-style = 'slide-full' ] ,
[ data-animation-style = 'slide-full' ] [ data-motion-state = 'open' ] {
animation : slide-from-right-full var ( --motion-duration-enter , var ( --duration-moderate ) ) var ( --motion-ease-enter , var ( --ease-out ) ) backwards ;
animation-delay : calc ( var ( --motion-stagger-index , 0 ) * var ( --motion-stagger-each , 0ms ) ) ;
}
@ -5255,7 +5341,8 @@
animation-delay : calc ( var ( --motion-stagger-index , 0 ) * var ( --motion-stagger-each , 0ms ) ) ;
}
[ data-animation-style = 'slide-full' ] [ data-state = 'closed' ] {
[ data-animation-style = 'slide-full' ] [ data-state = 'closed' ] ,
[ data-stagger ] [ data-state = 'closed' ] > [ data-animation-style = 'slide-full' ] {
animation : slide-to-right-full var ( --motion-duration-exit , var ( --duration-fast ) ) var ( --motion-ease-exit , var ( --ease-in ) ) forwards ;
animation-delay : calc ( var ( --motion-stagger-index-rev , 0 ) * var ( --motion-stagger-each , 0ms ) ) ;
}
@ -5280,12 +5367,14 @@
animation-delay : calc ( var ( --motion-stagger-index-rev , 0 ) * var ( --motion-stagger-each , 0ms ) ) ;
}
[ data-motion = 'reduce' ] [ data-animation-style = 'slide-full' ] [ data-state = 'open' ] {
[ data-motion = 'reduce' ] [ data-animation-style = 'slide-full' ] [ data-state = 'open' ] ,
[ data-motion = 'reduce' ] [ data-animation-style = 'slide-full' ] [ data-motion-state = 'open' ] {
animation : none ! important ;
}
@ media ( prefers-reduced-motion : reduce ) {
[ data-animation-style = 'slide-full' ] [ data-state = 'open' ] {
[ data-animation-style = 'slide-full' ] [ data-state = 'open' ] ,
[ data-animation-style = 'slide-full' ] [ data-motion-state = 'open' ] {
animation : none ! important ;
}
}
@ -5301,22 +5390,26 @@
}
[ data-animation-style = 'collapse' ] [ data-state = 'open' ] ,
[ data-stagger ] [ data-state = 'open' ] > [ data-animation-style = 'collapse' ] {
[ data-stagger ] [ data-state = 'open' ] > [ data-animation-style = 'collapse' ] ,
[ data-animation-style = 'collapse' ] [ data-motion-state = 'open' ] {
animation : expand-height var ( --motion-duration-enter , var ( --duration-moderate ) ) var ( --motion-ease-enter , var ( --ease-out ) ) backwards ;
animation-delay : calc ( var ( --motion-stagger-index , 0 ) * var ( --motion-stagger-each , 0ms ) ) ;
}
[ data-animation-style = 'collapse' ] [ data-state = 'closed' ] {
[ data-animation-style = 'collapse' ] [ data-state = 'closed' ] ,
[ data-stagger ] [ data-state = 'closed' ] > [ data-animation-style = 'collapse' ] {
animation : collapse-height var ( --motion-duration-exit , var ( --duration-fast ) ) var ( --motion-ease-exit , var ( --ease-in ) ) forwards ;
animation-delay : calc ( var ( --motion-stagger-index-rev , 0 ) * var ( --motion-stagger-each , 0ms ) ) ;
}
[ data-motion = 'reduce' ] [ data-animation-style = 'collapse' ] [ data-state = 'open' ] {
[ data-motion = 'reduce' ] [ data-animation-style = 'collapse' ] [ data-state = 'open' ] ,
[ data-motion = 'reduce' ] [ data-animation-style = 'collapse' ] [ data-motion-state = 'open' ] {
animation : none ! important ;
}
@ media ( prefers-reduced-motion : reduce ) {
[ data-animation-style = 'collapse' ] [ data-state = 'open' ] {
[ data-animation-style = 'collapse' ] [ data-state = 'open' ] ,
[ data-animation-style = 'collapse' ] [ data-motion-state = 'open' ] {
animation : none ! important ;
}
}
@ -5332,22 +5425,26 @@
}
[ data-animation-style = 'shared-axis-x' ] [ data-state = 'open' ] ,
[ data-stagger ] [ data-state = 'open' ] > [ data-animation-style = 'shared-axis-x' ] {
[ data-stagger ] [ data-state = 'open' ] > [ data-animation-style = 'shared-axis-x' ] ,
[ data-animation-style = 'shared-axis-x' ] [ data-motion-state = 'open' ] {
animation : slide-axis-x-in var ( --motion-duration-enter , var ( --duration-moderate ) ) var ( --motion-ease-enter , var ( --ease-out ) ) backwards , fade-in var ( --motion-duration-enter , var ( --duration-moderate ) ) var ( --motion-ease-enter , var ( --ease-out ) ) backwards ;
animation-delay : calc ( var ( --motion-stagger-index , 0 ) * var ( --motion-stagger-each , 0ms ) ) ;
}
[ data-animation-style = 'shared-axis-x' ] [ data-state = 'closed' ] {
[ data-animation-style = 'shared-axis-x' ] [ data-state = 'closed' ] ,
[ data-stagger ] [ data-state = 'closed' ] > [ data-animation-style = 'shared-axis-x' ] {
animation : slide-axis-x-out var ( --motion-duration-exit , var ( --duration-fast ) ) var ( --motion-ease-exit , var ( --ease-in ) ) forwards , fade-out var ( --motion-duration-exit , var ( --duration-fast ) ) var ( --motion-ease-exit , var ( --ease-in ) ) forwards ;
animation-delay : calc ( var ( --motion-stagger-index-rev , 0 ) * var ( --motion-stagger-each , 0ms ) ) ;
}
[ data-motion = 'reduce' ] [ data-animation-style = 'shared-axis-x' ] [ data-state = 'open' ] {
[ data-motion = 'reduce' ] [ data-animation-style = 'shared-axis-x' ] [ data-state = 'open' ] ,
[ data-motion = 'reduce' ] [ data-animation-style = 'shared-axis-x' ] [ data-motion-state = 'open' ] {
animation : fade-in var ( --duration-fast ) var ( --ease-out ) backwards ! important ;
}
@ media ( prefers-reduced-motion : reduce ) {
[ data-animation-style = 'shared-axis-x' ] [ data-state = 'open' ] {
[ data-animation-style = 'shared-axis-x' ] [ data-state = 'open' ] ,
[ data-animation-style = 'shared-axis-x' ] [ data-motion-state = 'open' ] {
animation : fade-in var ( --duration-fast ) var ( --ease-out ) backwards ! important ;
}
}
@ -5363,22 +5460,26 @@
}
[ data-animation-style = 'shared-axis-y' ] [ data-state = 'open' ] ,
[ data-stagger ] [ data-state = 'open' ] > [ data-animation-style = 'shared-axis-y' ] {
[ data-stagger ] [ data-state = 'open' ] > [ data-animation-style = 'shared-axis-y' ] ,
[ data-animation-style = 'shared-axis-y' ] [ data-motion-state = 'open' ] {
animation : slide-axis-y-in var ( --motion-duration-enter , var ( --duration-moderate ) ) var ( --motion-ease-enter , var ( --ease-out ) ) backwards , fade-in var ( --motion-duration-enter , var ( --duration-moderate ) ) var ( --motion-ease-enter , var ( --ease-out ) ) backwards ;
animation-delay : calc ( var ( --motion-stagger-index , 0 ) * var ( --motion-stagger-each , 0ms ) ) ;
}
[ data-animation-style = 'shared-axis-y' ] [ data-state = 'closed' ] {
[ data-animation-style = 'shared-axis-y' ] [ data-state = 'closed' ] ,
[ data-stagger ] [ data-state = 'closed' ] > [ data-animation-style = 'shared-axis-y' ] {
animation : slide-axis-y-out var ( --motion-duration-exit , var ( --duration-fast ) ) var ( --motion-ease-exit , var ( --ease-in ) ) forwards , fade-out var ( --motion-duration-exit , var ( --duration-fast ) ) var ( --motion-ease-exit , var ( --ease-in ) ) forwards ;
animation-delay : calc ( var ( --motion-stagger-index-rev , 0 ) * var ( --motion-stagger-each , 0ms ) ) ;
}
[ data-motion = 'reduce' ] [ data-animation-style = 'shared-axis-y' ] [ data-state = 'open' ] {
[ data-motion = 'reduce' ] [ data-animation-style = 'shared-axis-y' ] [ data-state = 'open' ] ,
[ data-motion = 'reduce' ] [ data-animation-style = 'shared-axis-y' ] [ data-motion-state = 'open' ] {
animation : fade-in var ( --duration-fast ) var ( --ease-out ) backwards ! important ;
}
@ media ( prefers-reduced-motion : reduce ) {
[ data-animation-style = 'shared-axis-y' ] [ data-state = 'open' ] {
[ data-animation-style = 'shared-axis-y' ] [ data-state = 'open' ] ,
[ data-animation-style = 'shared-axis-y' ] [ data-motion-state = 'open' ] {
animation : fade-in var ( --duration-fast ) var ( --ease-out ) backwards ! important ;
}
}
@ -5394,22 +5495,26 @@
}
[ data-animation-style = 'fade-through' ] [ data-state = 'open' ] ,
[ data-stagger ] [ data-state = 'open' ] > [ data-animation-style = 'fade-through' ] {
[ data-stagger ] [ data-state = 'open' ] > [ data-animation-style = 'fade-through' ] ,
[ data-animation-style = 'fade-through' ] [ data-motion-state = 'open' ] {
animation : scale-through var ( --motion-duration-enter , var ( --duration-moderate ) ) var ( --motion-ease-enter , var ( --ease-out ) ) backwards , fade-in var ( --motion-duration-enter , var ( --duration-moderate ) ) var ( --motion-ease-enter , var ( --ease-out ) ) backwards ;
animation-delay : calc ( var ( --motion-stagger-index , 0 ) * var ( --motion-stagger-each , 0ms ) ) ;
}
[ data-animation-style = 'fade-through' ] [ data-state = 'closed' ] {
[ data-animation-style = 'fade-through' ] [ data-state = 'closed' ] ,
[ data-stagger ] [ data-state = 'closed' ] > [ data-animation-style = 'fade-through' ] {
animation : fade-out var ( --motion-duration-exit , var ( --duration-fast ) ) var ( --motion-ease-exit , var ( --ease-in ) ) forwards ;
animation-delay : calc ( var ( --motion-stagger-index-rev , 0 ) * var ( --motion-stagger-each , 0ms ) ) ;
}
[ data-motion = 'reduce' ] [ data-animation-style = 'fade-through' ] [ data-state = 'open' ] {
[ data-motion = 'reduce' ] [ data-animation-style = 'fade-through' ] [ data-state = 'open' ] ,
[ data-motion = 'reduce' ] [ data-animation-style = 'fade-through' ] [ data-motion-state = 'open' ] {
animation : fade-in var ( --duration-fast ) var ( --ease-out ) backwards ! important ;
}
@ media ( prefers-reduced-motion : reduce ) {
[ data-animation-style = 'fade-through' ] [ data-state = 'open' ] {
[ data-animation-style = 'fade-through' ] [ data-state = 'open' ] ,
[ data-animation-style = 'fade-through' ] [ data-motion-state = 'open' ] {
animation : fade-in var ( --duration-fast ) var ( --ease-out ) backwards ! important ;
}
}
@ -5424,6 +5529,81 @@
}
}
[ data-animation-style = 'select-pop' ] [ data-state = 'open' ] ,
[ data-stagger ] [ data-state = 'open' ] > [ data-animation-style = 'select-pop' ] ,
[ data-animation-style = 'select-pop' ] [ data-motion-state = 'open' ] {
animation : select-pop-in var ( --motion-duration-enter , var ( --duration-moderate ) ) var ( --motion-ease-enter , var ( --ease-out ) ) backwards ;
animation-delay : calc ( var ( --motion-stagger-index , 0 ) * var ( --motion-stagger-each , 0ms ) ) ;
}
[ data-motion = 'reduce' ] [ data-animation-style = 'select-pop' ] [ data-state = 'open' ] ,
[ data-motion = 'reduce' ] [ data-animation-style = 'select-pop' ] [ data-motion-state = 'open' ] {
animation : none ! important ;
}
@ media ( prefers-reduced-motion : reduce ) {
[ data-animation-style = 'select-pop' ] [ data-state = 'open' ] ,
[ data-animation-style = 'select-pop' ] [ data-motion-state = 'open' ] {
animation : none ! important ;
}
}
[ data-animation-style = 'spin' ] {
animation : loop-spin var ( --motion-loop-spin , 1100ms ) linear infinite ;
}
[ data-motion = 'reduce' ] [ data-animation-style = 'spin' ] {
animation : none ! important ;
}
@ media ( prefers-reduced-motion : reduce ) {
[ data-animation-style = 'spin' ] {
animation : none ! important ;
}
}
[ data-animation-style = 'pulse' ] {
animation : loop-pulse var ( --motion-loop-pulse , 2s ) cubic-bezier ( 0 . 4 , 0 , 0 . 6 , 1 ) infinite ;
}
[ data-motion = 'reduce' ] [ data-animation-style = 'pulse' ] {
animation : none ! important ;
}
@ media ( prefers-reduced-motion : reduce ) {
[ data-animation-style = 'pulse' ] {
animation : none ! important ;
}
}
[ data-animation-style = 'ping' ] {
animation : loop-ping var ( --motion-loop-ping , 1100ms ) cubic-bezier ( 0 , 0 , 0 . 2 , 1 ) infinite ;
}
[ data-motion = 'reduce' ] [ data-animation-style = 'ping' ] {
animation : none ! important ;
}
@ media ( prefers-reduced-motion : reduce ) {
[ data-animation-style = 'ping' ] {
animation : none ! important ;
}
}
[ data-animation-style = 'bounce' ] {
animation : loop-bounce var ( --motion-loop-bounce , 1s ) linear infinite ;
}
[ data-motion = 'reduce' ] [ data-animation-style = 'bounce' ] {
animation : none ! important ;
}
@ media ( prefers-reduced-motion : reduce ) {
[ data-animation-style = 'bounce' ] {
animation : none ! important ;
}
}
@ media ( forced-colors : active ) {
: focus-visible {
outline : 2px solid Highlight ;