@@ -98,7 +98,8 @@ interface StageHomeProps {
9898}
9999
100100/** Staggered enter for a chat bubble - translateY + opacity + blur, interruptible. */
101- const ENTER_BASE = 'transition-[opacity,transform,filter] ease-[cubic-bezier(0.2,0,0,1)]'
101+ const ENTER_BASE =
102+ 'transition-[opacity,transform,filter] [transition-timing-function:cubic-bezier(0.2,0,0,1)]'
102103const enterState = ( shown : boolean ) =>
103104 shown ? 'translate-y-0 opacity-100 blur-0' : 'translate-y-1.5 opacity-0 blur-[3px]'
104105
@@ -220,7 +221,7 @@ export function StageHome({
220221 morphs to a block. */ }
221222 < div
222223 className = { cn (
223- 'overflow-hidden text-center transition-[height,opacity] duration-300 ease-[ cubic-bezier(0.23,1,0.32,1)]' ,
224+ 'overflow-hidden text-center transition-[height,opacity] duration-300 [transition-timing-function: cubic-bezier(0.23,1,0.32,1)]' ,
224225 mode === 'compose'
225226 ? 'h-[40px] opacity-100'
226227 : mode === 'sending' || mode === 'thinking'
@@ -251,8 +252,8 @@ export function StageHome({
251252 // and read as jitter. Every other beat eases width/height/transform with
252253 // the shared curve.
253254 holdCardHeight
254- ? 'transition-[width,transform] duration-[ 620ms] ease-[ cubic-bezier(0.22,1,0.36,1)]'
255- : 'transition-[width,height,transform] duration-[ 620ms] ease-[ cubic-bezier(0.22,1,0.36,1)]' ,
255+ ? 'transition-[width,transform] [transition-duration: 620ms] [transition-timing-function: cubic-bezier(0.22,1,0.36,1)]'
256+ : 'transition-[width,height,transform] [transition-duration: 620ms] [transition-timing-function: cubic-bezier(0.22,1,0.36,1)]' ,
256257 // Nudge up to cancel the chat column's greeting+gap offset, so the
257258 // card centers exactly where the focused workflow block lands.
258259 isBlock && '-translate-y-[10px]'
@@ -282,7 +283,7 @@ export function StageHome({
282283 < div
283284 ref = { contentRef }
284285 className = { cn (
285- 'absolute inset-x-0 flex flex-col gap-2 px-2.5 py-2 transition-opacity duration-[ 220ms] ease-[ cubic-bezier(0.23,1,0.32,1)]' ,
286+ 'absolute inset-x-0 flex flex-col gap-2 px-2.5 py-2 transition-opacity [transition-duration: 220ms] [transition-timing-function: cubic-bezier(0.23,1,0.32,1)]' ,
286287 holdCardHeight ? 'bottom-0' : 'top-0' ,
287288 isBlock && 'pointer-events-none opacity-0'
288289 ) }
@@ -297,7 +298,7 @@ export function StageHome({
297298 < div
298299 ref = { inputRef }
299300 className = { cn (
300- 'min-h-[24px] px-1 py-1 font-body text-[15px] text-[var(--text-primary)] leading-[24px] tracking-[-0.015em] transition-opacity duration-200 ease-[ cubic-bezier(0.23,1,0.32,1)]' ,
301+ 'min-h-[24px] px-1 py-1 font-body text-[15px] text-[var(--text-primary)] leading-[24px] tracking-[-0.015em] transition-opacity duration-200 [transition-timing-function: cubic-bezier(0.23,1,0.32,1)]' ,
301302 isCompose ? 'opacity-100' : 'opacity-0' ,
302303 ! inputInFlow && 'pointer-events-none absolute inset-x-0 top-0'
303304 ) }
@@ -346,7 +347,7 @@ export function StageHome({
346347 ref = { sendRef }
347348 aria-hidden = 'true'
348349 className = { cn (
349- 'flex size-[28px] shrink-0 items-center justify-center rounded-full bg-[#383838] transition-[opacity,transform,background-color] duration-150 ease-[ cubic-bezier(0.23,1,0.32,1)]' ,
350+ 'flex size-[28px] shrink-0 items-center justify-center rounded-full bg-[#383838] transition-[opacity,transform,background-color] duration-150 [transition-timing-function: cubic-bezier(0.23,1,0.32,1)]' ,
350351 // Visible only while composing; once send is hit the root loader's
351352 // settled orb takes its place (it stays laid out as the loader's
352353 // measure + slide-from target).
@@ -370,7 +371,7 @@ export function StageHome({
370371 strokeLinecap = 'round'
371372 strokeLinejoin = 'round'
372373 className = { cn (
373- 'transition-[stroke-dashoffset] duration-[ 520ms] ease-[ cubic-bezier(0.23,1,0.32,1)] [stroke-dasharray:1 ]' ,
374+ 'transition-[stroke-dashoffset] [stroke-dasharray:1] [transition-duration: 520ms] [transition-timing-function: cubic-bezier(0.23,1,0.32,1)]' ,
374375 isCompose ? '[stroke-dashoffset:0]' : '[stroke-dashoffset:1]'
375376 ) }
376377 />
@@ -386,7 +387,7 @@ export function StageHome({
386387 < div
387388 aria-hidden = 'true'
388389 className = { cn (
389- 'absolute inset-x-0 top-0 transition-opacity duration-300 ease-[ cubic-bezier(0.23,1,0.32,1)]' ,
390+ 'absolute inset-x-0 top-0 transition-opacity duration-300 [transition-timing-function: cubic-bezier(0.23,1,0.32,1)]' ,
390391 // Hold off until the chat content (≈220ms fade) is gone, then fade in.
391392 isBlock ? 'opacity-100 [transition-delay:280ms]' : 'pointer-events-none opacity-0'
392393 ) }
0 commit comments