Skip to main content
← All Guidelines

Canon

Responsive

Design for the smallest screen first, then enhance. Every Canon component adapts gracefully across devices.

Published January 8, 2026

Mobile-First Approach

Start with mobile styles, add complexity for larger screens.

/* Base: Mobile */
.card {
  padding: var(--space-md);
}

/* Enhancement: Tablet+ */
@media (min-width: 768px) {
  .card {
    padding: var(--space-lg);
  }
}

/* Enhancement: Desktop+ */
@media (min-width: 1024px) {
  .card {
    padding: var(--space-xl);
  }
}

Breakpoints

BreakpointMin-widthTarget
sm640pxLarge phones
md768pxTablets
lg1024pxLaptops
xl1280pxDesktops
2xl1536pxLarge screens

Responsive Typography

Font sizes that adapt:

.title {
  font-size: var(--text-2xl);
}

@media (min-width: 768px) {
  .title {
    font-size: var(--text-3xl);
  }
}

@media (min-width: 1024px) {
  .title {
    font-size: var(--text-4xl);
  }
}

Or use fluid typography:

.title {
  font-size: clamp(1.5rem, 4vw, 2.5rem);
}

Responsive Spacing

Scale spacing proportionally:

ContextMobileTabletDesktop
Section padding--space-lg--space-xl--space-2xl
Card padding--space-md--space-lg--space-lg
Stack gap--space-sm--space-md--space-md

Layout Patterns

Stack → Grid

.features {
  display: grid;
  gap: var(--space-lg);
  grid-template-columns: 1fr;
}

@media (min-width: 768px) {
  .features {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .features {
    grid-template-columns: repeat(3, 1fr);
  }
}

Sidebar → Stack

.layout {
  display: flex;
  flex-direction: column;
}

@media (min-width: 1024px) {
  .layout {
    flex-direction: row;
  }
  
  .sidebar {
    width: 280px;
    flex-shrink: 0;
  }
  
  .main {
    flex: 1;
  }
}

Touch Targets

Minimum touch target size: 44×44px

.button {
  min-height: 44px;
  min-width: 44px;
  padding: var(--space-sm) var(--space-md);
}

Testing Checklist

  • Works on 320px width (iPhone SE)
  • Touch targets are 44px minimum
  • Text is readable without zooming
  • No horizontal scroll
  • Forms are usable with thumb
  • Modals work on small screens