Introduction
Themeable React components and an SDK for building epilot portal experiences.
Spark is the design system behind epilot portals: the components that power HEMS dashboards, portal blocks, and end-customer experiences. It ships as two packages: a React component library and an SDK for embedding blocks into live portals.
Principles
Themeable by contract. Every component reads one CSS-first theming contract:
--spark-* variables plus data-* preset attributes. Flip an accent, neutral, radius,
spacing, or emphasis knob and the whole tree re-themes, no rebuild. Try it in the
Theme Playground.
Portal-native. Live portals inject the same --spark-* tokens over postMessage,
so a block embedded in a customer portal automatically wears the operator's brand.
The SDK handles the bridge: session, entities, theming, localization.
Built on solid primitives. Components compose Base UI behavior with Tailwind styling, tree-shakeable to the single component you import.
Packages
Spark UI
The React component library: primitives, HEMS components, and the theming engine.
Spark SDK
Iframe bridge for portal blocks: session, entity CRUD, theming, localization.
Installation
Install the component library:
npm install @epilot/spark-uiEmbedding a block into a live portal? Add the SDK:
npm install @epilot/spark-sdk