Brand & design guidelines.
Daktar AI is built for personal healthcare. This page is the single source of truth for brand, voice, color, type, components, and language rules.
The brand
Daktar AI should feel like a calm clinic, not a chatbot or marketplace. The AI organizes care context; a licensed doctor signs off when clinical care is needed.
A medical plus mark in brand blue with an orange care-dot. Never separate mark from wordmark in product chrome.
- Brand name: Daktar AI. Use this name across all user-facing copy. Internal code identifiers (package names, API schemas) may still reference legacy names — do not change those.
- Wordmark: ".ai" is always text-blue.
- Care-dot is always top-right — never remove it.
Voice & principles
Patients come scared, busy, or both. We speak the way a senior doctor would speak to their family — clear, kind, never alarmist.
Doctor-grade, never chatbot-cute
No emojis except a single greeting wave. No exclamation marks in clinical content. No "Oops!" — use "Something went wrong. Try again."
Language should feel natural
Write in the user's language without presenting language as a feature. Bengali numerals appear in Bangla mode. Code-switching is supported.
Always show the human
Every AI output names the doctor who will review it. Status is always visible: "Awaiting Dr. Rahman", "Signed by Dr. Rahman · BMDC A-89412".
Focus on the patient, not the price
Public, marketing, and onboarding surfaces lead with how we help — never with money. Pricing only appears where it operationally must (legal terms, doctor settings, payment screens).
Red flags route to humans
Chest pain, heavy bleeding, signs of stroke — the chat surfaces 999, not a triage form.
Color system
Warm off-white base for calm. BMDC blue is trust. Orange is the care-dot. Green = signed. Red = red flags only.
Type scale
Inter for everything. JetBrains Mono for clinical metadata, IDs, timestamps. Noto Sans Bengali for Bangla.
Core components
These primitives are shared across every lane. Reuse them before writing anything new.
- @/components/ui/button
primary, orange, ghost, outline, subtle · sm/md/lg
- @/components/ui/card
default, soft, filled, outlined · with optional CardHeader
- @/components/ui/eyebrow
mono uppercase tracked label with leading dot · blue / orange / ink / muted
- @/components/ui/chip
pill chip · neutral / blue / orange / green / red · active state
Language rules
Language should not feel like a feature or a barrier. Server components only; locale read from cookie.
readLocale() → getMessages(locale)
Every page reads the locale on the server via readLocale() and pulls strings from getMessages(locale). No client locale hook. No flicker.
Token cross-reference
Source: packages/design-tokens/tokens.json — built into iOS Tokens.swift and web tokens.ts. Tailwind utilities read from globals.css @theme.
bg-bg / bg-surface / bg-surface-2 / text-ink / text-ink-soft / text-ink-mute / border-line · bg-blue / text-blue / bg-blue-dark / bg-blue-soft / bg-orange / bg-orange-soft / bg-green · rounded-md / rounded-lg / rounded-xl / rounded-pill · shadow-sm / shadow-md


