# Bits UI Flexible, unstyled, and accessible primitives that provide the foundation for building your own high-quality Svelte component library. banner {

Bits UI is a collection of headless component primitives for Svelte that prioritizes developer experience, accessibility, and flexibility. The goal is to empower developers to build high-quality, accessible user interfaces without sacrificing creative control or performance.

}
View Bits UI Docs
At minimum, we recommend you read the following documentation before you start this integration guide. - [Getting Started](https://www.bits-ui.com/docs/getting-started) - [Styling](https://www.bits-ui.com/docs/styling) ## Requirements | Tooling | Minimum Supported | | ------------------------------------ | ----------------- | | [Svelte](https://svelte.dev/) | 5 | | [Skeleton](https://skeleton.dev) | 3 | | [Tailwind](https://tailwindcss.com/) | 4 | | [Bits UI](https://www.bits-ui.com/) | 1 | ## Introduction In this guide we'll implement the following Bits UI `` component. This will showcase the bare minimum requirements for integrating Skeleton with Bits UI. calendar
Calendar Documentation
## Get Started ### Create a SvelteKit Project To begin, we'll setup a new SvelteKit project, including Skeleton v3 and Tailwind v4. Setup SvelteKit App ### Install Bits UI Install the Bits UI package via your package manager of choice. ```console npm install bits-ui ``` We'll also include the [Adobe International Date](https://react-spectrum.adobe.com/internationalized/date/index.html) package to assist with date/time formatting. ```console npm i -D @internationalized/date ``` ### Component Boilerplate Create a new component in `/lib/components/Calendar/Calendar.svelte` and insert the following markup. This will generate an unstyled version of the component. ```svelte {#snippet children({ months, weekdays })} {#each months as month} {#each weekdays as day} {day} {/each} {#each month.weeks as weekDates} {#each weekDates as date} {/each} {/each} {/each} {/snippet} ``` ### Add the Component Finally, let's add our new component to the root `+page.svelte` so that we may preview it. ```svelte
```
## Styling Each Bits UI component accepts a `class` attribute. Use this to provide Tailwind and Skeleton utility classes. ### Basic Styles Styling the `` parent component. ```svelte ``` Styling the `` sub-component. You can clone these to `` too. ```svelte ``` Styling the `` sub-component. ```svelte {date.day} ``` For the sake of time we won't cover every sub-component. ### Complete Example Below is a complete example showing the entire component with all styles and basic configuration. ```svelte {#snippet children({ months, weekdays })}
{#each months as month, i (i)} {#each weekdays as day}
{day.slice(0, 2)}
{/each}
{#each month.weeks as weekDates} {#each weekDates as date} {date.day} {/each} {/each}
{/each}
{/snippet}
``` ## Going Further If you wish to match Skeleton component conventions, view our [contributor component guidelines](/docs/resources/contribute/components). ## Attribution Bits UI is created and maintained by [Huntabyte](https://github.com/huntabyte). Consider [sponsoring him](https://github.com/sponsors/huntabyte) to support this open source project.