Skip to content
unicode-box-drawing logo

unicode-box-drawing

Unicode box drawing patterns for ASCII diagrams, flow charts, and structured text layouts in documentation and code comments.

NeverSight/skills_feed0installs214starsOther

SKILL.md

Full skill instructions

Unicode Box Drawing Patterns

Guidelines for creating properly aligned, readable Unicode box diagrams.

When to Apply

  • Drawing ASCII/​Unicode diagrams in code comments or documentation
  • Creating flow charts, state machines, or architecture diagrams
  • Documenting CLI output formats or terminal interfaces
  • Building text-based UI mockups
  • Reviewing diagram alignment issues
  • Writing technical documentation with visual structures

Rule Categories by Priority

PriorityPrefixCategory
CRITICALpadding-Right-padding and fixed width alignment
HIGHspacing-Breathing room and whitespace
HIGHlayout-Centering and nested box calculations
MEDIUMchars-Character selection and consistency

Quick Reference

Critical Rules

Rule IDDescription
padding-rightEvery content line MUST be padded to full width before closing │
padding-fixed-widthAll lines in a box MUST have identical character count

High Priority Rules

Rule IDDescription
spacing-breathing-roomEmpty line after ┌───┐ or ├───┤, and before └───┘ or ├───┤
layout-centeringAlways center nested boxes and flow diagrams within parent
layout-width-limitKeep diagrams under 70 characters for compatibility
layout-nested-mathCalculate: left_pad + inner_content + right_pad = content_width

Character Rules

Rule IDDescription
chars-single-setNever mix Unicode box chars with ASCII on same line
chars-light-linesUse light lines (─ │ ┌ ┐ └ ┘) for best compatibility
chars-monospaceOnly renders correctly in monospace fonts

Box Width Formula

Border formula:    ┌ + (width-2 × ─) + ┐ = total width
Content formula:   │ + (width-2 chars) + │ = total width
                       ↑
                       Content + right-padding spaces

For a 65-character wide box:

  • Border: ┌ + 63×─ + ┐ = 65 chars
  • Content: │ + 63 chars (content + padding) + │ = 65 chars

Unicode Characters Reference

Light Lines (Recommended)

Corners:     ┌ ┐ └ ┘
Lines:       ─ │
T-junctions: ├ ┤ ┬ ┴
Cross:       ┼

Arrows

Simple:      → ← ↓ ↑
Filled:      ▶ ◀ ▼ ▲
Double:      ⇒ ⇐ ⇓ ⇑

Common Patterns

Simple Box

┌───────────────────────────────────────────────────────────────┐
│                           TITLE                               │
├───────────────────────────────────────────────────────────────┤
│                                                               │
│   Content with proper right-padding                           │
│                                                               │
└───────────────────────────────────────────────────────────────┘

Horizontal Flow

┌───────────┐      ┌───────────┐      ┌───────────┐
│  Step 1   │─────▶│  Step 2   │─────▶│  Step 3   │
└───────────┘      └───────────┘      └───────────┘

Vertical Flow

┌─────────────────┐
│     Parent      │
└────────┬────────┘
         │
         ▼
┌─────────────────┐
│     Child       │
└─────────────────┘

Pre-Commit Checklist

  • All lines in each box have IDENTICAL character count
  • Content lines have right-padding before closing │
  • Empty line AFTER every ┌───┐ opening
  • Empty line BEFORE every └───┘ closing
  • Empty lines around every ├───┤ divider
  • Nested boxes have breathing room at ALL levels
  • Flow content is CENTERED within parent box
  • Total width ≤ 70 characters
  • No mixed ASCII/​Unicode characters

How to Use

Each rule file in rules/ contains:

  1. Rule explanation with rationale
  2. WRONG example showing the anti-pattern
  3. CORRECT example showing proper implementation
  4. Verification steps

Recommended Tools

ToolURLPlatform
ASCIIFlowasciiflow.comWeb, free
Monodrawmonodraw.helftone.commacOS, paid
Textiktextik.comWeb, free
Diagonarthursonzogni.com/​DiagonWeb, free

References