/melt-ui

A set of headless, accessible component builders for Svelte.

Primary LanguageTypeScriptMIT LicenseMIT

Melt UI is a set of headless, accessible component builders for Svelte.

About

Melt UI is meant to be used as a base for your own styles and components. It offers:

  • Uncoupled builders that can be attached to any element/component
  • Typescript and SvelteKit support out-of-the-box
  • Strict adherence to WAI-ARIA guidelines
  • Easy to use examples and documentation
  • A high emphasis on accessibility, extensibility, quality and consistency

Getting started

Install the @melt-ui/svelte package with your package manager of choice:

npm install @melt-ui/svelte
yarn add @melt-ui/svelte
pnpm add @melt-ui/svelte
bun add @melt-ui/svelte

Import the builders to your code and start using them:

<script>
	import { createCollapsible } from '@melt-ui/svelte'
	const { open, root, content, trigger } = createCollapsible()
</script>

<div {...$root}>
	<button {...$trigger}>{$open ? 'Close' : 'Open'}</button>
	<div {...$content}>Obi-Wan says: Hello there!</div>
</div>

Contributing

Contributions are welcome and encouraged!

Melt UI is under active development. Currently planned features can be found in the roadmap, or in the issues tab, alongside bug reports.

We work on this project on a volunteer basis in our free time. If you notice something that hasn't been implemented yet or could be improved, do consider contributing to the project. The goal is to enhance the experience of building with Svelte and improve the ecosystem for everyone.

Check out our Contributing guide to learn more.

Community

Got any questions? Want to talk to the maintainers?

Our Discord community is a great place to get in touch with us, and we'd love to have you there.

Melt UI Discord community

Roadmap

Component name Status
Accordion
Avatar
Calendar
Checkbox
Collapsible
ComboBox
Command Menu
Context Menu
Dialog
Dropdown Menu
Dropzone
Hover Card
Label
Menubar
Navigation Menu
Pagination
Pin Input
Popover
Progress
Radio Group
Scroll Area
Select
Separator
Slider
Spin Button
Switch
Tabs
Tags Input
Toast
Toggle
Toggle Group
Toolbar
Tooltip
Tree View
???

Progress: 26/???

Similar projects

Looking for more? Check out these other projects too:

This list is not exhaustive or sorted in any particular order. If you know of any other similar projects for Svelte, feel free to open a PR to add them here.