Skip to content

Text ​

Typography and time display.

text ​

Tier: core

Text label with optional semantic typography.

text (calculator.small)

From showcase preset — case calculator.small.

Properties ​

PropertyTypeDefaultDescription
alignmentTextAlignment—Text alignment within the line.
backgroundBackgroundValue—Solid, adaptive, or gradient background.
borderBorderConfig—Border color and width.
clipShapeClipShape—Clip content to a shape (e.g. circle avatar from square image).
colorColorValue—Text color.
contentstring—String to display.
cornerRadiusnumber—Corner radius in points.
flexnumber—Layout weight for flexible sizing inside stacks (like Android layout_weight).
fontDesignFontDesign—Font design (default, monospaced, rounded, serif).
fontSizenumber—Font size in points (overridden by textStyle when set).
fontWeightFontWeight—Font weight.
frameFrameConfig—Explicit width / height / max constraints.
lineLimitinteger—Maximum number of lines before truncation.
opacitynumber—Opacity from 0 (invisible) to 1 (opaque).
paddingPaddingValue—Inset padding (number or per-edge object).
shadowShadowConfig—Drop shadow.
textStyleTextStyle—Semantic text style (uses Dynamic Type on Apple, sp on Android). Overrides fontSize when set.

Examples ​

Minimal ​

json
{
  "type": "text",
  "content": "Hello",
  "fontSize": 16,
  "fontWeight": "semibold",
  "color": {
    "light": "#0f172a",
    "dark": "#f8fafc"
  },
  "alignment": "leading",
  "lineLimit": 2
}

From showcase calculator.small ​

json
{
  "type": "text",
  "content": " ",
  "fontSize": 10,
  "color": "#f09a36",
  "alignment": "leading",
  "lineLimit": 1
}

From showcase chart-mix.medium ​

json
{
  "type": "text",
  "content": "Bar",
  "fontSize": 11,
  "color": "#94a3b8"
}

Inside a WidgetConfig ​

json
{
  "small": {
    "type": "text",
    "content": "Hello",
    "fontSize": 16,
    "fontWeight": "semibold",
    "color": {
      "light": "#0f172a",
      "dark": "#f8fafc"
    },
    "alignment": "leading",
    "lineLimit": 2
  }
}

label ​

Tier: extended

Convenience element combining an SF Symbol / icon with text.

label (upcoming-payments-empty.large)

From showcase preset — case upcoming-payments-empty.large.

Properties ​

PropertyTypeDefaultDescription
backgroundBackgroundValue—Solid, adaptive, or gradient background.
borderBorderConfig—Border color and width.
clipShapeClipShape—Clip content to a shape (e.g. circle avatar from square image).
colorColorValue—Text color.
cornerRadiusnumber—Corner radius in points.
flexnumber—Layout weight for flexible sizing inside stacks (like Android layout_weight).
fontSizenumber—Text font size.
fontWeightFontWeight—Text font weight.
frameFrameConfig—Explicit width / height / max constraints.
iconColorColorValue—Icon tint color.
opacitynumber—Opacity from 0 (invisible) to 1 (opaque).
paddingPaddingValue—Inset padding (number or per-edge object).
shadowShadowConfig—Drop shadow.
spacingnumber—Space between icon and text.
systemNamestring—SF Symbol or platform icon name.
textstring—Label text.

Examples ​

Minimal ​

json
{
  "type": "label",
  "text": "Inbox",
  "systemName": "envelope.fill",
  "iconColor": "#38bdf8",
  "fontSize": 15,
  "fontWeight": "medium",
  "spacing": 6
}

From showcase upcoming-payments-empty.large ​

json
{
  "type": "label",
  "text": "Upcoming",
  "systemName": "calendar.badge.clock",
  "fontSize": 11,
  "fontWeight": "bold",
  "color": "label",
  "iconColor": "#3878FA",
  "spacing": 4
}

Inside a WidgetConfig ​

json
{
  "small": {
    "type": "label",
    "text": "Inbox",
    "systemName": "envelope.fill",
    "iconColor": "#38bdf8",
    "fontSize": 15,
    "fontWeight": "medium",
    "spacing": 6
  }
}

date ​

Tier: extended

Formatted date / relative time display.

date (date-timer.medium)

From showcase preset — case date-timer.medium.

Properties ​

PropertyTypeDefaultDescription
backgroundBackgroundValue—Solid, adaptive, or gradient background.
borderBorderConfig—Border color and width.
clipShapeClipShape—Clip content to a shape (e.g. circle avatar from square image).
colorColorValue—Text color.
cornerRadiusnumber—Corner radius in points.
datestring—ISO 8601 date string.
dateStyleDateStyle—Display style (time, date, relative, offset, timer).
flexnumber—Layout weight for flexible sizing inside stacks (like Android layout_weight).
fontSizenumber—Font size in points.
frameFrameConfig—Explicit width / height / max constraints.
opacitynumber—Opacity from 0 (invisible) to 1 (opaque).
paddingPaddingValue—Inset padding (number or per-edge object).
shadowShadowConfig—Drop shadow.

Examples ​

Minimal ​

json
{
  "type": "date",
  "date": "2026-03-01T10:00:00Z",
  "dateStyle": "relative",
  "fontSize": 14,
  "color": "secondaryLabel"
}

From showcase date-timer.medium ​

json
{
  "type": "date",
  "date": "2099-06-15T14:30:00Z",
  "dateStyle": "time",
  "fontSize": 14,
  "color": "#e2e8f0"
}

Inside a WidgetConfig ​

json
{
  "small": {
    "type": "date",
    "date": "2026-03-01T10:00:00Z",
    "dateStyle": "relative",
    "fontSize": 14,
    "color": "secondaryLabel"
  }
}

timer ​

Tier: extended

Live countdown/countup timer that updates without timeline refresh.

timer (date-timer.medium)

From showcase preset — case date-timer.medium.

Properties ​

PropertyTypeDefaultDescription
backgroundBackgroundValue—Solid, adaptive, or gradient background.
borderBorderConfig—Border color and width.
clipShapeClipShape—Clip content to a shape (e.g. circle avatar from square image).
colorColorValue—Text color.
cornerRadiusnumber—Corner radius in points.
countingTimerCounting—Count direction. Default: down.
flexnumber—Layout weight for flexible sizing inside stacks (like Android layout_weight).
fontSizenumber—Font size in points.
fontWeightFontWeight—Font weight.
frameFrameConfig—Explicit width / height / max constraints.
opacitynumber—Opacity from 0 (invisible) to 1 (opaque).
paddingPaddingValue—Inset padding (number or per-edge object).
shadowShadowConfig—Drop shadow.
targetDatestring—ISO 8601 target date.

Examples ​

Minimal ​

json
{
  "type": "timer",
  "targetDate": "2026-12-31T23:59:59Z",
  "counting": "down",
  "fontSize": 22,
  "fontWeight": "bold",
  "color": "#22c55e"
}

From showcase date-timer.medium ​

json
{
  "type": "timer",
  "targetDate": "2099-01-01T00:00:00Z",
  "counting": "down",
  "fontSize": 14,
  "fontWeight": "semibold",
  "color": "#38bdf8"
}

Inside a WidgetConfig ​

json
{
  "small": {
    "type": "timer",
    "targetDate": "2026-12-31T23:59:59Z",
    "counting": "down",
    "fontSize": 22,
    "fontWeight": "bold",
    "color": "#22c55e"
  }
}

Released under the MIT License. · Contributing