@swim/ui
@swim/ui implements a user interface toolkit for pervasively real-time applications. A unified view hierarchy, with builtin procedural styling and animation, makes it easy for @swim/ui components to uniformly style, animate, and render mixed HTML, SVG, Canvas, and WebGL components. @swim/ui is a part of the @swim/toolkit framework.
Framework
The @swim/ui umbrella package depends on, and re-exports, the following component libraries:
- @swim/model (npm, doc) – lifecycle-managed model hierarchy supporting dynamic scoping and service injection.
- @swim/style (npm, doc) – Font, color, gradient, shadow and related types and parsers.
- @swim/theme (npm, doc) – semantic looks and feels for mood-aware UX components.
- @swim/view (npm, doc) – unified HTML, SVG, and Canvas view hierarchy, with integrated controller architecture, animated procedural styling, and constraint-based layouts.
- @swim/dom (npm, doc) – HTML and SVG views, with procedural attribute and style animators.
- @swim/graphics (npm, doc) – canvas graphics views, with procedurally animated shapes, and procedurally styled typesetters.
- @swim/component (npm, doc) – componentized controller layer with application lifecycle and service management.
@swim/ui builds on the @swim/core framework; it has no additional dependencies.
Installation
npm
For an npm-managed project, npm install @swim/ui
to make it a dependency.
TypeScript sources will be installed into node_modules/@swim/ui/main
.
Transpiled JavaScript and TypeScript definition files install into
node_modules/@swim/ui/lib/main
. And a pre-built UMD script, which
bundles all @swim/ui component libraries, can be found in
node_modules/@swim/ui/dist/main/swim-ui.js
.
Browser
Browser applications can load swim-ui.js
, along with its swim-core.js
dependency, from the SwimOS CDN.
<!-- Development -->
<script src="https://cdn.swimos.org/js/latest/swim-core.js"></script>
<script src="https://cdn.swimos.org/js/latest/swim-ui.js"></script>
<!-- Production -->
<script src="https://cdn.swimos.org/js/latest/swim-core.min.js"></script>
<script src="https://cdn.swimos.org/js/latest/swim-ui.min.js"></script>
Alternatively, the swim-toolkit.js
script may be loaded, along with its
swim-system.js
dependency, from the SwimOS CDN. The swim-toolkit.js
script bundles @swim/ui together with all other
@swim/toolkit
frameworks.
<!-- Development -->
<script src="https://cdn.swimos.org/js/latest/swim-system.js"></script>
<script src="https://cdn.swimos.org/js/latest/swim-toolkit.js"></script>
<!-- Production -->
<script src="https://cdn.swimos.org/js/latest/swim-system.min.js"></script>
<script src="https://cdn.swimos.org/js/latest/swim-toolkit.min.js"></script>
Usage
ES6/TypeScript
@swim/ui can be imported as an ES6 module from TypeScript and other
ES6-compatible environments. All component libraries are re-exported by
the umbrella @swim/ui
module.
import * as swim from "@swim/ui";
CommonJS
@swim/ui can also be used with CommonJS-compatible module systems.
All component libraries are re-exported by the umbrella @swim/ui
module.
var swim = require("@swim/ui");
Browser
When loaded by a web browser, the swim-ui.js
script adds all component
library exports to the global swim
namespace. The swim-ui.js
script
requires that swim-core.js
has already been loaded.
The swim-toolkit.js
script also adds all @swim/ui component library
exports to the global swim
namespace, making it a drop-in replacement
for swim-ui.js
when additional @swim/toolkit frameworks are needed.