Skip to content

mutlukurt/dashboard-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

5 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Dashboard App

A modern, fully responsive dashboard application built with React, Vite, and Tailwind CSS. Features beautiful charts, analytics, and a clean user interface with accessibility-first design and purple color scheme.

🌐 Live Demo

πŸ“Š View Live Dashboard β€” Experience the responsive design across all devices

Live Demo GitHub Pages

✨ Features

  • πŸ“Š Interactive Charts: Line charts and donut charts using Recharts with responsive sizing
  • πŸ“± 100% Responsive: Fluid design from 320px to 1440px+ with touch-first mobile experience
  • β™Ώ WCAG AA Compliant: Full accessibility support with screen readers, keyboard navigation
  • 🎨 Modern UI: Clean design with purple (#6C5CE7) color palette and smooth animations
  • πŸ“ˆ Analytics Dashboard: Summary cards, recent activities, and order management
  • πŸ” Search & Filters: Responsive date picker and search functionality
  • 🎯 Real-time Data: Dynamic data visualization with mobile-optimized tooltips

πŸ“Έ Screenshots

Explore the responsive design across different devices to see how the dashboard adapts to various screen sizes.

Desktop Views

Desktop view - Full dashboard with sidebar and charts Desktop view - Analytics and data tables

Desktop experience with full sidebar navigation and multi-column layout

Tablet Views

Tablet view - Responsive dashboard layout Tablet view - Hamburger menu and drawer navigation

Tablet experience with drawer navigation and optimized chart layouts

Mobile Views

Mobile view - Dashboard summary cards Mobile view - Charts and analytics
Mobile view - Activities timeline Mobile view - Orders in card layout

Mobile experience with touch-first design and card-based layouts

πŸ“± Responsive Strategy

Breakpoints (Tailwind)

  • sm: 640px+ (Mobile landscape, small tablets)
  • md: 768px+ (Tablets, collapsed sidebar becomes visible)
  • lg: 1024px+ (Desktop, full sidebar with labels)
  • xl: 1280px+ (Large desktop, optimized spacing)
  • 2xl: 1536px+ (Ultra-wide displays)

Layout Adaptations

  • Mobile (320px-767px):

    • Hidden sidebar with drawer overlay (touch-friendly 44px targets)
    • Single-column layout for all sections
    • Cards replace table view for orders
    • Stacked mobile search below header
    • Vertical date/time layout in activities
  • Tablet (768px-1023px):

    • Icon-only sidebar (18/4.5rem width)
    • 2-column layout for summary cards
    • Charts stack vertically
    • Reduced chart heights for better scrolling
  • Desktop (1024px+):

    • Full sidebar with labels (88/22rem width)
    • Multi-column CSS Grid layouts (up to 12 columns)
    • Side-by-side charts and data sections
    • Hover states and larger interactive areas

Mobile Navigation

  • Menu Button: Tap hamburger icon in header to open sidebar
  • Drawer Pattern: Sidebar slides in from left with backdrop blur
  • Auto-close: Sidebar closes when selecting menu items on mobile
  • Keyboard: ESC key closes the sidebar, focus management included

🎯 Accessibility Features

  • Keyboard Navigation: Full Tab, Enter, ESC support throughout
  • Screen Reader: Proper ARIA labels, landmarks, and semantic HTML
  • Focus Management: Visible focus outlines with purple ring
  • High Contrast: Support for prefers-contrast and color adjustments
  • Reduced Motion: Respects prefers-reduced-motion user preference
  • Touch Targets: Minimum 44px touch targets on mobile devices
  • Alt Content: Screen reader tables for chart data

πŸ—οΈ Components

Layout Components

  • Sidebar: Responsive navigation with mobile drawer pattern
  • Header: Adaptive header with mobile menu button and responsive search
  • SummaryCard: Fluid typography scaling with clamp() and trend indicators

Data Visualization

  • LineChart: Revenue analytics with mobile-optimized dimensions and tooltips
  • PieChart: Transaction donut chart with responsive legend and sizing
  • Activities: Timeline feed with mobile-first stacked layout
  • OrdersTable: Desktop table transforms to mobile cards below md breakpoint

🎨 Design System

Color Palette

  • Primary Purple: #6C5CE7 (WCAG AA compliant)
  • Orange Accent: #FFA502
  • Blue Accent: #1E90FF
  • Background: #F8FAFC
  • Text Contrast: Passes WCAG AA standards

Typography

  • Font: Inter (web font with system fallbacks)
  • Scaling: CSS clamp() for fluid responsive text
  • Hierarchy: Clear heading levels with proper contrast ratios

Spacing & Layout

  • Container: Responsive padding (16px β†’ 24px β†’ 32px)
  • Grid: CSS Grid with responsive column counts
  • Gap: Consistent 16px/24px spacing system

πŸš€ Installation

  1. Clone or download the project

  2. Install dependencies:

    npm install
  3. Start the development server:

    npm run dev
  4. Open your browser and navigate to:

    http://localhost:5173
    

πŸ“œ Available Scripts

  • npm run dev - Start development server with hot reload
  • npm run build - Build the project for production
  • npm run preview - Preview the built project locally
  • npm run lint - Run ESLint for code quality

πŸ› οΈ Technologies Used

  • React 18 - Modern React with hooks and concurrent features
  • Vite - Fast build tool and development server
  • Tailwind CSS - Utility-first CSS framework with custom responsive utilities
  • Recharts - Composable charting library with responsive containers
  • Lucide React - Beautiful & consistent icon set with tree-shaking
  • Date-fns - Modern JavaScript date utility library

πŸ“ Project Structure

dashboard-app/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ Sidebar.jsx          # Responsive navigation with drawer
β”‚   β”‚   β”œβ”€β”€ Header.jsx           # Adaptive header with mobile menu
β”‚   β”‚   β”œβ”€β”€ SummaryCard.jsx      # Responsive statistics cards
β”‚   β”‚   β”œβ”€β”€ LineChart.jsx        # Mobile-optimized revenue chart
β”‚   β”‚   β”œβ”€β”€ PieChart.jsx         # Responsive transaction donut chart
β”‚   β”‚   β”œβ”€β”€ Activities.jsx       # Timeline with mobile layout
β”‚   β”‚   └── OrdersTable.jsx      # Table β†’ Cards responsive transformation
β”‚   β”œβ”€β”€ App.jsx                  # Main app with responsive grid system
β”‚   β”œβ”€β”€ main.jsx                 # React entry point
β”‚   └── index.css               # Global styles, utilities, accessibility
β”œβ”€β”€ index.html                   # HTML template with viewport meta
β”œβ”€β”€ package.json                 # Dependencies and scripts  
β”œβ”€β”€ tailwind.config.js          # Extended config with responsive utilities
β”œβ”€β”€ postcss.config.js           # PostCSS configuration
β”œβ”€β”€ vite.config.js              # Vite configuration
└── README.md                   # This comprehensive guide

βš™οΈ Customization

Responsive Breakpoints

Modify breakpoints in tailwind.config.js:

theme: {
  screens: {
    'sm': '640px',   // Mobile landscape
    'md': '768px',   // Tablet 
    'lg': '1024px',  // Desktop
    'xl': '1280px',  // Large desktop
    '2xl': '1536px', // Ultra-wide
  }
}

Color Themes

Update the color palette while maintaining contrast ratios:

colors: {
  primary: '#6C5CE7',    // Purple (ensure WCAG AA)
  orange: '#FFA502',     // Orange accent
  blue: '#1E90FF',       // Blue accent
}

Chart Responsive Heights

Adjust chart dimensions in components:

// Mobile: h-56 (224px), Desktop: h-80 (320px)
<div className="h-56 sm:h-72 lg:h-80 xl:h-96">

πŸ§ͺ Testing Responsive Design

Recommended Test Widths

  • 320px - Small mobile (iPhone SE)
  • 375px - Standard mobile (iPhone 12)
  • 414px - Large mobile (iPhone Plus)
  • 768px - Tablet portrait (iPad)
  • 1024px - Tablet landscape / Small desktop
  • 1280px - Desktop
  • 1440px - Large desktop

Validation Checklist

  • βœ… No horizontal scrollbars at any width
  • βœ… All interactive elements meet 44px touch target
  • βœ… Charts resize properly and remain legible
  • βœ… Table transforms to cards below md breakpoint
  • βœ… Sidebar drawer works smoothly on mobile
  • βœ… Keyboard navigation flows correctly
  • βœ… Screen reader announces content properly

πŸ”§ Performance Optimizations

  • ResponsiveContainer: Charts automatically resize without layout shift
  • CSS Grid: Hardware-accelerated responsive layouts
  • Tree Shaking: Only imports used Lucide icons
  • Reduced Motion: Respects user motion preferences
  • Print Styles: Clean printing with .no-print utilities

🌐 Browser Support

  • Chrome 90+ (recommended)
  • Firefox 88+
  • Safari 14+
  • Edge 90+
  • Mobile Safari iOS 14+
  • Chrome Mobile Android 90+

🀝 Contributing

This project follows accessibility best practices. When contributing:

  1. Test on multiple screen sizes (320px - 1440px+)
  2. Verify keyboard navigation works correctly
  3. Check color contrast meets WCAG AA standards
  4. Test with screen readers when possible
  5. Ensure touch targets meet 44px minimum

πŸ“„ License

This project is open source and available under the MIT License.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •