@deepnode/hub-ui (0.1.0-preview.1)
Installation
@deepnode:registry=npm install @deepnode/hub-ui@0.1.0-preview.1"@deepnode/hub-ui": "0.1.0-preview.1"About this package
@deepnode/hub-ui
The Deepnode interface kit's base: the tokens, the base CSS and the components layer taken from Review Hub's
interface (b3b2220), the fonts, and the shared helpers. A product installs it with exactly one area package
(@deepnode/hub-ui-reviewhub or @deepnode/hub-ui-crmhub) at the same version, and @material/web 2.5.0.
Entries
@deepnode/hub-ui: the constants (THEME_KEY,THEME_EVENT,BAR_COLOURS),escandel, and every part.@deepnode/hub-ui/markup: the pure markup helpers (esc,eland the parts' markup).@deepnode/hub-ui/parts/<part>: one part.@deepnode/hub-ui/styles.css: one stylesheet, its first statement@layer tokens, base, components, area, product;. Load it before the area'sstyles.css; a product's own rules go in@layer product.@deepnode/hub-ui/fonts/*: the self-hosted faces, referenced bystyles.cssas./fonts/<file>.
Consumer build
Merge the preset into your vite.config:
import preset from "@deepnode/hub-ui/vite-preset";
export default preset; // or mergeConfig(preset, { ...your own settings })
The preset sets build.assetsInlineLimit: 0, so every font and image is emitted as a file and never inlined as a
data: URL (a Content-Security-Policy without data: loads it).
Default Vite build keeps the layer order: yes
(Found on Vite 8.2.2, 2026-10-18: a starter-shaped consumer importing @deepnode/hub-ui/styles.css and then its own
@layer product file, built with Vite's default settings, emits one minified stylesheet whose layer statement is
folded into the blocks, @layer tokens{…}@layer base{…}@layer components{…}@layer area;@layer product{…}: the five
names first appear in the kit's order with product last, so the order holds and the preset needs no
cssMinify: false.)
Dependencies
Peer dependencies
| ID | Version |
|---|---|
| @material/web | 2.5.0 |
| @playwright/test | 1.63.0 |