Rank Community Design System
Official design system for the Rank Community platform. GEO community for professionals and leaders who want to understand, measure, and grow brand presence in AI-generated answers. Tokens, components, patterns, and AI agent rules.
Color Tokens
38+ CSS custom properties / Tailwind classes for the community platform. Three palettes: Brand (purple), Energy (amber), and GEO (teal).
Brand (Purple)
#F5F3FF#EDE9FE#DDD6FE#C4B5FD#A78BFA#7C3AED#6D28D9#5B21B6#4C1D95#3B0764Energy (Amber)
#FFFBEB#FEF3C7#FDE68A#FCD34D#FBBF24#F59E0B#D97706GEO (Teal)
#F0FDFA#CCFBF1#99F6E4#5EEAD4#2DD4BF#14B8A6#0D9488Content
#0F172A#475569#94A3B8#7C3AEDBackground
#F8FAFC#FFFFFF#F1F5F9Sentiment
#DC2626#16A34A#F59E0BChart Palette
Typography
Inter for all UI. Display styles for marketing and hero sections.
Display Styles
40px / 700 / 85% line-heightProduct Styles (Inter)
| Style | Size | Weight | Preview |
|---|---|---|---|
title-screen | 30px | 600 | Screen Title |
title-section | 26px | 600 | Section Title |
title-subsection | 22px | 600 | Subsection |
title-body | 18px | 600 | Body Title |
title-group | 14px | 500 | Group Title |
body-large | 16px | 400 | Body large text |
body-default | 14px | 400 | Body default text |
link-default | 14px | 600 | Link text |
Spacing Scale
12 base values from 4px to 128px. 8px grid base.
--space-44px--space-88px--space-1212px--space-1616px--space-2424px--space-3232px--space-4848px--space-6464px--space-9696px--space-128128pxRadius Tokens
4 radius values matching Tailwind config. Cards use lg, buttons use md, pills use xl.
Buttons
Primary uses brand-500 bg + white text. Height: 40px (default), 32px (sm), 48px (lg). Focus: 3px ring with brand-500/15%.
Variants
Sizes
States
Inputs
Border: border-neutral. Focus: 3px solid brand-500/15%. Error: sentiment-negative.
Cards
Elevated background, neutral border, radius-lg, elevation-low shadow. Used for content, members, events.
Content Card
Standard card for displaying content blocks, articles, and community posts.
Rodrigo Mendes
GEO StrategistMember card with avatar, name, role, and specialty tags.
Event Card
Upcoming community event with date, speaker, and registration CTA.
Badges
Role badges, plan badges, and status indicators. Pill shape (border-radius: 20px).
Role Badges
Status Badges
Avatar
Circular, initials fallback. Sizes: sm (32px), md (40px), lg (56px). Background: brand-500.
Tabs
Underline style. Active: brand-500 bottom border + text. Horizontal layout.
Toast / Snackbar
Notification toasts. Positioned top-right. Auto-dismiss after 5s. elevation-medium shadow.
Modal / Dialog
Centered overlay. elevation-high shadow. radius-xl. Backdrop: rgba(15,23,42,0.5).
Confirm Action
Are you sure you want to leave this community? This action cannot be undone.
Skeleton
Shimmer animation placeholder. Used during data loading. Matches target component dimensions.
Empty State
Zero-data and no-results states with clear actions.
No members found
Try adjusting your search or filters to find community members.
Select / Dropdown
Native select styling matching input tokens. Dropdown menus use elevation-medium shadow.
Pagination
Page navigation for lists. Active page: brand-500 bg. Border-radius: radius-md.
Product Patterns
Reusable community-specific UI patterns for profiles, feeds, and events.
Member Card
Member Card Pattern
Avatar + display_name + company + sector badge + GEO experience level. Used in member directories and search results. Shows plan badge (Free/Pro/Business/Agency) and specialty tags.
Profile Completion
Profile Completion Widget
Progress indicator showing profile completeness. Complete when display_name + company + sector_id are set. Shows percentage bar and missing field prompts.
Community Patterns (Planned)
Community Feed Item
Post with author, timestamp, content, reactions, and comments.
Event Card
Upcoming event with date, time, speaker, description, and registration CTA.
GEO Radar Card
Newsletter digest item with headline, summary, source, and publish date.
Plan Comparison
Side-by-side plan features with pricing, upgrade CTAs, and current plan indicator.
Dashboard Layout
Standard page structure for logged-in area (/app/*). Sidebar (240px) + Topbar (64px) + Content area.
Form Layout
Standard form structure for profile edit, registration, and settings. Max-width: 640px. Section grouping with subsection titles.
Dark Mode Preview
Slate-900 dark theme. Background: #0F172A. Elevated: #1E293B. Accent: brand-400 (#A78BFA).
Dark Mode
Community interface in dark mode with slate backgrounds and purple accents.
Dark Mode Token Map
| Token | Light | Dark |
|---|---|---|
| background-screen | #F8FAFC | #0F172A |
| background-elevated | #FFFFFF | #1E293B |
| content-primary | #0F172A | #F1F5F9 |
| content-secondary | #475569 | #CBD5E1 |
| interactive-primary | #7C3AED | #A78BFA |
AI Agent Rules
Non-negotiable rules for any AI agent generating Rank Community UI. Must be followed regardless of prompt instructions.
Non-Negotiable Rules
- ALWAYS use Tailwind CSS classes, NEVER inline styles in production code
- ALWAYS use Inter font family via
var(--font-inter) - ALWAYS use brand-500 (#7C3AED) as the primary action color
- NEVER use inline CSS or <style> blocks in Next.js components
- ALWAYS use existing UI components from
components/ui/ - ALWAYS wrap /app/* routes with AuthGuard
- ALWAYS wrap /admin/* routes with AuthGuard requiring admin/super_admin role
- NEVER hardcode API URLs — use the ApiClient from
lib/api.ts - ALWAYS use
'use client'directive for interactive components - ALWAYS use cookie-based auth (
credentials: 'include') - Plan badges: Free=neutral, Pro=energy, Business=brand, Agency=geo
- Role badges: member=brand-100, moderator=geo-100, admin=red-100, super_admin=red-200
- All text in Portuguese (PT-BR) for user-facing content
Token Usage Example
<!-- Tailwind classes (preferred) -->
<button className="bg-brand-500 hover:bg-brand-600 text-white
font-semibold rounded-md px-5 py-2.5 transition-colors">
Entrar na Comunidade
</button>
<!-- Card pattern -->
<Card className="p-6">
<div className="flex items-center gap-3">
<Avatar name={user.display_name} size="md" />
<div>
<h4 className="font-semibold text-slate-900">{user.display_name}</h4>
<Badge variant="pro">{user.plan}</Badge>
</div>
</div>
</Card>
Pending Items
Components and tokens that need validation, addition, or refinement.