What is Strelit UI Kit and how does it relate to Golden Layout?
Strelit UI Kit is the active product line and multi-window docking engine maintained under the CTHub brand. It was created from the Golden Layout v2 working tree and re-initialized as a modernized, high-density TypeScript platform. We have eliminated legacy dependencies, replaced raster icons with zero-raster SVG CSS masks, upgraded namespace exports to standard ES modules, and enforced strict TypeScript typing.
How does Strelit UI Kit integrate with modern frameworks like React, Vue, or Angular?
Strelit UI Kit supports a flexible hybrid integration model:
- Virtual Mode ("As-Is"): By using
virtual-rectingevents and virtual component containers, frameworks can render custom component trees (JSX, Angular ComponentPortals, Vue slots) directly inside layout bounding boxes without DOM unmounting or state destruction during drag-and-drop. - Native Teleport Wrappers: First-class wrappers provide declarative JSX and slot boundaries so components stay cleanly within their framework context while benefiting from desktop-grade window docking.
Do I need jQuery or any external DOM library?
No. Strelit UI Kit is written in pure TypeScript with zero external DOM dependencies. Unlike legacy Golden Layout v1, jQuery is completely removed. You can run Strelit UI Kit directly in vanilla HTML/JS, or bundle it cleanly with Vite, Next.js, or Webpack.
What is the licensing model for Strelit UI Kit?
The core repository is released under the permissive MIT License. You can freely use, modify, and distribute Strelit UI Kit in both open-source and commercial web applications. CTHub maintains strict open-core transparency.
How do I upgrade from Golden Layout v1 or v2?
Upgrading to Strelit UI Kit is straightforward. For v2 users, replace your package import from golden-layout to strelit-ui-kit and update CSS imports to `strelit-base.css` and `strelit-dark-theme.css`. If migrating from v1, switch from legacy constructors (`new GoldenLayout(config)`) to `new StrelitLayout(container)` combined with `layout.loadLayout(config)`.