Capitalization, punctuation, and how to format numbers, time, and dates.
Use sentence case everywhere: capitalize the first word and proper nouns only. That applies to headings, labels, buttons, tooltips, placeholder text, empty states, error messages, nav items, and column headers alike.
Title case in labels adds visual noise and creates a second capitalization system that readers have to learn. It's harder to scan, harder to localize, and inconsistent with the rest of the interface. When in doubt, use sentence case.
| Use | Instead of |
|---|---|
| Create a segment | Create A Segment |
| No results found | No Results Found |
| Send your first campaign | Send Your First Campaign |
Beyond Customer.io, product-area and feature names are proper nouns: capitalize them when you're naming the feature or area, and use lowercase for the common adjective or noun form. The same word can go either way depending on how it's used, so the rule is contextual rather than a fixed always-capitalize list. As a rule of thumb, if you're naming the feature or area, capitalize; if you're describing the thing generically, use lowercase.
Two branded phrases have no common-noun form and are always fully capitalized: Data Pipelines and Design Studio, alongside Customer.io itself. Every other multi-word area is sentence case (Data index, Email layouts, Inbox preview, Message library, Custom objects).
The product areas that follow the contextual rule:
Assets · Broadcasts · Campaigns · Collections · Custom objects · Data index · Data Pipelines (always) · Deliveries · Design Studio (always) · Destinations · Email layouts · Exports · Geofences · Goals · Imports · In-App · Inbox preview · Integrations · Journeys · Message library · Newsletters · Reports · Segments · Snippets · Sources · Transactional · Workspaces
Always capitalize proper nouns and keep their capitalization everywhere, including mid-sentence. That covers Customer.io, Liquid (the templating language), and established product, feature, plan, and program names:
Common nouns are not proper nouns and stay lowercase mid-sentence: segment, campaign, broadcast, message, profile, member, automations. Field and preposition words are lowercase too (from address, reply to address, to, from), capitalized only when they start a label. "From address" works as a field label, but mid-sentence it's "Add a from address". When a term names a specific product surface, it's a proper noun; when it's a generic concept, it's lowercase.
Write dates in full so they read unambiguously across regions. In dense data tables, where space is tight, the numeric form is acceptable.
| Context | Format |
|---|---|
| Default | July 28, 2025 |
| Dense data tables only | MM/DD/YYYY |
Always use Arabic numerals, even at the start of a sentence, and format thousands with commas. When space is constrained, abbreviate, and do it consistently within a view.
| Use | Instead of |
|---|---|
1,200 | 1200 |
1.2K, 4.8M (space-constrained) | 1,200, 4,800,000 (in the same constrained view) |
4,200 people | Four thousand two hundred people |
Use relative time for timestamps and activity feeds. Switch to the next unit once it reaches its threshold, so 1 hour ago rather than 60 minutes ago.
Elapsed time:
Just now1 minute agoX minutes ago1 hour agoX hours ago1 day agoX days ago1 month agoX months ago1 year agoRemaining time:
X hours remainingX minutes remainingX seconds remainingAbout X minutes remaining (use "about" for estimates)Use the 12-hour format with lowercase am/pm, and include the time zone whenever it's relevant. Ranges take an en dash; see Em dashes and en dashes.
| Context | Format |
|---|---|
| Time | 10:30 am, 4:00 pm |
| With time zone | 10:30 am ET |
Ampersands (&) belong in established product names and in space-constrained UI; and belongs in prose and full sentences.
| Use | Where |
|---|---|
| Data & Integrations | Established product names |
| email, SMS, and push | Prose and full sentences |
| Preview & testing, Tips & resources | Labels, tabs, panel titles, nav items, table headers, tags |
Use colons to introduce a list or a label-value pair, with no space before the colon. When layout already separates the label from its value, omit the colon.
| Use | Instead of |
|---|---|
| Channels: Email, SMS, and push | |
| Sent to: 4,200 people | Sent to : 4,200 people |
| You can send across three channels: email, SMS, and push. |
Ellipses indicate that something is in progress or that more input is needed. There are two valid uses.
Use an ellipsis (…) when a button opens a dialog or requires additional input before the action completes. It signals "there's more to do before this happens" and removes hesitation from people who aren't sure what will be affected.
Don't use a trailing ellipsis anywhere else in UI text. Placeholders in particular never take one: the field itself is the input, so write "Search", not "Search…".
Use an ellipsis after present participles in loading and progress messages. It marks something the system is doing, not a trailing thought.
Always use the single ellipsis character (…), never three periods (...). Three periods look like AI-generated filler and don't render as a true ellipsis.
| Use | Instead of |
|---|---|
| Loading… | Loading... |
Don't use em dashes (—). They have become strongly associated with AI-generated text and add visual noise in dense interfaces. Restructure the sentence or use a comma instead. An en dash (–) is fine, and preferred, for ranges.
| Use | Instead of |
|---|---|
| 10–20 people | |
| 9:00 am–5:00 pm | 9 am - 5 pm, or 9 am to 5 pm (in compact data displays) |
| Steps 1–4 | |
| "The segment updates every hour, so results may vary." | "The segment updates every hour—so results may vary." |
Reserve exclamation points for genuine milestones and warm moments (a welcome, a thank-you, a standout positive result) so they keep their impact. Don't use them for routine confirmations like a save, and never in errors or warnings. Use at most one per screen.
Always use an Oxford comma in lists of three or more.
| Use | Instead of |
|---|---|
| email, SMS, and push | email, SMS and push |
Use parentheses to define an acronym or term on first use, and for short qualifiers or scoping ("Forced dark (Outlook)", "(No subject)"). Don't use them for asides or extra thoughts; restructure the sentence instead.
Use periods for full, complete sentences. Leave them off standalone labels, button text, short and incomplete phrases, nav items, column headers, and modal titles. A period on a label signals that something requires comprehension rather than a quick scan.
| Element | Use | Instead of |
|---|---|---|
| Button | Save changes | Save changes. |
| Column | Last sent | |
| Error | Your changes couldn't be saved. Check your connection and try again. | |
| Helper text | Changes are saved automatically every 30 seconds. | Changes are saved automatically every 30 seconds |
| Nav item | Campaigns | Campaigns. |
Question marks seek confirmation for an action that's about to be performed. They typically mark destructive actions, where a pause helps prevent mistakes, but they also fit other cases like asking for feedback. Whatever the question, name the action or object so the person knows what they're answering.