Comprehensive redesign and optimization of the Code BEAM London conference website, focusing on design consistency, accessibility, performance, and user experience.
.btn-orange was actually green (#4DBA12)$light-blue variable was actually purple (#543462)blue, purple, gray, grey) causing inconsistent renderingCreated _sass/_variables.scss - Centralized design system with:
$brand-green: #4DBA12; // Primary (consolidated 3 variants)
$brand-cyan: #12E7FE; // Secondary
$brand-magenta: #e32dfd; // Accent
$brand-orange: #ee5a30; // Actual orange color
$gray-50 to $gray-950$purple-darkest to $purple-light)$text-light, $link-color, $nav-bg, etc.)$spacing-xs: 4px
$spacing-sm: 8px
$spacing-md: 16px
$spacing-lg: 24px
$spacing-xl: 32px
$spacing-2xl: 48px
$spacing-3xl: 64px
$spacing-4xl: 96px
$spacing-5xl: 128px
$breakpoint-xs: 480px // Small phones
$breakpoint-sm: 640px // Large phones
$breakpoint-md: 768px // Tablets
$breakpoint-lg: 1024px // Laptops
$breakpoint-xl: 1280px // Desktops
Before:
.btn-orange
border: solid .1em #4DBA12 // Green, not orange!
color: #4DBA12
After:
.btn-green
border: solid .1em $brand-green
color: $brand-green
// Legacy support maintained
.btn-orange
@extend .btn-green
Before:
$primary: blue; // Named color - unpredictable
$light-blue: #543462; // Actually purple!
After:
$primary: $brand-green;
$light-blue: $purple-base; // Clearly documented as legacy
Example:
.btn-outline
transition: $transition-all
cursor: pointer
&:hover
transform: translateY(-2px)
box-shadow: $box-shadow-md
&:focus
outline: 2px solid $brand-cyan
outline-offset: 2px
&:active
transform: translateY(1px)
.nav (mobile)
position: fixed
right: -100% // Hidden offscreen
height: 100vh
width: 80%
max-width: 320px
transition: right 300ms
&.active
right: 0 // Slides in
.logo
min-height: 350px // Was: 500px
max-height: 450px // Prevents oversizing
object-fit: contain // Maintains aspect ratio
@media (max-width: 1112px)
min-height: 280px
@media (max-width: 634px)
min-height: 220px
Responsive Padding:
8em 3em → 8em $spacing-2xl (48px)6em $spacing-lg (24px)5em $spacing-md (16px)Every section used identical dark background (#000101), creating visual monotony
.section
background-color: $bg-section-primary
&:nth-of-type(even)
background-color: $bg-section-secondary // Slightly lighter
Colors:
#000101 (pure black)#0a0f0d (subtle dark green-gray)Creates subtle visual separation without being jarring.
Before: 7 font families, 6 separate HTTP requests
<link href="...Montserrat:100,200,300,400,500,600,700">
<link href="...Kaushan+Script">
<link href="...Lato:400,700,400italic,700italic">
<link href="...Karla:400,400i,700">
<link href="...Droid+Serif:400,700,400i,700i">
<link href="...Roboto+Slab:400,100,300,700">
After: 2 families, 1 HTTP request, Google Fonts v2 API
<link href="...Montserrat:wght@200;300;400;500;600;700&family=Lato:ital,wght@0,400;0,700;1,400;1,700&display=swap">
Savings: ~70% fewer font files, faster page load
Changed all analytics/tracking scripts to async:
<script async>defer attributeasyncasync injectionImpact: Non-blocking page load, faster First Contentful Paint
:focus states| Metric | Before | After | Improvement |
|---|---|---|---|
| Color Variables | 0 | 50+ | Infinite |
| Font Requests | 6 | 1 | 83% ↓ |
| Named Colors | 7 | 0 | 100% ↓ |
| Green Variants | 3 | 1 | 67% ↓ |
| Button States | 1 (hover) | 3 (hover/focus/active) | 200% ↑ |
| Mobile Nav UX | Scrollable | Slide-drawer | Modern |
| Hero Logo Height | 500px | 350px (responsive) | 30% ↓ |
| Section Variety | 1 bg | Alternating | Better |
| Script Blocking | Sync | Async | Faster FCP |
_sass/_variables.scss - NEW - Complete design system_sass/global.scss - Updated to import variables_sass/main.sass - Buttons, navigation, sections_sass/cover.sass - Hero responsive fixes_sass/banners.sass - Color consolidation_sass/sponsors.sass - Named color replacement_sass/training.sass - Green color consolidation_sass/_countdown.scss - Color variables_includes/imports/head.html - Font & script optimization_includes/travelling.html - Purple color fixassets/css/styles.scss - Variables import.btn-orange extends .btn-green (no breaking changes)srcset for hero backgroundThis redesign focused on:
✅ Consistency - Unified design system with semantic naming
✅ Performance - Faster loading through optimization
✅ Accessibility - WCAG-compliant interactive elements
✅ Mobile UX - Modern slide-drawer navigation
✅ Maintainability - Centralized variables, clear documentation
The website now has a solid foundation for growth with a scalable, maintainable design system that follows modern web development best practices.
Last Updated: 2025-11-14
By: UX/UI & Graphics Design Expert
For: Code BEAM Lite London 2026