CatWing
Deep-tech AI for Supply Chain Optimization
Brand Identity Guidelines — v2.0 · May 2026
2. Brand Philosophy
Core Positioning
CatWing is the infrastructure layer for intelligent inventory. We transform raw supply chain data into precise, actionable decisions. Every pixel in our interface exists to help analysts make better choices faster.
Personality Pillars
Precise
Numbers are right-aligned with tabular-nums. Dates follow consistent formatting. Every data point is verifiable.
Opinionated
CW Rec status takes a clear position. We recommend STOCK or NOT-STOCK, never “maybe”. Confidence scores quantify uncertainty rather than hiding it.
Quiet
Animations are 0.15s-0.3s, never bouncing. Toasts dismiss themselves. Color is semantic only. The UI stays out of the way until you need it.
Technical
We show confidence scores, not just recommendations. Monospace for data. Tables over cards. Numbers over charts. Density is a feature.
Trustworthy
Undo on every destructive action. 5-second recovery window. Drift detection alerts when recommendations change. No silent overwrites.
This, Not That
CatWing is…
- Deep-tech AI for supply chain professionals
- Information-dense, data-first interfaces
- Quiet confidence with semantic-only color
- Engineering-grade precision and credibility
CatWing is NOT…
- Generic SaaS with playful illustrations
- Card-heavy dashboards with vanity metrics
- Decorative gradients and branded everything
- Enterprise grey with stock photography
Visual Identity → AI
- Gradient = data flow (blue inputs → teal outputs)
- Monospace numbers = engineering credibility
- Information density = AI processing power
- Semantic-only color = no decoration, every hue means something
3. Logo System
Icon Mark
The wing icon is the primary visual mark for CatWing.
Wing Icon Mark
catwing_icon_128.png — 128×128px
Favicon
catwing_icon.ico — multi-size
Icon on Backgrounds
The wing icon works on all backgrounds without modification.
Vertical Lockup (Icon + Wordmark)
Vertical — Light
catwing_full_600.png
Vertical — Dark
catwing_full_dark_600.png
Use vertical lockup when the logo is the primary focal point (title slides, splash screens, about pages).
Horizontal Lockup (Icon + Wordmark)
Horizontal — Light
catwing_horiz_800x400.png
Horizontal — Dark
catwing_horiz_dark_800x400.png
Use horizontal lockup for headers, navigation bars, and inline placements.
Wordmark Only
Wordmark — Light
catwing_wordmark_600.png
Wordmark — Dark (inverted)
Use white text on dark backgrounds
Wordmark alone for tight spaces or when the icon is already visible nearby. Outfit Bold, charcoal #1a1a2e on light, white on dark.
Construction Rules
- Typeface: Outfit Bold (700), PascalCase “CatWing”, letter-spacing 4px at 100pt
- Clear space: Minimum = height of the “C” character on all sides
- Minimum sizes: Icon 32px, horizontal lockup 120px width
- Light text color: Charcoal #1a1a2e
- Dark text color: White #ffffff
When to Use Each Variant
| Variant | Context | Min Size |
|---|---|---|
| Icon only | Favicons, app headers, small UI elements | 32px |
| Vertical lockup | Title slides, splash screens, about pages | 200px wide |
| Horizontal lockup | Email signatures, document headers, nav bars | 160px wide |
| Wordmark only | When icon is already present nearby | 120px wide |
Do’s and Don’ts
Do
- Use the wing icon at correct proportions
- Maintain clear space = height of the “C” on all sides
- Use dark variants on dark backgrounds
- Use icon-only at small sizes (<120px)
- Apply the glow effect on brand gradient backgrounds
Don’t
- Stretch, skew, or rotate the logo
- Recolor with non-brand colors
- Place on busy or photographic backgrounds
- Add shadows, outlines, or effects (except brand glow)
- Use the light variant on dark surfaces (use dark variant)
File Formats
| Format | Sizes | Use Case |
|---|---|---|
| PNG | 48, 64, 128, 256px | Icon mark (web, favicons) |
| PNG | 300, 600, 1200px | Full lockup (presentations, documents) |
| PNG | 800×400px | Horizontal lockup (headers, sidebars) |
| ICO | Multi-size | Browser favicon |
| SVG | Vector | Full lockup (scalable, print) |
4. Color System
Primary Palette
Click any swatch to copy its hex code.
Gradients
linear-gradient(135deg, #336699 0%, #20b0a5 100%)
Always 135deg. Headers, buttons, hero sections.
linear-gradient(180deg, #f0f5fc 0%, #e8f0f7 100%)
Always vertical. Sidebar backgrounds only.
Semantic Colors
Data Visualization Palette
Background Tints
Used for status row highlighting and product labels.
#E8F5E9
#FFF3E0
#FFEBEE
#E3F2FD
#E8F5E9
#ECEFF1
#FFEBEE
#FFF8E1
WCAG Accessibility Matrix
| Foreground | White | CW BG #f5f7fa | Dark #0f1923 | Surface #1a2332 |
|---|---|---|---|---|
| CW Blue #336699 | 6.0:1 AA | 5.6:1 AA | 3.0:1 Fail | 2.6:1 Fail |
| CW Teal #20b0a5 | 2.7:1 Fail | 2.5:1 Fail | 6.6:1 AA | 5.9:1 AA |
| Pres. Teal #27C4CC | 2.1:1 Fail | 2.0:1 Fail | 8.3:1 AA | 7.4:1 AA |
| Success #4CAF50 | 2.8:1 Fail | 2.6:1 Fail | 6.4:1 AA | 5.7:1 AA |
| Error #D32F2F | 5.0:1 AA | 4.6:1 AA | 3.6:1 AA-lg | 3.2:1 AA-lg |
| CW Dark #1c1c1c | 17.0:1 AA | 15.9:1 AA | 1.0:1 Fail | 1.1:1 Fail |
Fragmentation Notes
#3cac34 for green vs status green #4CAF50.
Recommend converging to #4CAF50 across all apps.
5. Typography
Font Pairing
| Context | Font | Weights |
|---|---|---|
| Logo / wordmark | Outfit Bold | 700 |
| Web applications | Poppins | 400, 500, 600, 700 |
| Presentations (body) | Roboto | 400, 700 |
| Presentations (charts) | Calibri | 400 |
| Code / data | SFMono / Consolas | 400 at 0.88em |
Type Scale
Line Height
| Context | Value |
|---|---|
| Body text | 1.6 |
| Tight (tables, badges) | 1.4 |
| Headings | 1.2 |
Letter Spacing
- Logo wordmark: 4px at 100pt
- Sidebar headings: 0.04em uppercase
- Everything else: normal
Number Formatting
font-variant-numeric: tabular-nums · right-aligned · comma thousands · € prefix, no decimals for large values · 1 decimal for percentages
Pairing Rules
- Never use Outfit in body text — reserved for the wordmark
- Never use Poppins for the logo — always Outfit Bold
- Code blocks:
SFMono-Regular, Consolas, monospaceat 0.88em
Typography in Context
6. Iconography
CatWing uses Unicode characters + CSS indicators rather than an icon library. This keeps the bundle minimal and ensures icons render without external dependencies.
Zone Dots
The canonical micro-icon. 10px circles with semantic zone colors.
Status Indicators
Chevron Rotation
Chevrons rotate 90° on expand with transition: transform 0.15s.
Product Labels
Textual icons with color coding. Responsive: full text on desktop, abbreviation on phone.
| Label | Meaning | Background | Text |
|---|---|---|---|
| LAUNCH | Recently launched product | #E8F5E9 | #2E7D32 |
| DISC. | Discontinued by supplier | #ECEFF1 | #616161 |
| OLD | Product is 5+ years old | #FFEBEE | #C62828 |
| GOLD | Gold material product | #FFF8E1 | #BF360C |
Future Direction
7. Voice & Tone
Overall voice: analyst-to-peer. Direct, specific, not dumbed down. We write for people who understand inventory and supply chain.
Tone by Context
Success
Error
Empty State
Loading
Destructive
Case Conventions
| Context | Case | Example |
|---|---|---|
| UI copy | Sentence case | Changes saved |
| Section headers | Title Case | Global Assortment Review |
| Badges / labels | UPPERCASE | STOCK, LAUNCH, DISC. |
| Brand name | PascalCase | CatWing (never Catwing or CATWING) |
Number Formatting
| Type | Format | Example |
|---|---|---|
| Currency (large) | € prefix, no decimals, comma thousands | €12,450 |
| Percentage | 1 decimal | 95.8% |
| Quantity | Comma thousands | 1,247 |
| Date (UI) | DD Mon YYYY | 02 Mar 2026 |
| Date (filenames) | ISO 8601 | 2026-03-02 |
Error Message Structure
[Failed to {action}]: {cause} ({recovery})
Example: “Failed to save changes: network timeout (retry or check connection)”
Notification Hierarchy
| Pattern | When | Duration | Example |
|---|---|---|---|
| Inline badge | Status visible in context | Persistent | STOCK / NOT-STOCK badge on row |
| Toast (success) | Action completed | Auto-dismiss 3s + undo 5s | “3 products confirmed” |
| Toast (error) | Transient failure | Manual dismiss | “Failed to save: timeout” |
| Inline error | Validation failure | Until fixed | Red border + message on input |
| Empty state | No data to show | Until resolved | “No products match. Broaden filters.” |
| Modal | Destructive / irreversible | User must act | “Change 24 products to NOT-STOCK?” |
Rule: never use a modal for success. Never auto-dismiss errors. Always offer undo for bulk actions.
13. Dark Mode
Toggle the theme using the button in the navigation sidebar to see this guide adapt in real-time.
Dark Palette Mapping
| Element | Light | Dark |
|---|---|---|
| Page background | #f5f7fa | #0f1923 |
| Surface (cards) | #ffffff | #1a2332 |
| Borders | #dce3ed | #2a3a4a |
| Primary text | #1c1c1c | #e2e8f0 |
| Muted text | #666 | #94a3b8 |
Status colors (green #4CAF50, red #D32F2F, orange #FF9800) remain unchanged on dark backgrounds.
Implementation
:root {
--guide-bg: #f5f7fa;
--guide-surface: #ffffff;
--guide-text: #1c1c1c;
--guide-border: #dce3ed;
}
[data-theme="dark"] {
--guide-bg: #0f1923;
--guide-surface: #1a2332;
--guide-text: #e2e8f0;
--guide-border: #2a3a4a;
}
Toggle via data-theme="dark" on <html>. Persisted to localStorage. Respects prefers-color-scheme as default.
Side-by-Side Comparison
Subtitle text on white surface
STOCKSubtitle text on dark surface
STOCKLogo on Dark
The wing icon works on both light and dark backgrounds. Wordmark: white “Cat” + CW Presentation Teal “Wing” on dark.