ISCOTransport

ISCO Design System

One system for the entire transportation network

A single source of truth for the ISCO Transportation Management System. It defines the tokens, components, and rules shared across the student app, supervisor app, and admin dashboard — engineered to scale to 100+ screens and future modules.

Student App

Booking, QR pass, schedule, announcements, complaints.

Supervisor App

Fast attendance, offline scanning, large touch targets.

Admin Dashboard

Students, routes, schedules, payments, analytics.

Primary

#D71920

Single brand accent

Grid

8pt

Consistent rhythm

Max taps

3

To any key feature

Contrast

WCAG AA

Minimum standard

Foundations

Design principles

Four rules that resolve every ambiguity. When in doubt, choose the option that is faster, clearer, and more accessible.

Design for speed

Every task is optimized for the fewest taps. Peak usage happens in seconds, outdoors, in a hurry.

Clarity over decoration

Mostly white surfaces, generous spacing, and one confident accent. No gradients, glass, or noise.

One primary action

Each screen has a single, obvious next step. Secondary actions never compete with it.

Accessible by default

AA contrast, 44px targets, visible focus, and full keyboard and screen-reader support.

Foundations

Color system

The interface stays predominantly white. Red is reserved for primary actions, highlights, and notifications — never for large fills. Status colors are functional and used sparingly.

Brand

#D71920
ISCO Red--primaryPrimary actions, key highlights, notifications
#14161A
Ink / Black--accentText, headings, high-emphasis surfaces
#FFFFFF
White--backgroundApp background, primary canvas

Neutrals

#F8F9FA
Surface--cardCards, raised panels
#F8F9FA
Muted--mutedSubtle fills, hovers
#F1F3F5
Secondary--secondarySecondary buttons, chips
#E5E7EB
Border--borderDividers, outlines
#6B7280
Muted text--muted-foregroundSecondary text, captions
#14161A
Foreground--foregroundPrimary text

Functional status

#0F8A5F
Success--successConfirmed, active, paid
#B7791F
Warning--warningPending, attention needed
#1D4ED8
Info--infoNeutral information, in transit
#D71920
Danger--primaryErrors, cancellations, overdue
Do — Use ISCO red for the single primary action on a screen.
Don’t — Fill large backgrounds or entire cards with red.
Do — Keep 90%+ of the interface white and neutral gray.
Don’t — Introduce purple, teal, or decorative color accents.

Foundations

Typography

Inter is the single typeface across all products; JetBrains Mono is used only for codes, IDs, and tokens. Body copy uses 1.6 line-height for comfortable reading.

Move campus forward
Display36 / 44pxlh 1.2wt 700
Route management
Heading 130 / 38pxlh 1.25wt 700
Today’s schedule
Heading 224 / 32pxlh 1.3wt 600
Active subscriptions
Heading 320 / 28pxlh 1.4wt 600
Morning Line — Gate A
Title16 / 24pxlh 1.5wt 600
Buses depart every 15 minutes during peak hours.
Body14 / 22pxlh 1.6wt 400
Updated 2 minutes ago
Caption12 / 16pxlh 1.5wt 500
SUPERVISOR
Overline11 / 16pxlh 1.5wt 600
Font families
Inter — InterfaceHeadings, body, labels, buttons
JetBrains MonoTicket IDs, QR codes, tokens

Foundations

Spacing & 8-point grid

All spacing is a multiple of 4px, aligned to an 8-point grid. This keeps layouts rhythmic and predictable across every screen and breakpoint.

space-14pxp-1 / gap-1
space-28pxp-2 / gap-2
space-312pxp-3 / gap-3
space-416pxp-4 / gap-4
space-624pxp-6 / gap-6
space-832pxp-8 / gap-8
space-1248pxp-12 / gap-12
space-1664pxp-16 / gap-16

Foundations

Radius & elevation

Soft, rounded corners and low, diffuse shadows give surfaces a calm, corporate feel. Elevation communicates hierarchy — the higher the layer, the softer and larger the shadow.

Corner radius

sm8px
md10px
lg (base)12px
xl16px
2xl20px
full9999px

Elevation

Flat

Inline surfaces, table rows

Level 1

Cards, list items

Level 2

Dropdowns, popovers

Level 3

Dialogs, bottom sheets

Foundations

Iconography

A single icon set (Lucide) keeps visuals consistent. Icons use a 1.5px stroke, align to 24px, and match the current text color. Never use emoji as icons.

Lucide · 24px · currentColor

16px

Inline / dense

20px

Default UI

24px

Buttons / nav

32px

Feature

Components

Buttons

One primary (red) button per view communicates the main action. Secondary, outline, and ghost variants handle everything else. Supervisor screens use the large size for outdoor, gloved use.

Variants
Sizes
With icons & states
Do — Limit each screen to a single primary red button.
Don’t — Stack multiple red buttons of equal weight together.
Do — Use the large size for supervisor scanning actions.
Don’t — Use ghost buttons for destructive actions without confirmation.

Components

Inputs & forms

Consistent 40px controls with clear labels, hints, and error messaging. Every input has a visible focus ring and 4.5:1 label contrast for accessibility.

Printed on your ISCO card

Enter a valid university email

Optional · 120 characters

Components

Badges & chips

Status badges give tables and cards scannable meaning. Tone maps to a fixed semantic — success is confirmed, warning is pending, danger is cancelled or overdue.

Status badges
Confirmed Pending In transit Cancelled DraftNew
Filter chips

Components

Alerts & toasts

Inline alerts explain a state in context; toasts confirm an action and dismiss automatically. Icon and color reinforce meaning together — never color alone.

Schedule updated

The evening line now departs at 6:15 PM.

Booking confirmed

Seat 14 reserved for tomorrow’s morning line.

Subscription expiring

Your monthly pass ends in 3 days.

Payment failed

We could not process your renewal. Try another method.

Toast

Attendance saved for 42 students

Components

Data tables

Admin tables support search, filtering, sorting, pagination, and bulk actions. Selecting rows reveals a contextual action bar; destructive actions always require confirmation.

RouteStatusSeats
Layla Hassan
2021-04421
Morning · Gate A Active1
Omar Nasser
2020-03318
Evening · Library Pending2
Sara Khalil
2022-05910
Morning · North Active1
Yousef Adel
2019-02214
Weekend · Gate B Suspended0
Showing 1–4 of 428

Components

Statistics & charts

KPI cards lead every dashboard, followed by focused visualizations. Charts use the neutral ramp with a single red series for emphasis, and always include labels and values.

Active students

3,842

+4.2% vs last week

Trips today

186

+12 vs last week

Attendance rate

94%

+1.8% vs last week

Open complaints

7

-3 vs last week

Weekly ridership

Trips completed per day

On target
M
T
W
T
F
S
S

Components

Dialogs & bottom sheets

Web uses centered modal dialogs for confirmation; mobile uses bottom sheets that rise within thumb reach. Both trap focus, dim the background, and close on Escape or scrim tap.

Components

UI states

Every data surface is designed for all of its states — not just the happy path. Loading, empty, error, and offline states keep users oriented and confident.

Skeleton loading

No bookings yet

Your upcoming trips will appear here once you book a seat.

Something went wrong

We couldn’t load your schedule. Check your connection and try again.

You’re offline

Scans are saved on your device and will sync automatically when you reconnect.

12 scans queued

Patterns

Domain cards

Reusable card patterns encode the core objects of the platform — bookings, payments, and complaints — so they look and behave the same everywhere they appear.

Morning Line

Gate A → Main Campus

Confirmed

Date

Mon, 14 Jul

Departs

07:30 AM

Seat

14

Bus

ISCO-08

Monthly Pass

Semester subscription

Due soon

$45/mo

Next charge17 Jul 2026
Method•••• 4421

Complaint #2041

Late departure

In review

“The evening bus from the library left 20 minutes late without any notice on the app.”

Submitted 2 hours ago · Evening Line

Patterns

QR & scanning

The student pass presents a large, high-contrast QR code. The supervisor scanner is built for speed outdoors: a full-bleed camera frame, a single target reticle, and immediate success feedback that works offline.

Digital pass

Valid

2021-04421

Layla Hassan · Morning Line · Seat 14

Scanning Offline
Point the camera at a student pass
Scan result feedback
Layla Hassan · Boarded
Pass expired · Deny boarding

Patterns

Maps

Live tracking pairs a map surface with a route timeline. Production uses a dedicated mapping library (e.g. Mapbox or Leaflet); this placeholder documents the framing, marker, and route-progress treatment.

ISCO-08 · en route
Map placeholder · integrate Mapbox / Leaflet

Morning Line

ETA 12 min
  1. Gate A — Main Campus

    07:30
  2. Library Stop

    07:42
  3. North Housing

    07:55
  4. Engineering Block

    08:05
  5. Sports Complex

    08:15

Guidelines

Accessibility

Accessibility is a baseline requirement, not an enhancement. Every component ships meeting WCAG 2.1 AA so all students, supervisors, and admins can complete their tasks.

Color contrast

Text meets WCAG 2.1 AA — 4.5:1 for body, 3:1 for large text and UI borders.

Touch targets

Interactive elements are at least 44×44px, critical for supervisors working outdoors.

Focus visible

Every interactive element shows a 2px ring in ISCO red on keyboard focus.

Never color alone

Status is always paired with an icon or label so it is legible for color-blind users.

Semantic markup

Landmarks, headings, labels, and ARIA roles describe structure to screen readers.

Motion respect

Animations honor prefers-reduced-motion and never block interaction.

Guidelines

Interaction & motion

Motion is functional: it confirms actions and guides attention without slowing anyone down. Transitions are short, eased, and consistent across platforms.

Feedback

Buttons depress 1px on press; every tap has an immediate visual response.

Timing

Micro-interactions 150ms, overlays 200ms, using an ease-out curve.

Predictable

The same action always animates the same way in every product.

Do — Use motion to confirm a state change or transition.
Don’t — Animate decorative elements or loop distracting effects.
Do — Keep transitions under 250ms so the UI always feels fast.
Don’t — Block the primary action while an animation plays.

Guidelines

Responsive rules

Design mobile-first, then enhance. Layouts reflow from a single column into multi-column arrangements, and navigation adapts from a bottom bar to a persistent sidebar.

Mobile

0 – 767px

Student & supervisor apps · single column · bottom nav

Tablet

768 – 1023px

Two-column layouts · condensed sidebar

Desktop

1024px +

Admin dashboard · persistent sidebar · dense tables

Guidelines

Dark mode (future)

The token architecture is dark-mode ready. Every color is referenced through a semantic variable, so a future dark theme only needs to swap the values under a .dark scope — no component changes required.

Light (shipping)
Dark (planned)

Token strategy

:root        { --primary: #D71920; --background: #FFFFFF; }
.dark        { --primary: #EF4444; --background: #0D0E10; }

/* Components only reference tokens — never raw colors */
bg-primary   →  var(--primary)
bg-background → var(--background)