Design System — Live Preview
CSS Hub · Connect · Insights

Colors

Core Colors (Immutable)

#252B40
core-dark
#5558E3
core-purple

Neutral Palette

#F9FAFB
50
#F3F4F6
100
#e4e4eb
200
#D1D5DB
300
#9CA3AF
400
#6B7280
500
#4B5563
600
#252B40
900

Product Accent Palettes

Hub
#E6F7F8
light
#1BA8AD
primary
#14868A
mid
#0D7377
deep
Connect
#FCEEE9
light
#E07A5F
primary
#C45A42
deep
Insights
#FDF6E7
light
#D4A94A
mid
#C99A2D
primary
#8B6914
deep

Feedback Colors

#2D8B5E
success
#DC2626
error
#D97706
warning
#5558E3
info

Text Colors

Primary #252B40
12.4:1 on white
Body #0e101f
16.8:1
Secondary #5a5f6d
5.8:1
Muted var(--neutral-500)
4.7:1
Inverse #FFF

Typography

Font Families

Fraunces — Display
Page titles, hero headings, greeting text
DM Sans — Body
Everything: body, buttons, labels, nav, badges
DM Mono — Data
Data values, dates, amounts, code blocks
Inter — UI Inputs
Form inputs and textareas only

Type Scale — Live Specimens

display-lg 32px
display-md 26px
heading-xl 20px
heading-lg 16px
heading-md 14px
body-lg 16px — The quick brown fox jumps over the lazy dog
body-md 14px — The quick brown fox jumps over the lazy dog
body-sm 13px — The quick brown fox jumps over the lazy dog
caption 12px — Secondary helper text
overline 11px
data-md — $12,450.00 · 2026-03-23
input 14px — Placeholder text in form fields

Spacing

Base unit: 2px. All values from scale. No intermediate values.

sp-1
2px
sp-2
4px
sp-3
6px
sp-4
8px
sp-5
10px
sp-6
12px
sp-8
16px
sp-10
20px
sp-12
24px
sp-16
32px
sp-20
40px
sp-24
48px

Border Radius

xs 4px
sm 6px
md 8px
lg 12px
xl 16px
2xl 20px
full

Shadows & Elevation

shadow-sm
shadow-md
shadow-lg
shadow-xl

Focus Ring × 3 Products

Hub
Connect
Insights

Iconography

Icon set: Lucide (stroke-based, 24×24 viewBox, stroke-width 2). Все иконки используют currentColor и наследуют цвет родителя.

Использование: <svg class="ico"><use href="#i-name"/></svg>. Размеры: .ico-sm (14px), .ico-md (16px), .ico-lg (18px), .ico-xl (20px).

Sizes

14px (.ico-sm)
16px (.ico-md)
18px (.ico-lg)
20px (.ico-xl)
24px (default)

Product Accent Coloring

Hub
sparkles
file-text
search
home
settings
check-circle
Connect
sparkles
message
users
activity
pin
check-circle
Insights
sparkles
bar-chart
trending-up
database
download
check-circle

Full Icon Library

check
x
sparkles
alert-triangle
cloud-upload
arrow-up
chevron-right
file-text
search
message-circle
users
pin
bar-chart
trending-up
download
pen-tool
check-circle
x-circle
paperclip
settings
home
folder
activity
database
bell
lock
mail
plus
more
globe
edit
trash
copy
eye
filter
link
image
refresh
share
log-out
info
zap

Usage Rules

Decorative AI icons (avatar ring, step progress) = product accent
Don't mix icon sets — stick to Lucide only
Text-linked AI elements (badges, links) = core-purple #5558E3
Don't use emoji as icons — always use SVG from the sprite
Use currentColor so icons inherit parent color
Don't hardcode icon colors — use CSS variables

Buttons

Primary Button

bg: #252B40, text: #FFF. Shared across all products — no accent dependency.

Hub
default
hover
disabled
Connect
default
hover
disabled
Insights
default
hover
disabled

Secondary Button (Product Accent)

Hub
default
hover
disabled
Connect
default
hover
disabled
Insights
default
hover
disabled

Ghost Button (Product Accent)

Hub
default
hover
Connect
default
hover
Insights
default
hover

AI / Outline / Destructive (Shared)

AI
outline
destructive
disabled

Inputs

Text Input States × 3 Products

Hub
This field is required
Connect
This field is required
Insights
This field is required

Selection Controls

Hub

Checkboxes

Checked
Unchecked
Disabled

Radio

Selected
Unselected

Toggle

On
Off
Connect

Checkboxes

Checked
Unchecked

Radio

Selected
Unselected

Toggle

On
Off
Insights

Checkboxes

Checked
Unchecked

Radio

Selected
Unselected

Toggle

On
Off

Badges & Status Pills

Product Accent Badge × 3

Hub
Hub badge 3 files
Connect
Connect badge 5 members
Insights
Insights badge 12 rows

Feedback Badges (Shared)

Success Error Warning Info Neutral

Status Pills & Type Tags

Status pills (dot + label) and transaction type badges (debit red, credit green).

Hub
● Connected ● Pending ● Offline debit credit
Connect
● Connected ● Pending ● Offline debit credit
Insights
● Connected ● Pending ● Offline debit credit

Tabs

Hub
Connect
Insights

Cards

Hub
Q4 Financial Report.pdf
Uploaded 2 hours ago · 2.4 MB
PDF Processed
Connect
Design Review Room
12 members · Last active 5 min ago
Active 3 new
Insights
Revenue Analysis
Auto-generated · 148 data points
Complete AI

Toasts / Notifications

Transient notifications. Feedback toasts use semantic colors. Pill toasts use core-dark.

Feedback Toasts (Shared)

Hub
Success. File uploaded.
Error. Upload failed.
Warning. Storage limit.
Connect
Success. Message sent.
Error. Send failed.
Warning. Slow connection.
Insights
Success. Record added.
Error. Query failed.
Warning. Rate limit.

Pill Toast (Dark, Animated)

Bottom-center notification pill. Dark bg (core-dark), white text, green check icon. Slides up on show, auto-dismisses.

Hub
File uploaded
Connect
Reply posted
Insights
Record added

Modals

Hub
Connect
Insights

Drop Zone

Hub
Drop files here or browse
Connect
Drop files here or browse
Insights
Drop files here or browse

Topbar

Standard Topbar (core-dark)

Hub
Alani Hub — Documents
AO
Connect
Alani Connect — Rooms
AO
Insights
Alani Insights — Analysis
AO

AI Chat Topbar (core-purple)

Chat with Alani
Online

Bottom Nav (Mobile)

Hub
Home
Docs
Chat
More
Connect
Rooms
People
Chat
More
Insights
Analysis
Sources
Chat
More

Data Table

Hub
File Size Status
Report.pdf 2.4 MB Done
Data.csv 156 KB Processing
Notes.docx 89 KB Queued
Connect
Room Members Status
Design 12 Active
Dev 8 Quiet
Archive 0 Closed
Insights
Metric Value Δ
Revenue $12.4K +12%
Users 1,248 +5%
Churn 3.2% +0.4%

Skeleton Loading

Placeholder shimmers while content loads. Accent tint on shimmer animation varies by product.

Empty States

Hub
No documents yet
Upload a file to get started
Connect
No rooms found
Create a room to start collaborating
Insights
No analyses yet
Run your first analysis to see results

Chat Bubbles

User bubble bg = product accent · AI bubble bg = #f5f6f8 (shared) · AI avatar = accent-light bg + accent-primary icon

Hub
Hi! I can help you analyze your documents. What would you like to know?
Summarize the Q4 report please
Sure! Here's a summary of the key findings...
Connect
Welcome to the Design Review room! Ask me anything.
Show me the latest discussions
Here are the 3 most recent discussion threads...
Insights
Ready to analyze your data. What metrics interest you?
Show revenue by quarter
Revenue by Quarter
Q1 $42.1K
Q2 $48.3K
Q3 $51.7K
Q4 $59.2K

Chat Input Bar

Card layout: textarea top, toolbar bottom (attach left, send right). Disclaimer below card.

Hub
AI-generated content may be inaccurate. Verify important information.
Connect
AI-generated content may be inaccurate. Verify important information.
Insights
AI-generated content may be inaccurate. Verify important information.

Action Chips

Hub
Summarize
Find info
Draft
Connect
Start thread
Invite
Pin message
Insights
Run query
Show trends
Export CSV

Source Citations

Hub
1
Q4 Financial Report
report.pdf · page 12
2
Board Meeting Notes
notes.docx · section 3
Connect
1
Design Guidelines
shared in #design
2
Sprint Retrospective
shared in #dev
Insights
1
Revenue Dataset
revenue_2025.csv
2
User Analytics
analytics_q4.csv

AI States

AI Thinking / Loading

Hub
Analyzing documents...
Connect
Searching threads...
Insights
Running SQL query...

AI Step Progress

Показаны 4 состояния: Collapsed (свёрнутый), Expanded (развёрнутый со списком шагов), Success (результат найден), Error (ошибка + подсказки). Нажмите на заголовок для toggle.

State 1 — Collapsed (Loading)

Hub
Searching room files...
Checking recent uploads...
Connect
Searching threads...
Scanning room activity...
Insights
Querying data sources...
Executing SQL queries...

State 2 — Expanded (Step List)

Hub
Searching room files...
Scanning AI Safety room
Matching file names...
Checking recent uploads
Checking recent uploads...
Connect
Searching threads...
Scanning Design room
Filtering by date...
Filtering by date...
Insights
Querying data sources...
Connected to warehouse
Executing SQL query
Building chart...
Building chart...

State 3 — Success (File Found)

Hub
I found it!
PDF
AI Safety Guidelines v2.pdf
2.4 MB · Updated 3 days ago
What's in this file? Find another file
Connect
Found a match!
DOC
Brand Guidelines Q1.docx
1.1 MB · Shared by Alex
Summarize this Search again
Insights
Here's what I found:
MD
metrics-dashboard-spec.md
48 KB · Updated today
Extract key metrics Compare versions

State 4 — Error (Not Found + Suggestions)

Hub
Couldn't find the exact file. The room may not contain a matching document.
Search again Try different keywords
Did you mean?
PDF
AI Safety Overview.pdf
1.8 MB · 5 days ago
MD
safety-checklist.md
12 KB · 2 weeks ago
Connect
No matching threads found in this room.
Search again Browse all rooms
Did you mean?
DOC
Design Review Notes.docx
890 KB · Shared yesterday
Insights
Query returned no results. Check your date range or filters.
Adjust filters Try broader query
Did you mean?
PDF
Q4 Revenue Report.pdf
3.2 MB · Last month
MD
metrics-definitions.md
22 KB · 3 days ago

Chat Empty State

Hub
Good morning, Artem
How can I help you today?
Summarize a doc
Find info
Connect
Welcome to Connect
Start a conversation in any room
Browse rooms
Invite team
Insights
Ready to analyze
Ask a question about your data
Show metrics
Revenue trend

Avatars

Hub
A
24px
AO
32px
AO
40px
AI
Connect
A
24px
AO
32px
AO
40px
AI
Insights
A
24px
AO
32px
AO
40px
AI

Toggle Switch

Click toggles to interact. On state = product accent.

Hub
Auto-categorize
Flag for review
Notifications
Connect
Auto-categorize
Flag for review
Notifications
Insights
Auto-categorize
Flag for review
Notifications

User Menu / Profile Dropdown

Triggered from avatar click. Contains profile info, nav items, and logout. Logout item uses red-500.

Hub
Nicholas Mohnacky
Connect
Nicholas Mohnacky
Insights
Nicholas Mohnacky

Filter Panel & Tags

Expandable filter bar with removable filter tags. Tags use core-purple tint.

Hub
Filtered:
Meals & Entertainment
Jul 2021
3 records
Connect
Filtered:
Meals & Entertainment
Jul 2021
3 records
Insights
Filtered:
Meals & Entertainment
Jul 2021
3 records

Toolbar

Action toolbar with embedded search, buttons, separators, and spacer. Sits below tabs, above data.

Hub
Connect
Insights

Category Pills

Colored category labels for data rows. Each category has a unique pastel bg + dark text pair.

Hub
Meals & Entertainment Business Expenses Travel & Transport Software & SaaS Income
Connect
Meals & Entertainment Business Expenses Travel & Transport Software & SaaS Income
Insights
Meals & Entertainment Business Expenses Travel & Transport Software & SaaS Income

Row Actions

Hover-reveal action buttons on table rows. 26px square buttons with 1px border.

Hub
Hover actions:
Connect
Hover actions:
Insights
Hover actions:

Chat SQL Block

Syntax-highlighted code block inside AI chat. Dark bg (core-dark), keywords purple, functions blue, strings green, numbers orange.

Generated SQL
SELECT category, SUM(amount) AS total FROM bank_statements WHERE type = 'debit' ORDER BY total DESC LIMIT 5

Chat Result Table

Inline data results inside AI chat. Bar fill = product accent. Mono values right-aligned.

Hub
Spending by Category
Meals
$2,847
Software
$1,234
Travel
$967
Connect
Spending by Category
Meals
$2,847
Software
$1,234
Travel
$967
Insights
Spending by Category
Meals
$2,847
Software
$1,234
Travel
$967

Chat Bar Chart

Mini bar chart inside AI chat responses. Bars = product accent at 80% opacity.

Hub
Weekly Spend
W1
W2
W3
W4
W5
Connect
Weekly Spend
W1
W2
W3
W4
W5
Insights
Weekly Spend
W1
W2
W3
W4
W5

Chat Follow-ups

Suggestion chips after AI responses. Pill-shaped, hover = product accent border + light bg.

Hub
Connect
Insights

Schema Editor / Field List

Draggable field rows with grip handle, name, description, type pill, and required label.

Hub
transaction date required
The date the transaction was executed
date
amount required
Monetary value, negative for debits
number
category
Spending category (select, 6 options)
select (6)
Connect
transaction date required
The date the transaction was executed
date
amount required
Monetary value, negative for debits
number
category
Spending category (select, 6 options)
select (6)
Insights
transaction date required
The date the transaction was executed
date
amount required
Monetary value, negative for debits
number
category
Spending category (select, 6 options)
select (6)

Stepper

Multi-step wizard. Done steps = green-500, active = product accent, pending = border-default. Connected by lines.

Hub
Name
2
Description
3
Options
Connect
Name
2
Description
3
Options
Insights
Name
2
Description
3
Options

Document Job Cards

File processing queue. Status pills: completed (green), processing (purple + progress bar), queued (amber), failed (red).

Hub

statement_july.pdf

127 records extracted

Completed

statement_aug.pdf

Page 8 of 12...

Processing

bofa_q3.pdf

Waiting for slot

Queued

amex_july.pdf

Parsing failed

Failed
Connect

statement_july.pdf

127 records extracted

Completed

statement_aug.pdf

Page 8 of 12...

Processing

bofa_q3.pdf

Waiting for slot

Queued

amex_july.pdf

Parsing failed

Failed
Insights

statement_july.pdf

127 records extracted

Completed

statement_aug.pdf

Page 8 of 12...

Processing

bofa_q3.pdf

Waiting for slot

Queued

amex_july.pdf

Parsing failed

Failed

Onboarding Flow

First-run steps. Step number = product accent. Inactive steps at 50% opacity. Hover lifts border to accent.

Hub
Step 1

Create your first table

Name your table and describe what data it will hold.

Step 2

Define your fields

Set up columns for the data you want.

Step 3

Parse a document

Upload a PDF and extract data.

Connect
Step 1

Create your first table

Name your table and describe what data it will hold.

Step 2

Define your fields

Set up columns for the data you want.

Step 3

Parse a document

Upload a PDF and extract data.

Insights
Step 1

Create your first table

Name your table and describe what data it will hold.

Step 2

Define your fields

Set up columns for the data you want.

Step 3

Parse a document

Upload a PDF and extract data.

Activity / Threads

Thread list with type badges (Chat = gold, Agent = purple). Active item has accent-light bg + left border.

Hub
Chat Top spending analysis
You + Alani · 2h ago
Meals & Entertainment is your largest category at 48%...
Agent Email Monitor added 12 records
Email Monitor · 3h ago
Parsed chase_statement.pdf. 12 new transactions added.
Chat Duplicate audit
You + Alani · Yesterday
Found 3 potential duplicate sets across records...
Connect
Chat Top spending analysis
You + Alani · 2h ago
Meals & Entertainment is your largest category at 48%...
Agent Email Monitor added 12 records
Email Monitor · 3h ago
Parsed chase_statement.pdf. 12 new transactions added.
Chat Duplicate audit
You + Alani · Yesterday
Found 3 potential duplicate sets across records...
Insights
Chat Top spending analysis
You + Alani · 2h ago
Meals & Entertainment is your largest category at 48%...
Agent Email Monitor added 12 records
Email Monitor · 3h ago
Parsed chase_statement.pdf. 12 new transactions added.
Chat Duplicate audit
You + Alani · Yesterday
Found 3 potential duplicate sets across records...

Settings Layout

Settings sections with label/value rows. Uses toggle switches for boolean settings.

Hub

Account

Email
nicholas@bundleiq.com
Role
Admin

Notifications

Email alertsGet notified when agents run
In-app notifications
Connect

Account

Email
nicholas@bundleiq.com
Role
Admin

Notifications

Email alertsGet notified when agents run
In-app notifications
Insights

Account

Email
nicholas@bundleiq.com
Role
Admin

Notifications

Email alertsGet notified when agents run
In-app notifications

Organization Card

Organization display with avatar. Active org gets accent border + accent-light bg.

Hub
bIQ

bundleIQ

3 members · Pro plan

AC

Acme Corp

12 members · Enterprise

Connect
bIQ

bundleIQ

3 members · Pro plan

AC

Acme Corp

12 members · Enterprise

Insights
bIQ

bundleIQ

3 members · Pro plan

AC

Acme Corp

12 members · Enterprise

Slide Panel / Drawer

Slide-out panel from right. Used for Chat, Add Record, Parse Document. Header with title + badge + close.

Hub

Chat

847 records
Query your data
Ask questions in natural language.
Connect

Chat

847 records
Query your data
Ask questions in natural language.
Insights

Chat

847 records
Query your data
Ask questions in natural language.

Progress Bar

Linear progress with percentage. Fill gradient = product accent. Completed state = green-500.

Hub
Extracting pages...67%
Upload complete100%
Connect
Extracting pages...67%
Upload complete100%
Insights
Extracting pages...67%
Upload complete100%

Form Groups

Standard form pattern: label + input + optional hint. Focus state = core-purple ring. Works with input, textarea, select.

Hub
Alani uses this description to understand what to extract.
Connect
Alani uses this description to understand what to extract.
Insights
Alani uses this description to understand what to extract.

Alani & bundleIQ Logo

Wave mark + wordmark. Three backgrounds: white, core-purple, core-dark. Plus app icon variants and usage rules.

Alani Wordmark

Official "Alani" wordmark with ® trademark. Text uses brand typography, core-dark on light backgrounds.

Product Wordmarks

"Alani" in core-dark + product name in accent color. Each product has its own official wordmark SVG.

Hub
Connect
Insights
Hub on dark
Connect on dark
Insights on dark

bundleIQ Wordmark

Wave icon + "bundleIQ" in DM Sans Bold. Lowercase "bundle", uppercase "IQ". With ® trademark circle.

App Icon

Rounded square with Teal→Purple gradient. White wave mark centered. Light variant = white bg + gradient wave.

Dark
Light
48px
48px

Wave Mark (Standalone)

Used alone when the brand is already established (favicons, loading states, compact UIs).

Logo Selection Guide (Per Product)

Which logo variant to use depending on context, background, and product. The key rule: if the background is product-colored, drop the product name from the wordmark.

Context Background Hub Connect Insights
App header / Navbar White / Light Wave + "Alani Hub" Wave + "Alani Connect" Wave + "Alani Insights"
Banner / Hero Product accent color Wave + "Alani" (no "Hub") Wave + "Alani" (no "Connect") Wave + "Alani" (no "Insights")
Event / Print / QR Any Wave + "Alani" + URL Wave + "Alani" + URL Wave + "Alani" + URL
Dark background core-dark / core-purple White wordmark + white wave mark. Product name OK if contrast is sufficient.
Favicon / Loading Any Wave mark only (no text)
Email header White Wave + "Alani Hub" Wave + "Alani Connect" Wave + "Alani Insights"
Company-level Any bundleIQ full logo (wave + "bundleIQ®")

Accent Background Rule

When the background uses the product accent color, the product name in the wordmark becomes invisible. Use the parent "Alani" wordmark instead.

✓ Hub — use "Alani" on teal bg
✓ Connect — use "Alani" on coral bg
✓ Insights — use "Alani" on gold bg
✗ "Hub" invisible on teal
✗ "Connect" invisible on coral
✗ "Insights" invisible on gold

General Rules

DO
Use "Alani" for the product brand, "bundleIQ" for the company brand
Wordmark font: DM Sans Bold (var(--font-body), weight 700)
Maintain min 12px clearspace around the logo mark
On product-colored backgrounds, use Wave + "Alani" (no product name)
On white/light backgrounds, use full product wordmark (e.g. "Alani Connect")
App icon gradient direction: 135deg (teal top-left → purple bottom-right)
Use the URL (e.g. alaniconnect.com) to reinforce product context when name is omitted
DON'T
Don't use Fraunces for the wordmark — it's DM Sans Bold only
Don't place product-colored text on matching product-colored background
Don't place logo on busy/patterned backgrounds
Don't rotate or skew the wave mark
Don't change the gradient direction or colors
Don't omit the ® symbol from the Alani wordmark
Don't mix product wordmarks (e.g. "Alani Hub" on a Connect page)

Tooltip

Contextual hint on hover. Dark background, white text. Centered above trigger by default.

Hub
Hover me
Upload files to workspace
3 files selected
Connect
Hover me
Join this room
5 members online
Insights
Hover me
Run extraction job
12 fields mapped

Alert / Inline Message

Persistent inline feedback. Four semantic variants: info, success, warning, error. Icon + text. Not dismissible by default.

Hub
Info: Your workspace syncs every 5 minutes.
Done: All files uploaded successfully.
Warning: Approaching storage limit (90%).
Error: Failed to connect to API.
Connect
Info: Room is read-only for guests.
Done: Invitation sent to 3 members.
Warning: Moderation queue has 12 items.
Error: Could not load thread.
Insights
Info: Schema auto-detected from CSV.
Done: Extraction completed — 847 records.
Warning: 3 fields have low confidence.
Error: Job timed out after 30s.

Divider / Separator

Horizontal separators for content grouping. Plain line or labeled variant.

Hub
Section A content
Section B content
OR
Section C content
Connect
Messages
Pinned items
Today
New messages
Insights
Input fields
Output schema
Advanced
Custom rules

Accordion / Collapsible

Expandable content sections. Used in FAQ, settings, filters. Chevron rotates on open.

Hub
How do I upload files?
Drag and drop files into the workspace or click the upload button in the toolbar.
What file formats are supported?
How do I share a workspace?
Connect
Room settings
Configure room visibility, invite permissions, and notification preferences.
Moderation rules
Integrations
Insights
Extraction settings
Set confidence threshold, output format, and retry policy for extraction jobs.
Schema mapping
Export options

Email Templates

Transactional email templates — mention notifications, activity digests. Product-branded header, card-based body, accent CTA, subtle footer. Inline-safe — all styles map to design tokens.

Mention Notification

Triggered when a user is @mentioned in a room/thread. Shows sender, room context, message excerpt, and a CTA to view the conversation.

Hub
🔔

Hi Alex,

Guess who's thinking about you?
DK
Dana KimMentioned you
Room · Q1 Planning
Post · Budget review
"Hey @Alex, can you pull the latest numbers from the analytics dashboard? We need them for the board deck."

View full message to read more
View the Conversation
Join the conversation in just one click

Your community wants you in on this.

Great conversations happen when brilliant minds like yours join in.

Connect
🔔

Hi Jordan,

Guess who's thinking about you?
MR
Maria RuizMentioned you
Room · Design Critiques
Post · Homepage v2 feedback
"@Jordan your mockup nails the spacing — one thought on the hero section contrast though."

View full message to read more
View the Conversation
Join the conversation in just one click

Your community wants you in on this.

Don't leave them waiting. Great conversations happen when brilliant minds like yours join in.

Insights
🔔

Hi Sam,

Guess who's thinking about you?
TL
Tom LeeMentioned you
Room · Data Pipeline
Post · Schema migration
"@Sam, the new extraction job surfaced 3 anomalies in the Q4 dataset — worth reviewing before we publish."

View full message to read more
View the Conversation
Join the conversation in just one click

Your community wants you in on this.

Don't leave them waiting. Great conversations happen when brilliant minds like yours join in.

Template Variables

Handlebars-style placeholders used across all email templates:

Variable Description Example
{{user_name}} Recipient first name Alex
{{agent_name}} User who mentioned Dana Kim
{{room_name}} Room / channel name Q1 Planning
{{post_title}} Post or thread title Budget review
{{conversation_summary}} Message excerpt "Can you pull the latest..."
{{thread_url}} Deep link to conversation https://app.alani.so/...
{{unsubscribe_url}} Unsubscribe link https://app.alani.so/unsub/...

Guidelines

✓ DO
  • Use product accent color for header bg, CTA, badge, links
  • Keep body text in core-dark (#252B40)
  • Round card corners at 20px, mention block at 16px
  • Include unsubscribe link in footer — legally required
  • Use system font stack for email clients
  • Inline all styles for maximum compatibility
✗ DON'T
  • Use core-purple as accent — always product-specific
  • Set font-size below 13px for body content
  • Rely on CSS custom properties in production emails
  • Use external web fonts (no Google Fonts in email)
  • Exceed 640px container width
  • Skip alt text on images