HSUIWindow
TypeHSUIWindow
A custom window with declarative UI building
HSUIWindow allows you to create custom borderless windows with a SwiftUI-like
declarative syntax. Build interfaces using shapes, text, images, and layout containers.
Building UI Elements
- Shapes:
rectangle(),circle() - Text:
text(content) - Buttons:
button(label)— uses SwiftUI's native Button for press-state feedback - Images:
image(imageValue) - Layout:
vstack(),hstack(),zstack(),spacer()
Modifying Elements
- Shape modifiers:
fill(),stroke(),strokeWidth(),cornerRadius() - Text modifiers:
font(),foregroundColor() - Image modifiers:
resizable(),aspectRatio(mode) - Layout modifiers:
frame(),opacity(),padding(),spacing()
Examples
Simple window with text and shapes:
hs.ui.window({x: 100, y: 100, w: 300, h: 200})
.vstack()
.spacing(10)
.padding(20)
.text("Dashboard")
.font(HSFont.largeTitle())
.foregroundColor("#FFFFFF")
.rectangle()
.fill("#4A90E2")
.cornerRadius(10)
.frame({w: "90%", h: 80})
.end()
.backgroundColor("#2C3E50")
.show();
Window with image:
const img = HSImage.fromPath("~/Pictures/photo.jpg")
hs.ui.window({x: 100, y: 100, w: 400, h: 300})
.vstack()
.padding(20)
.image(img)
.resizable()
.aspectRatio("fit")
.frame({w: 360, h: 240})
.end()
.show();
Properties
This type has no properties.
Methods
show() -> HSUIWindow
Show the window
Declaration
show() -> HSUIWindow
Returns
HSUIWindow
Self for chaining
backgroundColor(colorValue) -> HSUIWindow
Set the window's background color
Declaration
backgroundColor(colorValue) -> HSUIWindow
Parameters
| Name | Type | Description |
|---|---|---|
| colorValue | JSValue | Color as hex string (e.g., "#FF0000") or HSColor object |
Returns
HSUIWindow
Self for chaining
rectangle() -> HSUIWindow
Add a rectangle shape
Declaration
rectangle() -> HSUIWindow
Returns
HSUIWindow
Self for chaining (apply modifiers like `fill()`, `frame()`)
circle() -> HSUIWindow
Add a circle shape
Declaration
circle() -> HSUIWindow
Returns
HSUIWindow
Self for chaining (apply modifiers like `fill()`, `frame()`)
text(content) -> HSUIWindow
Add a text element
or an `HSString` object (from `hs.ui.string()`) for reactive text
Declaration
text(content) -> HSUIWindow
Parameters
| Name | Type | Description |
|---|---|---|
| content | JSValue | The text to display — a plain JS string for static text, |
Returns
HSUIWindow
Self for chaining (apply modifiers like `font()`, `foregroundColor()`)
image(imageValue) -> HSUIWindow
Add an image element
Declaration
image(imageValue) -> HSUIWindow
Parameters
| Name | Type | Description |
|---|---|---|
| imageValue | JSValue | Image as HSImage object or file path string |
Returns
HSUIWindow
Self for chaining (apply modifiers like `resizable()`, `aspectRatio()`, `frame()`)
button(label) -> HSUIWindow
Add a button element
or an `HSString` object (from `hs.ui.string()`) for reactive text
Declaration
button(label) -> HSUIWindow
Parameters
| Name | Type | Description |
|---|---|---|
| label | JSValue | The button label — a plain JS string for static text, |
Returns
HSUIWindow
Self for chaining (apply `.fill()`, `.cornerRadius()`, `.font()`,
vstack() -> HSUIWindow
Begin a vertical stack (elements arranged top to bottom)
Declaration
vstack() -> HSUIWindow
Returns
HSUIWindow
Self for chaining (call `end()` when done)
hstack() -> HSUIWindow
Begin a horizontal stack (elements arranged left to right)
Declaration
hstack() -> HSUIWindow
Returns
HSUIWindow
Self for chaining (call `end()` when done)
zstack() -> HSUIWindow
Begin a z-stack (overlapping elements)
Declaration
zstack() -> HSUIWindow
Returns
HSUIWindow
Self for chaining (call `end()` when done)
spacer() -> HSUIWindow
Add flexible spacing that expands to fill available space
Declaration
spacer() -> HSUIWindow
Returns
HSUIWindow
Self for chaining
end() -> HSUIWindow
End the current layout container
Declaration
end() -> HSUIWindow
Returns
HSUIWindow
Self for chaining
fill(colorValue) -> HSUIWindow
Fill a shape with a color
Declaration
fill(colorValue) -> HSUIWindow
Parameters
| Name | Type | Description |
|---|---|---|
| colorValue | JSValue | Color as hex string or HSColor |
Returns
HSUIWindow
Self for chaining
stroke(colorValue) -> HSUIWindow
Add a stroke (border) to a shape
Declaration
stroke(colorValue) -> HSUIWindow
Parameters
| Name | Type | Description |
|---|---|---|
| colorValue | JSValue | Color as hex string or HSColor |
Returns
HSUIWindow
Self for chaining
strokeWidth(width) -> HSUIWindow
Set the stroke width
Declaration
strokeWidth(width) -> HSUIWindow
Parameters
| Name | Type | Description |
|---|---|---|
| width | number | Width in points |
Returns
HSUIWindow
Self for chaining
cornerRadius(radius) -> HSUIWindow
Round the corners of a shape
Declaration
cornerRadius(radius) -> HSUIWindow
Parameters
| Name | Type | Description |
|---|---|---|
| radius | number | Corner radius in points |
Returns
HSUIWindow
Self for chaining
frame(dict) -> HSUIWindow
Set the frame (size) of an element
Declaration
frame(dict) -> HSUIWindow
Parameters
| Name | Type | Description |
|---|---|---|
| dict | {[key: string]: any} | Dictionary with `w` and/or `h` (can be numbers or percentage strings like "50%") |
Returns
HSUIWindow
Self for chaining
opacity(value) -> HSUIWindow
Set the opacity of an element
Declaration
opacity(value) -> HSUIWindow
Parameters
| Name | Type | Description |
|---|---|---|
| value | number | Opacity from 0.0 (transparent) to 1.0 (opaque) |
Returns
HSUIWindow
Self for chaining
font(font) -> HSUIWindow
Set the font for a text element
Declaration
font(font) -> HSUIWindow
Parameters
| Name | Type | Description |
|---|---|---|
| font | HSFont | An HSFont object (e.g., `HSFont.title()`) |
Returns
HSUIWindow
Self for chaining
foregroundColor(colorValue) -> HSUIWindow
Set the text color
Declaration
foregroundColor(colorValue) -> HSUIWindow
Parameters
| Name | Type | Description |
|---|---|---|
| colorValue | JSValue | Color as hex string or HSColor |
Returns
HSUIWindow
Self for chaining
resizable() -> HSUIWindow
Make an image resizable (allows it to scale with frame size)
Declaration
resizable() -> HSUIWindow
Returns
HSUIWindow
Self for chaining
aspectRatio(mode) -> HSUIWindow
Set the aspect ratio mode for an image
Declaration
aspectRatio(mode) -> HSUIWindow
Parameters
| Name | Type | Description |
|---|---|---|
| mode | string | "fit" (scales to fit within frame) or "fill" (scales to fill frame) |
Returns
HSUIWindow
Self for chaining
padding(value) -> HSUIWindow
Add padding around a layout container
Declaration
padding(value) -> HSUIWindow
Parameters
| Name | Type | Description |
|---|---|---|
| value | number | Padding in points |
Returns
HSUIWindow
Self for chaining
spacing(value) -> HSUIWindow
Set spacing between elements in a stack
Declaration
spacing(value) -> HSUIWindow
Parameters
| Name | Type | Description |
|---|---|---|
| value | number | Spacing in points |
Returns
HSUIWindow
Self for chaining
onClick(callback) -> HSUIWindow
Set a callback to fire when the element is clicked
Declaration
onClick(callback) -> HSUIWindow
Parameters
| Name | Type | Description |
|---|---|---|
| callback | JSValue | A JavaScript function to call on click |
Returns
HSUIWindow
Self for chaining
onHover(callback) -> HSUIWindow
Set a callback to fire when the cursor enters or leaves the element
Declaration
onHover(callback) -> HSUIWindow
Parameters
| Name | Type | Description |
|---|---|---|
| callback | JSValue | A JavaScript function called with a boolean: true when entering, false when leaving |
Returns
HSUIWindow
Self for chaining