UI Conventions

Common patterns and design principles in BATbern

Last updated: June 13, 2026 Reading time: 8 minutes File size: 12.96 KB

Implemented

Last Updated: 2026-06-13

Overview

BATbern follows Swiss design principles for a clean, functional, and intuitive user experience. This guide explains common UI patterns you’ll encounter throughout the platform.

Design Principles

Swiss Design Aesthetics

BATbern’s interface embodies Swiss design:

  • Minimalism: Clean layouts with purposeful whitespace
  • Grid-based: Structured layouts using 8px spacing units
  • High Contrast: Excellent readability (WCAG 2.1 AA compliant)
  • Typography: Helvetica Neue/Helvetica sans-serif family
  • Functionality: Every element serves a clear purpose

Color Semantics

Colors convey meaning consistently:

Color Meaning Examples
Blue (#2C5F7C) Primary actions, Organizer role Save buttons, active navigation
Light Blue (#4A90B8) Speaker role, secondary info Speaker badges, links
Orange (#E67E22) Partner role, accents Partner tier badges, warnings
Green (#27AE60) Success, completion Successful state transitions, success messages
Yellow (#F39C12) Pending, in-progress Pending status, draft states
Red (#E74C3C) Errors, failed states Validation errors, failed operations

Common UI Patterns

Role-Based UI Adaptation

Implemented

The interface adapts based on your role:

As an Organizer, you see:

  • βœ… Full entity management (Companies, Users, Events, Partners, Speakers)
  • βœ… Event workflow management interface
  • βœ… Advanced analytics and reports
  • βœ… Partner coordination tools

As a Speaker, you would see:

  • πŸ‘€ Your speaker profile
  • πŸ“ Content submission forms
  • πŸ“… Your assigned sessions
  • ❌ No access to workflow or entity management

As a Partner, you would see:

  • πŸ“Š Attendance analytics for your company (with XLSX export)
  • πŸ—³οΈ Topic suggestion and voting
  • 🀝 Meeting coordination and iCal invites
  • ❌ No access to planning tools or other companies’ data

As an Attendee, you would see:

  • 🎫 Event registration and self-service deregistration
  • πŸ“† Event schedules and your event history
  • πŸ“„ Session materials
  • πŸ’‘ Topic suggestions, speaker self-nomination, and post-event Q&A
  • ❌ No access to planning tools

Multi-Role Single-Session Navigation

Implemented

A single BATbern account can carry more than one role β€” for example, an organizer who also speaks at an event, or a partner who is also an attendee. Following the unified speaker workflow refactor (Epic 11), these roles are no longer separate logins.

One login, one session. You authenticate once (email/password or β€œContinue with Google”) and the application loads every role you hold into the same session.

Grouped navigation. The navigation menu lists the features for each role under its own section divider, so a multi-role user sees, for instance, an Organizer group and a Speaker group stacked in the same sidebar. You move between them by scrolling β€” there is no role-switcher modal and no need to log out and back in.

Role-scoped access still applies. Grouping is purely presentational; each feature is still gated by the role that owns it. You only ever see the groups for roles your account actually holds.

Buttons

Primary Actions

Used for primary actions:

  • Save changes
  • Submit forms
  • Create new entities
  • Confirm operations

Secondary Actions

Used for secondary actions:

  • Cancel operations
  • Go back
  • Alternative actions

Destructive Actions

Used for destructive operations:

  • Delete entities
  • Permanently remove data
  • Always requires confirmation

Form Fields

Required Fields

Fields with a red asterisk (*) are required:

Email Address *
[                    ]

Validation errors appear inline:

Email Address *
[invalid-email      ]
⚠️ Please enter a valid email address

Field Types

Text Input:

Company Name *
[MΓΌller Architekten AG]

Dropdown Select:

Event Type *
[β–Ό Select type...    ]
   Full-Day Conference
   Afternoon Workshop
   Evening Lecture

Date Picker:

Event Date *
[πŸ“… 2025-03-15       ]

Multi-Select:

Topics
[β˜‘οΈ Sustainable Building]
[☐ Digital Transformation]
[β˜‘οΈ Urban Planning]

File Upload:

Company Logo
[Choose File] No file chosen
└─ PNG, JPG, SVG (max 2MB)

Status Badges

Implemented

Status badges provide at-a-glance information:

Workflow States:

  • CREATED - New entity
  • IN PROGRESS - Active work
  • COMPLETED - Finished

User Roles:

  • ORGANIZER
  • SPEAKER
  • ATTENDEE
  • ADMIN

Partner Tiers:

  • πŸ’Ž DIAMOND
  • PLATINUM
  • GOLD

Notifications & Alerts

Toast Notifications

Planned

Brief messages appear at bottom-right:

βœ… Company "MΓΌller Architekten AG" created successfully
❌ Failed to save changes. Please try again.

Toasts auto-dismiss after 5 seconds or can be manually closed.

Inline Alerts

Persistent alerts for important information:

ℹ️ Info: This event uses staging Cognito for authentication.
⚠️ Warning: You have unsaved changes. Save or discard before leaving.
❌ Error: Swiss UID validation failed. Please check the format.
βœ… Success: All speakers confirmed for this event.

Tables & Data Grids

Table Actions

Every table row includes action buttons:

Company Name Swiss UID Employees Actions
MΓΌller Architekten AG CHE-123.456.789 45 πŸ‘οΈ πŸ“ πŸ—‘οΈ
  • πŸ‘οΈ View - Read-only details
  • πŸ“ Edit - Modify entity
  • πŸ—‘οΈ Delete - Remove (with confirmation)

Sorting

Click column headers to sort:

  • First click: Ascending (β–²)
  • Second click: Descending (β–Ό)
  • Third click: Clear sorting

Pagination

Navigate large datasets:

β—€ Previous  [1] 2 3 ... 10  Next β–Ά
Showing 1-25 of 237 results

Options: 10, 25, 50, 100 rows per page

Search & Filters

Global Search:

πŸ” [Search companies...     ]

Advanced Filters Implemented:

πŸŽ›οΈ Filters
   [canton:ZH]
   [employees:>100]
   [verified:true]

JSON-based filter syntax for complex queries.

Modals & Dialogs

Confirmation Dialogs

Destructive actions require confirmation:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Delete Company?                   β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  Are you sure you want to delete   β”‚
β”‚  "MΓΌller Architekten AG"?          β”‚
β”‚                                    β”‚
β”‚  This action cannot be undone.     β”‚
β”‚                                    β”‚
β”‚  [Cancel]         [Delete] ←red    β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Form Modals

Quick forms appear in modals:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Add New Speaker              [Γ—]  β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚  First Name *                      β”‚
β”‚  [                    ]            β”‚
β”‚                                    β”‚
β”‚  Last Name *                       β”‚
β”‚  [                    ]            β”‚
β”‚                                    β”‚
β”‚  Email *                           β”‚
β”‚  [                    ]            β”‚
β”‚                                    β”‚
β”‚  [Cancel]            [Add Speaker] β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Loading States

Skeleton Loaders

While data loads, skeleton placeholders appear:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ         β–’β–’β–’β–’β–’β–’β–’β–’    β”‚
β”‚  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ              β–’β–’β–’β–’β–’β–’      β”‚
β”‚                                    β”‚
β”‚  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ         β–’β–’β–’β–’β–’β–’β–’β–’    β”‚
β”‚  β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆ              β–’β–’β–’β–’β–’β–’      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Spinner

For quick operations:

πŸ”„ Loading...

Progress Bars

Planned

For long operations (file uploads, data imports):

Uploading company logo...
[β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘] 60%

Navigate hierarchical views:

Home > Events > BATbern 2025 > Workflow > Phase A: Setup

Click any segment to navigate.

Tabs

Organize complex forms:

[General] [Timeline] [Speakers] [Partners]
─────────
   General Information
   Event Name: BATbern 2025
   Event Type: Full-Day Conference
   ...

Accessibility Features

Implemented

BATbern meets WCAG 2.1 AA standards:

  • βœ… Keyboard Navigation: Tab through all interactive elements
  • βœ… Screen Reader Support: ARIA labels on all controls
  • βœ… High Contrast: Text contrast ratio β‰₯ 4.5:1
  • βœ… Focus Indicators: Visible focus rings on keyboard navigation
  • βœ… Semantic HTML: Proper heading hierarchy and landmark roles

Mobile & Responsive

The interface adapts to different devices:

Touch Gestures

On mobile/tablet:

  • Tap - Activate buttons, links
  • Swipe Left/Right - Navigate carousel items (e.g., event cards)
  • Long Press - Show context menu Planned
  • Pull Down - Refresh lists Planned

Adaptive Layouts

  • Desktop: Multi-column, expanded sidebar
  • Tablet: Two-column, collapsible sidebar
  • Mobile: Single-column, hamburger menu

What’s Next?