Skip to content

General

BorderedCard

A standard card component with a border.

Properties

PropertyTypeAllowed ValuesRequiredDescription
titleStringAnyfalseThe title of the card, placed in the card header. Optional.
lozengeLozengeDataAnyfalseA lozenge that will display next to the title in the card header. Optional.
childrenArrayAnytrueThe children components to place in the card body.
typeString'BorderedCard'trueThe type label of the component.

Example

json
{
  "type": "BorderedCard",
  "title": "My Card Title",
  "children": [
    "...components"
  ]
}

Screenshot

BorderedCard

FieldValue

A field value is a key-value pair that can be displayed in a card.

Properties

PropertyTypeAllowed ValuesRequiredDescription
keyStringAnytrueThe key of the field value.
valueStringAnyfalseThe value of the field value.
appearanceString'neutral', 'danger', 'information', 'discovery', 'success', 'warning'falseThe appearance of the field value. Will display "neutral" if not set.
typeString'FieldValue'trueThe type label of the component.

Example

json
{
  "type": "FieldValue",
  "key": "Name",
  "value": "John Doe",
  "appearance": "success"
}

Screenshot

FieldValue

Lozenge

A coloured capsule used to indicate status or change with visual emphasis.

Properties

PropertyTypeAllowed ValuesRequiredDescription
contentStringAnytrueThe text content of the lozenge.
appearanceString'neutral', 'danger', 'information', 'discovery', 'success', 'warning'falseThe appearance of the lozenge. Will display "neutral" if not set.
emphasisString'bold', 'default'falseThe emphasis of the lozenge. Will display "default" if not set.
linkStringAnyfalseThe URL to navigate to when the lozenge is clicked.
typeString'Lozenge'trueThe type label of the component.

Example

json
{
  "type": "Lozenge",
  "content": "A success lozenge",
  "appearance": "success",
  "emphasis": "bold",
  "link": "https://product-forge.dev"
}

Screenshot

Lozenge

StackedInformationGroup

A card that contains a title and a list of field values. Similar to what is shown on the right-side of a Jira issue.

Properties

PropertyTypeAllowed ValuesRequiredDescription
titleStringAnytrueThe title of the group, displayed in the card header.
childrenArrayFieldValuetrueThe field values to display.
typeString'StackedInformationGroup'trueThe type label of the component.

Example

json
{
  "type": "StackedInformationGroup",
  "title": "My Stacked Info Group",
  "children": [
    "...fieldValues"
  ]
}

Screenshot

StackedInformationGroup

FormTextField

A basic input type field used to display a piece of information that you want the user to be able to easily copy.

Properties

PropertyTypeAllowed ValuesRequiredDescription
labelStringAnytrueThe label of the input field.
valueStringAnytrueThe value placed inside the input field.
helperStringAnytrueHelper text to display for the field.
readonlyBooleanAnytrueControls if the input field is readonly.
typeString'FormTextField'trueThe type label of the component.

Example

json
{
  "type": "FormTextField",
  "label": "Update UI URL",
  "value": "https://example.com",
  "helper": "Click to copy content to clipboard.",
  "readonly": true
}

Screenshot

FormTextField

Typography

HeadingLarge

A title component meant for the top of a page.

Properties

PropertyTypeAllowed ValuesRequiredDescription
contentStringAnytrueThe title of the page.
typeString'HeadingLarge'trueThe type label of the component.

Example

json
{
  "type": "HeadingLarge",
  "content": "My Page Title"
}

Screenshot

HeadingLarge

HeadingMedium

A title component meant for the top of a page.

Properties

PropertyTypeAllowed ValuesRequiredDescription
contentStringAnytrueThe title of the page.
typeString'HeadingMedium'trueThe type label of the component.

Example

json
{
  "type": "HeadingMedium",
  "content": "My Page Title"
}

Screenshot

HeadingMedium

HeadingSmall

A title component meant for the top of a page.

Properties

PropertyTypeAllowed ValuesRequiredDescription
contentStringAnytrueThe title of the page.
typeString'HeadingSmall'trueThe type label of the component.

Example

json
{
  "type": "HeadingSmall",
  "content": "My Page Title"
}

Screenshot

HeadingSmall

HeadingXSmall

A title component meant for the top of a page.

Properties

PropertyTypeAllowed ValuesRequiredDescription
contentStringAnytrueThe title of the page.
typeString'HeadingXSmall'trueThe type label of the component.

Example

json
{
  "type": "HeadingXSmall",
  "content": "My Page Title"
}

Screenshot

HeadingXSmall

HeadingXXSmall

The header text for a UI section.

Properties

PropertyTypeAllowed ValuesRequiredDescription
contentStringAnytrueThe title of the section.
typeString'HeadingXXSmall'trueThe type label of the component.

Example

json
{
  "type": "HeadingXXSmall",
  "content": "Section Title"
}

Screenshot

HeadingXXSmall

ParagraphMedium

A paragraph of text in medium size.

Properties

PropertyTypeAllowed ValuesRequiredDescription
contentStringAnytrueThe text content of the paragraph.
typeString'ParagraphMedium'trueThe type label of the component.

Example

json
{
  "type": "ParagraphMedium",
  "content": "This is a paragraph of medium size."
}

Screenshot

ParagraphMedium

ParagraphSmall

A paragraph of text in small size.

Properties

PropertyTypeAllowed ValuesRequiredDescription
contentStringAnytrueThe text content of the paragraph.
typeString'ParagraphSmall'trueThe type label of the component.

Example

json
{
  "type": "ParagraphSmall",
  "content": "This is a paragraph of small size."
}

Screenshot

ParagraphSmall

HyperlinkMedium

A simple link to another URL.

Properties

PropertyTypeAllowed ValuesRequiredDescription
contentStringAnytrueThe text content of the paragraph.
linkStringAnytrueThe URL to navigate to.
openNewTabBooleanAnytrueWhether to open the URL in a new tab.
typeString'HyperlinkMedium'trueThe type label of the component.

Example

json
{
  "type": "HyperlinkMedium",
  "content": "This is a hyperlink.",
  "link": "https://product-forge.dev",
  "openNewTab": true
}

Screenshot

HyperlinkMedium

Layouts

EqualThirdsLayout

A layout with three equal-width columns of children.

Properties

PropertyTypeAllowed ValuesRequiredDescription
childrenAArrayAnytrueThe first list of children components.
childrenBArrayAnytrueThe second list of children components.
childrenCArrayAnytrueThe third list of children components.
typeString'EqualThirdsLayout'trueThe type label of the component.

Example

json
{
  "type": "EqualThirdsLayout",
  "childrenA": [
    "...components"
  ],
  "childrenB": [
    "...components"
  ],
  "childrenC": [
    "...components"
  ]
}

Screenshot

EqualThirdsLayout

FullWidthLayout

A layout with a single full-width column of children.

Properties

PropertyTypeAllowed ValuesRequiredDescription
childrenArrayAnytrueThe list of children components.
typeString'FullWidthLayout'trueThe type label of the component.

Example

json
{
  "type": "FullWidthLayout",
  "children": [
    "...components"
  ]
}

Screenshot

FullWidthLayout

OnePlusTwoLayout

A layout with two columns of children in a 1:2 width ratio.

Properties

PropertyTypeAllowed ValuesRequiredDescription
childrenAArrayAnytrueThe first list of children components.
childrenBArrayAnytrueThe second list of children components.
typeString'OnePlusTwoLayout'trueThe type label of the component.

Example

json
{
  "type": "OnePlusTwoLayout",
  "childrenA": [
    "...components"
  ],
  "childrenB": [
    "...components"
  ]
}

Screenshot

OnePlusTwoLayout

TwoPlusOneLayout

A layout with two columns of children in a 2:1 width ratio.

Properties

PropertyTypeAllowed ValuesRequiredDescription
childrenAArrayAnytrueThe first list of children components.
childrenBArrayAnytrueThe second list of children components.
typeString'TwoPlusOneLayout'trueThe type label of the component.

Example

json
{
  "type": "TwoPlusOneLayout",
  "childrenA": [
    "...components"
  ],
  "childrenB": [
    "...components"
  ]
}

Screenshot

TwoPlusOneLayout

Sections

FullPageSection

A full page section with a title and children.

Properties

PropertyTypeAllowed ValuesRequiredDescription
titleStringAnytrueThe title of the section.
childrenArrayAnytrueThe children layout components to place in the section body.
typeString'FullPageSection'trueThe type label of the component.

Example

json
{
  "type": "FullPageSection",
  "title": "Section Title",
  "children": [
    "...layoutComponents"
  ]
}

Views

TabPanel

Tab panels are the top-level containers for modules that are displayed in tabs.

Properties

PropertyTypeAllowed ValuesRequiredDescription
tabTitleStringAnytrueThe text to put into the tab button.
childrenArrayAnytrueThe children components to place in the tab body. Must have Layout or Section components at the top level.
typeString'TabPanel'trueThe type label of the component.

Example

json
{
  "type": "TabPanel",
  "tabTitle": "Tab Title",
  "children": [
    "...layoutAndSectionComponents"
  ]
}

Table

DynamicTable

A flexible table component that can be used to display data in a table structure.

Properties

PropertyTypeAllowed ValuesRequiredDescription
columnHeadersArrayTableHeadertrueThe headers of the table
tableRowsStringAnytrueThe data to be displayed in the table. Must be a JSON list of identically shaped objects. Specify paths to the values from each object you want to display in the columnHeaders.
typeString'DynamicTable'trueThe type label of the component.

Example

json
{
  "type": "DynamicTable",
  "columnHeaders": [
    "...columnHeaders"
  ],
  "tableRows": [
    "...tableRows"
  ]
}

Screenshot

DynamicTable

TableHeader

Used to tell App Maker what content to show in each column of a Dynamic Table.

Properties

PropertyTypeAllowed ValuesRequiredDescription
titleStringAnytrueThe title of the column.
valuePathStringAnytrueThe path to the field in the row that should be displayed in this column. e.g "row.my-value".
linkPathStringAnyfalseThe path to the field in the row that should be used as the link this column points to. e.g "row.my-link".
fieldTypeString'text', 'lozenge'falseThe type of field the column represents.
appearanceMapObjectAnyfalseSpecifies the appearance of the field based on its value, only applicable for fieldType lozenge. e.g { success: ["Good", "Great"] } means that if the field contains the value "Good" or "Great", the lozenge will have the success appearance applied.
typeString'TableHeader'trueThe type label of the component.

Example

json
{
  "type": "TableHeader",
  "title": "My Value",
  "valuePath": "row.my-value",
  "linkPath": "row.my-link",
  "fieldType": "lozenge",
  "appearanceMap": {
    "success": [
      "Good",
      "Great"
    ]
  }
}