Documentation
GUIDES AND REFERENCE

Documentation

How to start, how material works in your framework, and every component's configuration, methods and events.

Guides

Why materialmaterial is an independent Material Design 3 component library for the web, with Expressive components, plain JavaScript factories, web components, and framework bindings.Getting startedmaterial is a Material Design 3 component library for the web, with no dependencies.ArchitectureThe material library is built in layers: small features compose into component factories, web components wrap the factories, and the React, Vue, Svelte and SolidJS components are generated from the web components.VanillaThe factories are material itself: one function per component, which builds its DOM and returns an object to drive it.Web Componentsmaterial/elements has every component as a custom element: <m-switch>, <m-tabs>, <m-dialog>.Reactmaterial/react has a React component for every element: Switch renders <m-switch>, Tabs renders <m-tabs>.Vuematerial/vue has a Vue 3 component for every material web component, for Vue 3.3 or later and Nuxt.Sveltematerial/svelte has a Svelte 5 component for every material web component, for Svelte apps and SvelteKit.SolidJSmaterial/solid has a SolidJS component for every material web component, for Solid 1.8 or later and SolidStart.ThemingA theme in material is a set of CSS custom properties: one per Material 3 colour role, named --mtrl-sys-color-<role>.Server renderingmaterial's components are built in the browser: a web component builds its factory inside its shadow root when it upgrades, and a factory needs document.Events and overlaysTwo rules hold for every factory, and the overlays add a few of their own.

Actions

Selection & input

Navigation

Containment

Communication

Additional references