Text component
Contenttype: "text"Rich text with full typography control — fonts, weights, alignment, auto-resize, inline pattern highlighting and shadows. The workhorse for titles, captions and any dynamic copy.
Design JSON
{
"title": "Text sample",
"description": "A centered dynamic headline",
"dimensions": {
"width": 800,
"height": 420
},
"background": {
"color": "#ffffff"
},
"components": [
{
"id": "sample-text",
"key": "title",
"type": "text",
"position": {
"x": 100,
"y": 150
},
"rotation": 0,
"size": {
"width": 600,
"height": 120
},
"dynamic": true,
"properties": {
"text": "Hello world",
"fontSize": 56,
"fontFamily": "Inter",
"fontWeight": 700,
"color": "#111827",
"textAlignment": "center",
"verticalAlignment": "center",
"lineHeight": 1.2,
"opacity": 1
}
}
]
}Like what you built? The full editor — canvas, templates and the render API — is free to start.
Open the editorText examples
Real renders of the text — each one is the same component with different property values, and the API payload below each preview reproduces it exactly.
Blog OG title
An Open Graph headline pulling the article title per render.
API overrides for this example
{
"title.text": "How we cut render times by 80%",
"title.fontSize": 48,
"title.color": "#111827"
}Certificate recipient name
The learner name stamped onto a course certificate via API.
API overrides for this example
{
"title.text": "Priya Sharma",
"title.fontFamily": "Playfair Display",
"title.fontWeight": 600,
"title.fontSize": 60,
"title.color": "#92400E"
}All text styles
Every style rendered live — each is just a different set of property values on the same component, and each has its own page with a dedicated preview, use cases and API example.
Use cases
What developers typically build with the text component.
- Open Graph images that pull each article title and author per render
- Certificates with the recipient name, course and date filled in via API
- Personalized social and email header images addressing every user by name
- Localized marketing banners — one design, copy swapped per language
Use it dynamically via the API
Override the copy per render with '<key>.text' (or just '<key>' for the primary text value), plus '<key>.color' and background/stroke colors for styling.
Full API request with the sample design's current values — the playground above sends only the properties you change
curl --location 'https://render.imejis.io/v1/{{YOUR_DESIGN_ID}}' \
--header 'dma-api-key: {{YOUR_API_KEY}}' \
--header 'Content-Type: application/json' \
--data '{
"title.text": "Hello world",
"title.fontSize": 56,
"title.fontFamily": "Inter",
"title.fontWeight": 700,
"title.color": "#111827",
"title.textAlignment": "center",
"title.verticalAlignment": "center",
"title.lineHeight": 1.2,
"title.opacity": 1
}'Only send the properties you want to change — everything else keeps its design value. See the API documentation for all languages.
Property reference
Every property the text component accepts — in the editor, in design JSON, and as API overrides.
| Property | Type | Edits as | Default | Description |
|---|---|---|---|---|
| text | string | text | — | The text content to display. |
| fontSize | number | 24 | 24 | Font size in pixels. |
| fontFamily | string | text | "Inter" | Font family name (Google Fonts supported). |
| fontWeight | number | string | text | 400 | Font weight (100-900 or a keyword like "bold"). |
| color | color | #000000 | "#000000" | Text color. |
| textAlignment | 'left' | 'center' | 'right' | 'justify' | leftcenterrightjustify | "left" | Horizontal text alignment. |
| verticalAlignment | 'top' | 'center' | 'bottom' | topcenterbottom | "top" | Vertical alignment of text within its box. |
| textDirection | 'ltr' | 'rtl' | ltrrtl | "ltr" | Text direction (left-to-right or right-to-left). |
| lineHeight | number | string | text | "normal" | Line height (unitless multiplier or CSS value). |
| letterSpacing | number | string | text | "normal" | Spacing between characters (pixels or CSS value). |
| backgroundColor | color | transparent | "transparent" | Background color of the whole text container. |
| textBackgroundColor | color | transparent | "transparent" | Background color behind the text glyphs only (highlight effect). |
| padding | string | text | — | CSS padding inside the text container, e.g. "8px 12px". |
| autoResize | boolean | true / false | — | Automatically shrink/grow the font size to fit the box. |
| minFontSize | number | 8 | 8 | Lower font-size bound when autoResize is on. |
| maxFontSize | number | 200 | 200 | Upper font-size bound when autoResize is on. |
| strokeWidth | number | 0 | 0 | Outline stroke width around the glyphs in pixels. |
| strokeColor | color | transparent | "transparent" | Outline stroke color around the glyphs. |
| textDecoration | 'none' | 'underline' | 'overline' | 'line-through' | 'underline overline' | noneunderlineoverlineline-throughunderline overline | "none" | Text decoration line(s). |
| textTransform | 'none' | 'uppercase' | 'lowercase' | 'capitalize' | noneuppercaselowercasecapitalize | "none" | Case transformation applied to the text. |
| constraint | 'tl' | 'tr' | 'tc' | 'cc' | 'cl' | 'cr' | 'bl' | 'br' | 'bc' | tltrtcccclcrblbrbc | — | Legacy per-component anchor point (prefer the component-level anchor field). |
| autoWidth | boolean | true / false | — | Let the box grow horizontally to fit the text. |
| autoHeight | boolean | true / false | — | Let the box grow vertically to fit the text. |
| textPatterns | object[] | text | — | Delimiter-based inline styling rules ({ startDelimiter, endDelimiter, textColor, backgroundColor, paddingX, paddingY, border* }). |
| textShadow | string | text | — | CSS text-shadow, e.g. "2px 2px 4px rgba(0,0,0,0.5)". |
| opacity | number | 1 | 1 | Overall component opacity from 0 (transparent) to 1 (opaque). |
| borderWidth | number | 0 | 0 | Border thickness in pixels around the component. |
| borderColor | color | transparent | "transparent" | Border color (any CSS color). |
| borderStyle | 'solid' | 'dashed' | 'dotted' | 'double' | 'none' | soliddasheddotteddoublenone | "solid" | Border line style. |
| borderRadius | number | 0 | 0 | Corner radius in pixels. |
| boxShadow | string | text | — | CSS box-shadow applied to the component, e.g. "0 4px 6px rgba(0,0,0,0.1)". |