Types API Reference

This page details the core TypeScript types exported from rive-react for use in your applications.

RiveState

The object returned by the useRive hook.

export type RiveState = {
  canvas: HTMLCanvasElement | null;
  container: HTMLElement | null;
  setCanvasRef: RefCallback<HTMLCanvasElement>;
  setContainerRef: RefCallback<HTMLElement>;
  rive: Rive | null;
  RiveComponent: (props: ComponentProps<'canvas'>) => JSX.Element;
};

UseRiveParameters

The configuration object passed to the useRive hook or <Rive /> component. It mirrors the constructor of the core Rive class.

export type UseRiveParameters = Partial<Omit<RiveParameters, 'canvas'>> & {
  onRiveReady?: (rive: Rive) => void;
} | null;

UseRiveOptions

Hook-specific options for useRive.

export type UseRiveOptions = {
  useDevicePixelRatio: boolean;
  customDevicePixelRatio: number;
  fitCanvasToArtboardHeight: boolean;
  useOffscreenRenderer: boolean;
  shouldResizeCanvasToContainer: boolean;
  shouldUseIntersectionObserver?: boolean;
};

RiveFileState

The object returned by the useRiveFile hook.

export type RiveFileState = {
  riveFile: RiveFile | null;
  status: 'idle' | 'loading' | 'failed' | 'success';
};

Data Binding Types

These types define the return values for the Data Binding hooks.

  • UseViewModelInstanceStringResult: { value: string | null, setValue: (v: string) => void }
  • UseViewModelInstanceNumberResult: { value: number | null, setValue: (v: number) => void }
  • UseViewModelInstanceBooleanResult: { value: boolean | null, setValue: (v: boolean) => void }
  • UseViewModelInstanceColorResult: { value: number | null, setValue, setRgb, ... }
  • UseViewModelInstanceEnumResult: { value: string | null, values: string[], setValue }
  • UseViewModelInstanceTriggerResult: { trigger: () => void }
  • UseViewModelInstanceImageResult: { setValue: (img: RiveRenderImage | null) => void }
  • UseViewModelInstanceListResult: { length, addInstance, getInstanceAt, ... }
  • UseViewModelInstanceArtboardResult: { setValue: (artboard: RiveArtboard | null) => void }