Skip to content

Commit bdc2a91

Browse files
committed
style(tui): redesign header logo and buddy sprite as crab
Header logo: replace abstract block-char pattern with recognizable crab shape β€” claws (β•±β–”β•²), eyes (● ●), shell (β–ˆβ–ˆβ–ˆ), legs (β•±β•± β•²β•²) Buddy sprite: upgrade Crab species from simple /V(o o)V\ to multi-line Unicode art with claws, shell, and legs
1 parent 5770a2b commit bdc2a91

2 files changed

Lines changed: 21 additions & 18 deletions

File tree

β€Žcrates/tui/src/app.rsβ€Ž

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -632,11 +632,11 @@ const CRAB_BG: Color = Color::Black;
632632

633633
/// Render the header: crab art (left) + info text (right) + separator.
634634
///
635-
/// Matches CC's `CondensedLogo` β€” no border box, just flat content:
635+
/// Crab logo using Unicode block/box characters:
636636
/// ```text
637-
/// β•²β–β–›β–ˆβ–œβ–Œβ•± Crab Code v0.1.0
638-
/// β–β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–˜ claude-sonnet-4-6
639-
/// β–β–˜ β–˜β– C:\path\to\project
637+
/// β•±β–”β•² ● ● β•±β–”β•² Crab Code v0.1.0
638+
/// β•²β–‚β•±β•²β–ˆβ–ˆβ–ˆβ•±β•²β–‚β•± claude-sonnet-4-6
639+
/// β•±β•± β–ˆβ–ˆβ–ˆ β•²β•² C:\path\to\project
640640
/// ────────────────────────────────────────
641641
/// ```
642642
#[allow(clippy::cast_possible_truncation)]
@@ -646,25 +646,28 @@ fn render_header(model_name: &str, working_dir: &str, area: Rect, buf: &mut Buff
646646
}
647647

648648
let fg = Style::default().fg(CRAB_COLOR);
649+
let eye = Style::default().fg(Color::White);
649650
let fg_bg = Style::default().fg(CRAB_COLOR).bg(CRAB_BG);
650651

651-
// Crab art β€” 3 rows using block chars (same approach as CC's Clawd).
652-
// β•²/β•± = claws, β–β–›β–ˆβ–œβ–Œ = shell with bg color.
652+
// Crab art β€” 3 rows: claws + eyes on top, shell in middle, legs below
653653
let art_lines: [Line<'_>; 3] = [
654+
// Row 1: claws and eyes
654655
Line::from(vec![
655-
Span::styled(" β•²", fg),
656-
Span::styled("β–β–›β–ˆβ–œβ–Œ", fg_bg),
657-
Span::styled("β•± ", fg),
656+
Span::styled(" β•±β–”β•²", fg),
657+
Span::styled(" ● ● ", eye),
658+
Span::styled("β•±β–”β•² ", fg),
658659
]),
660+
// Row 2: claws wrapping the shell
659661
Line::from(vec![
660-
Span::styled(" ▝", fg),
661-
Span::styled("β–ˆβ–ˆβ–ˆβ–ˆβ–ˆ", fg_bg),
662-
Span::styled("β–˜ ", fg),
662+
Span::styled(" β•²β–‚β•±", fg),
663+
Span::styled("β•²β–ˆβ–ˆβ–ˆβ•±", fg_bg),
664+
Span::styled("β•²β–‚β•± ", fg),
663665
]),
664-
Line::from(Span::styled(" β–β–˜ β–˜β– ", fg)),
666+
// Row 3: legs
667+
Line::from(Span::styled(" β•±β•± β–ˆβ–ˆβ–ˆ β•²β•² ", fg)),
665668
];
666669

667-
let art_width = 13u16;
670+
let art_width = 15u16;
668671

669672
// Info text beside the art (mirrors CC's CondensedLogo text)
670673
let text_budget = area.width.saturating_sub(art_width) as usize;

β€Žcrates/tui/src/components/buddy/sprite.rsβ€Ž

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -105,10 +105,10 @@ pub fn render_ascii(sprite: &Sprite) -> Vec<String> {
105105
};
106106

107107
let body = match sprite.species {
108-
Species::Crab => format!("/V{eyes}V\\"),
109-
Species::Octopus => format!(" {eyes}\n /||||\\"),
110-
Species::Robot => format!("[{eyes}]\n |____|"),
111-
Species::Fox => format!(" /\\{eyes}/\\\n ( )"),
108+
Species::Crab => format!(" β•±β–”β•²{eyes}β•±β–”β•²\n β•²_β•± β–ˆβ–ˆβ–ˆ β•²_β•±\n β•±β•± β•²β•²"),
109+
Species::Octopus => format!(" {eyes}\n /||||\\"),
110+
Species::Robot => format!(" [{eyes}]\n |____|"),
111+
Species::Fox => format!(" /\\{eyes}/\\\n ( )"),
112112
};
113113

114114
let mut lines = Vec::new();

0 commit comments

Comments
Β (0)