Skip to main content

STEMBlock.ai - UI/UX Specification Document

Version: 1.0 Date: October 25, 2025 Target Audience: Kids (6-18 years) and Parents (varying tech proficiency)


Table of Contents

  1. Design Philosophy
  2. Color System
  3. Typography
  4. Spacing and Layout
  5. Component Library
  6. Iconography
  7. Accessibility Guidelines
  8. Responsive Design
  9. User Role Interfaces

Design Philosophy

Core Principles

1. Age-Appropriate Design (6-18 years)

  • Ages 6-10: Larger buttons, playful illustrations, simple language, vibrant colors
  • Ages 11-14: Balanced design, gamification elements, achievement badges
  • Ages 15-18: More sophisticated interface, data visualization, professional feel

2. Parent-Friendly Navigation

  • Clear, jargon-free labels
  • Obvious navigation patterns
  • Dashboard summaries with plain language
  • Help tooltips throughout
  • Consistent layout across all sections

3. Educational & Encouraging

  • Positive reinforcement messaging
  • Progress visualization
  • Growth-focused feedback
  • Celebration of achievements

4. STEM-Focused Aesthetic

  • Robotics-inspired design elements
  • Technical but approachable
  • VEX branding integration
  • Engineering notebook aesthetics

Color System

Primary Palette

For Kids (Ages 6-14):

Primary Blue: #2E7CF6
- Main CTAs, links, active states
- RGB(46, 124, 246)
- Use: Buttons, navigation highlights

Secondary Purple: #8B5CF6
- Secondary actions, accents
- RGB(139, 92, 246)
- Use: Achievement badges, progress indicators

Success Green: #10B981
- Positive feedback, completed tasks
- RGB(16, 185, 129)
- Use: Success messages, checkmarks

Warning Orange: #F59E0B
- Alerts, pending items
- RGB(245, 158, 11)
- Use: Warnings, attention items

Error Red: #EF4444
- Errors, critical feedback
- RGB(239, 68, 68)
- Use: Error states, corrections needed

For Older Students (Ages 15-18) & Parents:

Deep Blue: #1E40AF
- Professional primary
- RGB(30, 64, 175)

Slate Gray: #475569
- Text, secondary elements
- RGB(71, 85, 105)

Teal Accent: #14B8A6
- Data visualization, charts
- RGB(20, 184, 166)

Neutral Palette

White: #FFFFFF
Background: #F8FAFC (Slate 50)
Light Gray: #E2E8F0 (Slate 200)
Medium Gray: #64748B (Slate 500)
Dark Gray: #1E293B (Slate 800)
Black: #0F172A (Slate 900)

Semantic Colors

Info: #3B82F6 (Blue 500)
Success: #10B981 (Green 500)
Warning: #F59E0B (Amber 500)
Error: #EF4444 (Red 500)

Gradient Accents (for visual interest)

Hero Gradient:
from: #2E7CF6 (Primary Blue)
to: #8B5CF6 (Secondary Purple)

Achievement Gradient:
from: #F59E0B (Warning Orange)
to: #EF4444 (Error Red)

Typography

Font Families

Primary Font: Inter

  • Modern, readable, excellent for UI
  • Supports wide range of weights
  • Great screen readability

Display Font: Poppins

  • For headings and hero text
  • Playful but professional
  • Weights: 600 (SemiBold), 700 (Bold)

Monospace: JetBrains Mono

  • For code snippets
  • Programming feedback
  • Technical details

Type Scale

For Kids (6-10):

Heading 1: 36px / 2.25rem (Poppins Bold)
Heading 2: 30px / 1.875rem (Poppins SemiBold)
Heading 3: 24px / 1.5rem (Poppins SemiBold)
Body Large: 18px / 1.125rem (Inter Regular)
Body: 16px / 1rem (Inter Regular)
Small: 14px / 0.875rem (Inter Regular)

For Teens & Adults (11-18 + Parents):

Heading 1: 32px / 2rem (Poppins Bold)
Heading 2: 24px / 1.5rem (Poppins SemiBold)
Heading 3: 20px / 1.25rem (Poppins SemiBold)
Body: 16px / 1rem (Inter Regular)
Small: 14px / 0.875rem (Inter Regular)
Caption: 12px / 0.75rem (Inter Regular)

Line Heights

Tight: 1.25 (for headings)
Normal: 1.5 (for body text)
Relaxed: 1.75 (for long-form content)

Font Weights

Regular: 400
Medium: 500
SemiBold: 600
Bold: 700

Spacing and Layout

Spacing Scale (Tailwind-based)

xs: 4px / 0.25rem
sm: 8px / 0.5rem
md: 16px / 1rem
lg: 24px / 1.5rem
xl: 32px / 2rem
2xl: 48px / 3rem
3xl: 64px / 4rem

Container Widths

Mobile: 100% (no max-width)
Tablet: 768px
Desktop: 1024px
Wide: 1280px
Max Content Width: 1440px

Grid System

  • 12-column grid for desktop
  • 6-column grid for tablet
  • 4-column grid for mobile
  • Gap: 24px (lg) for desktop, 16px (md) for mobile

Layout Patterns

Dashboard Layout:

- Header: 64px height
- Sidebar: 256px width (collapsible on mobile)
- Main Content: Flexible
- Footer: 80px height

Card Spacing:

Padding: 24px (lg)
Gap between cards: 16px (md)
Border Radius: 12px

Component Library

Buttons

Primary Button

Background: Primary Blue (#2E7CF6)
Text: White
Padding: 12px 24px (py-3 px-6)
Border Radius: 8px
Font: Inter Medium 16px
Hover: Darken by 10%
Active: Scale 0.98
Shadow: 0 2px 8px rgba(46, 124, 246, 0.3)

Secondary Button

Background: Transparent
Border: 2px solid Primary Blue
Text: Primary Blue
Padding: 12px 24px
Border Radius: 8px
Hover: Background Primary Blue, Text White

Success Button (for completion)

Background: Success Green
Text: White
Same dimensions as Primary

Sizes:

  • Small: py-2 px-4 (8px 16px), text-sm
  • Medium: py-3 px-6 (12px 24px), text-base
  • Large: py-4 px-8 (16px 32px), text-lg

Cards

Standard Card

Background: White
Border: 1px solid #E2E8F0
Border Radius: 12px
Padding: 24px
Shadow: 0 1px 3px rgba(0,0,0,0.1)
Hover: Shadow 0 4px 12px rgba(0,0,0,0.15)

Student Progress Card

Header: Gradient background (Hero Gradient)
Icon: White with subtle shadow
Title: White, Poppins SemiBold 20px
Content: White background, padding 20px

Achievement Badge Card

Border: 2px solid gradient
Background: White
Centered icon (48px)
Title below icon
Shadow: 0 4px 8px rgba(139, 92, 246, 0.2)

Forms

Input Fields

Height: 44px (good for touch targets)
Padding: 12px 16px
Border: 1px solid #CBD5E1 (Slate 300)
Border Radius: 8px
Font: Inter Regular 16px
Focus: Border Primary Blue, Ring 3px rgba(46, 124, 246, 0.1)
Error: Border Error Red, Ring 3px rgba(239, 68, 68, 0.1)

Labels

Font: Inter Medium 14px
Color: Dark Gray (#1E293B)
Margin Bottom: 8px

Helper Text

Font: Inter Regular 12px
Color: Medium Gray (#64748B)
Margin Top: 4px

Error Text

Font: Inter Regular 12px
Color: Error Red
Icon: Alert circle

Top Navigation Bar

Height: 64px
Background: White
Border Bottom: 1px solid #E2E8F0
Shadow: 0 1px 3px rgba(0,0,0,0.05)
Logo: Left aligned, 40px height
Nav Items: Centered or right-aligned
User Menu: Far right

Sidebar Navigation

Width: 256px
Background: Slate 50 (#F8FAFC)
Item Height: 44px
Item Padding: 12px 16px
Active Item: Primary Blue background, White text
Hover: Slate 100 background
Icon Size: 20px

Breadcrumbs

Font: Inter Regular 14px
Color: Medium Gray
Separator: "/" or ">"
Current Page: Primary Blue, Medium weight

Alerts & Notifications

Toast Notification

Width: 360px (mobile: 90%)
Padding: 16px
Border Radius: 8px
Shadow: 0 4px 12px rgba(0,0,0,0.15)
Position: Top right
Animation: Slide in from right

Types:
- Success: Green background, white text, checkmark icon
- Error: Red background, white text, X icon
- Warning: Orange background, dark text, exclamation icon
- Info: Blue background, white text, info icon

Banner Alert

Full width
Padding: 16px
Text: Centered
Close button: Right aligned
Background: Based on type (success, warning, error, info)

Progress Indicators

Progress Bar

Height: 8px
Background: Light Gray (#E2E8F0)
Fill: Primary Blue or Success Green
Border Radius: 4px
Animate: Smooth transition on value change

Circular Progress (for scores)

Size: 120px
Stroke Width: 8px
Background Stroke: Light Gray
Foreground Stroke: Gradient (Hero Gradient)
Center Text: Score percentage, Bold 24px

Loading Spinner

Size: 40px (adjustable)
Color: Primary Blue
Animation: Smooth rotation

Badges & Tags

Badge

Padding: 4px 12px
Border Radius: 12px (pill-shaped)
Font: Inter Medium 12px
Background: Light version of semantic color
Text: Dark version of semantic color

Example:
- New: Blue background (#DBEAFE), Blue text (#1E40AF)
- Completed: Green background (#D1FAE5), Green text (#065F46)

Tag

Padding: 6px 12px
Border Radius: 6px
Font: Inter Regular 14px
Background: Slate 100
Text: Slate 700
Removable: X icon on right

Data Visualization

Chart Colors (for analytics)

Series 1: #2E7CF6 (Primary Blue)
Series 2: #8B5CF6 (Secondary Purple)
Series 3: #10B981 (Success Green)
Series 4: #F59E0B (Warning Orange)
Series 5: #14B8A6 (Teal Accent)

Table

Header Background: Slate 50
Header Text: Slate 700, Medium weight
Border: 1px solid Slate 200
Row Padding: 12px 16px
Row Hover: Slate 50 background
Zebra Striping: Optional, every other row Slate 50

Iconography

Icon Library

Recommended: Heroicons or Lucide Icons

  • Consistent style
  • Available in outline and solid versions
  • Good accessibility

Icon Sizes

Extra Small: 16px (for inline text)
Small: 20px (for buttons, nav items)
Medium: 24px (for cards, headers)
Large: 32px (for empty states)
Extra Large: 48px+ (for illustrations)

Icon Usage

Navigation Icons:

  • Home: House icon
  • Assessments: Clipboard/Test icon
  • Submissions: Upload/Folder icon
  • Reports: Chart/Graph icon
  • Forum: Chat/Message icon
  • Profile: User icon

Action Icons:

  • Add: Plus circle
  • Edit: Pencil
  • Delete: Trash
  • Download: Arrow down
  • Upload: Arrow up
  • Search: Magnifying glass
  • Filter: Funnel
  • Settings: Gear

Status Icons:

  • Success: Checkmark circle (green)
  • Error: X circle (red)
  • Warning: Exclamation triangle (orange)
  • Info: Info circle (blue)
  • Pending: Clock (orange)

VEX Robotics Icons:

  • Robot: Custom robot illustration
  • Code: Code brackets
  • Notebook: Book/Document
  • Team: Users group
  • Trophy: Award/Trophy

Accessibility Guidelines

WCAG 2.1 AA Compliance

Color Contrast Ratios:

  • Normal text: Minimum 4.5:1
  • Large text (18px+): Minimum 3:1
  • Interactive elements: Minimum 3:1 against background

Tested Combinations:

✓ Primary Blue (#2E7CF6) on White: 4.8:1
✓ Dark Gray (#1E293B) on White: 13.5:1
✓ White on Primary Blue: 4.8:1
✓ White on Success Green: 4.1:1

Keyboard Navigation

  • All interactive elements must be keyboard accessible
  • Visible focus indicators (ring outline)
  • Tab order follows logical flow
  • Skip navigation links for screen readers

Focus Indicators

Outline: 3px solid Primary Blue
Offset: 2px
Border Radius: Matches element

Screen Reader Support

  • Semantic HTML (nav, main, article, aside, etc.)
  • ARIA labels for icon-only buttons
  • Alt text for all images
  • ARIA live regions for dynamic content
  • Form labels properly associated

Touch Targets

  • Minimum size: 44x44px
  • Adequate spacing: 8px minimum between targets
  • Mobile-friendly tap areas

Responsive Design

Breakpoints

Mobile: 320px - 639px
Tablet: 640px - 1023px
Desktop: 1024px - 1279px
Wide: 1280px+

Mobile-First Approach

Navigation:

  • Mobile: Hamburger menu
  • Tablet: Collapsible sidebar
  • Desktop: Persistent sidebar

Typography:

  • Mobile: Scale down by 10-15%
  • Tablet: Standard scale
  • Desktop: Standard scale

Layout:

  • Mobile: Single column, stacked cards
  • Tablet: 2-column grid
  • Desktop: 3-4 column grid, sidebars

Forms:

  • Mobile: Full width inputs, stacked
  • Tablet: 2-column for short inputs
  • Desktop: Horizontal layout for related fields

User Role Interfaces

Student Interface (Ages 6-18)

Visual Style:

  • Bright, encouraging colors
  • Large, clear buttons
  • Progress visualization (stars, levels, badges)
  • Gamification elements
  • Friendly illustrations

Key Features:

  • Dashboard with current assignments
  • Progress tracker (visual, encouraging)
  • Achievement showcase
  • Simple navigation
  • Help tooltips

Age Adaptations:

  • 6-10: Larger text, more illustrations, simplified language
  • 11-14: Balanced design, achievement focus
  • 15-18: More data, professional feel, detailed analytics

Parent Interface

Visual Style:

  • Clean, professional
  • Clear hierarchy
  • Simplified language
  • Summary-focused
  • Minimal technical jargon

Key Features:

  • Child selector (if multiple children)
  • Executive summary dashboard
  • Plain language reports
  • Progress timeline
  • Simple navigation with labels
  • Help center easily accessible

Parent-Friendly Elements:

  • "What does this mean?" tooltips
  • Glossary of terms
  • Video tutorials
  • Clear next steps
  • Email digest options

Coach Interface

Visual Style:

  • Data-rich
  • Analytics-focused
  • Professional
  • Efficient workflow
  • Multi-student management

Key Features:

  • Class overview dashboard
  • Student performance matrix
  • At-risk student alerts
  • Bulk actions
  • Detailed analytics
  • Export capabilities

Admin Interface

Visual Style:

  • Technical
  • Comprehensive
  • System-focused
  • Data tables
  • Management tools

Key Features:

  • User management
  • System analytics
  • Configuration settings
  • Audit logs
  • Reporting tools

Animation & Transitions

Principles

  • Purposeful: Animations guide attention
  • Quick: 150-300ms for most transitions
  • Smooth: Ease-in-out timing function
  • Consistent: Same animations for similar actions

Common Animations

Button Hover:

Transition: all 0.2s ease-in-out
Transform: scale(1.02)
Shadow: Increase elevation

Card Hover:

Transition: all 0.3s ease-in-out
Shadow: Increase from 1 to 2
Transform: translateY(-2px)

Modal/Dialog:

Enter: Fade in + scale from 0.95 to 1 (200ms)
Exit: Fade out + scale from 1 to 0.95 (150ms)
Backdrop: Fade in/out (200ms)

Notifications:

Enter: Slide in from right (300ms)
Exit: Slide out to right (200ms)

Page Transitions:

Duration: 200ms
Effect: Fade in new content

Dark Mode (Future Consideration)

Color Adjustments

Background: #0F172A (Slate 900)
Surface: #1E293B (Slate 800)
Text: #F8FAFC (Slate 50)
Primary: Lighter shade of Primary Blue (#60A5FA)

Note: Dark mode is not in MVP scope but architecture should support it.


Brand Guidelines

Logo Usage

  • Minimum Size: 120px width
  • Clear Space: 16px around logo
  • Backgrounds: White or Slate 50 preferred
  • Color Versions: Full color, white, black

Voice & Tone

For Students:

  • Encouraging and positive
  • "You're doing great!"
  • "Let's improve this together"
  • Avoid: "Wrong", "Failed", "Poor"

For Parents:

  • Clear and informative
  • "Your child is making progress in..."
  • Professional but friendly
  • Avoid: Technical jargon without explanation

For Coaches:

  • Professional and efficient
  • Data-driven language
  • Actionable insights

Implementation Notes

Technology Integration

Tailwind CSS Configuration:

// Extend default theme with custom colors
colors: {
'stem-blue': '#2E7CF6',
'stem-purple': '#8B5CF6',
'stem-green': '#10B981',
// etc.
}

shadcn/ui Components:

  • Use as base
  • Customize with STEMBlock color palette
  • Maintain consistent component API

Component Library Structure

/components
/ui (shadcn base components)
/student (student-specific components)
/parent (parent-specific components)
/coach (coach-specific components)
/shared (cross-role components)

Quality Checklist

Before marking design complete, ensure:

  • All colors meet WCAG AA contrast requirements
  • Typography is legible at all sizes
  • Touch targets are minimum 44x44px
  • Keyboard navigation works throughout
  • Screen reader tested
  • Responsive on mobile, tablet, desktop
  • Consistent spacing throughout
  • All interactive elements have clear states (default, hover, active, focus, disabled)
  • Loading states defined for all async actions
  • Error states designed for all forms
  • Empty states designed for all lists/tables
  • Age-appropriate for full range (6-18 years)
  • Parent-friendly language and navigation

Document Status: Draft for UX Designer Next Steps: Create wireframes based on this specification Feedback: Share with educational advisors and pilot users