How to Design for Text Expansion
Text expansion becomes a layout problem when an interface depends on its original wording occupying an exact amount of space. A short English button fits. A longer translation clips. A row of tidy tabs becomes crowded, or a card grows while its action stays pinned to an old position.
You do not need to wait for every translation to review that rigidity. You can stress-test a draft with deliberately longer text, then repeat the review with real translations. The first step finds structural weaknesses; the second checks whether the interface works for actual language and meaning.
Why one expansion percentage is not enough
There is no single percentage that makes an interface ready for every language. Short labels, long sentences, compound words, and different scripts create different kinds of pressure. Counting characters also does not tell you exactly how much rendered space the text will need.
The W3C explanation of text size in translation describes why compact source strings can expand substantially and why character width, word structure, and line height matter. Its examples are useful warnings, not a calculator for your particular interface. Review the actual content and font combination before treating a component as ready.
Imagine a fictional event dashboard with a button labeled “View details.” A longer label might require a wider button or a second line. Meanwhile, the event title could grow from two lines to three. Those are different changes with different consequences. Reserving the same percentage of extra space in every element does not decide how either should behave.
First identify what the words must communicate. If a label distinguishes viewing a booking from changing it, that distinction must survive. If a warning explains that an action cannot be reversed, its meaning cannot be shortened away to preserve the original card height. The layout is there to carry the message.
Make a small inventory of vulnerable components
Begin with places where space is tightly controlled. Navigation, tabs, buttons, badges, form labels, table headers, and small cards are usually more informative test cases than a generous paragraph column. Find examples where text sits beside an icon, a price, a status, or another action.
For each component, record four behaviors:
- Wrapping: can the label use another line?
- Growth: does the container get taller or wider with it?
- Neighbors: do the icon and adjacent action move safely?
- Limits: if lines are capped, where can someone read the full text?
An unanswered question is a design decision still to make; the short English label may simply have hidden it.
Next, note the cost of failure. A decorative tag that becomes taller is different from a payment amount that is covered by a label. Prioritize components that carry decisions, requirements, or actions. This prevents a localization review from spending its first hour polishing harmless variations while a key control remains unreadable.
What Shopify learned before the translations arrived
In Shopify’s account of internationalizing its product, the team describes a problem that is easy to miss in an English preview: extracted strings looked identical to hardcoded strings. They introduced pseudotranslation that substituted recognizable characters and doubled vowels. The altered text helped them see which strings passed through translation and inspect the interface with longer words.
Pseudotranslation catches a useful class of defects early: text that never enters the translation system, controls that rely on short words, and containers that cannot grow. It cannot tell you whether a French instruction is natural or whether an Arabic layout has the correct reading order.
The screenshot is worth examining for what remains recognizable. A tester can still understand the screen while seeing unusual characters. That makes it easier to complete a normal task and catch breakage along the way. Random strings filling every box would generate pressure, but would also remove the tester’s ability to judge whether the action and explanation still make sense together.
Use Shopify’s approach to separate four checks:
- Coverage: visibly marked pseudo text reveals strings that were never transformed.
- Capacity: expanded wording tests whether controls and containers can grow.
- Rendering: the intended script and fallback font expose missing glyphs or clipped line boxes.
- Language: approved translations let a fluent reviewer judge meaning and phrasing.
A practical stress set for one interface
Take a page with a heading, tabs, a status badge, two actions and one error. Preserve its values and destinations while changing only the text under review.
| Input shape | Where to use it | What the failure tells you |
|---|---|---|
| A longer phrase with spaces | Button and tab labels | Whether wrapping or stacking has been designed |
| A long compound word | Title and table header | Whether the layout depends on convenient English break points |
| Accented upper- and lowercase letters | Dense badge and multiline heading | Whether line boxes clip glyphs |
| Two names differing only at the end | Adjacent cards | Whether truncation removes identity |
| A long hint plus an error | The same form field | Whether relationships survive combined states |
Keep a defect tied to the string and state that produced it. “The French secondary action covers the primary action at 390px after validation” tells a developer where to start. “French needs more room” does not distinguish a fixed button width from an inflexible action row or a misplaced error.
After a repair, rerun the short text too. A full-width button might solve the longest label but look disconnected on a large screen. A large fixed card height can accommodate one translation while making ordinary records hard to scan. Prefer content-driven growth and defined stacking behavior; reserve fixed capacity for situations with a real constraint, such as an embedded host surface.
Before language review, give the translator the action’s destination and the surrounding sentence. “Open” can describe a status or an imperative. That ambiguity cannot be repaired by a wider button. The visual and language checks should inform each other without asking either reviewer to certify work they cannot assess.
Keep the stress test controlled
Use a longer event title, a longer location name, and a more descriptive action label. Keep dates and participant counts fixed during the first comparison so that text length is the variable you are investigating. Once the layout works, add localized date formats in a separate pass.
Use expanded English to find layout pressure, then review real translations for natural wording, meaning and script-specific rendering.
Choose a response for each component
The same longer string should not trigger the same repair everywhere. A button may grow; navigation may change layout; a card may need another line. Start with the relationship that must survive.
Buttons: grow, wrap, or stack
Buttons need a rule for longer labels. A fixed-width button may be useful for a deliberately aligned group, but it becomes fragile when that width is treated as more important than the label. Review the action in its surrounding layout before deciding whether the button should grow, wrap, or move.
For a pair of actions below a form, stacking them on a narrow screen may be clearer than squeezing them onto one row. If one action is primary, preserve its prominence after stacking. The visitor should not have to infer importance from a desktop arrangement that no longer exists.
A wrapped label is not automatically wrong. It can work when the button has enough height, balanced padding, and a clear connection to the content it acts on. However, a collection of tiny two-line buttons may become difficult to scan. If several actions need long explanations, reconsider whether every action belongs in the same compact group.
Avoid replacing meaningful labels with unexplained icons just to save width. An icon may be appropriate for a familiar action in a suitable context, but changing the presentation introduces a new recognition problem. Evaluate that tradeoff deliberately rather than treating it as a neutral way to make the translation disappear.
For a concrete size check, I measured three English labels in Albert Sans at 32px with 20px of horizontal padding on each side. “View details” needs 212px overall; “Review booking details” needs 368px; “Review your booking details” needs 440px. A 220px fixed button leaves only 180px for the label, so the first fits and the others need a layout response. These English stress labels isolate width pressure; they are not translations. The darker part of each bar is the measured text and the lighter part is padding. On a narrow page, compare the resulting width with the action group’s available space before choosing growth, wrapping or stacking.
Navigation: change before it collides
Navigation often reveals text expansion early because many labels compete for one horizontal row. A header that barely fits its source language has little capacity for longer wording. It may need to switch presentation sooner in another language or use a layout that adapts to available space.
Check the complete header, including the brand, language switch, account action, and any promotional link. Reviewing only the navigation labels can miss the actual collision. A slightly longer account label may be the element that pushes everything else into an uncomfortable squeeze.
Do not shorten labels independently just to preserve equal widths. A translator may choose different words to preserve meaning, and the resulting labels may not be visually symmetrical. It is reasonable for one navigation item to take more space if the group remains understandable and usable.
For tabs, consider whether wrapping creates ambiguity. Two rows of tabs can make it less clear which content belongs to the selected item. A different control or a deliberate scrolling treatment may be more appropriate, depending on the task. The key is to inspect the selected state and the destination content together, not merely ensure that all words are visible.
Cards: preserve identity and action
Repeated cards create pressure to keep every item exactly the same height. That can be useful for scanning, but the method matters. Cutting off meaningful text to preserve the grid may make the cards easier to align and harder to choose between.
On the event dashboard, suppose one event name uses three lines while another uses one. The action can still sit in a predictable position if the card layout allocates space thoughtfully. The title area should be allowed to grow, and the relationship between the title, date, and action should remain clear.
Decide which text may be abbreviated and how the full version can be reached. A preview of a long description is different from a title that identifies the event. If two events become indistinguishable after truncation, the component has lost information needed for selection. An ellipsis does not explain the missing difference.
Check badges and status labels separately. A longer status should not cover the event name or force the date outside the card. Moving the badge into its own row may be a better solution than shrinking its type. After making that change, inspect a short-label card too so the repair does not create excessive empty space everywhere else.
Forms: test labels, hints, and errors together
Form layouts are especially sensitive to text length because several kinds of content appear around the same control. A label identifies the field, a hint explains the expected input, and an error describes a correction. They may all become longer in another language.
Check each state with the others present. A field that looks fine with its label alone may become confusing once a translated hint and an error appear beneath it. The reader should still be able to tell which information belongs to which field and where to continue after making a correction.
Side-by-side labels and controls may need to stack when the label becomes long. This is a structural choice, not a sign that the translation is poor. If you keep the horizontal arrangement, give both the label and the control enough room to do their jobs. A generous label beside an unusably narrow input is not an improvement.
Preserve distinctions in error messages. “Required,” “Too long,” and “Could not save” describe different problems. A localization review should not compress all of them into a short generic phrase merely because the error region has a fixed height. Let the region communicate the specific problem and grow with the message.
Keep numbers, units, and names in context
Text expansion is not limited to sentences. Dates, currencies, names, and units can change the space and ordering required by a component. Treat these as content examples to review with the relevant locale, not as values the designer should improvise from memory.
A price line might combine a currency amount, a billing period, and a qualifier. If the qualifier wraps, check whether it still clearly belongs to that price. On the event example, a date range may need more room than a single date. Keeping the label and value together can matter more than keeping the entire card one line shorter.
Use representative user-provided names rather than assuming a fixed number of short words. A layout that only works for “Alex Lee” has not established that longer names will be readable. Consider where a full name must remain visible and where a compact representation is acceptable for the task.
Avoid concatenating fragments in the visual specification as if their source-language order were universal. A sentence assembled from a number, a noun, and a short suffix may need a different construction in translation. Hand off the intended meaning and context so the language work can produce a coherent message rather than rearrange disconnected pieces without guidance.
The W3C internationalization quick tips cover related foundations, including language declarations, separating content from presentation, and care with assembled strings.
Leave room vertically as well as horizontally
A common repair is to increase width while leaving every height fixed. That can help one label but leave another clipped when its line count changes. Review the vertical flow of the whole section: a longer title may push a subtitle, an action group, and the following section downward.
Allow the page to absorb that growth wherever the task permits it. A card becoming taller is often less harmful than a critical phrase disappearing. If height must remain constrained, define the alternative behavior explicitly, such as moving secondary detail into a separate view while keeping the identifying information visible.
Inspect the top and bottom of actual rendered characters. A box can appear large enough for the words while cutting off an accent or a part of a glyph. Changing the font, script, or weight can expose that issue. A screenshot made with the source font is not sufficient evidence for a different script.
Do not force every language to imitate the source page’s exact line count. The design should preserve hierarchy, relationships, and usability. Some variations in section height and wrapping are a reasonable consequence of communicating the same meaning through different text.
Combine localization testing with width review
A translation that works on desktop can still fail on a phone. Test the vulnerable components at a narrow, middle, and wide view, then inspect the widths where the layout changes. Keep the same language selected while performing a complete task so that you can notice relationships that a set of isolated screenshots would miss.
Separate observations into language and layout issues. If the wording sounds unnatural, it needs language review. If a well-formed label collides with a neighboring control, it needs layout work. Sometimes both are true, but classifying the problem prevents the designer and translator from repeatedly handing it back to one another.
Use a reviewer who understands the language for final judgments about phrasing and meaning. A non-speaker can identify clipped text, overlap, and missing characters; they cannot reliably confirm whether a shortened label still communicates the right action. Mark that limitation in the review record rather than treating visible fit as translation approval.
Right-to-left layouts also need a distinct directionality review. A test that only adds length to left-to-right text does not establish that ordering, mixed-direction content, or directional controls work correctly. Keep that work visible instead of folding it into a vague claim that every language has passed.
Use OpenDesign to inspect and revise the layout
OpenDesign can support this work through HTML preview, desktop, tablet, and mobile views, and focused revisions to the design. You can provide approved text as context, inspect the result, and use comments or chat to describe a collision. Supported manual text and style edits are useful for trying a local adjustment.
For example, specify that the event title may wrap to additional lines, the date must stay fully visible, and the primary action must remain associated with its card. Keep the text unchanged while testing the layout repair. This makes the result easier to judge than asking for a general redesign every time a long string appears.
Supply approved translations when judging the final layout, so wording changes do not conceal a collision that still needs repair.
After a local repair, compare the original and expanded content again. A rule that fixes the longest example may make short labels unnecessarily awkward. Good flexibility supports a range: ordinary text remains composed, longer text remains usable, and the reason for any exceptional treatment is clear.
Define what “ready for translation” means
A useful handoff records how vulnerable components behave, which stress cases were tried, and which real languages were reviewed. Include unresolved restrictions, such as an external widget with a fixed label width or an image containing text that still needs a localized version.
Give translators context for ambiguous strings. A button’s destination, the available surrounding explanation, and the distinction between similar actions can all matter. If a character limit is genuinely unavoidable, state it with the reason and identify who can decide whether it should change. Do not quietly turn every current container width into a language constraint.