499 lines
8.7 KiB
Markdown
499 lines
8.7 KiB
Markdown
# ASCII Patterns - Visual Toolkit
|
||
|
||
Complete library of ASCII characters and patterns for uxscii components.
|
||
|
||
## Box-Drawing Characters
|
||
|
||
### Basic Borders
|
||
|
||
**Light (Default)**
|
||
```
|
||
┌─────┐
|
||
│ Box │
|
||
└─────┘
|
||
```
|
||
Characters: `┌ ─ ┐ │ └ ┘`
|
||
|
||
**Rounded (Friendly)**
|
||
```
|
||
╭─────╮
|
||
│ Box │
|
||
╰─────╯
|
||
```
|
||
Characters: `╭ ─ ╮ │ ╰ ╯`
|
||
|
||
**Double (Emphasis)**
|
||
```
|
||
╔═════╗
|
||
║ Box ║
|
||
╚═════╝
|
||
```
|
||
Characters: `╔ ═ ╗ ║ ╚ ╝`
|
||
|
||
**Heavy (Strong)**
|
||
```
|
||
┏━━━━━┓
|
||
┃ Box ┃
|
||
┗━━━━━┛
|
||
```
|
||
Characters: `┏ ━ ┓ ┃ ┗ ┛`
|
||
|
||
### Complex Borders
|
||
|
||
**With Dividers**
|
||
```
|
||
┌─────────┬─────────┐
|
||
│ Col 1 │ Col 2 │
|
||
├─────────┼─────────┤
|
||
│ Data │ Data │
|
||
└─────────┴─────────┘
|
||
```
|
||
|
||
**Nested**
|
||
```
|
||
╭─────────────────╮
|
||
│ Outer │
|
||
│ ┌─────────────┐ │
|
||
│ │ Inner │ │
|
||
│ └─────────────┘ │
|
||
╰─────────────────╯
|
||
```
|
||
|
||
## Component State Patterns
|
||
|
||
### Buttons
|
||
|
||
**Default**
|
||
```
|
||
▓▓▓▓▓▓▓▓▓▓
|
||
▓ Click ▓
|
||
▓▓▓▓▓▓▓▓▓▓
|
||
```
|
||
|
||
**Hover (Highlighted)**
|
||
```
|
||
░▓▓▓▓▓▓▓▓▓▓░
|
||
░▓ Click ▓░
|
||
░▓▓▓▓▓▓▓▓▓▓░
|
||
```
|
||
|
||
**Focus (Ring)**
|
||
```
|
||
┏━━━━━━━━━━┓✨
|
||
┃ Click ┃
|
||
┗━━━━━━━━━━┛
|
||
```
|
||
|
||
**Disabled (Grayed)**
|
||
```
|
||
┌ ─ ─ ─ ─ ┐
|
||
│ Click │
|
||
└ ─ ─ ─ ─ ┘
|
||
```
|
||
|
||
**Pressed/Active**
|
||
```
|
||
▓▓▓▓▓▓▓▓▓▓
|
||
▓▓Click ▓▓
|
||
▓▓▓▓▓▓▓▓▓▓
|
||
```
|
||
|
||
### Form Inputs
|
||
|
||
**Text Input (Empty)**
|
||
```
|
||
[____________________]
|
||
```
|
||
|
||
**Text Input (Filled)**
|
||
```
|
||
[john@example.com ]
|
||
```
|
||
|
||
**Text Input (Focus)**
|
||
```
|
||
┏━━━━━━━━━━━━━━━━━━━━┓
|
||
┃john@example.com│ ┃
|
||
┗━━━━━━━━━━━━━━━━━━━━┛
|
||
```
|
||
|
||
**Text Input (Error)**
|
||
```
|
||
[invalid-email ]⚠️
|
||
❌ Please enter valid email
|
||
```
|
||
|
||
**Text Input (Success)**
|
||
```
|
||
[john@example.com ]✅
|
||
```
|
||
|
||
**Text Input (Disabled)**
|
||
```
|
||
[────────────────────]
|
||
```
|
||
|
||
**Password (Masked)**
|
||
```
|
||
[•••••••• ]
|
||
```
|
||
|
||
**Password (With Toggle)**
|
||
```
|
||
[•••••••• ]👁️
|
||
```
|
||
|
||
### Checkboxes & Radios
|
||
|
||
**Checkbox (Unchecked)**
|
||
```
|
||
[□] Option 1
|
||
```
|
||
|
||
**Checkbox (Checked)**
|
||
```
|
||
[✓] Option 1
|
||
```
|
||
|
||
**Checkbox (Indeterminate)**
|
||
```
|
||
[▬] Option 1
|
||
```
|
||
|
||
**Radio (Unselected)**
|
||
```
|
||
○ Option A
|
||
```
|
||
|
||
**Radio (Selected)**
|
||
```
|
||
◉ Option A
|
||
```
|
||
|
||
### Selects & Dropdowns
|
||
|
||
**Select (Closed)**
|
||
```
|
||
[Choose option ▼]
|
||
```
|
||
|
||
**Select (Open)**
|
||
```
|
||
[Current option ▼]
|
||
╭────────────────╮
|
||
│ Option 1 │
|
||
│ ● Option 2 │
|
||
│ Option 3 │
|
||
╰────────────────╯
|
||
```
|
||
|
||
### Sliders
|
||
|
||
**Slider (Basic)**
|
||
```
|
||
├────────●───────┤
|
||
0% 100%
|
||
```
|
||
|
||
**Slider (With Value)**
|
||
```
|
||
├────────●───────┤ 45%
|
||
```
|
||
|
||
**Range Slider**
|
||
```
|
||
├────●────●──────┤
|
||
20% 80%
|
||
```
|
||
|
||
## Status Indicators
|
||
|
||
### Icons
|
||
|
||
**Success**: ✅ ✓ ●
|
||
**Error**: ❌ ✗ ⚠️ ⛔
|
||
**Warning**: ⚠️ ⚡ △
|
||
**Info**: ℹ️ ⓘ ◉
|
||
**Loading**: ⠋ ⠙ ⠹ ⠸ ⠼ ⠴ ⠦ ⠧ ⠇ ⠏
|
||
|
||
### Progress Bars
|
||
|
||
**Loading (40%)**
|
||
```
|
||
████▓▓▓▓▓▓ 40%
|
||
```
|
||
|
||
**Loading (Indeterminate)**
|
||
```
|
||
▓▓▓░░░░░░░
|
||
```
|
||
|
||
**Steps**
|
||
```
|
||
● ━━━ ● ━━━ ○ ━━━ ○
|
||
```
|
||
|
||
### Badges
|
||
|
||
**Count Badge**
|
||
```
|
||
[Inbox] ●3
|
||
```
|
||
|
||
**Status Badge**
|
||
```
|
||
● Online
|
||
○ Offline
|
||
```
|
||
|
||
**Label Badge**
|
||
```
|
||
▓ New ▓
|
||
```
|
||
|
||
## Data Display
|
||
|
||
### Lists
|
||
|
||
**Unordered**
|
||
```
|
||
• Item 1
|
||
• Item 2
|
||
• Item 3
|
||
```
|
||
|
||
**Ordered**
|
||
```
|
||
1. First
|
||
2. Second
|
||
3. Third
|
||
```
|
||
|
||
**Nested**
|
||
```
|
||
• Parent
|
||
├─ Child 1
|
||
├─ Child 2
|
||
└─ Child 3
|
||
```
|
||
|
||
### Tables
|
||
|
||
**Simple**
|
||
```
|
||
┌─────┬─────┬─────┐
|
||
│ A │ B │ C │
|
||
├─────┼─────┼─────┤
|
||
│ 1 │ 2 │ 3 │
|
||
│ 4 │ 5 │ 6 │
|
||
└─────┴─────┴─────┘
|
||
```
|
||
|
||
**With Header**
|
||
```
|
||
╔═══════╦═══════╦═══════╗
|
||
║ Name ║ Email ║ Status║
|
||
╠═══════╬═══════╬═══════╣
|
||
║ Alice ║ a@... ║ ✓ ║
|
||
║ Bob ║ b@... ║ ○ ║
|
||
╚═══════╩═══════╩═══════╝
|
||
```
|
||
|
||
### Cards
|
||
|
||
**Basic**
|
||
```
|
||
╭─────────────╮
|
||
│ Title │
|
||
├─────────────┤
|
||
│ Content... │
|
||
╰─────────────╯
|
||
```
|
||
|
||
**With Actions**
|
||
```
|
||
╭─────────────────────╮
|
||
│ Card Title │
|
||
├─────────────────────┤
|
||
│ Content goes here │
|
||
│ │
|
||
│ [Action] ─┐ │
|
||
╰─────────────────────╯
|
||
```
|
||
|
||
**Metric Card**
|
||
```
|
||
╭───────────╮
|
||
│ Revenue │
|
||
├───────────┤
|
||
│ $24,567 │
|
||
│ +12.5% ↗ │
|
||
╰───────────╯
|
||
```
|
||
|
||
## Navigation
|
||
|
||
### Tabs
|
||
|
||
**Horizontal**
|
||
```
|
||
[Active] [Tab 2] [Tab 3]
|
||
─────────
|
||
Content for active tab
|
||
```
|
||
|
||
**Vertical**
|
||
```
|
||
┌─ ● Tab 1
|
||
├─ ○ Tab 2
|
||
└─ ○ Tab 3
|
||
```
|
||
|
||
### Breadcrumbs
|
||
|
||
```
|
||
Home > Products > Details
|
||
```
|
||
|
||
### Pagination
|
||
|
||
```
|
||
‹ Prev [1] 2 3 4 5 Next ›
|
||
```
|
||
|
||
### Menu
|
||
|
||
**Dropdown**
|
||
```
|
||
File ▼
|
||
╭──────────╮
|
||
│ New │
|
||
│ Open │
|
||
│ Save │
|
||
├──────────┤
|
||
│ Exit │
|
||
╰──────────╯
|
||
```
|
||
|
||
**Sidebar**
|
||
```
|
||
╭─────────╮
|
||
│ • Home │
|
||
│ • Users │
|
||
│ • Data │
|
||
│ • Info │
|
||
╰─────────╯
|
||
```
|
||
|
||
## Modals & Overlays
|
||
|
||
### Modal
|
||
|
||
**Simple**
|
||
```
|
||
╔═══════════════════╗
|
||
║ Modal Title ║
|
||
╠═══════════════════╣
|
||
║ Content here... ║
|
||
║ ║
|
||
║ [OK] [Cancel] ║
|
||
╚═══════════════════╝
|
||
```
|
||
|
||
**With Close**
|
||
```
|
||
╔═══════════════════╗✕
|
||
║ Title ║
|
||
╠═══════════════════╣
|
||
║ Content... ║
|
||
╚═══════════════════╝
|
||
```
|
||
|
||
### Toast/Alert
|
||
|
||
**Success**
|
||
```
|
||
╭─────────────────╮
|
||
│ ✅ Saved! │
|
||
╰─────────────────╯
|
||
```
|
||
|
||
**Error**
|
||
```
|
||
╭─────────────────────╮
|
||
│ ❌ Error: Try again │
|
||
╰─────────────────────╯
|
||
```
|
||
|
||
**Warning**
|
||
```
|
||
╭────────────────────╮
|
||
│ ⚠️ Warning message │
|
||
╰────────────────────╯
|
||
```
|
||
|
||
## Arrows & Indicators
|
||
|
||
### Directional
|
||
```
|
||
↑ ↓ ← →
|
||
↗ ↘ ↙ ↖
|
||
⬆ ⬇ ⬅ ➡
|
||
▲ ▼ ◀ ▶
|
||
```
|
||
|
||
### Trend
|
||
```
|
||
↗️ Up trend
|
||
→ Flat
|
||
↘️ Down trend
|
||
```
|
||
|
||
### Expand/Collapse
|
||
```
|
||
▼ Expanded
|
||
▶ Collapsed
|
||
```
|
||
|
||
## Spacing & Alignment
|
||
|
||
### Padding Example
|
||
```
|
||
╭──────────────╮
|
||
│ │ ← 1 line padding
|
||
│ Content │
|
||
│ │ ← 1 line padding
|
||
╰──────────────╯
|
||
```
|
||
|
||
### Grid Alignment
|
||
```
|
||
╭────╮╭────╮╭────╮ ← No gap
|
||
╭────╮ ╭────╮ ╭────╮ ← 1 char gap
|
||
╭────╮ ╭────╮ ╭────╮ ← 2 char gap
|
||
```
|
||
|
||
## Tips for Consistent Patterns
|
||
|
||
1. **Choose one border style per component** - Don't mix light/rounded/heavy
|
||
2. **Use consistent spacing** - Multiples of 4 characters work well
|
||
3. **Align related elements** - Keep boxes at same width when stacked
|
||
4. **Test in monospace** - Always preview in monospace font
|
||
5. **Consider state transitions** - Visual changes should be clear
|
||
|
||
## Copy-Paste Ready
|
||
|
||
```
|
||
Light box: ┌─┐│└┘
|
||
Rounded: ╭─╮│╰╯
|
||
Double: ╔═╗║╚╝
|
||
Heavy: ┏━┓┃┗┛
|
||
|
||
Checkbox: [□] [✓]
|
||
Radio: ○ ◉
|
||
Status: ✅ ❌ ⚠️ ℹ️
|
||
Arrows: ↑↓←→ ↗↘
|
||
```
|
||
|
||
Use these patterns to create beautiful, consistent uxscii components!
|