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
- Design Philosophy
- Color System
- Typography
- Spacing and Layout
- Component Library
- Iconography
- Accessibility Guidelines
- Responsive Design
- 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
Navigation
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