How Enact Relates to the Limestone UI Library
Updated
Limestone is a TV-centric UI library that lives inside the Enact ecosystem, not a separate framework. Enact is the broader application development framework built atop React, and Limestone is one of its widget libraries, aimed specifically at large-screen and TV interfaces. If you are building a TV app with Enact, Limestone is the component set you would reach for; if you are building for other embedded web platforms, Enact still applies but Limestone may not be the right fit.
The two layers, side by side
| Enact | Limestone | |
|---|---|---|
| What it is | An app development framework built atop React | A TV-centric UI library |
| Scope | Full framework: i18n, accessibility, focus management, linting, testing, building, plus reusable components and behaviors | A widget library of 50+ components |
| Target | A wide range of embedded web platforms, including automotive, robotics, and TV | Large screens and TV |
| Relationship | The parent ecosystem | A library within that ecosystem |
The key distinction is scope. Enact covers the whole application lifecycle: the site describes it as pulling together solutions for internationalization (i18n), accessibility (a11y), focus management, linting, testing, and building, then layering reusable components and behaviors on top so the pieces work together seamlessly. Limestone is narrower — it is the UI layer for TV, offering over 50 components as a base for large-screen applications.
Why the distinction matters when choosing
If you conflate the two, you can end up evaluating Limestone as if it were a full framework, or expecting Enact to ship TV-specific widgets by default. Neither is accurate.
- Choose Enact as your starting point when you need a React-based framework that handles setup, performance as apps grow, and cross-cutting concerns like i18n, a11y, focus management, testing, and building.
- Add Limestone when your target is TV or another large-screen context and you want a ready component base rather than building widgets from scratch.
- Skip Limestone when your embedded web target is not a large screen — Enact is still the framework, but Limestone's TV orientation may not match your interface needs.
What Enact provides beyond the UI layer
Enact's own description emphasizes four properties that sit above any single widget library:
- Easy to use — it builds atop React and provides a full framework, since getting started is often the hardest part of a modern web app.
- Performant — performance was a design goal, from how components render to how data flows, so apps stay performant as they grow in size and complexity.
- Customizable — a full set of customizable widgets that can be tuned to each project's style.
- Adaptable — designed to produce native-quality applications for a wide variety of embedded web platforms.
Limestone inherits this foundation and specializes it for TV. The Enact team notes that its widget library experience spans devices from TVs to watches, which is the background Limestone draws on.
Getting started
Enact provides a command-line tool to initialize projects and perform common actions. The documented installation step is:
npm install -g @enact/cli
From there, the site points to a Setup Guide, the API reference, and a separate Limestone API reference for the TV component library. If your goal is a TV application, the practical path is to set up Enact first, then bring in Limestone components for the interface layer.
A concrete way to think about it
Imagine you are building a TV app. Enact gives you the project scaffolding, the build and test setup, focus management for remote-control navigation, accessibility support, and the data and rendering behavior that keeps the app responsive. Limestone gives you the on-screen building blocks — the buttons, lists, and other widgets sized and styled for a large display. You use both, but they answer different questions: Enact answers "how is this application built and maintained," while Limestone answers "what does the TV interface look like."
For contributions, the Enact team states it welcomes help from anyone motivated to contribute, with a Contribution Guide available.