Skip to content

WidgetStyles

Defined in: src/dom/widget.ts:83

Inline style properties for a widget — the style prop’s shape. See the Styling and Layout guides.

optional align?: "left" | "right" | "center"

Defined in: src/dom/widget.ts:125

Horizontal alignment of children on the cross axis.


optional background?: string

Defined in: src/dom/widget.ts:87

Background color: hex, named, $token, or "transparent".


optional bold?: boolean

Defined in: src/dom/widget.ts:147

Bold/bright text.


optional border?: string

Defined in: src/dom/widget.ts:109

Border around all four sides: "rounded" (default), "thin", "solid", "heavy", "double", "dashed", "bar" (solid block), or "none". Use the per-side props below for a single corner-less edge.


optional borderBottom?: string

Defined in: src/dom/widget.ts:115

Bottom edge weight only (overrides border for this side).


optional borderColor?: string

Defined in: src/dom/widget.ts:119

Border color: hex, named, or $token.


optional borderLeft?: string

Defined in: src/dom/widget.ts:117

Left edge weight only (overrides border for this side) — e.g. a chat-message accent bar.


optional borderRight?: string

Defined in: src/dom/widget.ts:113

Right edge weight only (overrides border for this side).


optional borderTop?: string

Defined in: src/dom/widget.ts:111

Top edge weight only (overrides border for this side); same values as border.


optional bottom?: string | number

Defined in: src/dom/widget.ts:137

Offset from the parent’s bottom edge when positioned.


optional color?: string

Defined in: src/dom/widget.ts:85

Foreground/text color: hex, named, or $token.


optional cursor?: "default" | "move" | "pointer" | "text" | "vertical-text" | "wait" | "progress" | "help" | "crosshair" | "cell" | "grab" | "grabbing" | "alias" | "copy" | "no-drop" | "not-allowed" | "zoom-in" | "zoom-out" | "n-resize" | "e-resize" | "s-resize" | "w-resize" | "ne-resize" | "nw-resize" | "se-resize" | "sw-resize" | "ew-resize" | "ns-resize" | "nesw-resize" | "nwse-resize"

Defined in: src/dom/widget.ts:167

Mouse-pointer shape shown while the pointer is over this widget, named after the CSS cursor property ("pointer", "text", "grab", "not-allowed", "col-resize""ew-resize", …). Inherited from the nearest ancestor that sets it. Requires terminal OSC 22 support (see TerminalCapabilities.pointerShapes); ignored otherwise.


optional dim?: boolean

Defined in: src/dom/widget.ts:155

Reduced-intensity text.


optional display?: "dock" | "grid" | "flex"

Defined in: src/dom/widget.ts:141

Layout mode alias: "flex" (use flexDirection), "grid", or "dock".


optional dock?: "bottom" | "top" | "left" | "right"

Defined in: src/dom/widget.ts:123

Pin this child to an edge of a dock parent.


optional flexDirection?: "row" | "column"

Defined in: src/dom/widget.ts:143

Flex flow when display: "flex": "row" (horizontal) or "column" (vertical).


optional flexGrow?: number

Defined in: src/dom/widget.ts:145

Share of leftover space along the flow axis (equivalent to N fr).


optional height?: string | number

Defined in: src/dom/widget.ts:91

Height: cells, "%", "fr", or "auto".


optional italic?: boolean

Defined in: src/dom/widget.ts:149

Italic text.


optional layout?: "vertical" | "horizontal" | "dock" | "grid"

Defined in: src/dom/widget.ts:121

Child flow direction / mode: vertical, horizontal, dock, or grid.


optional left?: string | number

Defined in: src/dom/widget.ts:131

Offset from the parent’s left edge when positioned.


optional link?: string

Defined in: src/dom/widget.ts:159

Hyperlink target (OSC 8) where the terminal supports it.


optional margin?: number | Spacing | { bottom?: number; left?: number; right?: number; top?: number; }

Defined in: src/dom/widget.ts:101

Space outside the border: number (all sides), per-side object, or Spacing.


optional maxHeight?: number

Defined in: src/dom/widget.ts:99

Maximum height in cells.


optional maxWidth?: number

Defined in: src/dom/widget.ts:97

Maximum width in cells.


optional minHeight?: number

Defined in: src/dom/widget.ts:95

Minimum height in cells.


optional minWidth?: number

Defined in: src/dom/widget.ts:93

Minimum width in cells.


optional overflowX?: "auto" | "scroll" | "hidden" | "visible"

Defined in: src/dom/widget.ts:169

Horizontal overflow: clip ("hidden", default), "scroll"/"auto", or "visible".


optional overflowY?: "auto" | "scroll" | "hidden" | "visible"

Defined in: src/dom/widget.ts:171

Vertical overflow handling (see overflowX).


optional padding?: number | Spacing | { bottom?: number; left?: number; right?: number; top?: number; }

Defined in: src/dom/widget.ts:103

Space inside the border, before content.


optional position?: "relative" | "absolute"

Defined in: src/dom/widget.ts:129

"absolute" takes the widget out of flow, positioned by left/top/right/bottom.


optional reverse?: boolean

Defined in: src/dom/widget.ts:153

Swap foreground and background.


optional right?: string | number

Defined in: src/dom/widget.ts:135

Offset from the parent’s right edge when positioned.


optional strikethrough?: boolean

Defined in: src/dom/widget.ts:157

Struck-through text.


optional top?: string | number

Defined in: src/dom/widget.ts:133

Offset from the parent’s top edge when positioned.


optional underline?: boolean

Defined in: src/dom/widget.ts:151

Underlined text.


optional verticalAlign?: "bottom" | "top" | "middle"

Defined in: src/dom/widget.ts:127

Vertical alignment of children on the cross axis.


optional width?: string | number

Defined in: src/dom/widget.ts:89

Width: cells (10), "50%", "3fr", or "auto".


optional zIndex?: number

Defined in: src/dom/widget.ts:139

Stacking order among siblings (higher paints on top).