No emojis — locked rule
Instinctor's UI never uses emojis (🎉 🚀 ✅ ❌ etc.). This rule is locked. No emojis in admin chrome, editor, plugin UI, transactional emails, marketing copy, documentation, or AI-generated answers.
What this means in practice
- No emojis in button labels (no 🚀 Launch)
- No emojis in toasts or notifications (no ✅ Saved)
- No emojis in admin panel headings or labels
- No emojis in the AI Help mode answers
- No emojis in transactional emails (Your offer was accepted 🎉)
- No emojis in commit messages (allowed if internal-only, but never
- No emoji-prefixed status indicators (🟢 Active)
exposed to users)
Why
- Visual consistency. Emojis render differently on every OS / font
- Accessibility. Screen readers describe emojis inconsistently
- Tone. Emojis read as casual / playful. Instinctor reads as
- Anti-pattern in serious products. Stripe, Linear, Vercel, Notion
/ browser. Apple's emoji isn't Microsoft's emoji isn't Google's. Our UI should look the same everywhere.
(sometimes describing the literal pictogram, sometimes nothing). Lucide icons + text labels are predictable.
professional / disciplined. Brand mismatch.
— none use emojis in their UI chrome. Instinctor matches that caliber.
What we use instead
For each common emoji use case:
| Instead of | Use | |---|---| | 🚀 (launch / start / new) | Lucide rocket icon (sparingly) or just text | | ✅ (success) | Lucide check icon + greyscale colour | | ❌ (error / blocked) | Lucide x or alert-circle + greyscale | | ⚠️ (warning) | Lucide alert-triangle + greyscale | | 🔒 (locked / private) | Lucide lock icon | | 💡 (tip / idea) | Lucide lightbulb icon (sparingly) | | 🎉 (celebration) | Just text — Your offer was accepted. | | 📩 (email / message) | Lucide mail icon | | 📊 (stats / data) | Lucide bar-chart or line-chart | | 🔍 (search) | Lucide search icon | | ⏱ (timing / clock) | Lucide clock icon | | ⭐ (rating) | Lucide star icon |
In all cases — when in doubt, use a Lucide icon. See rules/lucide-icons-only.
Where emojis ARE allowed
- User-typed content. If a user puts emojis in their
- Internal git commits. Emoji-prefixed commits (gitmoji, etc.)
- Admin notes / private memos. What gets written into private
content, we don't strip them. User content is user content.
are fine internally. Never exposed to users.
fields stays private.
Common violations to watch for
- Stripe checkout success page (we use Stripe's UI, can't change)
- Third-party error pages we forward to (rare)
- AI-generated content (Help mode prompt prevents this; verify)
- Status badges in tickets / inbox / admin (often tempting to add 🟢
/ 🔴 — don't)
Don't
- Don't add emojis to any UI text Instinctor controls
- Don't use emojis in transactional emails or AI answers
- Don't approximate emoji with text emoticons (
:-),(*), etc.) —
same anti-pattern, different shape
Related
rules/lucide-icons-only— what to use instead of emojisrules/greyscale-palette— companion rule for colourrules/voice-and-self-reference— companion rule for tone