Skip to content

EffectElement

EffectElement<T> = ThreeElement<T> & T extends MaterialEffectClass<infer S> ? Partial<EffectValues<S>> : Record<string, never>

Defined in: packages/three-flatland/src/react/types.ts:34

JSX element type for a MaterialEffect with schema-derived props.

ThreeElement<T> can’t always resolve dynamic properties defined via Object.defineProperty in createMaterialEffect. This helper explicitly surfaces the schema fields so they appear in VS Code autocomplete.

T extends MaterialEffectClass<any>

declare module '@react-three/fiber' {
interface ThreeElements {
dissolveEffect: EffectElement<typeof DissolveEffect>
}
}
// Now `progress` shows up as a valid prop:
<dissolveEffect attach={attachEffect} progress={0.5} />