# GOOD vs BAD Document Design — Concrete OpenXML Examples A side-by-side reference showing common design mistakes and their fixes, with exact OpenXML parameter values. Use this to develop an intuitive sense of what makes a document look professional versus amateur. Format: Each comparison shows the **BAD** version first (the mistake), then the **GOOD** version (the fix), with OpenXML markup and a short explanation. --- ## 1. Font Size Disasters ### 1a. No Hierarchy — Everything the Same Size **BAD: Body=12pt, H1=12pt bold** ``` ┌──────────────────────────────────┐ │ INTRODUCTION │ ← 12pt bold... same visual weight │ This is the body text of the │ ← 12pt regular │ report. It discusses findings │ │ from the quarterly review. │ │ METHODOLOGY │ ← Where does the section start? │ We collected data from three │ │ sources across the enterprise. │ └──────────────────────────────────┘ ``` ```xml ``` **GOOD: Modular scale — body=11pt, H3=13pt, H2=16pt, H1=20pt** ``` ┌──────────────────────────────────┐ │ │ │ Introduction │ ← 20pt, clearly a title │ │ │ This is the body text of the │ ← 11pt, comfortable reading size │ report. It discusses findings │ │ from the quarterly review. │ │ │ │ Methodology │ ← 20pt, section break is obvious │ │ │ We collected data from three │ │ sources across the enterprise. │ └──────────────────────────────────┘ ``` ```xml ``` **Why better:** A clear size progression (ratio ~1.25x per step) lets readers instantly identify structure without reading a word. --- ### 1b. Too Much Contrast — Children's Book Look **BAD: H1=28pt with body=10pt (ratio 2.8x)** ``` ┌──────────────────────────────────┐ │ │ │ QUARTERLY REPORT │ ← 28pt, dominates the page │ │ │ This is body text set very small │ ← 10pt, straining to read │ and the contrast with the title │ │ makes it feel like a poster. │ └──────────────────────────────────┘ ``` ```xml ``` **GOOD: H1=20pt with body=11pt (ratio ~1.8x)** ```xml ``` **Why better:** A heading-to-body ratio between 1.5x and 2.0x reads as "structured" rather than "shouting." --- ## 2. Spacing Crimes ### 2a. Wall of Text — No Paragraph or Line Spacing **BAD: Single line spacing, 0pt between paragraphs** ``` ┌──────────────────────────────────┐ │The findings indicate a strong │ │correlation between training hours│ │and performance metrics. │ │Further analysis revealed that │ ← No gap — where does the new │departments with higher budgets │ paragraph start? │achieved better outcomes in all │ │measured categories. │ └──────────────────────────────────┘ ``` ```xml ``` **GOOD: 1.15x line spacing, 8pt after each paragraph** ``` ┌──────────────────────────────────┐ │The findings indicate a strong │ │correlation between training │ ← Slightly more air between lines │hours and performance metrics. │ │ │ ← 8pt gap signals new paragraph │Further analysis revealed that │ │departments with higher budgets │ │achieved better outcomes in all │ │measured categories. │ └──────────────────────────────────┘ ``` ```xml ``` **Why better:** Line spacing gives each line room to breathe; paragraph spacing separates ideas without wasting a full blank line. --- ### 2b. Floating Headings — Same Space Above and Below **BAD: 12pt before and 12pt after heading** ``` ┌──────────────────────────────────┐ │ ...end of previous section. │ │ │ ← 12pt gap │ Section Two │ ← Heading floats in the middle │ │ ← 12pt gap │ Start of section two content. │ └──────────────────────────────────┘ ``` ```xml ``` **GOOD: 24pt before, 8pt after heading** ``` ┌──────────────────────────────────┐ │ ...end of previous section. │ │ │ │ │ ← 24pt gap — clear section break │ Section Two │ ← Heading is close to its content │ │ ← 8pt gap │ Start of section two content. │ └──────────────────────────────────┘ ``` ```xml ``` **Why better:** Proximity principle: a heading belongs to the text that follows it, so more space above and less space below anchors it to its content. --- ### 2c. Wasteful Gaps — Huge Spacing Everywhere **BAD: 24pt after every paragraph, including body text** ``` ┌──────────────────────────────────┐ │ First paragraph of text here. │ │ │ │ │ ← 24pt gap after every paragraph │ │ │ Second paragraph of text here. │ │ │ │ │ │ │ │ Third paragraph. │ ← Document looks mostly white space └──────────────────────────────────┘ ``` ```xml ``` **GOOD: Proportional spacing — body=8pt, H2=6pt after, H1=10pt after** ```xml ``` **Why better:** Spacing should vary by element role, creating a visual rhythm rather than uniform gaps. --- ## 3. Margin Mistakes ### 3a. Cramped Margins — Text Running to the Edge **BAD: 0.5in margins all around** ``` ┌────────────────────────────────────────────────┐ │Text starts almost at the paper edge and runs │ │all the way across making extremely long lines │ │that are hard to track from end back to start. │ │The eye loses its place on every line return. │ └────────────────────────────────────────────────┘ ``` ```xml ``` **GOOD: 1in margins (standard)** ```xml ``` **Why better:** Optimal line length is 60-75 characters. At 11pt Calibri, 6.5in width achieves roughly 70 characters per line. --- ### 3b. Over-Padded Margins — Looks Like the Content is Hiding **BAD: 2in margins on a short document** ```xml ``` **GOOD: 1in standard, or 1.25in for formal documents** ```xml ``` **Why better:** Margins should frame the content, not overwhelm it. 1-1.25in works for virtually all business and academic documents. --- ## 4. Table Ugliness ### 4a. Prison Grid — Full Borders on Every Cell **BAD: Every cell with 1pt borders on all four sides** ``` ┌───────┬───────┬───────┬───────┐ │ Name │ Dept │ Score │ Grade │ ├───────┼───────┼───────┼───────┤ │ Alice │ Eng │ 92 │ A │ ├───────┼───────┼───────┼───────┤ │ Bob │ Sales │ 85 │ B │ ├───────┼───────┼───────┼───────┤ │ Carol │ Eng │ 78 │ C+ │ └───────┴───────┴───────┴───────┘ ``` ```xml ``` **GOOD: Three-line table (三线表) — top thick, header-bottom medium, table-bottom thick** ``` ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ← 1.5pt top border Name Dept Score Grade ────────────────────────────────── ← 0.75pt header separator Alice Eng 92 A Bob Sales 85 B Carol Eng 78 C+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ← 1.5pt bottom border ``` ```xml ``` **Why better:** Removing inner borders lets the eye scan data freely. Three lines provide structure without visual clutter. --- ### 4b. Text Touching Borders — No Cell Padding **BAD: Zero cell margins** ``` ┌──────────┬──────────┐ │Name │Department│ ← Text cramped against borders ├──────────┼──────────┤ │Alice │Engineering│ └──────────┴──────────┘ ``` ```xml ``` **GOOD: 0.08in vertical, 0.12in horizontal padding** ```xml ``` **Why better:** Padding gives text breathing room inside cells, making every value easier to read. --- ### 4c. Invisible Headers — Header Row Same Style as Data **BAD: Header row indistinguishable from data** ```xml ``` **GOOD: Bold header text, subtle background fill, bottom border** ```xml ``` **Why better:** Distinct header styling lets readers instantly locate column meanings, especially in long tables that span pages. The `w:tblHeader` element ensures the header row repeats on every page. --- ## 5. Font Pairing Failures ### 5a. Visual Chaos — Too Many Fonts **BAD: 4+ fonts in one document** ```xml ``` **GOOD: One font family with weight variation, or two complementary families** ```xml ``` **Why better:** Limiting to one or two font families creates visual coherence. Vary by size and weight, not by font. --- ### 5b. Mismatched Personality — Comic Sans Meets Times New Roman **BAD:** ```xml ``` **GOOD: Fonts with compatible character** ```xml ``` **Why better:** Paired fonts should share a similar level of formality and geometric character. Comic Sans is playful/informal; Times New Roman is formal/traditional. They clash. --- ### 5c. Everything Bold — Nothing Stands Out **BAD: Bold on body, headings, captions, everything** ```xml ``` **GOOD: Bold reserved for headings and key terms only** ```xml ``` **Why better:** When everything is emphasized, nothing is emphasized. Bold should be a signal, not a default. --- ## 6. Color Abuse ### 6a. Rainbow Headings **BAD: Each heading level a different bright color** ```xml ``` **GOOD: Single accent color for headings, black or dark gray for body** ```xml ``` **Why better:** A single accent color establishes brand consistency. Multiple bright colors compete for attention and look unprofessional. --- ### 6b. Low Contrast — Light Gray on White **BAD: #CCCCCC text on white background** ```xml ``` **GOOD: #333333 text on white** ```xml ``` **Why better:** Sufficient contrast is not just an accessibility requirement; it makes text physically easier to read for everyone, especially in printed documents. --- ### 6c. Bright Body Text **BAD: Body text in a saturated color** ```xml ``` **GOOD: Color reserved for headings and inline accents only** ```xml ``` **Why better:** Colored body text causes eye fatigue over long reading. Reserve color for elements that need to attract attention (headings, links, warnings). --- ## 7. List Formatting Issues ### 7a. Bullet at the Margin — No Indent **BAD: List items start at the left margin** ``` ┌──────────────────────────────────┐ │Here is a paragraph of text. │ │• First item │ ← Bullet at margin, no indent │• Second item │ │• Third item │ │Next paragraph continues here. │ └──────────────────────────────────┘ ``` ```xml ``` **GOOD: 0.25in left indent with hanging indent for the bullet** ``` ┌──────────────────────────────────┐ │Here is a paragraph of text. │ │ • First item │ ← Indented, clearly a list │ • Second item │ │ • Third item │ │Next paragraph continues here. │ └──────────────────────────────────┘ ``` ```xml ``` For nested lists, increment by 360 twips per level: ```xml ``` **Why better:** Indentation visually separates lists from body text and makes nesting levels clear. --- ### 7b. List Items with Full Paragraph Spacing **BAD: List items have the same 8-10pt spacing as body paragraphs** ``` ┌──────────────────────────────────┐ │ • First item │ │ │ ← 10pt gap — looks like separate │ • Second item │ paragraphs, not a list │ │ │ • Third item │ └──────────────────────────────────┘ ``` ```xml ``` **GOOD: Tight spacing between list items (2-4pt)** ``` ┌──────────────────────────────────┐ │ • First item │ │ • Second item │ ← 2pt gap — cohesive list │ • Third item │ └──────────────────────────────────┘ ``` ```xml ``` **Why better:** Tight spacing groups list items as a single unit, matching how readers expect a list to behave. --- ## 8. Header/Footer Problems ### 8a. Header Text Too Large — Competes with Body **BAD: Header in 12pt, same as body** ``` ┌──────────────────────────────────┐ │ Quarterly Report - Q3 2025 │ ← 12pt header, same as body │──────────────────────────────────│ │ Introduction │ │ This is the body text... │ ← 12pt body — header distracts └──────────────────────────────────┘ ``` ```xml ``` **GOOD: Header in 9pt, gray color, subtle** ``` ┌──────────────────────────────────┐ │ Quarterly Report - Q3 2025 │ ← 9pt, gray — present but quiet │──────────────────────────────────│ │ Introduction │ │ This is the body text... │ ← Body stands out as primary └──────────────────────────────────┘ ``` ```xml ``` **Why better:** Headers are reference information, not primary content. They should be legible but visually subordinate. --- ### 8b. No Page Numbers on a Long Document **BAD: 20-page document with no page numbers** ```xml ``` **GOOD: Page numbers in footer, right-aligned or centered** ```xml PAGE 1 ``` **Why better:** Page numbers are essential for navigation in any document over ~3 pages. Readers need to reference specific pages, and printed documents need an ordering mechanism. --- ## 9. CJK-Specific Mistakes ### 9a. Using Italic for Chinese Emphasis **BAD: Italic applied to Chinese text** ```xml ``` CJK glyphs have no true italic form. The renderer applies a synthetic slant that looks broken and ugly — characters appear to lean awkwardly. **GOOD: Use bold or emphasis dots (着重号) for Chinese emphasis** ```xml ``` **Why better:** Chinese typography has its own emphasis traditions. Bold and emphasis dots are native CJK conventions; italic is a Latin-script concept that does not translate. --- ### 9b. Latin Font for Chinese Characters **BAD: Only ASCII font set, no EastAsia font specified** ```xml ``` **GOOD: Explicit EastAsia font alongside ASCII font** ```xml ``` For formal/academic Chinese documents: ```xml ``` **Why better:** Setting `w:eastAsia` ensures Chinese characters render in a font designed for CJK glyphs, with correct stroke widths, spacing, and metrics. --- ### 9c. English Line Spacing for Dense CJK Text **BAD: 1.15x line spacing for Chinese body text** ```xml ``` CJK characters are taller and denser than Latin letters. At 1.15x, lines of Chinese text feel cramped and hard to read. **GOOD: 1.5x line spacing or fixed 28pt for CJK body at 12pt (小四)** ```xml ``` For 公文 (government documents) at 三号/16pt body: ```xml ``` **Why better:** CJK characters occupy a full em square with no ascenders/descenders providing natural gaps. Extra line spacing compensates, improving readability of dense text blocks. --- ## 10. Overall Document Feel ### Student Homework vs Professional Document **BAD: "Student homework" — every setting is Word's default, no intentional choices** ```xml ``` **GOOD: Intentional design at every level** ```xml ``` **Why better:** Professional documents result from deliberate, consistent choices across all design dimensions. Each element reinforces the same visual language. The reader may not consciously notice good typography, but they feel the difference in credibility and readability. --- ## Quick Reference: Safe Defaults A cheat sheet of values that produce a professional result for most Western business documents: | Element | Value | OpenXML | |---------|-------|---------| | Body font | Calibri 11pt | `w:sz="22"` | | H1 | Calibri Light 20pt | `w:sz="40"` | | H2 | Calibri Light 16pt | `w:sz="32"` | | H3 | Calibri 13pt bold | `w:sz="26"`, `w:b` | | Body color | #333333 | `w:color="333333"` | | Heading color | #1F4E79 | `w:color="1F4E79"` | | Line spacing | 1.15x | `w:line="276" w:lineRule="auto"` | | Para spacing after | 8pt | `w:after="160"` | | H1 spacing | 24pt before, 10pt after | `w:before="480" w:after="200"` | | H2 spacing | 16pt before, 6pt after | `w:before="320" w:after="120"` | | Margins | 1in all around | `w:pgMar` all `"1440"` | | Table cell padding | 0.08in / 0.12in | `w:w="115"` / `w:w="173"` | | Header/footer size | 9pt gray | `w:sz="18" w:color="808080"` | | List indent | 0.25in per level | `w:left="360" w:hanging="360"` | | List item spacing | 2pt after | `w:after="40"` | For CJK documents, adjust: body font to SimSun/YaHei, line spacing to 1.5x (`w:line="360"`), and set `w:eastAsia` on all `w:rFonts`.