Microsoft-Inspired Design System for ChrilanTech
This document outlines a comprehensive design system inspired by Microsoft’s modern web design principles to update the look and feel of the ChrilanTech website. The design system focuses on clean, accessible, and professional aesthetics that convey trust and innovation.
Design Principles
- Clarity: Prioritize clear communication and readability
- Depth: Use subtle shadows and layering to create visual hierarchy
- Motion: Incorporate purposeful animations that enhance user experience
- Material: Employ thoughtful use of color, typography, and space
- Scale: Design for all screen sizes with a mobile-first approach
Color Palette
Primary Colors
| Color Name | Hex Code | Usage |
|---|
| Primary Blue | #0078D4 | Primary brand color, main CTAs, key UI elements |
| Dark Blue | #005A9E | Hover states, secondary elements |
| Light Blue | #C7E0F4 | Backgrounds, highlights, secondary elements |
Secondary Colors
| Color Name | Hex Code | Usage |
|---|
| Accent Teal | #00B7C3 | Accents, highlights, secondary CTAs |
| Accent Purple | #8661C5 | Tertiary elements, visual interest |
| Accent Green | #107C10 | Success states, positive indicators |
Neutral Colors
| Color Name | Hex Code | Usage |
|---|
| Dark Gray | #323130 | Primary text, headings |
| Medium Gray | #605E5C | Secondary text, body copy |
| Light Gray | #F3F2F1 | Backgrounds, cards, containers |
| White | #FFFFFF | Page backgrounds, text on dark backgrounds |
Semantic Colors
| Color Name | Hex Code | Usage |
|---|
| Success | #107C10 | Success messages, confirmations |
| Warning | #FFB900 | Warnings, alerts |
| Error | #D13438 | Error messages, critical alerts |
| Info | #0078D4 | Informational messages |
Typography
Font Families
- Primary Font: Segoe UI (for Windows) / San Francisco (for macOS) / Roboto (for Android)
- Fallback Stack: -apple-system, BlinkMacSystemFont, ‘Segoe UI’, Roboto, Oxygen-Sans, Ubuntu, Cantarell, ‘Helvetica Neue’, sans-serif
- Monospace Font: Consolas, Monaco, ‘Andale Mono’, ‘Ubuntu Mono’, monospace (for code snippets)
Type Scale
| Level | Size | Weight | Line Height | Usage |
|---|
| Hero | 48px/3rem | 700 | 1.1 | Main page headlines |
| H1 | 32px/2rem | 700 | 1.2 | Page titles |
| H2 | 24px/1.5rem | 600 | 1.3 | Section headings |
| H3 | 20px/1.25rem | 600 | 1.3 | Subsection headings |
| H4 | 18px/1.125rem | 600 | 1.4 | Card headings |
| Body Large | 16px/1rem | 400 | 1.5 | Primary body text |
| Body | 14px/0.875rem | 400 | 1.5 | Secondary body text |
| Caption | 12px/0.75rem | 400 | 1.5 | Captions, footnotes |
Text Styles
- Link Text: Primary Blue (#0078D4), no underline by default, underline on hover
- Emphasized Text: Same size as surrounding text, italic style
- Strong Text: Same size as surrounding text, 600 weight
- Code Text: Monospace font, Light Gray (#F3F2F1) background, 14px
Spacing System
Based on a 4px grid system:
| Size | Value | Usage |
|---|
| xs | 4px | Minimal spacing, icon padding |
| sm | 8px | Tight spacing, between related elements |
| md | 16px | Standard spacing, between components |
| lg | 24px | Generous spacing, section padding |
| xl | 32px | Section margins |
| xxl | 48px | Major section divisions |
| xxxl | 64px | Page sections |
Components
- Background: Primary Blue (#0078D4)
- Text: White (#FFFFFF)
- Padding: 12px 20px
- Border: None
- Border Radius: 2px
- Hover: Dark Blue (#005A9E)
- Active: 2px darker than hover
- Disabled: 40% opacity
- Background: White (#FFFFFF)
- Text: Primary Blue (#0078D4)
- Border: 1px solid Primary Blue (#0078D4)
- Padding: 12px 20px
- Border Radius: 2px
- Hover: Light Blue (#C7E0F4) background
- Active: 2px darker than hover
- Disabled: 40% opacity
- Background: Transparent
- Text: Primary Blue (#0078D4)
- Border: None
- Padding: 12px 20px
- Hover: Light Blue (#C7E0F4) background
- Active: 2px darker than hover
- Disabled: 40% opacity
Cards
Standard Card
- Background: White (#FFFFFF)
- Border: None
- Border Radius: 2px
- Shadow: 0 2px 4px rgba(0, 0, 0, 0.1)
- Padding: 24px
- Hover: Shadow: 0 4px 8px rgba(0, 0, 0, 0.1)
Feature Card
- Background: White (#FFFFFF)
- Border-Top: 4px solid Primary Blue (#0078D4)
- Border Radius: 2px
- Shadow: 0 2px 4px rgba(0, 0, 0, 0.1)
- Padding: 24px
- Hover: Shadow: 0 4px 8px rgba(0, 0, 0, 0.1)
Subtle Card
- Background: Light Gray (#F3F2F1)
- Border: None
- Border Radius: 2px
- Padding: 24px
- Hover: Shadow: 0 2px 4px rgba(0, 0, 0, 0.05)
Navigation
Primary Navigation
- Background: White (#FFFFFF)
- Text: Dark Gray (#323130)
- Active Item: Border-bottom: 2px solid Primary Blue (#0078D4)
- Hover: Light Gray (#F3F2F1) background
- Padding: 16px
- Mobile: Hamburger menu with slide-in panel
Secondary Navigation
- Background: Light Gray (#F3F2F1)
- Text: Medium Gray (#605E5C)
- Active Item: Text: Primary Blue (#0078D4), Font Weight: 600
- Hover: 10% darker background
- Padding: 12px 16px
Text Input
- Border: 1px solid Medium Gray (#605E5C)
- Border Radius: 2px
- Padding: 8px 12px
- Focus: Border: 2px solid Primary Blue (#0078D4)
- Error: Border: 2px solid Error (#D13438)
- Disabled: Background: Light Gray (#F3F2F1), 40% opacity
Checkbox & Radio
- Border: 1px solid Medium Gray (#605E5C)
- Border Radius: 2px (0px for radio)
- Size: 16px × 16px
- Checked: Background: Primary Blue (#0078D4)
- Focus: Border: 2px solid Primary Blue (#0078D4)
Dropdown
- Border: 1px solid Medium Gray (#605E5C)
- Border Radius: 2px
- Padding: 8px 12px
- Arrow: 8px, Medium Gray (#605E5C)
- Focus: Border: 2px solid Primary Blue (#0078D4)
- Options: White background, hover Light Gray (#F3F2F1)
Alerts & Notifications
Info Alert
- Background: Light Blue (#C7E0F4)
- Border-Left: 4px solid Primary Blue (#0078D4)
- Text: Dark Gray (#323130)
- Icon: Info icon in Primary Blue (#0078D4)
- Padding: 16px
Success Alert
- Background: #DFF6DD
- Border-Left: 4px solid Success (#107C10)
- Text: Dark Gray (#323130)
- Icon: Checkmark icon in Success (#107C10)
- Padding: 16px
Warning Alert
- Background: #FFF4CE
- Border-Left: 4px solid Warning (#FFB900)
- Text: Dark Gray (#323130)
- Icon: Warning icon in Warning (#FFB900)
- Padding: 16px
Error Alert
- Background: #FDE7E9
- Border-Left: 4px solid Error (#D13438)
- Text: Dark Gray (#323130)
- Icon: Error icon in Error (#D13438)
- Padding: 16px
Hero Sections
Primary Hero
- Background: Gradient from Primary Blue (#0078D4) to Dark Blue (#005A9E)
- Text: White (#FFFFFF)
- Padding: 64px 0
- Content: Left-aligned text, right-aligned image
- CTA: Primary button with white background, Primary Blue text
Secondary Hero
- Background: Light Gray (#F3F2F1)
- Text: Dark Gray (#323130)
- Padding: 48px 0
- Content: Centered text, optional image below
- CTA: Primary button
Feature Hero
- Background: White (#FFFFFF)
- Border-Top: 8px solid Primary Blue (#0078D4)
- Text: Dark Gray (#323130)
- Padding: 48px 0
- Content: Left-aligned text, right-aligned image
- CTA: Secondary button
Layout Guidelines
Grid System
- 12-column grid
- Gutter width: 24px
- Container max-width: 1440px
- Container padding: 24px (desktop), 16px (mobile)
Breakpoints
| Name | Width | Usage |
|---|
| xs | < 576px | Mobile portrait |
| sm | ≥ 576px | Mobile landscape |
| md | ≥ 768px | Tablet |
| lg | ≥ 992px | Desktop |
| xl | ≥ 1200px | Large desktop |
| xxl | ≥ 1440px | Extra large desktop |
Page Templates
Homepage
- Primary hero section
- 3-4 feature sections with alternating layouts
- Testimonial section
- Call-to-action section
- Footer
Product Page
- Secondary hero section
- Feature highlights (3-column grid)
- Detailed feature sections with images
- Pricing section
- FAQ section
- Call-to-action section
- Footer
Blog/Content Page
- Simple header with title and metadata
- Content area (70% width on desktop)
- Sidebar (30% width on desktop)
- Related content section
- Call-to-action section
- Footer
Animation & Transitions
Principles
- Use animation to provide feedback and guide attention
- Keep animations subtle and purposeful
- Ensure animations don’t interfere with usability
Timing
- Extra Fast: 100ms (micro-interactions)
- Fast: 200ms (button hover, focus states)
- Medium: 300ms (panel transitions, dropdown menus)
- Slow: 500ms (page transitions, modal dialogs)
Easing
- Standard: cubic-bezier(0.0, 0.0, 0.2, 1) - Material ease-out
- Entrance: cubic-bezier(0.0, 0.0, 0.2, 1) - Elements entering the screen
- Exit: cubic-bezier(0.4, 0.0, 1, 1) - Elements leaving the screen
- Emphasis: cubic-bezier(0.4, 0.0, 0.2, 1) - For attention-grabbing elements
Common Animations
- Button Hover: Scale 1.02, background color change (Fast)
- Card Hover: Subtle shadow increase, slight lift (Fast)
- Page Transition: Fade in (Medium)
- Modal: Fade in + scale from 0.95 to 1 (Medium)
- Dropdown: Fade in + slide down (Fast)
- Notification: Slide in from right (Medium)
Accessibility Guidelines
Color Contrast
- Text: Minimum 4.5:1 contrast ratio against background
- Large Text (18pt+): Minimum 3:1 contrast ratio
- UI Components: Minimum 3:1 contrast ratio between states
Focus States
- All interactive elements must have visible focus states
- Focus indicator: 2px solid Primary Blue (#0078D4)
- Ensure focus order follows logical page structure
Text Alternatives
- All images must have appropriate alt text
- Icons should have text labels or aria-labels
- Complex visualizations need detailed descriptions
Keyboard Navigation
- All interactive elements must be keyboard accessible
- Skip links for main content
- Logical tab order
- No keyboard traps
Implementation Guidelines
CSS Variables
:root {
/* Colors */
--color-primary: #0078D4;
--color-primary-dark: #005A9E;
--color-primary-light: #C7E0F4;
--color-accent-teal: #00B7C3;
--color-accent-purple: #8661C5;
--color-accent-green: #107C10;
--color-text-dark: #323130;
--color-text-medium: #605E5C;
--color-surface-light: #F3F2F1;
--color-white: #FFFFFF;
--color-success: #107C10;
--color-warning: #FFB900;
--color-error: #D13438;
--color-info: #0078D4;
/* Typography */
--font-family-base: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen-Sans, Ubuntu, Cantarell, 'Helvetica Neue', sans-serif;
--font-family-mono: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
--font-size-hero: 3rem;
--font-size-h1: 2rem;
--font-size-h2: 1.5rem;
--font-size-h3: 1.25rem;
--font-size-h4: 1.125rem;
--font-size-body-large: 1rem;
--font-size-body: 0.875rem;
--font-size-caption: 0.75rem;
/* Spacing */
--space-xs: 4px;
--space-sm: 8px;
--space-md: 16px;
--space-lg: 24px;
--space-xl: 32px;
--space-xxl: 48px;
--space-xxxl: 64px;
/* Animation */
--duration-xfast: 100ms;
--duration-fast: 200ms;
--duration-medium: 300ms;
--duration-slow: 500ms;
--ease-standard: cubic-bezier(0.0, 0.0, 0.2, 1);
--ease-entrance: cubic-bezier(0.0, 0.0, 0.2, 1);
--ease-exit: cubic-bezier(0.4, 0.0, 1, 1);
--ease-emphasis: cubic-bezier(0.4, 0.0, 0.2, 1);
/* Shadows */
--shadow-sm: 0 2px 4px rgba(0, 0, 0, 0.1);
--shadow-md: 0 4px 8px rgba(0, 0, 0, 0.1);
--shadow-lg: 0 8px 16px rgba(0, 0, 0, 0.1);
/* Border Radius */
--radius-sm: 2px;
--radius-md: 4px;
--radius-lg: 8px;
}
Tailwind Config Updates
// tailwind.config.js
module.exports = {
theme: {
extend: {
colors: {
primary: {
DEFAULT: '#0078D4',
dark: '#005A9E',
light: '#C7E0F4',
},
accent: {
teal: '#00B7C3',
purple: '#8661C5',
green: '#107C10',
},
surface: {
dark: '#323130',
medium: '#605E5C',
light: '#F3F2F1',
white: '#FFFFFF',
},
status: {
success: '#107C10',
warning: '#FFB900',
error: '#D13438',
info: '#0078D4',
},
},
fontFamily: {
sans: ['-apple-system', 'BlinkMacSystemFont', '"Segoe UI"', 'Roboto', 'Oxygen-Sans', 'Ubuntu', 'Cantarell', '"Helvetica Neue"', 'sans-serif'],
mono: ['Consolas', 'Monaco', '"Andale Mono"', '"Ubuntu Mono"', 'monospace'],
},
fontSize: {
'hero': '3rem',
'h1': '2rem',
'h2': '1.5rem',
'h3': '1.25rem',
'h4': '1.125rem',
'body-large': '1rem',
'body': '0.875rem',
'caption': '0.75rem',
},
spacing: {
'xs': '4px',
'sm': '8px',
'md': '16px',
'lg': '24px',
'xl': '32px',
'xxl': '48px',
'xxxl': '64px',
},
transitionDuration: {
'xfast': '100ms',
'fast': '200ms',
'medium': '300ms',
'slow': '500ms',
},
transitionTimingFunction: {
'standard': 'cubic-bezier(0.0, 0.0, 0.2, 1)',
'entrance': 'cubic-bezier(0.0, 0.0, 0.2, 1)',
'exit': 'cubic-bezier(0.4, 0.0, 1, 1)',
'emphasis': 'cubic-bezier(0.4, 0.0, 0.2, 1)',
},
boxShadow: {
'sm': '0 2px 4px rgba(0, 0, 0, 0.1)',
'md': '0 4px 8px rgba(0, 0, 0, 0.1)',
'lg': '0 8px 16px rgba(0, 0, 0, 0.1)',
},
borderRadius: {
'sm': '2px',
'md': '4px',
'lg': '8px',
},
},
},
variants: {
extend: {
boxShadow: ['hover', 'focus'],
transform: ['hover', 'focus'],
opacity: ['disabled'],
cursor: ['disabled'],
},
},
};
Migration Plan
Phase 1: Foundation (Week 1-2)
- Update color palette in CSS variables or Tailwind config
- Implement typography system
- Update spacing system
- Create basic component styles (buttons, cards)
Phase 2: Components (Week 3-4)
- Update navigation components
- Implement form elements
- Create alert and notification components
- Update hero sections
Phase 3: Page Templates (Week 5-6)
- Update homepage layout
- Implement product page templates
- Update blog/content page templates
- Create consistent footer
Phase 4: Refinement (Week 7-8)
- Implement animations and transitions
- Conduct accessibility audit and fixes
- Optimize for performance
- Cross-browser testing and fixes
Example Pages
Homepage
<div class="bg-gradient-to-r from-primary to-primary-dark text-white">
<div class="container mx-auto px-6 py-xxxl">
<div class="grid grid-cols-1 lg:grid-cols-2 gap-xl items-center">
<div>
<h1 class="text-hero font-bold mb-md">Lyt-ning POS — The Fastest POS Alive</h1>
<p class="text-body-large mb-lg">Run your store smarter, faster, and completely on the go — with built-in analytics, ZRA Smart Invoice compliance, and full mobile access.</p>
<div class="flex flex-col sm:flex-row gap-md">
<a href="/get-started" class="bg-white text-primary px-lg py-md rounded-sm font-medium hover:bg-surface-light transition-colors duration-fast">Get Started Instantly</a>
<a href="/pricing" class="border border-white text-white px-lg py-md rounded-sm font-medium hover:bg-white/10 transition-colors duration-fast">See Pricing</a>
</div>
</div>
<div class="relative mt-xl lg:mt-0">
<img src="/images/hero-pos-screen.png" alt="Lyt-ning POS Dashboard" class="rounded-md shadow-lg" />
<div class="absolute -bottom-6 -right-6 bg-white p-md rounded-md shadow-md">
<img src="/images/SmallLogo.svg" alt="AI Assistant" class="h-16 w-16" />
</div>
</div>
</div>
</div>
</div>
Feature Section
<div class="bg-surface-light">
<div class="container mx-auto px-6 py-xxl">
<div class="grid grid-cols-1 lg:grid-cols-2 gap-xl items-center">
<div class="order-2 lg:order-1">
<img src="/images/feature-image.jpg" alt="Feature description" class="rounded-md shadow-md" />
</div>
<div class="order-1 lg:order-2">
<h2 class="text-h2 font-semibold mb-md text-surface-dark">Feature Heading</h2>
<p class="text-body-large text-surface-medium mb-lg">Detailed description of the feature and its benefits to the user. This should be compelling and focused on value.</p>
<ul class="space-y-md">
<li class="flex items-start">
<svg class="w-6 h-6 text-primary mr-sm flex-shrink-0 mt-xs" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7" />
</svg>
<span>Key benefit or feature point with detailed explanation</span>
</li>
<!-- Additional list items -->
</ul>
<div class="mt-lg">
<a href="/learn-more" class="text-primary font-medium hover:underline inline-flex items-center">
Learn more
<svg class="w-5 h-5 ml-xs" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7" />
</svg>
</a>
</div>
</div>
</div>
</div>
</div>
Card Grid
<div class="bg-white">
<div class="container mx-auto px-6 py-xxl">
<div class="text-center max-w-3xl mx-auto mb-xl">
<h2 class="text-h2 font-semibold mb-md text-surface-dark">Section Heading</h2>
<p class="text-body-large text-surface-medium">Section description that provides context and explains the value of the cards below.</p>
</div>
<div class="grid grid-cols-1 md:grid-cols-3 gap-lg">
<!-- Card 1 -->
<div class="bg-white rounded-sm shadow-sm hover:shadow-md transition-shadow duration-fast p-lg border-t-4 border-primary">
<div class="w-12 h-12 bg-primary-light rounded-full flex items-center justify-center mb-md">
<svg class="w-6 h-6 text-primary" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 10V3L4 14h7v7l9-11h-7z" />
</svg>
</div>
<h3 class="text-h3 font-semibold mb-sm text-surface-dark">Card Heading</h3>
<p class="text-body text-surface-medium mb-md">Card description that explains the feature or benefit in detail.</p>
<a href="/learn-more" class="text-primary font-medium hover:underline inline-flex items-center">
Learn more
<svg class="w-4 h-4 ml-xs" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7" />
</svg>
</a>
</div>
<!-- Additional cards -->
</div>
</div>
</div>
Call to Action
<div class="bg-primary text-white">
<div class="container mx-auto px-6 py-xxl text-center">
<div class="max-w-3xl mx-auto">
<h2 class="text-h2 font-semibold mb-md">Ready to Get Started?</h2>
<p class="text-body-large mb-lg">Join thousands of businesses across Zambia who are already using Lyt-ning POS to streamline their operations.</p>
<div class="flex flex-col sm:flex-row gap-md justify-center">
<a href="/get-started" class="bg-white text-primary px-lg py-md rounded-sm font-medium hover:bg-surface-light transition-colors duration-fast">Get Started Now</a>
<a href="/contact" class="border border-white text-white px-lg py-md rounded-sm font-medium hover:bg-white/10 transition-colors duration-fast">Contact Sales</a>
</div>
</div>
</div>
</div>
Conclusion
This Microsoft-inspired design system provides a comprehensive framework for updating the ChrilanTech website with a modern, professional look and feel. By implementing these guidelines, the website will achieve a cohesive visual identity that aligns with current design trends while maintaining usability and accessibility.
The design system is flexible enough to accommodate the unique needs of ChrilanTech while providing a solid foundation for consistent design across all pages and components. As the website evolves, this document should be updated to reflect new components, patterns, and best practices.