Svelte Material UI

Svelte Material UI

Material UI components for Svelte apps

Svelte
SMUI provides strictly typed Svelte components and actions for a wide variety of interface elements. SMUI also provides helper utilities for building custom and advanced UI components.
Material.io
Many SMUI components are based on Material Design Components for Web, by Google. It integrates these components using the "Advanced Approach", where the MDC Foundation does some business logic, and the SMUI component handles DOM updates and data binding.
Sass
Like MDC-Web, SMUI is styled through Sass. SMUI supports all of the mixins provided by Material Design Components for Web, and provides some additional helpful mixins. You can customize the look of your UI with just a few variables.
Fully, Strictly Typed
SMUI is strictly typed with TypeScript. This not only helps catch bugs early, it helps while developing as every property is autocompleted by modern IDEs.
Accessible by Default
SMUI automatically adds appropriate ARIA attributes to components to provide accessibility to screen readers. SMUI is also fully keyboard accessible, meaning motor impaired users can easily use SMUI components.
Touch Friendly
SMUI provides increased touch targets to allow ease of use on mobile devices, conforming to the Material Spec requirement of minimum 48px x 48px touch targets.
Server Side Rendering
SMUI can be fully rendered on the server, meaning faster time to first meaningful paint. SMUI fully supports SvelteKit. In fact, the site you're looking at is a SvelteKit app.
Fully Themable
Components are themable using Sass variables, provided by MDC-Web. Everything from their shape, color, density, borders, interaction states, and more is themable.
RTL/Internationalization Support
SMUI is RTL aware, and components will adapt their design to suit the language of the user.
Widely Used, a Growing Community
With over 3,000 projects using SMUI components, it is the most popular Svelte UI library. For good reason, too. It is the most versatile and adaptable Svelte UI library, guaranteed.
Adaptable, Versatile
SMUI supports adding arbitrary attributes and actions to every component and many internal elements within them. SMUI forwards all events from every component, and supports event modifiers, including passive. SMUI works in the Svelte REPL, meaning you can play with it right now.
Material Design Compliant
Every SMUI component fully follows the Material Design specification. You can build up-to-spec UIs with SMUI.

[ Discord | GitHub | Issue Tracker | © 2019-2024 Hunter Perrin ]