Lime Elements
Modern Web Components for Enterprise Applications
A comprehensive design system and component library built with Stencil
Why Lime Elements?
- π Enterprise-Ready - Battle-tested components used in production applications
- π¨ Design System - Consistent UX/UI design with comprehensive usage guidelines
- β‘ Web Standards - Built with Stencil, works with any framework
- πΎ TypeScript - Full type safety and excellent developer experience
- βΏ Accessible - Built with accessibility in mind
- βοΈ Customizable - Extensive styling options
Sponsored by
Lime Technologies, Lime Elements is a production-ready component library and design system built with Stencil. Our enterprise-grade components help you create consistent, scalable, and accessible web applications faster.
Whether you're building from scratch or enhancing existing applications, Lime Elements provides the building blocks for exceptional user experiences that work across all modern frameworks.
Visit our π Documentation for comprehensive guides and examples, or install directly from π¦ NPM.
Project Status

Quality & Reliability

Technology & Standards


Quick Start
<script type="module" src="https://cdn.jsdelivr.net/npm/@limetech/lime-elements@latest/dist/lime-elements/lime-elements.esm.js"></script>
<limel-input-field
label="Name"
placeholder="Enter your full name"
></limel-input-field>
<limel-button primary label="Submit"></limel-button>
Try it live in our playground
Getting Started
- To install, run
npm install @limetech/lime-elements
.
Requirements
1. Font
To achieve a blazing fast rendering, our components' user interface utilizes a default cross-browser sans-serif font stack. As web components typically inherit font-related styles such as font-family
, font-size
, and color
, we recommend defining these styles at a higher level, such as the <body>
element. This is because we do not specify these defaults on each individual component.
To maintain consistency with the look & feel demonstrated in this documentation, we suggest incorporating the following styles into your project:
font-family: ui-sans-serif, system-ui, sans-serif;
font-size: 0.875rem;
font-style: normal;
font-weight: 400;
color: rgb(var(--contrast-1500));
π‘ About the color
specified above, read more on our color system.
Feel free to customize the font-family and related styles to suit your project's needs. For example, you might prefer a different typeface like below:
font-family: 'Roboto', Arial, Verdana, sans-serif;
2. Icons
At Lime, we utilize the Windows 11 Outline icon set from Icons8. You may notice these icons in our components, such as the magnifying glass icon displayed as a leading icon on an input field.
If you're using Lime Elements in a non-Lime product, you'll need to provide your own icons. We're unable to redistribute Icons8's assets with our package due to licensing restrictions.
Providing your own icons is crucial as many of our components use an Icon
interface. This interface allows you to specify an icon name, which corresponds to the filename of an SVG icon. For example, you can use this to display an icon on a button.
How to Set Up Your Icons Folder
-
For Lime products:
To use @lundalogik/lime-icons8
, the /assets
folder from @lundalogik/lime-icons8
must be made available on the web-server.
-
For non-Lime products:
To use a different icon set, the icons must be placed in a folder structure that looks like this: assets/icons/<name-of-icon>.svg
If assets
is placed in the root, no other setup is needed. The icons will be fetched with a relative URL from /assets/icons/<name-of-icon>.svg
.
If assets
is placed in a sub-folder somewhere, the easiest way to make the icons available is to use the HTML base
element:
<base href="/my/parent/path/" />
If this is not enough, or if the base
element is already in use for something else, a global icon path can be configured with the limel-config
element:
<limel-config config={{iconPath: '/my/parent/path/'}} />
Using @beta Components
Components marked as @beta
are not yet stable. Here's what you need to know:
- Breaking changes: We may change
@beta
components in ways that break your code. We won't increase the major version number when we do this.
- Unstable:
@beta
components may have more bugs than other components. Use them at your own risk.
- Feedback wanted: We offer
@beta
components to get your input. Your feedback helps us improve them.
Remember: All components can change, but @beta
components change more often and without warning.
Contributing
We welcome contributions from the community! Here's how you can help:
- π Found an issue? Feel free to fix it and submit a PR
- π Improve docs? Documentation improvements are always appreciated
- π¨ Design feedback? Share your UX insights
- π§ͺ Testing? Help us test new features and report bugs
Quick Set Up
git clone https://github.com/Lundalogik/lime-elements.git
cd lime-elements
npm install
npm start
π Read our full contributing guidelines
π License
Lime Elements is open source software licensed under the Apache 2.0 License.