# PlayCanvas Web Components API > The API reference of `@playcanvas/web-components` 0.28.0: the classes behind the `` custom elements, and the library's JavaScript API. The attributes of each element are documented in the tag reference of the User Manual. The pages here document the elements' JavaScript classes, such as the properties and methods available once `whenReady` resolves. For guides, see the [Web Components index](https://developer.playcanvas.com/user-manual/web-components/llms.txt) of the User Manual. ## Application - [AppElement](https://api.playcanvas.com/web-components/classes/AppElement.md): The AppElement interface provides properties and methods for manipulating elements. - [SceneElement](https://api.playcanvas.com/web-components/classes/SceneElement.md): The SceneElement interface provides properties and methods for manipulating elements. - [SkyElement](https://api.playcanvas.com/web-components/classes/SkyElement.md): The SkyElement interface provides properties and methods for manipulating elements. ## Resources - [AssetElement](https://api.playcanvas.com/web-components/classes/AssetElement.md): The AssetElement interface provides properties and methods for manipulating elements. - [MaterialElement](https://api.playcanvas.com/web-components/classes/MaterialElement.md): The MaterialElement interface provides properties and methods for manipulating elements. - [WasmElement](https://api.playcanvas.com/web-components/classes/WasmElement.md): The WasmElement interface provides properties and methods for manipulating elements. ## Entities - [EntityElement](https://api.playcanvas.com/web-components/classes/EntityElement.md): The EntityElement interface provides properties and methods for manipulating elements. - [ModelElement](https://api.playcanvas.com/web-components/classes/ModelElement.md): The ModelElement interface provides properties and methods for manipulating elements. - [NodeElement](https://api.playcanvas.com/web-components/classes/NodeElement.md): The NodeElement interface provides properties and methods for manipulating elements. ## Components - [AnimClipElement](https://api.playcanvas.com/web-components/classes/AnimClipElement.md): The AnimClipElement interface provides properties and methods for manipulating elements. - [AnimComponentElement](https://api.playcanvas.com/web-components/classes/AnimComponentElement.md): The AnimComponentElement interface provides properties and methods for manipulating elements. - [AudioListenerComponentElement](https://api.playcanvas.com/web-components/classes/AudioListenerComponentElement.md): The AudioListenerComponentElement interface provides properties and methods for manipulating ... - [ButtonComponentElement](https://api.playcanvas.com/web-components/classes/ButtonComponentElement.md): The ButtonComponentElement interface provides properties and methods for manipulating elements. - [CameraComponentElement](https://api.playcanvas.com/web-components/classes/CameraComponentElement.md): The CameraComponentElement interface provides properties and methods for manipulating elements. - [CollisionComponentElement](https://api.playcanvas.com/web-components/classes/CollisionComponentElement.md): The CollisionComponentElement interface provides properties and methods for manipulating elements. - [ElementComponentElement](https://api.playcanvas.com/web-components/classes/ElementComponentElement.md): The ElementComponentElement interface provides properties and methods for manipulating elements. - [GSplatComponentElement](https://api.playcanvas.com/web-components/classes/GSplatComponentElement.md): The GSplatComponentElement interface provides properties and methods for manipulating elements. - [JointComponentElement](https://api.playcanvas.com/web-components/classes/JointComponentElement.md): The JointComponentElement interface provides properties and methods for manipulating elements. - [LayoutChildComponentElement](https://api.playcanvas.com/web-components/classes/LayoutChildComponentElement.md): The LayoutChildComponentElement interface provides properties and methods for manipulating elements. - [LayoutGroupComponentElement](https://api.playcanvas.com/web-components/classes/LayoutGroupComponentElement.md): The LayoutGroupComponentElement interface provides properties and methods for manipulating elements. - [LightComponentElement](https://api.playcanvas.com/web-components/classes/LightComponentElement.md): The LightComponentElement interface provides properties and methods for manipulating elements. - [ParticleSystemComponentElement](https://api.playcanvas.com/web-components/classes/ParticleSystemComponentElement.md): The ParticleSystemComponentElement interface provides properties and methods for manipulating ... - [RenderComponentElement](https://api.playcanvas.com/web-components/classes/RenderComponentElement.md): The RenderComponentElement interface provides properties and methods for manipulating elements. - [RigidBodyComponentElement](https://api.playcanvas.com/web-components/classes/RigidBodyComponentElement.md): The RigidBodyComponentElement interface provides properties and methods for manipulating elements. - [ScreenComponentElement](https://api.playcanvas.com/web-components/classes/ScreenComponentElement.md): The ScreenComponentElement interface provides properties and methods for manipulating elements. - [ScriptComponentElement](https://api.playcanvas.com/web-components/classes/ScriptComponentElement.md): The ScriptComponentElement interface provides properties and methods for manipulating elements. - [ScriptInstanceElement](https://api.playcanvas.com/web-components/classes/ScriptInstanceElement.md): The ScriptInstanceElement interface provides properties and methods for manipulating elements. - [ScrollbarComponentElement](https://api.playcanvas.com/web-components/classes/ScrollbarComponentElement.md): The ScrollbarComponentElement interface provides properties and methods for manipulating elements. - [ScrollViewComponentElement](https://api.playcanvas.com/web-components/classes/ScrollViewComponentElement.md): The ScrollViewComponentElement interface provides properties and methods for manipulating elements. - [SoundComponentElement](https://api.playcanvas.com/web-components/classes/SoundComponentElement.md): The SoundComponentElement interface provides properties and methods for manipulating elements. - [SoundSlotElement](https://api.playcanvas.com/web-components/classes/SoundSlotElement.md): The SoundSlotElement interface provides properties and methods for manipulating elements. ## Base Classes - [AsyncElement](https://api.playcanvas.com/web-components/classes/AsyncElement.md): Base class for all PlayCanvas Web Components that initialize asynchronously. - [ComponentElement](https://api.playcanvas.com/web-components/classes/ComponentElement.md): Represents a component in the PlayCanvas engine. - [EntityBaseElement](https://api.playcanvas.com/web-components/classes/EntityBaseElement.md): The base class for elements that front an engine Entity: and , which create one, and... - [EntityOwnerElement](https://api.playcanvas.com/web-components/classes/EntityOwnerElement.md): The base class for elements that create and own their backing entity: and , whose host entity... ## Functions - [whenReady](https://api.playcanvas.com/web-components/functions/whenReady.md): Waits for the first element matching the given tag name to be fully initialized. ## Types - [AddressMode](https://api.playcanvas.com/web-components/types/AddressMode.md): The addressing modes for a texture asset. - [AsyncElementTagName](https://api.playcanvas.com/web-components/types/AsyncElementTagName.md): A union of the tag names of all elements that initialize asynchronously (i.e. elements whose classes extend... - [BlendType](https://api.playcanvas.com/web-components/types/BlendType.md): The blend modes for a material. - [ColorChannel](https://api.playcanvas.com/web-components/types/ColorChannel.md): The texture channels a color map can sample. - [CullMode](https://api.playcanvas.com/web-components/types/CullMode.md): The face culling modes for a material. - [FitMode](https://api.playcanvas.com/web-components/types/FitMode.md): How an image element fits its texture or sprite into its rectangle: stretch fills the rectangle exactly, contain... - [FresnelModel](https://api.playcanvas.com/web-components/types/FresnelModel.md): The Fresnel models for a material. - [HierarchyMaterial](https://api.playcanvas.com/web-components/types/HierarchyMaterial.md): One material assignment of a HierarchyNode with a render component: a mesh instance's position within the component... - [HierarchyNode](https://api.playcanvas.com/web-components/types/HierarchyNode.md): One node of the tree returned by ModelElement.hierarchy. - [JointType](https://api.playcanvas.com/web-components/types/JointType.md): The constraint types supported by the element. - [LightShape](https://api.playcanvas.com/web-components/types/LightShape.md): The light source shapes supported by the element: a punctual point, or an area light shaped as a rect,... - [MagFilterMode](https://api.playcanvas.com/web-components/types/MagFilterMode.md): The magnification filter modes for a texture asset. - [MaterialOverrides](https://api.playcanvas.com/web-components/types/MaterialOverrides.md): A sparse mapping from selector to pc-material id, as carried by the material-overrides attribute and... - [MinFilterMode](https://api.playcanvas.com/web-components/types/MinFilterMode.md): The minification filter modes for a texture asset. - [MotionMode](https://api.playcanvas.com/web-components/types/MotionMode.md): The motion modes for a single joint axis: fully constrained (locked), constrained within limits (limited) or... - [NodeBindingState](https://api.playcanvas.com/web-components/types/NodeBindingState.md): The binding states a element moves through. - [OccludeSpecular](https://api.playcanvas.com/web-components/types/OccludeSpecular.md): The specular occlusion modes for a material. - [OpacityDither](https://api.playcanvas.com/web-components/types/OpacityDither.md): The opacity dithering modes for a material. - [ParallaxMode](https://api.playcanvas.com/web-components/types/ParallaxMode.md): How a material's height map offsets the UVs of its other maps: offset takes a single tap of the height map, and... - [ScalarChannel](https://api.playcanvas.com/web-components/types/ScalarChannel.md): The texture channels a scalar map can sample. ## Optional - [All pages in one file](https://api.playcanvas.com/web-components/llms-full.txt): 56 pages (181 KB), for downloading and searching rather than reading into context.