Exadel Smart Library
UI component library with flair and precision
ESL is an open-source web components library that helps developers create modern-looking, effective, and user-friendly interfaces faster.
Why the ESL Web Components Library?
- Efficient
Our library reduces the work needed to create reusable UI components by giving you a reliable base to customize and expand on for fast and accurate development.
- Fast
With ESL, there’s no need to write lengthy markup — the reusable elements in our UI component library are small, but they’re designed to be the optimal building blocks for your content.
- Light
We specifically designed our reusable web components to work quickly and efficiently in browsers, cutting out the unnecessary code that takes a toll on user experience.
- Powerful
While the modules in our web components library may be small, they’re also universal, allowing you to mix and match the UI components at will to create large modules.
- Tested
We covered all of our utilities with unit tests to make ESL the best front end component library, which means every new addition works just as expected.
- Versatile
Our UI component library doesn't introduce any additional restrictions — only benefits, as it offers utilities and framework-agnostic web components that work with any tech stack.
Browser Support
Our web components library uses built-in browser functionality — Web API and ECMAScript 6 features that are fully supported by modern browsers such as Chrome, Firefox, Safari, or Edge.
If you want our UI component library to work in older browsers, you can use one of the polyfill lists — "light" or "full."
Let's Get Started
Join the array of consumers who successfully use our UI component library. ESL brings to you a number of ultra-light reusable UI components to create unique layouts and utilities to improve the development experience.
Our News
-
ESL v4.14.0
New ESL version v4.14.0 released and available on NPM! Discover what's new in the latest ESL:
-
We are pleased to announce the release of
@exadel/eslint-plugin-esl
, a tool designed to ensure continuous support for ESL, keeping you in sync with ESL updates and best practices. The plugin's versioning is synchronized with ESL, simplifying the process of finding the compatible version for your ESL setup.
See the plugin's installation guide for more information. -
In our journey towards the release of the production-ready
esl-share
, the current beta version is stable and won't undergo significant changes. Explore the latest module structure, featuring:- A separate
esl-share-list
component tailored for users who prefer a simple list of share buttons without the popup. - The
esl-share
custom element now utilizes the esl-share-popup implementation.
- A separate
-
We've introduced a new static property,
DEFAULT_PARAMS
, to theesl-toggleable
instances. This addition makes it effortless to set default show/hide parameters for toggleable based modules. -
Introducing the new
esl-random-text
component, designed to assist in populating your test pages with dummy content. -
iOS bugfixes related to the native scroll for
esl-tabs
module
-
-
ESL v4.13.0
Upgrade to ESL version v4.13.0, now available on NPM! Discover the latest features and bug fixes:
-
In the
esl-event-listener
module, we've introduced a newcondition
descriptor property, providing a legal means to prevent subscriptions. Additionally, we've added theESLIntersectionTarget
adapter utility, enabling you to manage IntersectionObserver subscriptions through event listeners. -
The
esl-share
module is progressing towards a non-beta version, with several massive updates including the introduction of theesl-share-list
component, a revampedesl-share-popup
implementation, out-of-the-box share config defaults, and more. -
In the
esl-popup
module, we've resolved a bug related to updating the popup position when the activator changes. -
The
esl-media
module has received a bugfix addressing issues with the Brightcove provider's autoplay marker. -
The
esl-scrollbar
module now includes a bugfix for handling situations where the browser creates dimensions with floating-point values, ensuring correct handling ofat-start/at-end
positions.
-
-
ESL v4.12.0
ESL version 4.12.0 is now available on NPM. Explore the enhancements in the latest release:
- Introducing support for a new event target designed to detect touch swipe gestures (refer to
ESLSwipeEventTarget
) ESLMedia
now supports lazy initialization (refer toESLMedia
lazy attribute)- Bug-Free Experience:
ESLTabs
now observes the resize of its content instead of observing the window resize event - The structure of
esl-event-listener/core/targets
has been optimized, and now helpers are accessible with more consistent names
- Introducing support for a new event target designed to detect touch swipe gestures (refer to
-
ESL v4.11.0
The ESL v4.11.0 has been released. The latest version brings the following updates:
ESLPanelGroup
now supports close state and provides correct animation for it- New marker attribute for
ESLPanelGroup
:has-opened
that indicates that the panel group has open panels inside - Technical improvement for
isElement
checks across the library (ESL stable to DOM manipulation between different window contexts, e.g. iframes) - New utility methods:
isElement
andisPlainObject
-
ESL v4.10.0
The ESL v4.10.0 just released. In the latest version you can find the following updates:
- New approach for ESLToggleable and ESLTrigger marker attributes: now you can use
0
andfalse
values to set attributes tofalse
state toBooleanAttribute
serializer was created to support mentioned attribute behavior in custom components- Rework scroll lock functionality:
pseudo
scroll lock now uses padding hack instead of flexbox on the HTML level- Add new
background
mode, that repeatspseudo
but with a much lower default z-index for the scrollbar stub
- Fixes for ESLFootnotes and ESLToggleable components
- New approach for ESLToggleable and ESLTrigger marker attributes: now you can use