Story 5.7 - Responsive Design Wireframe
Story: BAT-11 - Slot Assignment & Progressive Publishing
Last updated:
January 5, 2026
Reading time:
28 minutes
File size:
60.98 KB
Purpose
This wireframe documents responsive design breakpoints and layout adaptations for the slot assignment workflow across desktop, tablet, and mobile devices. Ensures optimal user experience at all screen sizes with appropriate layout changes, touch targets, and interaction patterns.
Design Principles
- Mobile First: Design for smallest screen first, enhance for larger screens
- Content Priority: Most important content visible without scrolling on all devices
- Touch Optimized: Larger touch targets and spacing on mobile/tablet
- Progressive Enhancement: Add features as screen real estate increases
- Performance: Optimize images, lazy load off-screen content
- Consistency: Same visual language and patterns across all breakpoints
Breakpoint Strategy
Breakpoint Definitions
css
/* Mobile First Approach */
/* Extra Small (Mobile Portrait) */
@media (min-width: 0px) {
/* Base styles - mobile portrait */
/* 320px - 599px */
}
/* Small (Mobile Landscape) */
@media (min-width: 600px) {
/* Mobile landscape, small tablets */
/* 600px - 767px */
}
/* Medium (Tablet Portrait) */
@media (min-width: 768px) {
/* Tablet portrait, large phones landscape */
/* 768px - 1023px */
}
/* Large (Tablet Landscape / Small Desktop) */
@media (min-width: 1024px) {
/* Tablet landscape, small desktops */
/* 1024px - 1439px */
}
/* Extra Large (Desktop) */
@media (min-width: 1440px) {
/* Standard desktop */
/* 1440px - 1919px */
}
/* Extra Extra Large (Large Desktop) */
@media (min-width: 1920px) {
/* Large desktop, 1080p+ monitors */
/* 1920px+ */
}
Material-UI Grid System
typescript
// Using Material-UI breakpoints
const theme = createTheme({
breakpoints: {
values: {
xs: 0, // Extra small devices (portrait phones)
sm: 600, // Small devices (landscape phones)
md: 768, // Medium devices (tablets)
lg: 1024, // Large devices (desktops)
xl: 1440, // Extra large devices
xxl: 1920, // Extra extra large devices
},
},
});
// Responsive grid usage
<Grid container spacing={2}>
<Grid item xs={12} md={4} lg={3}>
{/* Speaker Pool - Full width mobile, 1/3 tablet, 1/4 desktop */}
</Grid>
<Grid item xs={12} md={8} lg={6}>
{/* Session Grid - Full width mobile, 2/3 tablet, 1/2 desktop */}
</Grid>
<Grid item xs={12} lg={3}>
{/* Quick Actions - Full width mobile/tablet, 1/4 desktop */}
</Grid>
</Grid>
1. Mobile Portrait (320px - 599px)
Layout Structure
βββββββββββββββββββββββββββββββββββββββ
β βββ Header βββββββββββββββββββ β β Sticky header
β < Back to Event β 48px height
βββββββββββββββββββββββββββββββββββββββ€
β Assign Session Timings β β Page title
β BATbern 2025 β Subtitle
βββββββββββββββββββββββββββββββββββββββ€
β βββββββββββββββββββββββββββββββββββ β
β β Progress: 3 of 8 (37%) β β β Sticky progress bar
β β ββββββββββββββββββββ β β Below header
β βββββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββ€
β β
β ββββ Speakers (Collapsed) ββββββββββ β Accordion/expandable
β β πΆ 5 unassigned ββ Tap to expand
β β [Tap to show speakers βΌ] ββ
β ββββββββββββββββββββββββββββββββββββ
β β
β ββββ Session Timeline βββββββββββββββ β Primary content area
β β ββ Scrollable
β β [Today: June 10] [Tomorrow >] ββ Day selector tabs
β β ββ
β β βββββββββββββββββββββββββββββββ ββ
β β β 09:00 - 10:30 β ββ β Session card
β β β Keynote Opening β ββ Full width
β β β Main Hall (200 seats) β ββ Min height 120px
β β β β Assigned: Dr. Smith β ββ
β β β Match: π’ 92% β ββ
β β βββββββββββββββββββββββββββββββ ββ
β β ββ
β β βββββββββββββββββββββββββββββββ ββ
β β β 11:00 - 12:30 β ββ
β β β Workshop 1 β ββ
β β β Room A (50 seats) β ββ
β β β β Not assigned β ββ
β β β [Tap to assign] β ββ
β β βββββββββββββββββββββββββββββββ ββ
β β ββ
β β [Load more sessions...] ββ
β ββββββββββββββββββββββββββββββββββββ
β β
β β
β βββββββββββββββββββββββββββββββββββ β β Sticky bottom bar
β [π Home] [π₯ Speakers] [β‘ Actions]β Navigation tabs
βββββββββββββββββββββββββββββββββββββββ 56px height
Speakers Panel (Expanded State)
User taps "Tap to show speakers":
βββββββββββββββββββββββββββββββββββββββ
β βββ Header βββββββββββββββββββ β
β < Back to Timeline β β Back button returns to timeline
βββββββββββββββββββββββββββββββββββββββ€
β Speakers (5 unassigned) β
βββββββββββββββββββββββββββββββββββββββ€
β [All] [βAssigned] [βUnassigned] β β Filter chips
βββββββββββββββββββββββββββββββββββββββ€
β β
β βββββββββββββββββββββββββββββββββββ β
β β πΆ Dr. Sarah Miller β β β Speaker card
β β AI in Architecture β β Full width
β β βοΈ Prefers: Afternoon β β Min height 100px
β β β β
β β [Tap to assign] β β
β βββββββββββββββββββββββββββββββββββ β
β β
β βββββββββββββββββββββββββββββββββββ β
β β πΆ Prof. John Chen β β
β β Sustainable Design β β
β β βοΈ Prefers: Morning β β
β β β β
β β [Tap to assign] β β
β βββββββββββββββββββββββββββββββββββ β
β β
β ... (more speakers) β
β β
βββββββββββββββββββββββββββββββββββββββ
Assignment Flow (Mobile)
Step 1: User taps [Tap to assign] on speaker card
βββββββββββββββββββββββββββββββββββββββ
β βββ Header βββββββββββββββββββ β
β < Cancel Assignment β
βββββββββββββββββββββββββββββββββββββββ€
β β Dr. Sarah Miller - SELECTED β β Sticky context bar
β Tap a time slot to assign β Purple background
βββββββββββββββββββββββββββββββββββββββ€
β β
β ββββ Available Slots ββββββββββββββββ
β β ββ
β β βββββββββββββββββββββββββββββββ ββ
β β β 14:00 - 15:30 β ββ β Highlight match score
β β β Workshop 2 β ββ Match colors visible
β β β Room B (50 seats) β ββ
β β β Match: π’ 85% Strong β ββ
β β β βοΈ Afternoon (preferred) β ββ
β β β β ββ
β β β [Tap to assign here] β ββ
β β βββββββββββββββββββββββββββββββ ββ
β β ββ
β β βββββββββββββββββββββββββββββββ ββ
β β β 16:00 - 17:30 β ββ
β β β Evening Panel β ββ
β β β Main Hall (200 seats) β ββ
β β β Match: π΄ 35% Poor β ββ
β β β β Evening (avoid) β ββ
β β β β ββ
β β β [Assign anyway] β ββ
β β βββββββββββββββββββββββββββββββ ββ
β β ββ
β ββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββββββββββββββββββββββ
Step 2: User taps [Tap to assign here]
βββββββββββββββββββββββββββββββββββββββ
β β Assignment Confirmed! β β Success toast
β Dr. Miller β Workshop 2 β Slides up from bottom
β 14:00-15:30, Room B β Auto-dismisses in 4s
β Match: 85% β
β β
β [Undo] [Continue] β
βββββββββββββββββββββββββββββββββββββββ
After confirmation:
- Automatically returns to session timeline
- Progress bar updates to 4 of 8 (50%)
- If more unassigned speakers: "4 more to go!" banner
- If all assigned: Success celebration screen
Mobile-Specific Features
css
/* Mobile optimizations */
@media (max-width: 599px) {
/* Larger touch targets */
button,
a,
.speaker-card,
.session-card {
min-height: 48px; /* Increased from desktop 44px */
padding: 12px 16px;
font-size: 16px; /* Prevent zoom on input focus */
}
/* Full-width components */
.speaker-card,
.session-card,
.modal-dialog {
width: 100%;
margin: 0;
}
/* Stack buttons vertically */
.button-group {
display: flex;
flex-direction: column;
gap: 12px;
}
.button-group button {
width: 100%;
}
/* Sticky elements */
.page-header {
position: sticky;
top: 0;
z-index: 100;
background: white;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}
.progress-bar-container {
position: sticky;
top: 48px; /* Below header */
z-index: 99;
background: white;
padding: 12px 16px;
}
.bottom-nav {
position: sticky;
bottom: 0;
z-index: 100;
background: white;
box-shadow: 0 -2px 4px rgba(0, 0, 0, 0.1);
}
/* Simplified session grid */
.session-grid {
/* Single column, no rooms */
display: flex;
flex-direction: column;
gap: 12px;
}
/* Room selector instead of columns */
.room-selector {
display: block; /* Shown on mobile */
margin-bottom: 16px;
}
/* Day navigation tabs */
.day-selector {
display: flex;
overflow-x: auto;
gap: 8px;
padding: 8px 16px;
background: #f5f5f5;
}
.day-tab {
flex-shrink: 0;
padding: 8px 16px;
background: white;
border-radius: 16px;
white-space: nowrap;
}
.day-tab.active {
background: #2196f3;
color: white;
}
/* Bottom sheet modals */
.modal-dialog {
position: fixed;
bottom: 0;
left: 0;
right: 0;
top: auto;
max-height: 85vh;
border-radius: 16px 16px 0 0;
transform: translateY(100%);
transition: transform 0.3s ease;
}
.modal-dialog.visible {
transform: translateY(0);
}
/* Swipe handle */
.modal-dialog::before {
content: "";
display: block;
width: 40px;
height: 4px;
background: #bdbdbd;
border-radius: 2px;
margin: 12px auto;
}
/* Hide desktop-only features */
.quick-actions-panel {
display: none; /* Accessed via bottom nav */
}
.breadcrumb-nav {
display: none; /* Back button instead */
}
/* Simplified typography */
h1 {
font-size: 24px;
line-height: 32px;
}
h2 {
font-size: 20px;
line-height: 28px;
}
p,
.body-text {
font-size: 16px;
line-height: 24px;
}
/* Reduce spacing */
.container {
padding: 12px 16px;
}
section {
margin-bottom: 24px;
}
}
Bottom Navigation
βββββββββββββββββββββββββββββββββββββββ
β βββββββ βββββββ βββββββ βββββββ β β 4 tabs
β β π β β π₯ β β π
β β β‘ β β Min height 56px
β βHome β βSpeakβ βTime β βActs β β Each tab 25% width
β βββββββ βββββββ βββββββ βββββββ β
βββββββββββββββββββββββββββββββββββββββ
Tabs:
1. Home: Return to event overview
2. Speakers: View/filter speaker pool
3. Timeline: View session timeline (default)
4. Actions: Quick actions (auto-assign, clear, export)
Active tab: Blue background (#2196f3)
Inactive tabs: Gray (#757575)
2. Mobile Landscape (600px - 767px)
Layout Structure
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β βββ Header ββββββββββββββββββββββββββββββββ β β Sticky
β < Back to Event | Assign Session Timings - BATbern 2025 β 48px
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Progress: 3 of 8 (37%) ββββββββββββββββββββ πΆ 5 Remaining β β Sticky
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β βββββ Speakers βββββ βββββ Session Timeline βββββββββββββββββ β
β β (Collapsible) β β β β
β β β β [June 10] [June 11] [June 12] β β
β β [All] [Assigned] β β β β
β β β β Room: [All Rooms βΌ] β β
β β πΆ Dr. Miller β β β β
β β [Assign] β β βββββββββββββββββββββββββββββββββββββ β β
β β β β β 09:00 - 10:30 β β β
β β πΆ Prof. Chen β β β Keynote Opening β β β
β β [Assign] β β β Main Hall β β Dr. Smith β π’ 92% β β β
β β β β βββββββββββββββββββββββββββββββββββββ β β
β β ... (scroll) β β β β
β β β β βββββββββββββββββββββββββββββββββββββ β β
β β β β β 11:00 - 12:30 β β β
β β β β β Workshop 1 β β β
β β β β β Room A β β Not assigned β [Tap] β β β
β β β β βββββββββββββββββββββββββββββββββββββ β β
β β β β β β
β β [Collapse <] β β ... (more sessions, scroll) β β
β ββββββββββββββββββββ βββββββββββββββββββββββββββββββββββββββββ β
β 30% width 70% width β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β [π ] [π₯ Speakers] [π
Timeline] [β‘ Actions] β β Bottom nav
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Speaker Panel Collapsed State
When collapsed (user taps [Collapse <]):
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β βββ Header ββββββββββββββββββββββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Progress: 3 of 8 (37%) ββββββββββββββββββββ πΆ 5 Remaining β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β ββ βββββββββββ Session Timeline (Full Width) ββββββββββββββββββ
β ββ β ββ
β ββ β [June 10] [June 11] [June 12] Room: [All Rooms βΌ] ββ
β ββ€ β ββ
β β β ββββββββββββββββββββββββ ββββββββββββββββββββββββ ββ
β > β β 09:00 - 10:30 β β 11:00 - 12:30 β ββ
β β β β Keynote β β Workshop 1 β ββ
β β β β β Dr. Smith | π’ 92% β β β Not assigned β ββ
β ββ€ β ββββββββββββββββββββββββ ββββββββββββββββββββββββ ββ
β ββ β ββ
β ββ β ... (more sessions in 2-column grid) ββ
β ββ βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β ^ β
β ββ Expand speakers (vertical tab) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Collapsed sidebar: 40px width (just enough for expand button)
Session grid: 2-column layout for better space utilization
3. Tablet Portrait (768px - 1023px)
Layout Structure
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β βββ Header βββββββββββββββββββββββββββββββββββββββββββββββ β
β Event Management > BATbern 2025 > Slot Assignment | < Back to Eventβ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Assign Session Timings - BATbern 2025 β
β Progress: 3 of 8 sessions (37%) ββββββββββββββββββ πΆ 5 Remainingβ
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β βββββββ Speakers βββββββ βββββββ Session Timeline βββββββββββββββ β
β β πΆ 5 Remaining β β Multi-Day View β β
β β [All][β][β] β β [< June 9] [June 10] [June 11 >] β β
β β β β β β
β β βββββββββββββββββββββ β β βββββββββββββββββββββββββββββββββββ β β
β β β πΆ Dr. Sarah Millerβ β β β Room A Room B Main β β β
β β β AI in Arch β β β βββββββββββββββββββββββββββββββββββ€ β β
β β β βοΈ Afternoon β β β β 09:00 βββββββββ βββββββββ β β β
β β β [Assign][Prefs] β β β β βKeynoteβ β β β β β
β β βββββββββββββββββββββ β β β 10:30 βDr.S β β --- β β β β
β β β β β βπ’ 92% β β β β β β
β β βββββββββββββββββββββ β β β βββββββββ βββββββββ β β β
β β β πΆ Prof. John Chenβ β β β 11:00 βββββββββ βββββββββ β β β
β β β Sustainable β β β β βWork 1 β βWork 2 β β β β
β β β βοΈ Morning β β β β 12:30 β --- β β --- β β β β
β β β [Assign][Prefs] β β β β β β β β β β β
β β βββββββββββββββββββββ β β β βββββββββ βββββββββ β β β
β β β β β 14:00 βββββββββ βββββββββ β β β
β β β Assigned (3): β β β βPanel β β β β β β
β β βββββββββββββββββββββ β β β 15:30 βMulti β β --- β β β β
β β β β Dr. Alex Smith β β β β βπ‘ 78% β β β β β β
β β β Keynote β β β β βββββββββ βββββββββ β β β
β β β 09:00-10:30 β β β β ... (scrollable) β β β
β β β [Edit][Details] β β β βββββββββββββββββββββββββββββββββββ β β
β β βββββββββββββββββββββ β β β β
β β β β [Auto-Assign All] [Clear All] β β
β β ... (scroll) β βββββββββββββββββββββββββββββββββββββββββ β
β βββββββββββββββββββββββββ β
β 35% width 65% width β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Session Grid (Tablet - Timeline View)
Timeline Grid with 3 rooms shown:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β June 10, 2025 β
β βββββββ¬ββββββββββββββββββ¬ββββββββββββββββββ¬ββββββββββββββ β
β βTime β Room A (50) β Room B (50) β Main Hall β β
β βββββββΌββββββββββββββββββΌββββββββββββββββββΌββββββββββββββ€ β
β β09:00β βββββββββββββββ β βββββββββββββββ β β β
β β β β Keynote β β β --- β β β β
β β β β Dr. Smith β β β Available β β β β
β β10:30β β π’ 92% β β β β β β β
β β β βββββββββββββββ β βββββββββββββββ β β β
β βββββββΌββββββββββββββββββΌββββββββββββββββββΌββββββββββββββ€ β
β β11:00β βββββββββββββββ β βββββββββββββββ β β β
β β β β Workshop 1 β β β Workshop 2 β β β β
β β β β --- β β β --- β β β β
β β12:30β β Available β β β Available β β β β
β β β βββββββββββββββ β βββββββββββββββ β β β
β βββββββΌββββββββββββββββββΌββββββββββββββββββΌββββββββββββββ€ β
β β14:00β βββββββββββββββ β β βββββββββββ β β
β β β β Panel Disc β β β β Closing β β β
β β β β Multi β β β β --- β β β
β β15:30β β π‘ 78% β β β β β β β
β β β βββββββββββββββ β β βββββββββββ β β
β βββββββ΄ββββββββββββββββββ΄ββββββββββββββββββ΄ββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Features:
- 3 rooms visible simultaneously
- Time slots on left axis (09:00 - 20:00)
- Session blocks sized by duration
- Match scores visible on assigned sessions
- Empty slots have "Available" label
- Tap session to view details/edit
- Drag speaker from sidebar to drop zone
Drag-and-Drop (Tablet)
Tablet supports both touch and mouse:
Touch Interaction:
1. Tap speaker β Enters assign mode (same as mobile)
2. Tap time slot β Assigns speaker
3. Visual feedback: Purple highlight, match score overlay
Mouse Interaction:
1. Drag speaker card from sidebar
2. Drop on time slot in grid
3. Visual feedback: Drop zone highlights, match score tooltip
Hybrid (Touchpad/Stylus):
- Supports both drag-drop and tap-tap workflows
- System automatically detects input method
- No preference setting needed
4. Tablet Landscape / Small Desktop (1024px - 1439px)
Layout Structure (3-Column)
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β βββ Header ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β Event Management > BATbern 2025 > Slot Assignment [Back to Event] β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Assign Session Timings - BATbern 2025 β
β Progress: 3 of 8 sessions (37%) ββββββββββββββββββββ πΆ 5 Remaining β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β ββββ Speakers ββββ βββββββββββ Timeline ββββββββββββββ βββ Quick Actions ββββ
β β πΆ 5 Remaining β β Multi-Day, Multi-Room View β β ββ
β β [All][β][β] β β β β Session Summary ββ
β β β β [< Jun 9][Jun 10][Jun 11][12 >] β β Total: 8 ββ
β β πΆ Unassigned: β β β β Assigned: 3 ββ
β β βββββββββββββββ β β βββββββββββββββββββββββββββββββ β β Pending: 5 ββ
β β βDr. S. Millerβ β β β RmA RmB Hall Auditoriumββ β ββ
β β βAI in Arch β β β βββββββββββββββββββββββββββββββ€β β [Auto-Assign All] ββ
β β ββοΈ Afternoon β β β β09:00 βββ --- --- --- ββ β [Clear All] ββ
β β βπ€π½οΈ β β β β βββ ββ β [Download PDF] ββ
β β β[Assign] β β β β10:30βββ ββ β ββ
β β βββββββββββββββ β β β11:00 βββ βββ --- --- ββ β Match Quality ββ
β β β β β βββ βββ ββ β Avg: 85% (High) ββ
β β βββββββββββββββ β β β12:30βββ βββ ββ β Range: 72%-98% ββ
β β βProf. J. Chenβ β β β14:00 βββ --- --- --- ββ β ββ
β β βSustainable β β β β βββ ββ β Conflicts: 0 ββ
β β ββοΈ Morning β β β β15:30βββ ββ β Warnings: 1 ββ
β β βπ½οΈ β β β β16:00 --- --- βββ --- ββ β ββ
β β β[Assign] β β β β --- --- βββ --- ββ β [View All Issues] ββ
β β βββββββββββββββ β β β17:30--- --- βββ --- ββ β ββ
β β β β β ... (scroll for more times) ββ β Export Options ββ
β β ... (scroll) β β ββββββββββββββββββββββββββββββββ β [CSV] [PDF] [iCal]ββ
β β β β β β ββ
β β β Assigned (3): β β Legend: β ββββββββββββββββββββββ
β β βββββββββββββββ β β βββ Assigned (green) β β
β β ββ Dr. Smith β β β βββ Assigned (yellow/orange) β β
β β βKeynote β β β --- Available (white/gray) β β
β β β09:00-10:30 β β β β β
β β β[Edit][Info] β β β [Zoom In] [Zoom Out] [Fit All] β β
β β βββββββββββββββ β βββββββββββββββββββββββββββββββββββ β
β β β β
β βββββββββββββββββββ β
β 25% width 55% width 20% width β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Color Key:
βββ = Green (strong match 80-100%)
βββ = Yellow/Orange (acceptable match 50-79%)
βββ = Red (poor match <50%) - shown on hover/conflict
--- = Available/empty slot
Hover States and Tooltips
When mouse hovers over assigned session:
βββββββββββββββββββββββββββββββββββββββ
β βββββββββββββββββ β β Session block
β βββββββββββββββββ β Highlights
βββββββββββββββββββββββββββββββββββββββ
β
βββββββββββββββββββββββββββββββββββββββ
β Workshop 2: Advanced Topics β β Tooltip
β 14:00 - 15:30 (1.5 hours) β Appears on hover
β Room B, Capacity: 50 β
β β
β Speaker: Dr. Sarah Miller β
β Match Score: π’ 85% (Strong) β
β β
β Matches: β
β β Afternoon slot (preferred) β
β β Projector available β
β β Room size appropriate β
β β
β Click to edit | Right-click options β
βββββββββββββββββββββββββββββββββββββββ
When dragging speaker over available slot:
βββββββββββββββββββββββββββββββββββββββ
β --- Available --- β β Drop zone
β [Drop Dr. Miller here] β Highlights during drag
β Match: π’ 85% Strong β Shows match score
βββββββββββββββββββββββββββββββββββββββ
Context Menu (Right-Click)
Right-click on assigned session:
βββββββββββββββββββββββββββββββββββββββ
β Edit Timing... β
β View Session Details β
β View Speaker Preferences β
β ββββββββββββββββββββββββββββββββββββ
β Unassign Speaker β
β Swap with Another Session... β
β ββββββββββββββββββββββββββββββββββββ
β Copy Session Link β
β Add to Calendar β
βββββββββββββββββββββββββββββββββββββββ
Right-click on available slot:
βββββββββββββββββββββββββββββββββββββββ
β Assign Speaker... β
β Block Time Slot β
β View Room Details β
β ββββββββββββββββββββββββββββββββββββ
β Copy Time Slot Link β
βββββββββββββββββββββββββββββββββββββββ
5. Desktop (1440px - 1919px)
Layout Structure (Optimized 3-Column)
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β βββ Header ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β Event Management > BATbern 2025 > Slot Assignment [Back to Event] β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Assign Session Timings - BATbern 2025 β
β Progress: 3 of 8 sessions (37%) βββββββββββββββββββββββ πΆ 5 Remaining Avg: 85% π’ β
ββββββββββββββββββββ¬βββββββββββββββββββββββββββββββββββββββββββββββββββ¬βββββββββββββββββββββ€
β SPEAKERS β SESSION TIMELINE β QUICK ACTIONS β
β πΆ 5 Remaining β β β
β β Week View: [< June 9-13] [June 14-18] [19-23 >] β Summary β
β [Search...] β β βββββββββββββββββββ
β [All][β][β] β ββββββββββββββββββββββββββββββββββββββββββββββ β βTotal: 8 ββ
β β β Room A Room B Main Aud Lab β β βAssigned: 3 ββ
β πΆ UNASSIGNED: β ββββββββββββββββββββββββββββββββββββββββββββββ€ β βPending: 5 ββ
β ββββββββββββββββ β βMon βββ --- --- --- --- β β β ββ
β βDr. S. Miller β β β09:00 βββ βββ --- --- --- β β βMatch Avg: 85% ββ
β βAI in Arch β β β βββ βββ --- --- --- β β βConflicts: 0 ββ
β ββοΈ Afternoon β β β10:30 --- βββ --- --- --- β β βββββββββββββββββββ
β βπ€π½οΈπ β β β11:00 βββ βββ --- --- --- β β β
β βMatch: 85% β β β βββ βββ --- --- --- β β [Auto-Assign All] β
β β[Assign][Pref]β β β12:30 βββ βββ --- --- --- β β [Clear All] β
β ββββββββββββββββ β β14:00 --- --- βββ --- --- β β [Download PDF] β
β β β --- --- βββ --- --- β β β
β ββββββββββββββββ β β15:30 --- --- βββ --- --- β β Issues β
β βProf. J. Chen β β β16:00 --- --- --- βββ --- β β βββββββββββββββββββ
β βSustainable β β β --- --- --- βββ --- β β ββ οΈ 1 Warning ββ
β ββοΈ Morning β β β17:30 --- --- --- βββ --- β β β ββ
β βπ½οΈπ β β β18:00 --- --- --- --- --- β β βWorkshop 3: ββ
β βMatch: 92% β β β ... (scroll down for more times/days) β β βRoom too large ββ
β β[Assign][Pref]β β ββββββββββββββββββββββββββββββββββββββββββββββ β β[Review] ββ
β ββββββββββββββββ β β βββββββββββββββββββ
β β Zoom: [+] [-] [Fit] View: [Day][Week][Month] β β
β ... (3 more) β β Export β
β β Legend: βββ Strong βββ Good βββ Poor --- Open β [CSV] [PDF] [iCal] β
β β β [Print Schedule] β
β β ASSIGNED (3): β [Show Conflicts] [Show Preferences] [Show Stats]β β
β ββββββββββββββββ β β Help β
β ββ Dr. A. Smithβ β β [Keyboard Shortcutsβ
β βKeynote β β β [User Guide] β
β βMon 09:00 β β β [Video Tutorial] β
β βRmA β π’ 92% β β β β
β β[Edit][Detailsβ β β β
β ββββββββββββββββ β β β
β ... (2 more) β β β
β β β β
ββββββββββββββββββββ΄βββββββββββββββββββββββββββββββββββββββββββββββββββ΄βββββββββββββββββββββ
22% width 58% width 20% width
Advanced Features (Desktop Only)
Week/Month View:
Month View (1440px+ only):
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β June 2025 [< >] β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Mon Tue Wed Thu Fri Sat Sun β
βββββββββ¬ββββββββ¬ββββββββ¬ββββββββ¬ββββββββ¬ββββββββ¬ββββββββ¬ β
β 1 β 2 β 3 β 4 β 5 β 6 β 7 β β
β β β β β β β β β
βββββββββΌββββββββΌββββββββΌββββββββΌββββββββΌββββββββΌββββββββ€ β
β 8 β 9 β β 10 β β 11 β β 12 β 13 β 14 β β
β β β 5evt β 6evt β 4evt β β β β
β β β 3asgn β 4asgn β 2asgn β β β β
βββββββββΌββββββββΌββββββββΌββββββββΌββββββββΌββββββββΌββββββββ€ β
β 15 β 16 β 17 β 18 β 19 β 20 β 21 β β
β β β β β β β β β
βββββββββ΄ββββββββ΄ββββββββ΄ββββββββ΄ββββββββ΄ββββββββ΄ββββββββ β
β
β = Has events β
Click day to zoom to day view β
Hover shows summary: "5 events, 3 assigned, 2 pending" β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Keyboard Shortcuts Panel:
Desktop supports extensive keyboard shortcuts:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Keyboard Shortcuts [X] β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ€
β Navigation: β
β Tab Move to next element β
β Shift+Tab Move to previous element β
β Arrow keys Navigate grid β
β Ctrl+Home Jump to top β
β Ctrl+End Jump to bottom β
β β
β Workflow: β
β Enter Activate/assign β
β Escape Cancel β
β Ctrl+A Auto-assign all β
β Ctrl+S Save changes β
β Ctrl+Z Undo last action β
β Ctrl+Y Redo action β
β β
β View: β
β 1 Day view β
β 2 Week view β
β 3 Month view β
β + Zoom in β
β - Zoom out β
β 0 Reset zoom β
β β
β Search: β
β / Focus search β
β Ctrl+F Find speaker/session β
β β
β Help: β
β ? Show this help β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
6. Large Desktop (1920px+)
Layout Structure (4-Column Optional)
Ultra-wide displays (1920px+) can show additional panel:
ββββββββββββ¬βββββββββββββββββββββββββββββββ¬ββββββββββββ¬βββββββββββββββ
β Speakers β Session Timeline β Actions β Insights β
β (20%) β (50%) β (15%) β (15%) β
β β β β β
β β 5-6 rooms visible β β Analytics: β
β β simultaneously β β - Coverage β
β β β β - Quality β
β β More vertical space β β - Conflicts β
β β = Less scrolling β β - Trends β
β β β β β
β β Enhanced visual β β AI Suggest: β
β β match indicators β β - Best slots β
β β β β - Optimize β
ββββββββββββ΄βββββββββββββββββββββββββββββββ΄ββββββββββββ΄βββββββββββββββ
Insights Panel (1920px+ only):
- Real-time match quality analytics
- Session distribution charts
- Speaker preference satisfaction scores
- AI-powered assignment suggestions
- Conflict prediction
- Schedule optimization recommendations
Responsive Images and Media
Image Optimization
html
<!-- Speaker profile images - responsive -->
<picture>
<source
media="(min-width: 1440px)"
srcset="/images/speakers/sarah-miller-large.webp 1x,
/images/speakers/sarah-miller-large@2x.webp 2x"
type="image/webp">
<source
media="(min-width: 768px)"
srcset="/images/speakers/sarah-miller-medium.webp 1x,
/images/speakers/sarah-miller-medium@2x.webp 2x"
type="image/webp">
<source
srcset="/images/speakers/sarah-miller-small.webp 1x,
/images/speakers/sarah-miller-small@2x.webp 2x"
type="image/webp">
<img
src="/images/speakers/sarah-miller-medium.jpg"
alt="Dr. Sarah Miller, AI in Architecture specialist"
loading="lazy"
width="80"
height="80">
</picture>
Sizes:
- Small (mobile): 60x60px
- Medium (tablet): 80x80px
- Large (desktop): 100x100px
- @2x retina versions for all sizes
Icon Scaling
css
/* Responsive icon sizes */
.icon {
width: 20px;
height: 20px;
}
@media (min-width: 768px) {
.icon {
width: 24px;
height: 24px;
}
}
@media (min-width: 1440px) {
.icon {
width: 28px;
height: 28px;
}
}
/* Preference icons in speaker cards */
.preference-icon {
font-size: 18px; /* Mobile */
}
@media (min-width: 768px) {
.preference-icon {
font-size: 20px; /* Tablet */
}
}
@media (min-width: 1024px) {
.preference-icon {
font-size: 24px; /* Desktop */
}
}
Performance Optimizations
Lazy Loading
typescript
// Lazy load session grid rows as user scrolls
import { useVirtualizer } from '@tanstack/react-virtual';
export const SessionGrid: React.FC<{ sessions: Session[] }> = ({ sessions }) => {
const parentRef = useRef<HTMLDivElement>(null);
const rowVirtualizer = useVirtualizer({
count: sessions.length,
getScrollElement: () => parentRef.current,
estimateSize: () => 80, // Estimated row height
overscan: 5, // Render 5 extra rows above/below visible area
});
return (
<div ref={parentRef} className="session-grid-container">
<div
style={{
height: `${rowVirtualizer.getTotalSize()}px`,
width: '100%',
position: 'relative',
}}
>
{rowVirtualizer.getVirtualItems().map((virtualRow) => (
<SessionRow
key={virtualRow.key}
session={sessions[virtualRow.index]}
style={{
position: 'absolute',
top: 0,
left: 0,
width: '100%',
height: `${virtualRow.size}px`,
transform: `translateY(${virtualRow.start}px)`,
}}
/>
))}
</div>
</div>
);
};
Code Splitting
typescript
// Lazy load modals and heavy components
import { lazy, Suspense } from 'react';
const AutoAssignModal = lazy(() => import('@/components/AutoAssignModal'));
const ConflictModal = lazy(() => import('@/components/ConflictModal'));
const PreferencesDrawer = lazy(() => import('@/components/PreferencesDrawer'));
// Usage with suspense fallback
<Suspense fallback={<ModalSkeleton />}>
{showAutoAssign && <AutoAssignModal />}
</Suspense>
Responsive Bundle Loading
typescript
// Load device-specific code
const isMobile = window.matchMedia('(max-width: 767px)').matches;
if (isMobile) {
// Load touch-optimized components
import('@/components/mobile/TouchDragDrop');
} else {
// Load mouse-optimized components
import('@/components/desktop/MouseDragDrop');
}
Testing Across Devices
Manual Testing Checklist
Mobile (320px - 599px):
Tablet Portrait (768px - 1023px):
Tablet Landscape (1024px+):
Desktop (1440px+):
Automated Responsive Tests
typescript
// Playwright responsive tests
import { test, expect } from '@playwright/test';
const viewports = [
{ name: 'Mobile Portrait', width: 375, height: 667 },
{ name: 'Mobile Landscape', width: 667, height: 375 },
{ name: 'Tablet Portrait', width: 768, height: 1024 },
{ name: 'Tablet Landscape', width: 1024, height: 768 },
{ name: 'Desktop', width: 1440, height: 900 },
{ name: 'Large Desktop', width: 1920, height: 1080 },
];
for (const viewport of viewports) {
test(`should render correctly on ${viewport.name}`, async ({ page }) => {
await page.setViewportSize({ width: viewport.width, height: viewport.height });
await page.goto('/organizer/events/batbern-2025/slot-assignment');
// Take screenshot
await page.screenshot({
path: `screenshots/${viewport.name.replace(' ', '-')}.png`,
fullPage: true,
});
// Verify layout
if (viewport.width < 600) {
// Mobile: single column
await expect(page.locator('.speaker-pool')).toBeHidden();
await expect(page.locator('.bottom-nav')).toBeVisible();
} else if (viewport.width < 1024) {
// Tablet: two columns
await expect(page.locator('.speaker-pool')).toBeVisible();
await expect(page.locator('.quick-actions-panel')).toBeHidden();
} else {
// Desktop: three columns
await expect(page.locator('.speaker-pool')).toBeVisible();
await expect(page.locator('.quick-actions-panel')).toBeVisible();
}
});
}
Implementation Notes
CSS Grid Layout
css
/* Mobile first, single column */
.page-layout {
display: grid;
grid-template-columns: 1fr;
grid-template-areas:
"header"
"progress"
"timeline"
"nav";
gap: 0;
}
/* Tablet: two columns */
@media (min-width: 768px) {
.page-layout {
grid-template-columns: 35% 65%;
grid-template-areas:
"header header"
"progress progress"
"speakers timeline"
"speakers timeline";
gap: 16px;
}
}
/* Desktop: three columns */
@media (min-width: 1024px) {
.page-layout {
grid-template-columns: 22% 58% 20%;
grid-template-areas:
"header header header"
"progress progress progress"
"speakers timeline actions"
"speakers timeline actions";
gap: 24px;
}
}
/* Large desktop: four columns (optional) */
@media (min-width: 1920px) {
.page-layout {
grid-template-columns: 20% 50% 15% 15%;
grid-template-areas:
"header header header header"
"progress progress progress progress"
"speakers timeline actions insights"
"speakers timeline actions insights";
gap: 24px;
}
}
Material-UI Responsive Props
typescript
// Use Material-UI responsive props for clean code
<Box
sx={{
padding: {
xs: 1, // 8px mobile
sm: 2, // 16px tablet
md: 3, // 24px desktop
},
fontSize: {
xs: '14px',
sm: '16px',
md: '16px',
},
}}
>
Content
</Box>
// Grid layout with responsive breakpoints
<Grid container spacing={{ xs: 1, sm: 2, md: 3 }}>
<Grid item xs={12} md={4} lg={3}>
{/* Speaker Pool */}
</Grid>
<Grid item xs={12} md={8} lg={6}>
{/* Session Grid */}
</Grid>
<Grid item xs={12} lg={3}>
{/* Quick Actions - hidden on mobile/tablet */}
</Grid>
</Grid>
Summary
This wireframe documents comprehensive responsive design strategies for the slot assignment workflow across all device sizes:
Key Responsive Features:
- Mobile-first approach with progressive enhancement
- 6 breakpoints covering all device sizes (320px - 1920px+)
- Adaptive layouts: 1-column mobile β 2-column tablet β 3-column desktop β 4-column ultra-wide
- Touch-optimized interactions on mobile/tablet (48px targets, bottom sheets)
- Performance optimizations (lazy loading, code splitting, responsive images)
- Consistent UX across all devices with appropriate adaptations
Layout Strategy:
- Mobile: Single column, bottom nav, expandable panels
- Tablet Portrait: Two columns (speakers | timeline)
- Tablet Landscape: Three columns (speakers | timeline | actions)
- Desktop: Optimized three columns with advanced features
- Large Desktop: Optional four columns with analytics
Testing:
- Manual checklist for each breakpoint
- Automated Playwright tests across 6 viewports
- Screenshot regression testing
Next Steps:
- Review responsive wireframe with UX team
- Test on real devices (not just browser emulation)
- Implement CSS Grid and Material-UI responsive components
- Verify touch interactions on actual tablets
- Performance test on low-end mobile devices