Simple, optimized
components library for Svelte
Lapikit is an open-source Svelte component library for building accessible, high-performance, and fully customizable interfaces with Svelte and SvelteKit.



The power of Lapikit
Lapikit is an open-source Svelte component library built by front-end developer, for front-end developers. The goal of Lapikit is to free you from repetitive tasks such as managing component imports, duplicate CSS classes, and global components that have to be reinvented for every project.
The main challenge for projects is time. Lapikit is here to free up your time so you can focus on what really matters: building accessible, high-performance, and consistent interfaces, without ever sacrificing the flexibility of your code.
Lili preprocessor: it’s at the core of Lapikit
Lili is the Svelte preprocessor used by Lapikit to transform its custom component syntax at compile time.
It ensures that Lapikit components are properly structured and allows you to use features such as the `class` and `style` directives on Lapikit components; it works as an extension of the Svelte preprocessor.
Coming soon: compatibility with Webpack and Rollup
Look over the syntaxof the templates


Class and Style Binding with s-class and s-style
Svelte offers a directive-based approach for the `style` and `class` properties through its new directives dedicated to these properties. You can now define your dynamic classes directly within your elements, which makes the code much more fluid and readable by eliminating the need for complex ternary operators or tedious manipulations.
But what role does the Lili preprocessor play in all of this?
To top it all off, the Lapikit Lili preprocessor further enhances this experience by extending this handy feature to all components in the Lapikit library, giving you optimal flexibility for your projects!
Two directives `s-style` and `s-class` are available to provide the same convenience as native HTML elements.
Use Lapikit components with the <kit:*> syntax
With Lapikit and the Lili preprocessor, you can focus on writing your code and calling components using the `<kit:*>` directives the preprocessor will handle the rest, including imports, proper naming conventions for using Svelte components, snippet adaptations, and more.
Here's a quick example of how Lapikit components work. Use `<kit:list>` and `<kit:list-item>` directly in your Svelte template, and Lili transforms the syntax at compile time while handling the corresponding component imports.
The example below shows the same List component using the `<kit:*>` syntax and standard Svelte imports.
Learn more about the Lapikittemplate syntax
It's not magic, It's Lapikit
Lapikit includes reusable Svelte components for interface patterns such as buttons, text fields, cards, dialog boxes, drop-down menus, accordions, lists, tooltips, navigation elements, and more. These components work in tandem with Lapikit themes, stylesheets, hooks, and the Lili preprocessor.
Explore all Svelte componentsCommon questions about Lapikit
Can't find the answer to your question here? Contact us we're here to help.
You'll start with 19 Lapikit components, 2 utility functions, and a full-featured preprocessor that will allow you to harness the full power of Lapikit directly within your project.
The goal is to offer you new components with each release to ensure support for new needs. All of this is open-source and free.
Lapikit was designed to reduce common frustrations in front-end development. From installation and configuration to familiar component conventions, its workflow is designed to make integration into Svelte projects straightforward.
JavaScript knowledge is required, and familiarity with Svelte is recommended.
Since Lapikit version 0.4, the core has been based on Svelte 5 and natively supports Runes.
Yes, you can build your project using TypeScript! In fact, Lapikit itself is developed using TypeScript.
Depending on the components you integrate, some of them natively offer TypeScript interfaces to make your development process easier.
Lapikit was designed not to depend on any external libraries to ensure there are no conflicts when used with other libraries.
So yes, you can use any libraries with Lapikit. The only limit is your imagination.
This is a broad topic, but there are three main reasons: security, maintainability, and compatibility with other libraries.
Reducing dependencies makes it simpler to maintain the project while minimizing potential conflicts with other tools used in your application.
Yes, Lapikit is licensed under the MIT License. Mentioning Lapikit in your project is appreciated but not required.
If you build something with Lapikit, we'd also love to see and share what you've created.
We try to release a new version every two months and provide patch notes every two weeks.
Free and open-source,
Built by the community
Already 76.3k downloads on NPM.
Why not you? We welcome contributions from developers around the world.
Help grow the community and share your projects built with Lapikit with us.
Try it on your project and write less, code more
Install Lapikit in your existing Svelte or SvelteKit project and run the CLI with npx lapikit command to get started.
$ npm install -D lapikit

