Skip to content

API Reference / @gtkx/animated / useTrail

Function: useTrail()

Call Signature

useTrail<Props>(length, props, deps?): [Props] extends [Any] ? Lookup<any> : [object] extends [Props] ? Lookup<any> : { [P in string | number | symbol]: { [P in string | number | symbol]: (Props extends { from: From } ? (From extends () => ... ? ReturnType<(...)> : ObjectType<(...)>) | (((...) & (...)) extends never ? ToValues<(...), (...)> : RawValues<(...)>) : (TransitionKey & keyof (...)) extends never ? ToValues<Props, true> : RawValues<Omit<(...), (...)>>) extends U ? P extends keyof U ? U[P] : never : never }[P] } extends State ? State extends Lookup<any> ? [SpringValues<State>[], SpringRef<State>] : never : never

Defined in: node_modules/.pnpm/@react-spring+core@10.1.2_react@19.2.8/node_modules/@react-spring/core/dist/react-spring_core.modern.d.mts:1134

Type Parameters

Props

Props extends object

Parameters

length

number

props

(i, ctrl) => Remap<ControllerUpdate<Lookup<any>, undefined> & { ref?: SpringRef<Lookup<any>> | undefined; }> | Props & { [P in string | number | symbol]: (Pick<Props, Exclude<keyof Props, InvalidKeys<Props, UseSpringProps<Props>>>> & { [K in string | number | symbol]: never })[P] }

deps?

readonly any[]

Returns

[Props] extends [Any] ? Lookup<any> : [object] extends [Props] ? Lookup<any> : { [P in string | number | symbol]: { [P in string | number | symbol]: (Props extends { from: From } ? (From extends () => ... ? ReturnType<(...)> : ObjectType<(...)>) | (((...) & (...)) extends never ? ToValues<(...), (...)> : RawValues<(...)>) : (TransitionKey & keyof (...)) extends never ? ToValues<Props, true> : RawValues<Omit<(...), (...)>>) extends U ? P extends keyof U ? U[P] : never : never }[P] } extends State ? State extends Lookup<any> ? [SpringValues<State>[], SpringRef<State>] : never : never

Call Signature

useTrail<Props>(length, props): SpringValues<[Props] extends [Any] ? Lookup<any> : [object] extends [Props] ? Lookup<any> : { [P in string | number | symbol]: { [P in string | number | symbol]: (Props extends { from: From } ? ((...) extends (...) ? (...) : (...)) | ((...) extends (...) ? (...) : (...)) : ((...) & (...)) extends never ? ToValues<(...), (...)> : RawValues<(...)>) extends U ? P extends keyof U ? U[P] : never : never }[P] }>[]

Defined in: node_modules/.pnpm/@react-spring+core@10.1.2_react@19.2.8/node_modules/@react-spring/core/dist/react-spring_core.modern.d.mts:1153

This hook is an abstraction around useSprings and is designed to automatically orchestrate the springs to stagger one after the other

jsx
export const MyComponent = () => {
 const trails = useTrail(3, {opacity: 0})

 return trails.map(styles => <animated.div style={styles} />)
}

Type Parameters

Props

Props extends object

Parameters

length

number

– The number of springs you want to create

props

Remap<ControllerUpdate<Lookup<any>, undefined> & { ref?: SpringRef<Lookup<any>> | undefined; }> | Props & { [P in string | number | symbol]: (Pick<Props, Exclude<keyof Props, InvalidKeys<Props, UseSpringProps<Props>>>> & { [K in string | number | symbol]: never })[P] }

Returns

SpringValues<[Props] extends [Any] ? Lookup<any> : [object] extends [Props] ? Lookup<any> : { [P in string | number | symbol]: { [P in string | number | symbol]: (Props extends { from: From } ? ((...) extends (...) ? (...) : (...)) | ((...) extends (...) ? (...) : (...)) : ((...) & (...)) extends never ? ToValues<(...), (...)> : RawValues<(...)>) extends U ? P extends keyof U ? U[P] : never : never }[P] }>[]

Call Signature

useTrail<Props>(length, props, deps): [Props] extends [Any] ? Lookup<any> : [object] extends [Props] ? Lookup<any> : { [P in string | number | symbol]: { [P in string | number | symbol]: (Props extends { from: From } ? (From extends () => ... ? ReturnType<(...)> : ObjectType<(...)>) | (((...) & (...)) extends never ? ToValues<(...), (...)> : RawValues<(...)>) : (TransitionKey & keyof (...)) extends never ? ToValues<Props, true> : RawValues<Omit<(...), (...)>>) extends U ? P extends keyof U ? U[P] : never : never }[P] } extends State ? State extends Lookup<any> ? [SpringValues<State>[], SpringRef<State>] : never : never

Defined in: node_modules/.pnpm/@react-spring+core@10.1.2_react@19.2.8/node_modules/@react-spring/core/dist/react-spring_core.modern.d.mts:1174

This hook is an abstraction around useSprings and is designed to automatically orchestrate the springs to stagger one after the other

jsx
export const MyComponent = () => {
 const trails = useTrail(3, {opacity: 0}, [])

 return trails.map(styles => <animated.div style={styles} />)
}

Type Parameters

Props

Props extends object

Parameters

length

number

– The number of springs you want to create

props

Remap<ControllerUpdate<Lookup<any>, undefined> & { ref?: SpringRef<Lookup<any>> | undefined; }> | Props & { [P in string | number | symbol]: (Pick<Props, Exclude<keyof Props, InvalidKeys<Props, UseSpringProps<Props>>>> & { [K in string | number | symbol]: never })[P] }

deps

readonly any[]

– The optional array of dependencies to pass to the internal useSprings hook, therefore is the same as useSprings.

Returns

[Props] extends [Any] ? Lookup<any> : [object] extends [Props] ? Lookup<any> : { [P in string | number | symbol]: { [P in string | number | symbol]: (Props extends { from: From } ? (From extends () => ... ? ReturnType<(...)> : ObjectType<(...)>) | (((...) & (...)) extends never ? ToValues<(...), (...)> : RawValues<(...)>) : (TransitionKey & keyof (...)) extends never ? ToValues<Props, true> : RawValues<Omit<(...), (...)>>) extends U ? P extends keyof U ? U[P] : never : never }[P] } extends State ? State extends Lookup<any> ? [SpringValues<State>[], SpringRef<State>] : never : never

Released under the MPL-2.0 License.