Back to .md Directory

Open Ticket Design System

| # | Name | Domain Pattern | Rationale | Tagline Suggestion |

May 2, 2026
0 downloads
0 views
ai
View source

Open Ticket Design System

Comprehensive Brand & Design Documentation


1. BRAND IDENTITY SYSTEM


1A. NAMING STRATEGY

Recommended Names (12 Options)

#NameDomain PatternRationaleTagline Suggestion
1Gathergather-tix.orgSimple, warm, community-focused"Bring people together"
2OpenPassopenpass.ioOpen source + ticketing clarity"Open source, open doors"
3Commonscommonstix.orgShared resource, community asset"Ticketing for everyone"
4EventKiteventkit.ioToolkit metaphor, practical"Everything you need to host"
5LibreTixlibretix.orgLibre/open source emphasis"Free as in freedom"
6Hearthhearth.eventsWarm, welcoming, gathering place"Where events come home"
7Ticketwiseticketwise.orgSmart, approachable, practical"Smart ticketing made simple"
8Crowdcrowd-tix.ioCommunity, people-focused"Powered by your community"
9Assemblyassemblytix.orgComing together, democratic"Assemble your audience"
10SmallHallsmallhall.ioIntimate, non-corporate"Big events, small footprint"
11Patchworkpatchwork.eventsCommunity-built, collaborative"Stitched together by you"
12Doorwaydoorway.ioAccess, opportunity, welcome"Open the door to your event"

Domain Availability Notes

Recommended Priority Order:

  1. gather-tix.org - Highly available, warm, memorable
  2. openpass.io - Tech-forward, clear purpose
  3. commonstix.org - Strong community message
  4. eventkit.io - Practical, developer-friendly
  5. libretix.org - Clear open source positioning

Naming Principles Applied:

  • Avoided: TicketMaster, Eventbrite variations (trademark risk)
  • Avoided: Corp, Inc, Pro suffixes (too corporate)
  • Preferred: .org for non-profit alignment, .io for tech credibility
  • Length: All under 12 characters (memorable, typeable)

1B. LOGO CONCEPTS

Concept 1: The Gathering Circle

Symbol: Interlocking arcs forming a circle with a ticket stub silhouette Meaning: Community coming together, inclusivity, shared experience Wordmark: Clean sans-serif, lowercase "gather" Color Variations:

  • Light: Primary blue (#2563eb) on white
  • Dark: Primary blue (#60a5fa) on dark

Concept 2: The Open Door

Symbol: Stylized door frame with ticket shape as the opening Meaning: Accessibility, welcome, opportunity Wordmark: Friendly rounded sans-serif Color Variations:

  • Light: Secondary coral (#f43f5e) accent
  • Dark: Soft coral (#fb7185) on dark

Concept 3: The Connected Nodes

Symbol: Three dots connected by lines, forming a ticket shape Meaning: Network, community, connection Wordmark: Modern geometric sans-serif Color Variations:

  • Light: Gradient from primary to secondary
  • Dark: Solid primary with glow effect

Concept 4: The Ticket Leaf

Symbol: Ticket stub with leaf/organic elements Meaning: Growth, natural, sustainable (lightweight) Wordmark: Slightly organic, friendly Color Variations:

  • Light: Success green (#22c55e) primary
  • Dark: Soft green (#4ade80) on dark

Concept 5: The Simple Mark

Symbol: Minimalist "t" shape that doubles as a ticket Meaning: Simplicity, clarity, focus Wordmark: Bold, confident sans-serif Color Variations:

  • Light: Neutral dark (#171717) for versatility
  • Dark: White (#ffffff) for contrast

Favicon Approaches

SizeApproachDescription
16x16Minimal markSimple geometric shape
32x32Symbol detailSimplified logo symbol
180x180App iconFull symbol with padding
192x192PWA iconSymbol on brand background
512x512Splash screenFull logo with wordmark

Accessibility Considerations

  • Color Independence: Logo works in single color (black/white)
  • Minimum Size: 24px height for readability
  • Contrast: 4.5:1 minimum against all backgrounds
  • Animation: No essential information in motion
  • Screen Readers: Logo marked as decorative or with aria-label

1C. BRAND VOICE & TONE

Brand Personality Traits (7)

  1. Welcoming - Like a friendly neighbor, not a corporate gatekeeper
  2. Helpful - Anticipates needs, offers solutions proactively
  3. Transparent - Clear about limitations, honest about capabilities
  4. Empowering - Builds confidence, celebrates user success
  5. Approachable - No jargon, no intimidation, human language
  6. Reliable - Consistent, trustworthy, there when needed
  7. Community-minded - "We" not "us vs them", celebrates collective success

Voice Characteristics

CharacteristicDoDon't
Clear"Your tickets are ready""Ticket issuance has been completed"
Warm"We're here to help""Contact support for assistance"
Actionable"Download your tickets""Ticket download functionality available"
Personal"Your event""The user's event"
Encouraging"Great job setting up!""Setup completed successfully"

Tone by Context

Marketing / Homepage

  • Tone: Enthusiastic, inspiring, confident
  • Example: "Create unforgettable events without the headache. Your community deserves better ticketing."

Onboarding

  • Tone: Encouraging, guiding, patient
  • Example: "Let's get your first event set up. It'll only take a few minutes."

Success States

  • Tone: Celebratory, warm, specific
  • Example: "Tickets sent! 47 people are excited to join your event."

Error Messages

  • Tone: Helpful, apologetic, solution-focused
  • Example: "We couldn't save that change. Let's try again, or you can refresh the page."

Loading States

  • Tone: Reassuring, transparent
  • Example: "Sending tickets to your guests... This usually takes about 30 seconds."

Empty States

  • Tone: Inviting, guiding, optimistic
  • Example: "No events yet. Your first event is going to be amazing—let's create it!"

Confirmation Emails

  • Tone: Warm, clear, exciting
  • Example: "You're all set! We've got your spot reserved. Here's everything you need to know."

Inclusive Language Guidelines

Gender-Neutral:

  • Use: "they/them" for unknown individuals
  • Use: "everyone", "folks", "team" instead of "guys"
  • Avoid: Assuming gender in examples

Ability-Inclusive:

  • Use: "accessible seating" not "handicapped seating"
  • Use: "screen reader friendly" not "for blind users"
  • Avoid: Defining people by ability

Culturally Sensitive:

  • Use: Universal date formats (ISO 8601: YYYY-MM-DD)
  • Use: Time zones explicitly stated
  • Avoid: Cultural idioms that don't translate

Non-Profit Sector Alignment:

  • Use: "mission", "impact", "community"
  • Use: "supporters" not "customers"
  • Use: "fundraiser" not "sale"
  • Avoid: Commercial/retail language

2. DESIGN TOKEN SYSTEM


2A. COLOR PALETTE

Primary Palette (Blue - Trust & Reliability)

TokenHexRGBUsageContrast on White
--color-primary-50#eff6ffrgb(239,246,255)Light backgroundsN/A
--color-primary-100#dbeafergb(219,234,254)Hover statesN/A
--color-primary-200#bfdbfergb(191,219,254)Borders, accentsN/A
--color-primary-300#93c5fdrgb(147,197,253)Disabled statesN/A
--color-primary-400#60a5fargb(96,165,250)Secondary accents3.1:1
--color-primary-500#3b82f6rgb(59,130,246)Primary actions4.5:1 ✓
--color-primary-600#2563ebrgb(37,99,235)Primary buttons5.8:1 ✓
--color-primary-700#1d4ed8rgb(29,78,216)Hover states7.2:1 ✓
--color-primary-800#1e40afrgb(30,64,175)Text8.9:1 ✓
--color-primary-900#1e3a8argb(30,58,138)Headings11.2:1 ✓
--color-primary-950#172554rgb(23,37,84)Dark emphasis15.8:1 ✓

Secondary Palette (Coral - Energy & Action)

TokenHexRGBUsageContrast on White
--color-secondary-500#f43f5ergb(244,63,94)CTA buttons5.2:1 ✓
--color-secondary-600#e11d48rgb(225,29,72)CTA hover6.4:1 ✓
--color-secondary-700#be123crgb(190,18,60)Emphasis8.1:1 ✓

Neutral Grays (Balanced, Warm)

TokenHexRGBUsageContrast on White
--color-gray-50#fafafargb(250,250,250)Page backgroundN/A
--color-gray-100#f5f5f5rgb(245,245,245)Card backgroundsN/A
--color-gray-200#e5e5e5rgb(229,229,229)BordersN/A
--color-gray-300#d4d4d4rgb(212,212,212)Disabled bordersN/A
--color-gray-400#a3a3a3rgb(163,163,163)Placeholder text3.0:1
--color-gray-500#737373rgb(115,115,115)Secondary text4.6:1 ✓
--color-gray-600#525252rgb(82,82,82)Body text7.0:1 ✓
--color-gray-700#404040rgb(64,64,64)Strong text9.2:1 ✓
--color-gray-800#262626rgb(38,38,38)Headings12.6:1 ✓
--color-gray-900#171717rgb(23,23,23)Primary text16.0:1 ✓
--color-gray-950#0a0a0argb(10,10,10)Maximum contrast19.5:1 ✓

Semantic Colors

Success (Green)

TokenHexContrast on WhiteContrast on Dark
--color-success-500#22c55e4.5:1 ✓-
--color-success-600#16a34a5.8:1 ✓-
--color-success-400#4ade80-9.8:1 ✓

Warning (Amber)

TokenHexContrast on WhiteContrast on Dark
--color-warning-600#d977064.6:1 ✓-
--color-warning-500#f59e0b3.1:1-
--color-warning-400#fbbf24-12.1:1 ✓

Error (Red)

TokenHexContrast on WhiteContrast on Dark
--color-error-600#dc26265.6:1 ✓-
--color-error-500#ef44444.5:1 ✓-
--color-error-400#f87171-8.4:1 ✓

Info (Blue)

TokenHexContrast on WhiteContrast on Dark
--color-info-600#0284c75.4:1 ✓-
--color-info-500#0ea5e93.9:1-
--color-info-400#38bdf8-10.2:1 ✓

Event/Category Colors (Colorblind-Safe)

CategoryColorHexSafe for DeuteranopiaSafe for Protanopia
GeneralBlue#2563eb
WorkshopGreen#16a34a
ConferencePurple#9333ea
SocialOrange#ea580c
FundraiserCyan#0891b2
PerformancePink#db2777
SportsLime#65a30d
EducationViolet#7c3aed

Colorblind Safety Strategy:

  • Never rely on color alone for critical information
  • Always pair with icons, labels, or patterns
  • Test with simulators (Coblis, Color Oracle)

Dark Mode Color Mapping

Semantic TokenLight ModeDark Mode
--bg-primary#ffffff#0a0a0a
--bg-secondary#fafafa#171717
--text-primary#171717#fafafa
--text-secondary#525252#a3a3a3
--border-default#e5e5e5#404040
--text-link#2563eb#60a5fa

2B. TYPOGRAPHY

Font Family Stack

--font-sans: 'Inter', 'system-ui', '-apple-system', 'BlinkMacSystemFont', 
             'Segoe UI', 'Roboto', 'Helvetica Neue', 'Arial', sans-serif;
--font-mono: 'JetBrains Mono', 'Fira Code', 'SF Mono', 'Monaco', 
             'Inconsolata', 'Roboto Mono', monospace;

Font Loading Strategy:

  • Inter: Google Fonts or self-hosted
  • Fallback: System fonts for instant render
  • Font-display: swap for performance

Type Scale

TokenSizeLine HeightLetter SpacingUsage
--font-size-xs12px1.50.01emCaptions, timestamps
--font-size-sm14px1.50Body small, labels
--font-size-base16px1.50Body text (default)
--font-size-lg18px1.5-0.01emLead paragraphs
--font-size-xl20px1.4-0.01emH6, small headings
--font-size-2xl24px1.3-0.01emH5
--font-size-3xl30px1.2-0.02emH4
--font-size-4xl36px1.2-0.02emH3
--font-size-5xl48px1.1-0.02emH2
--font-size-6xl60px1.1-0.03emH1 (desktop)
--font-size-7xl72px1.0-0.03emHero (desktop)

Font Weights

TokenValueUsage
--font-weight-normal400Body text
--font-weight-medium500Labels, emphasis
--font-weight-semibold600Headings, buttons
--font-weight-bold700Strong emphasis

Typography Patterns

Headings:

  • Weight: 600 (semibold)
  • Line-height: Tight (1.1-1.2)
  • Letter-spacing: Negative for large sizes

Body Text:

  • Weight: 400 (normal)
  • Line-height: Normal (1.5)
  • Max-width: 65ch for readability

Labels & UI:

  • Weight: 500 (medium)
  • Size: sm (14px) or base (16px)
  • Uppercase with wide tracking for buttons

2C. SPACING SYSTEM

Base Unit: 4px

All spacing values are multiples of 4px for consistency.

Spacing Scale

TokenValuePixelsUsage
--space-000No spacing
--space-10.25rem4pxTight gaps
--space-20.5rem8pxIcon gaps
--space-30.75rem12pxSmall padding
--space-41rem16pxDefault gap
--space-51.25rem20pxMedium padding
--space-61.5rem24pxCard padding
--space-82rem32pxSection gaps
--space-102.5rem40pxLarge gaps
--space-123rem48pxSection padding
--space-164rem64pxLarge sections
--space-205rem80pxHero spacing
--space-246rem96pxMajor sections

Semantic Spacing

TokenValueUsage
--space-gap-xs4pxTight component gaps
--space-gap-sm8pxDefault component gaps
--space-gap-md16pxForm field gaps
--space-gap-lg24pxCard content gaps
--space-gap-xl32pxSection content gaps
--space-section-sm48pxSmall section padding
--space-section-md64pxMedium section padding
--space-section-lg96pxLarge section padding

Component Spacing

Buttons:

  • Height: sm (32px), md (40px), lg (48px)
  • Padding X: sm (12px), md (16px), lg (24px)

Inputs:

  • Height: sm (32px), md (40px), lg (48px)
  • Padding X: 12px (consistent)

Cards:

  • Padding: sm (16px), md (24px), lg (32px)
  • Gap: 16px between elements

2D. BORDERS & RADIUS

Border Widths

TokenValueUsage
--border-width-00No border
--border-width-11pxDefault borders
--border-width-22pxFocus states
--border-width-44pxActive states

Border Radius Scale

TokenValueUsage
--radius-none0Sharp corners
--radius-sm2pxSubtle rounding
--radius-md4pxSmall elements
--radius-lg8pxButtons, inputs
--radius-xl12pxCards, panels
--radius-2xl16pxModals, dialogs
--radius-3xl24pxLarge containers
--radius-full9999pxPills, badges

Radius Usage Patterns

  • Buttons: --radius-lg (8px)
  • Inputs: --radius-lg (8px)
  • Cards: --radius-xl (12px)
  • Modals: --radius-2xl (16px)
  • Badges: --radius-full (pill)
  • Avatars: --radius-full (circle)

2E. SHADOWS

Elevation System

TokenShadowElevationUsage
--shadow-nonenone0Flat elements
--shadow-xs0 1px 2px rgba(0,0,0,0.05)1Subtle depth
--shadow-sm0 1px 3px rgba(0,0,0,0.1)2Cards default
--shadow-md0 4px 6px rgba(0,0,0,0.1)3Hover states
--shadow-lg0 10px 15px rgba(0,0,0,0.1)4Dropdowns
--shadow-xl0 20px 25px rgba(0,0,0,0.1)5Modals
--shadow-2xl0 25px 50px rgba(0,0,0,0.25)6Toasts

Focus Shadows

TokenShadowUsage
--shadow-focus0 0 0 3px rgba(59,130,246,0.5)Default focus
--shadow-focus-error0 0 0 3px rgba(239,68,68,0.5)Error focus
--shadow-focus-success0 0 0 3px rgba(34,197,94,0.5)Success focus

Dark Mode Shadows

Dark mode uses slightly stronger shadows with reduced opacity:

  • Multiply opacity by 1.5x
  • Keep shadows subtle (dark UI has inherent depth)

2F. ANIMATION

Duration Scale

TokenValueUsage
--duration-instant0msNo animation
--duration-fast100msMicro-interactions
--duration-normal150msHover states
--duration-slow200msTransitions
--duration-slower300msPage transitions
--duration-slowest500msComplex animations

Easing Functions

TokenCurveUsage
--ease-linearlinearContinuous animations
--ease-incubic-bezier(0.4,0,1,1)Exit animations
--ease-outcubic-bezier(0,0,0.2,1)Enter animations
--ease-in-outcubic-bezier(0.4,0,0.2,1)Standard transitions
--ease-bouncecubic-bezier(0.68,-0.55,0.265,1.55)Playful elements
--ease-springcubic-bezier(0.175,0.885,0.32,1.275)Elastic effects

Transition Presets

--transition-all: all 150ms cubic-bezier(0.4, 0, 0.2, 1);
--transition-colors: color, background-color, border-color 150ms ease-in-out;
--transition-opacity: opacity 150ms ease-in-out;
--transition-transform: transform 200ms ease-out;

Animation Guidelines

  • Purposeful: Every animation should serve a purpose
  • Subtle: Animations should enhance, not distract
  • Fast: Keep interactions snappy (under 300ms)
  • Optional: Respect prefers-reduced-motion

2G. BREAKPOINTS

Breakpoint Scale

TokenValueTarget
--breakpoint-sm640pxLarge phones
--breakpoint-md768pxTablets
--breakpoint-lg1024pxSmall laptops
--breakpoint-xl1280pxDesktops
--breakpoint-2xl1536pxLarge screens

Container Max Widths

TokenValueUsage
--container-sm640pxNarrow content
--container-md768pxForms, articles
--container-lg1024pxDashboard
--container-xl1280pxFull layouts
--container-2xl1536pxWide layouts

Content Max Widths

TokenValueUsage
--content-max-prose65chReading content
--content-max-blog75chBlog posts
--content-max-form48remForms

Responsive Patterns

Mobile First Approach:

  • Base styles for mobile
  • Progressive enhancement up
  • Touch targets: minimum 44x44px

3. COMPONENT DESIGN PRINCIPLES


3A. BUTTONS

Variants

VariantBackgroundTextBorderUsage
Primary--color-primary-600whitenoneMain CTAs
Secondary--color-secondary-500whitenoneSecondary CTAs
Outlinetransparent--text-primary--border-defaultTertiary
Ghosttransparent--text-primarytransparentSubtle
Danger--color-error-600whitenoneDestructive

States

StateVisual ChangeTransition
DefaultBase style-
HoverDarken 10%, lift shadow150ms
ActiveDarken 15%, inset shadow100ms
FocusRing shadowinstant
Disabled50% opacity, no-pointer-
LoadingSpinner, reduced opacity-

Sizes

SizeHeightPadding XFont Size
sm32px12px14px
md40px16px16px
lg48px24px18px

Accessibility

  • Minimum touch target: 44x44px
  • Focus ring: 3px offset, high contrast
  • Disabled: aria-disabled="true"
  • Loading: aria-busy="true"

3B. FORMS

Input States

StateBorderBackgroundText
Default--border-default--surface-default--text-primary
Hover--border-strong--surface-hover--text-primary
Focus--border-focus--surface-default--text-primary
Error--border-error--color-error-50--text-primary
Success--border-success--color-success-50--text-primary
Disabled--border-default--surface-disabled--text-disabled

Labels

  • Position: Above input (preferred) or inline
  • Font: 14px, medium weight
  • Color: --text-secondary
  • Required indicator: * with aria-label

Validation Messages

  • Position: Below input
  • Color: Error (--color-error-600), Success (--color-success-600)
  • Icon: Leading icon for quick recognition
  • Animation: Slide in 200ms

Input Types

TypeHeightSpecifics
Text40pxStandard
TextareaAutoMin-height 80px
Select40pxCustom dropdown
Checkbox20pxTouch target 44px
Radio20pxTouch target 44px
Date40pxNative or custom

3C. CARDS

Event Cards

Structure:

  • Image (16:9 ratio)
  • Date badge (absolute positioned)
  • Title (2 lines max)
  • Meta (date, location)
  • Actions (CTA button)

Specs:

  • Padding: 0 (image bleed) or 24px
  • Radius: --radius-xl (12px)
  • Shadow: --shadow-sm, --shadow-md on hover
  • Hover: Lift 2px, shadow increase

Ticket Cards

Structure:

  • Event name
  • Ticket type
  • Date/time
  • QR code placeholder
  • Actions (download, transfer)

Specs:

  • Padding: 24px
  • Border-left: 4px accent color
  • Background: Pattern overlay

3D. TABLES

Data Density

DensityRow HeightPaddingUsage
Compact40px8px 12pxDashboard
Default56px12px 16pxStandard
Comfortable72px16px 24pxDetailed

Actions

  • Primary: Icon button (visible on hover)
  • Secondary: Dropdown menu
  • Bulk: Checkbox + toolbar

Responsive

  • Horizontal scroll on mobile
  • Card view alternative
  • Priority columns visible

3E. NAVIGATION

Organization Switcher

  • Dropdown with org avatar
  • Current org highlighted
  • Create/join org option
  • Max height with scroll

Event Navigation

  • Horizontal tabs (desktop)
  • Vertical list (mobile)
  • Active state: underline + color
  • Badge counts for sections

Dashboard Navigation

  • Collapsible sidebar
  • Icon + label
  • Active: Background highlight
  • Hover: Subtle background

3F. MODALS & DIALOGS

Structure

  • Header: Title + close button
  • Body: Scrollable content
  • Footer: Actions (right-aligned)
  • Overlay: --bg-overlay

Sizes

SizeMax WidthUsage
sm24remConfirmations
md32remForms
lg40remComplex content
xl48remFull workflows

Animation

  • Enter: Fade in + scale up (200ms)
  • Exit: Fade out + scale down (150ms)
  • Easing: --ease-out

Accessibility

  • Focus trap inside modal
  • Escape to close
  • aria-modal="true"
  • aria-labelledby (title)

3G. TOAST NOTIFICATIONS

Types

TypeIconColorDuration
SuccessCheckGreen4000ms
ErrorXRed6000ms
WarningAlertAmber5000ms
InfoInfoBlue4000ms

Position

  • Default: Bottom-right (desktop)
  • Mobile: Top-center
  • Stack: Max 3 visible

Animation

  • Enter: Slide in from right (300ms)
  • Exit: Fade out (200ms)
  • Progress bar: Optional

3H. EMPTY STATES

Structure

  • Illustration (optional, decorative)
  • Headline: Clear, encouraging
  • Description: Explain next steps
  • CTA: Primary action button

Examples

No Events:

  • "No events yet"
  • "Create your first event and start selling tickets."
  • Button: "Create Event"

No Tickets:

  • "No tickets sold"
  • "Share your event to start selling."
  • Button: "Share Event"

No Search Results:

  • "No results found"
  • "Try adjusting your search terms."
  • Button: "Clear Filters"

3I. LOADING STATES

Skeleton Screens

  • Use for content loading
  • Animated shimmer (subtle)
  • Match final layout dimensions

Spinners

  • Size: 16px (inline), 24px (buttons), 48px (page)
  • Color: --color-primary-600
  • Duration: 800ms rotation

Progress Indicators

  • Linear: For known progress
  • Indeterminate: For unknown duration
  • Steps: For multi-step processes

3J. ERROR STATES

Page Errors

  • Illustration (friendly, not scary)
  • Clear error message
  • Helpful next steps
  • Contact/support link

Inline Errors

  • Red border on field
  • Error message below
  • Icon for visibility
  • Suggestion for fix

Recovery

  • Auto-retry for transient errors
  • Clear error codes for support
  • Suggest refresh if appropriate

4. TEMPLATE SYSTEM


4A. LANDING PAGE SECTIONS

Hero Section

Structure:

  • Headline: Value proposition
  • Subheadline: Supporting text
  • CTA: Primary button
  • Social proof: Stats or testimonials
  • Visual: Illustration or screenshot

Specs:

  • Min-height: 60vh
  • Max-width: 1200px
  • Padding: 96px vertical

Event Info Section

Structure:

  • Event title
  • Date/time block
  • Location with map
  • Description
  • Organizer info

Specs:

  • Two-column (desktop)
  • Single-column (mobile)
  • Sticky CTA on mobile

Ticket Selection Section

Structure:

  • Ticket type cards
  • Quantity selector
  • Price display
  • Total calculator
  • Purchase CTA

Specs:

  • Card-based layout
  • Clear pricing
  • Quantity limits shown

FAQ Section

Structure:

  • Accordion items
  • Search/filter (optional)
  • Contact CTA

Specs:

  • Expand/collapse animation
  • Anchor links for sharing

4B. EMAIL LAYOUTS

Confirmation Email

Header:

  • Logo
  • "You're all set!"

Body:

  • Event details
  • Ticket summary
  • QR code
  • Add to calendar
  • Location/map

Footer:

  • Organizer contact
  • Support links
  • Unsubscribe

Reminder Email

Header:

  • "Your event is coming up"

Body:

  • Event reminder
  • Date/time countdown
  • Location reminder
  • What to bring
  • Contact info

Receipt Email

Header:

  • "Thank you for your purchase"

Body:

  • Order summary
  • Payment details
  • Ticket attachments
  • Refund policy

Specs:

  • Max-width: 600px
  • Mobile-responsive
  • Plain text alternative

4C. TICKET PDF LAYOUT

Dimensions

  • Width: 3 inches (76mm)
  • Height: 7 inches (178mm)
  • Or: Standard ticket size (2.125" x 5.5")

Sections

Header:

  • Event name
  • Date/time
  • Venue

Body:

  • Ticket type
  • Attendee name
  • Seat/section (if applicable)
  • QR code (large, scannable)

Footer:

  • Order ID
  • Terms
  • Organizer info

Design

  • Clean, scannable
  • High contrast for printing
  • QR code minimum 2cm

4D. DASHBOARD LAYOUT PATTERNS

Overview Page

Structure:

  • Stats cards (4-up)
  • Recent activity
  • Quick actions
  • Upcoming events

Grid:

  • Desktop: 4 columns
  • Tablet: 2 columns
  • Mobile: 1 column

Event Detail Page

Structure:

  • Event header with image
  • Tab navigation
  • Content area
  • Sidebar (stats, actions)

Tabs:

  • Overview
  • Tickets
  • Attendees
  • Settings

Settings Page

Structure:

  • Sidebar navigation
  • Form sections
  • Save/cancel actions

5. ACCESSIBILITY SPECIFICATIONS


5A. WCAG 2.1 AA COMPLIANCE CHECKLIST

Perceivable

CriterionRequirementImplementation
1.1.1Text alternativesAll images have alt text
1.2.1Captions (prerecorded)Video captions provided
1.3.1Info and relationshipsSemantic HTML, ARIA labels
1.4.1Use of colorNever rely on color alone
1.4.3Contrast (minimum)4.5:1 for normal text
1.4.4Resize text200% zoom support
1.4.5Images of textAvoid, use real text
1.4.10Reflow320px width support
1.4.11Non-text contrast3:1 for UI components
1.4.12Text spacingNo content loss
1.4.13Content on hoverDismissible, persistent

Operable

CriterionRequirementImplementation
2.1.1KeyboardAll functions keyboard accessible
2.1.2No keyboard trapEscape routes provided
2.2.1Timing adjustableExtendable timeouts
2.2.2Pause, stop, hideControl over auto-play
2.4.1Bypass blocksSkip links provided
2.4.3Focus orderLogical tab order
2.4.4Link purposeDescriptive link text
2.4.6Headings and labelsDescriptive, unique
2.4.7Focus visibleClear focus indicators
2.5.1Pointer gesturesSingle pointer alternatives
2.5.2Pointer cancellationUp-event activation
2.5.3Label in nameVisible label in accessible name
2.5.4Motion actuationAlternative controls

Understandable

CriterionRequirementImplementation
3.1.1Language of pagelang attribute set
3.1.2Language of partslang on foreign text
3.2.1On focusNo context change on focus
3.2.2On inputNo context change on input
3.2.3Consistent navigationSame order across pages
3.2.4Consistent identificationSame labels for same functions
3.3.1Error identificationClear error messages
3.3.2Labels or instructionsClear field labels
3.3.3Error suggestionHelpful error recovery
3.3.4Error preventionConfirm for important actions

Robust

CriterionRequirementImplementation
4.1.1ParsingValid HTML
4.1.2Name, role, valueARIA for custom components
4.1.3Status messagesAnnounce status changes

5B. FOCUS INDICATORS

Default Focus Ring

:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.5);
  border-radius: inherit;
}

Focus Requirements

  • Minimum 2px thickness
  • Minimum 3:1 contrast with unfocused state
  • Not obscured by other elements
  • Visible on all backgrounds

Focus Styles by Component

ComponentFocus Style
ButtonRing shadow
InputBorder color + ring
LinkUnderline + outline
CardBorder highlight
CheckboxRing around box

5C. SCREEN READER CONSIDERATIONS

Landmarks

  • <header> - Banner
  • <nav> - Navigation
  • <main> - Main content
  • <aside> - Complementary
  • <footer> - Content info
  • <section> with aria-label

Headings

  • Single H1 per page
  • Logical hierarchy (no skips)
  • Descriptive text

Forms

  • Label associated with input (for/id)
  • Error messages linked (aria-describedby)
  • Required fields indicated (aria-required)
  • Fieldsets for groups

Dynamic Content

  • Live regions for updates
  • aria-live="polite" for non-urgent
  • aria-live="assertive" for critical
  • Status announcements

Images

  • Meaningful images: descriptive alt
  • Decorative images: alt=""
  • Complex images: longdesc or adjacent text
  • Charts: data table alternative

5D. MOTION SENSITIVITY

Reduced Motion Support

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
}

Motion Guidelines

  • Never auto-play video with sound
  • Parallax: Optional, respect preference
  • Animations: Subtle, not disorienting
  • Loading: Static fallback available

5E. COLOR-BLIND SAFE PALETTES

Safe Combinations

CombinationSafe
Blue + Yellow
Blue + Orange
Purple + Yellow
Red + Blue✓ (with care)
Green + Red✗ Avoid
Green + Brown✗ Avoid

Testing Tools

  • Coblis (Color Blindness Simulator)
  • Color Oracle
  • Stark (Figma plugin)
  • axe DevTools

Implementation

  • Always pair color with icon/text
  • Use patterns for charts
  • Test with simulators
  • Get real user feedback

6. DESIGN TOKENS REFERENCE


Token Categories Summary

CategoryToken CountFile Location
Colors120+--color-*
Typography40+--font-, --line-height-
Spacing25+--space-*
Borders12+--border-, --radius-
Shadows12+--shadow-*
Animation15+--duration-, --ease-
Breakpoints10+--breakpoint-, --container-
Z-Index10--z-*

CSS Custom Properties File

All tokens are defined in: /mnt/okcomputer/output/design-tokens.css

Usage Example

.my-button {
  background-color: var(--color-primary-600);
  color: var(--text-inverse);
  padding: var(--space-3) var(--space-4);
  border-radius: var(--radius-lg);
  font-weight: var(--font-weight-medium);
  transition: var(--transition-colors);
}

.my-button:hover {
  background-color: var(--color-primary-700);
}

.my-button:focus-visible {
  box-shadow: var(--shadow-focus);
}

APPENDIX


A. Font Loading

<!-- Google Fonts -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">

B. Icon System

Recommended: Lucide Icons

  • Open source (ISC license)
  • Consistent style
  • Good accessibility
  • Tree-shakeable

C. Resources


Document Version: 1.0 Last Updated: 2024 License: MIT

Related Documents