---
title: Text and design — Ideogram 4.5 | Runware Docs
url: https://runware.ai/docs/models/ideogram-4-5/guides/text-and-design
description: "How to use Ideogram 4.5 for designs where the words have to be right: quoting exact copy, type hierarchy, placement, dense layouts, non-Latin scripts and brand palettes."
---
### [Introduction](https://runware.ai/docs/models/ideogram-4-5/guides/text-and-design#introduction)

Most image models treat lettering as texture. They know what text looks like, not how a word is spelled, so a poster comes back with **a headline that almost reads**. Ideogram has built its models around the opposite: text that is spelled right and placed where you asked.

Ideogram 4.5 carries that into everything a small team ships, from event posters and product labels to listing flyers and app screens. The poster below is one prompt, with no text added afterward.

![A race poster with the headline RIVERSIDE 10K, the date Sunday, May 18 · 8:00 AM, an orange and navy duotone photo of runners crossing a bridge, and a navy footer reading Register at riverside10k.com](https://runware.ai/docs/assets/hero.C7rEy1Ra_Z1tLxp8.jpg)

> **Prompt**: A bold printed event poster for a city running race. A dynamic photograph of a group of runners crossing a steel bridge at sunrise fills the lower two thirds, printed as a warm duotone of orange and deep navy. Across the top, the headline "RIVERSIDE 10K" in huge heavy condensed sans-serif capitals in off-white, and directly below it "Sunday, May 18 · 8:00 AM" in a smaller medium weight. At the bottom, a solid navy strip with "Register at riverside10k.com" in white. Clean grid, sharp print quality.

This guide covers quoting exact copy, building a type hierarchy, placing text on the layout, dense layouts, non-Latin scripts and holding a design to a brand palette.

### [Quoting exact copy](https://runware.ai/docs/models/ideogram-4-5/guides/text-and-design#quoting-exact-copy)

Put every word that must appear **inside double quotes**. The quotes mark the difference between copy to render and a description of the image, and they are how the model knows where one line ends and the next begins.

![A lilac app onboarding screen with an illustration of a woman stretching, the headline Track every workout, the line Plans, streaks and progress in one place, page dots and a purple Get started button](https://runware.ai/docs/assets/quoted.BWbla73J_2pKccu.jpg)

> **Prompt**: A clean mobile app onboarding screen for a fitness tracking app, shown flat and full-frame with no phone frame: a soft lilac background, a friendly flat illustration of a woman stretching in the upper half, the headline "Track every workout" in a bold rounded sans-serif below it, the line "Plans, streaks and progress in one place" in a smaller gray weight, three small page dots, and a wide dark purple button reading "Get started" at the bottom.

Every quoted string gets **its own place and its own style** in the prompt: the headline in a bold rounded sans-serif, the supporting line in a smaller gray weight, the button label on the button. Text that is described but not quoted, such as the page dots, is drawn as a design element rather than spelled out.

Magic Prompt rewrites the prompt before generation, so it is fair to ask what happens to the quoted strings. The two tiles below share a prompt and a seed.

![A yellow promo tile with FREE DELIVERY in a tall condensed stack on the left, on your first 3 orders and the code line below, and a paper bag of vegetables on the right, generated with Magic Prompt on](https://runware.ai/docs/assets/copy-magic-on.DLO9QYBI_3a40w.jpg)

*magicPrompt: on*

> **Prompt**: A square promo tile for a grocery delivery app on a bright yellow background: a brown paper bag overflowing with fresh vegetables on the right, and on the left the text "FREE DELIVERY" in huge bold black capitals, "on your first 3 orders" below it in a smaller bold weight, and "Code: FRESH3 · Ends Sunday" in small black type at the bottom. Flat, bold, high contrast.

![The same promo tile generated with Magic Prompt off, with FREE DELIVERY, on your first 3 orders and Code: FRESH3 · Ends Sunday](https://runware.ai/docs/assets/copy-magic-off.DJujmdEd_lCpPE.jpg)

*magicPrompt: off*

> **Prompt**: A square promo tile for a grocery delivery app on a bright yellow background: a brown paper bag overflowing with fresh vegetables on the right, and on the left the text "FREE DELIVERY" in huge bold black capitals, "on your first 3 orders" below it in a smaller bold weight, and "Code: FRESH3 · Ends Sunday" in small black type at the bottom. Flat, bold, high contrast.

Both tiles carry the three lines exactly as quoted. The rewrite **left the copy alone** and changed the design around it: with `on`, FREE DELIVERY became a tall condensed stack that fills the left half, and the code line moved under a rule. So the choice between `on` and `off` is about how much design latitude you hand over, not about the words.

### [Building a type hierarchy](https://runware.ai/docs/models/ideogram-4-5/guides/text-and-design#building-a-type-hierarchy)

A layout reads in order because its lines differ in size, weight and style. Describe that **for each line**, in the order the eye should read them.

![A glass bottle of magenta juice with a cream label reading ROOT & RIND at the top, Beet · Ginger and Lemon on two lines in a large serif, and COLD-PRESSED · 12 FL OZ in tiny capitals, beside a halved beet and ginger](https://runware.ai/docs/assets/label.j4Mer-4C_m0Las.jpg)

> **Prompt**: Product photograph of a glass bottle of cold-pressed juice with a deep magenta liquid, standing on a white tile counter with a halved beet and a knob of fresh ginger beside it. The bottle carries a cream paper label with a clear type hierarchy: the brand name "ROOT & RIND" in a small elegant serif at the top, the flavor "Beet · Ginger · Lemon" in a large bold serif in the middle, and "COLD-PRESSED · 12 FL OZ" in tiny letter-spaced sans-serif capitals at the bottom. Soft daylight, crisp label detail.

The label has three levels, and the prompt gives each one **a size, a style and a position**. The flavor is the largest line because a shopper reads it first, the brand sits small above it, and the legal line is tiny and letter-spaced at the bottom. The phrase "a clear type hierarchy" tells the model the sizes are meant to contrast, not just differ.

Read the result closely, though. The flavor line was too long for the label at that size, so it wrapped onto two lines and **lost its second separator** on the way: "Beet · Ginger" above "Lemon". A long line in a narrow space is where a small change like that happens.

Describe type **by its traits**: serif or sans-serif, weight, width, capitals or lowercase, letter spacing.

### [Placing text on the layout](https://runware.ai/docs/models/ideogram-4-5/guides/text-and-design#placing-text-on-the-layout)

For a layout with several blocks of copy, **anchor each block to a region** of the page, such as the top 60% or a footer strip.

![A real estate flyer with a photo of a white two-story house under a red JUST LISTED ribbon, the price $685,000 and the address below it, 4 bd, 3 ba and 2,350 sq ft on the right, and a navy footer with the agent's name and phone number](https://runware.ai/docs/assets/flyer.GIPTkU0E_1JI8Ck.jpg)

> **Prompt**: A real estate listing flyer in a portrait layout. The top 60% is a photograph of a modern white two-story house with a gray roof, a green lawn and a clear blue sky. A diagonal red ribbon across the top left corner of the photo reads "JUST LISTED" in white bold capitals. Below the photo, on a white background: the price "$685,000" in large bold navy numerals on the left, with the address "2418 Maple Grove Lane, Austin, TX" under it in a smaller gray weight, and on the right three stacked lines "4 bd", "3 ba" and "2,350 sq ft", each with a small line icon. At the bottom, a thin navy footer with "Dana Reyes · Harbor Lane Realty · (512) 555-0147" in white.

The prompt reads like **a layout spec**: the photo takes the top 60%, the ribbon sits in the photo's top left corner, the price and address go on the left below it, the room counts stack on the right and the agent details run along a footer. Each piece of copy is attached to a place, so none of it is left for the model to position.

Numbers and punctuation come through as written, which matters on a flyer where the price and the phone number are **the two lines that cannot be wrong**.

### [Dense layouts](https://runware.ai/docs/models/ideogram-4-5/guides/text-and-design#dense-layouts)

Pricing tables, feature lists and UI screens pack a lot of short strings into one frame. Ideogram 4.5 handles them when **the prompt is organized the way the layout is**: one block per card, in reading order.

![A pricing section under the heading Choose your plan, with three cards, Starter at $0 / month, Pro at $24 / month with a violet border and a Most popular badge, and Team at $79 / month, each with three features and a button](https://runware.ai/docs/assets/pricing.Cg-nUrhu_agrgQ.jpg)

> **Prompt**: A clean SaaS pricing section graphic on a white background with three cards side by side. Card one: the plan name "Starter", the price "$0 / month", and a list of three features: "1 project", "Basic analytics", "Email support". Card two, highlighted with a violet border and a small violet badge reading "Most popular": "Pro", "$24 / month", then "Unlimited projects", "Advanced analytics", "Priority support". Card three: "Team", "$79 / month", then "Everything in Pro", "Shared workspaces", "SSO and audit log". Each card ends with a button, labeled "Start free", "Start trial" and "Contact sales". Flat UI design, crisp sans-serif type, generous spacing, subtle gray card borders.

The prompt walks through the cards **left to right and top to bottom**, the same order they appear in. Each card gets its name, its price, its features and its button, and the highlight on the middle card is described once, where it applies.

Every string came through as written. The model also added **a heading of its own**, "Choose your plan", with a subline under it, because a pricing section usually has one. When the frame must hold only your copy, say so in the prompt.

**Keep each string short.** Plan names, prices and short feature lines render reliably, and a paragraph of body copy is better set in your own layout on top of the image.

### [Non-Latin scripts](https://runware.ai/docs/models/ideogram-4-5/guides/text-and-design#non-latin-scripts)

Quoted copy can be in any language and any script. **Paste the text in its own script**, and describe its direction and style the same way you would for English.

![A pale green poster with an iced matcha latte, a yellow NEW burst, a vertical Japanese headline down the right side and a red price tag at the bottom left](https://runware.ai/docs/assets/script-japanese.BpcAE9vH_Z221dTr.jpg)

*Japanese, vertical*

> **Prompt**: A 4:5 in-store promotional poster for a seasonal convenience store drink: a tall clear cup of iced matcha latte topped with whipped cream on a soft pale green background with a few falling cherry blossom petals. A vertical Japanese headline "春の抹茶ラテ" in bold brush-style lettering runs down the right side, and a red rounded price tag at the bottom left reads "期間限定 ¥380" in white. Bright, clean retail design.

![A terracotta sale banner with a model in a sand-colored abaya on the left and an Arabic headline, discount line and button on the right](https://runware.ai/docs/assets/script-arabic.C-bU3aUG_ZVdkIy.jpg)

*Arabic, right to left*

> **Prompt**: A 4:5 social media sale banner for a fashion retailer with Arabic text in a right-to-left layout: a model in a flowing sand-colored abaya stands on the left against a warm terracotta background. On the right, the headline "تخفيضات الصيف" in large bold Arabic lettering in cream, below it "خصم حتى ٥٠٪" in a smaller weight, and a white rounded button reading "تسوق الآن" in terracotta. Elegant, modern, high contrast.

The Japanese headline **runs vertically** because the prompt said so, and the Arabic copy sits on the right in a right-to-left layout. Direction is part of the design brief, and the model follows it when you write it down.

Have a native speaker check the result before it ships. The Arabic discount line above **shows a different number** from the ٥٠ (50) in the prompt, and nothing about it looks wrong to someone who does not read the script. The Japanese poster also gained a NEW burst that the prompt never mentioned.

### [Holding a brand palette](https://runware.ai/docs/models/ideogram-4-5/guides/text-and-design#holding-a-brand-palette)

List the brand colors **as hex codes in the prompt**, and say the design is limited to them. The two covers below share a prompt and a seed, and only the palette line changes.

![A podcast cover reading SMALL SHOP, BIG IDEAS in navy, marigold, cream and vermilion, with a flat illustration of a shop awning and a laptop](https://runware.ai/docs/assets/palette-warm.DWDW3sd-_Z2n2sYU.jpg)

*Navy, marigold, cream, vermilion*

> **Prompt**: Square podcast cover art for a show about small business: the title "SMALL SHOP, BIG IDEAS" in a heavy rounded sans-serif stacked on three lines in the upper half, a flat illustration of a shop awning above a laptop in the lower half, and the line "A podcast for independent retailers" in small type along the bottom. Flat vector illustration, strictly limited to this color palette: #1F3A5F navy, #F2A541 marigold, #F7F1E3 cream, #E4572E vermilion.

Palette: `#1F3A5F`, `#F2A541`, `#F7F1E3`, `#E4572E`

![The same podcast cover in deep green, sage, off-white and brass, with the title on two lines](https://runware.ai/docs/assets/palette-cool.gsyZdmjr_1XHuyP.jpg)

*Deep green, sage, off-white, brass*

> **Prompt**: Square podcast cover art for a show about small business: the title "SMALL SHOP, BIG IDEAS" in a heavy rounded sans-serif stacked on three lines in the upper half, a flat illustration of a shop awning above a laptop in the lower half, and the line "A podcast for independent retailers" in small type along the bottom. Flat vector illustration, strictly limited to this color palette: #0B3D2E deep green, #7FB7A4 sage, #F4F1EA off-white, #C9A227 brass.

Palette: `#0B3D2E`, `#7FB7A4`, `#F4F1EA`, `#C9A227`

Pair each hex code with **a plain color name**, as the prompts above do. The code pins the exact value, and the name says in plain words what kind of color it is.

```text
Flat vector illustration, strictly limited to this color palette:
#0B3D2E deep green, #7FB7A4 sage, #F4F1EA off-white, #C9A227 brass.
```

Both covers stay inside their four colors, type and illustration alike. "Strictly limited to" states the limit outright, so the four colors are **the whole palette** rather than a starting point.

### [Tips](https://runware.ai/docs/models/ideogram-4-5/guides/text-and-design#tips)

1. **Quote every word that must appear.** The quotes separate the copy from the description of the image.
    
2. **Give each line a size, a style and a place.** A hierarchy is something you describe line by line, in reading order.
    
3. **Treat Magic Prompt as design latitude.** Quoted copy comes through the rewrite, and what `on` changes is the design around it.
    
4. **Write dense layouts in the order they are read.** One block per card or panel, left to right and top to bottom.
    
5. **Keep strings short and proofread them.** Headlines, labels, prices and buttons render reliably. Check separators, numbers and non-Latin scripts before anything ships.
    
6. **Pair hex codes with color names.** Add "strictly limited to" so the palette is a rule, not a suggestion.
    

To change or translate the text in a design after it is made, see [Text and localization](https://runware.ai/docs/models/ideogram-4-5-precise-edit/guides/text-localization) for Ideogram 4.5 Precise Edit.