# Voice — Product Layer

In-product editorial grammar. Extends `voice.md` (canonical) with rules specific to UI copy: CTAs, headlines, error states, Lexi's voice, Lexi's confidence levels.

If you're writing copy that lives **inside the application** (buttons, dialogs, toasts, Lexi messages, onboarding, empty states, error screens), read this in addition to `voice.md`.

---

## Rule 1 — Period-punctuation on every primary CTA

Every filled primary button gets a period. Every serif-italic secondary text link gets a period.

| ❌ Generic SaaS | ✅ Outlex |
|---|---|
| Sign In | Sign in. |
| Create Account | Create account. |
| Save | Save. |
| Send message | Send. |
| Try Again | Try again. |
| Reload Page | Reload the page. |
| Continue | Continue. |
| Submit | Submit. |
| Add task | Add task. |
| Generate contract | Generate the contract. |

**Applies product-wide**: Home CTAs, Chat send buttons, Dialog confirms, Legal Hub actions, Lexi Suggests accept buttons, onboarding next steps, Auth, error recovery.

**Does NOT apply** to:
- Short inline action chips (`Accept` / `Reject` on suggestion chips — chip form is its own grammar, PRO-2497)
- Status labels or tags (`Due today`, `Pending`, `Active`)
- Tab labels (`Home`, `Chats`, `Legal Hub`)
- Breadcrumb segments
- Menu item labels in dropdowns (unless the item triggers an irreversible action)
- Anchor hashes / internal nav labels

**Why periods, not exclamation marks or nothing**: periods signal finished thought — a printed note, a quiet instruction. Exclamation marks read as SaaS enthusiasm (`Get started!`, `Let's go!`). Nothing reads as a command. A period is a considered pause — it sounds like a person who meant exactly what they wrote.

---

## Rule 2 — Italic emphasis on the human word in headlines

Every Fraunces serif headline across the product puts one key word in italic. The italic word is the emotional anchor — what makes this moment specifically human rather than informational.

| Surface | Headline |
|---|---|
| Sign in | Welcome *back*. |
| Sign up | Start your *account*. |
| Password reset | Set a *new* password. |
| Passwordless | Sign in with a *link*. |
| Root crash | Something *broke* on our side. |
| Stuck auth 45s+ | Sign-in is *taking too long*. |
| Reload confirm | We'd like to *reload* your session. |
| Component error | This section *didn't load*. |
| Action failure | That *didn't go through*. |
| Lexi empty state | Ask me *anything* about your contracts. |
| First-time Home | What are you *working on* today? |
| Task completed | Another one *done*. |
| New document ready | Your NDA is *ready*. |
| Expiration 30d warning | Your contract expires *soon*. |

**Applies product-wide** to every Fraunces headline at display sizes (24px+).

**How to pick the emphasized word**:
- Choose the **verb** or **noun** that carries the human moment (*back*, *broke*, *ready*, *done*)
- NOT the qualifier ("you're", "already", "just") — those are functional scaffolding
- NOT articles, prepositions, or auxiliaries
- One word per headline. Never two. If the headline doesn't have a clear human-word candidate, the headline needs a rewrite, not additional italics.

**Implementation**: `<em>` wrapper. Italic inherits Fraunces weight from parent (`font-weight: 400` — never bump to 500/600 for emphasis). Color stays `--outlex-fg-ink` — no gradient fills, no sage/amber tint on the italic word (tried and rejected 2026-04-24). The italic axis carries the emphasis alone.

---

## Rule 3 — No trailing exclamation marks anywhere

Exclamation marks read as SaaS enthusiasm and break the calm, literary register. Only exception is direct quoted user speech. Every other "!" gets swapped for a period or deleted.

| ❌ | ✅ |
|---|---|
| Welcome! | Welcome *back*. |
| All done! | Another one *done*. |
| Account created! | Account created. Check your email to verify. |
| You did it! | Done. |
| Something went wrong! | Something *broke* on our side. |

---

## Rule 4 — Complete sentences in subtitles and body

If a full sentence ends mid-thought for scannability, end with a period anyway. Subtitles, tooltips, and captions all get punctuation. Ellipses (…) only for in-flight loading states (`Signing you in…`, `Sending…`, `Verifying…`) — never for emphasis or pauses.

---

## Lexi's Voice (in-product AI assistant)

Lexi speaks with **Guide energy** — helpful, clear, honest about what she knows and doesn't know.

### Personality
- First person singular ("I found 3 relevant clauses") — not "the system detected" or "Outlex identified"
- Warm but not chatty — no "Great question!" or "Happy to help!"
- Admits uncertainty plainly — "I'm not confident enough on this one to recommend acting without a lawyer."
- Uses confidence language, not certainty language — "This appears to be" not "This is"

### Confidence Communication

- **High confidence**: State the finding directly. "This NDA has a non-compete clause that's unenforceable under Portuguese law."
- **Medium confidence**: Add a caveat in the same sentence. "This clause appears standard, but the liability cap may not hold in German courts — I'd recommend a lawyer review before signing."
- **Low confidence**: Escalate honestly. "I don't have enough context to give you a reliable answer on this. I can connect you with a lawyer who specializes in employment law."

### Lexi never says
- "I'm just an AI" — she's a legal assistant, not a disclaimer
- "This is not legal advice" as a blanket footer — confidence scores handle this
- "Sure!" / "Absolutely!" / "Great question!" — no filler enthusiasm
- Anything that implies she's a replacement for all lawyers — "I handle the routine so lawyers can focus on what matters"

### Lexi's formatting
- Short paragraphs (2-3 sentences max)
- Bullet points for lists of findings or steps
- Bold for key terms the user should notice
- Always end with a clear next action: "Want me to flag this for review?" / "Should I generate the updated version?"

---

## Tone variations within the product

### Website / Product copy
**Tone**: Clear, supportive, builds confidence.
**Example**: "Your privacy policy has 3 gaps. Here's how to fix them."

- Lead with what's relevant to the user's situation, not our feature list
- Confidence without overselling — show, don't claim
- Every heading should make sense without reading the body

### Support / Onboarding
**Tone**: Warm, patient.
**Example**: "This is a common question. Here's how it works."

- Assume good intent and zero legal knowledge
- Step-by-step, never condescending
- Celebrate progress — "You've just set up compliance tracking for your first regulation."

### Error / Limitation
**Tone**: Honest, offers a path forward.
**Example**: "Lexi isn't confident on this one. Here's a lawyer who can help."

- Never hide limitations — surface them clearly
- Always provide the next step (human lawyer, documentation, or "try rephrasing")
- No blame language ("you did X wrong") — focus on what to do next

---

## Provenance

These rules shipped with PR #3298 (2026-04-24) redesigning Loading, Error, and Login surfaces as the first application. The grammar is canonical product-wide. See `mvp2/.claude/skills/entry-surfaces-editorial/` for full-viewport implementation details and `mvp2/.claude/V7_COMPONENT_SPECS.md` § Entry Surfaces for the CSS primitives.
