{subtitle}
))}{entry.elements.quote as string}
{entry.elements.author as string}
{elements.description as string}
``` ### Rich Text | | | |-|-| | **Key** | `richtext` | | **Frontend value** | `string` (HTML) | | **Config** | `required` | HTML string from CKEditor. Render with `dangerouslySetInnerHTML`: ```typescript ``` {% callout title="Sanitization" type="warning" %} Rich text content is HTML generated by CKEditor in the CMS. If you need additional sanitization, use a library like `DOMPurify` before rendering. {% /callout %} ### Integer | | | |-|-| | **Key** | `integer` | | **Frontend value** | `number` | | **Config** | `required` | Whole number. Render directly. ```typescript {elements.count as number} items ``` ### Decimal | | | |-|-| | **Key** | `float` | | **Frontend value** | `number` | | **Config** | `required` | Floating-point number. ```typescript ${(elements.price as number).toFixed(2)} ``` ### Boolean | | | |-|-| | **Key** | `boolean` | | **Frontend value** | `boolean` | | **Config** | `required` | Toggle/switch value. Use for conditional rendering: ```typescript {(elements.showBanner as boolean) &&))} ``` ### Reference | | | |-|-| | **Key** | `reference` | | **Frontend value** | `object` | | **Config** | - | Used in Page Types for page-level metadata. The value shape depends on the element configuration within the Page Type definition. ### Option | | | |-|-| | **Key** | `option` | | **Frontend value** | `string` or `string[]` | | **Config** | `values` (array of options), `type` (`select`/`radio`/`checkbox`) | Single value for `select`/`radio`, array for `checkbox`: ```typescript // Select or radio — single value const color = elements.theme as string; // "dark" // Checkbox — array of values const tags = elements.categories as string[]; // ["news", "featured"] {tags.map(tag => ( {tag} ))} ``` ### List | | | |-|-| | **Key** | `list` | | **Frontend value** | `unknown[]` | | **Config** | `required` | Repeater field. An array of items: ```typescript const items = elements.features as string[];{entry.elements.quote as string}
{entry.elements.author as string}
{subtitle}
}) })}“{elements.quote as string}”