Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/chrisdzasc/Time-Tracking-Dashboard/llms.txt

Use this file to discover all available pages before exploring further.

Overview

The Time Tracking Dashboard uses a mobile-first approach with CSS Grid to create a fully responsive layout that adapts seamlessly across three breakpoints: mobile (default), tablet (768px), and desktop (1440px).

Mobile Layout (Default)

The base mobile layout (styles.css:187-192) uses a single-column grid:
.dashboard {
  display: grid;
  gap: var(--spacing-300);
  width: 87%;
  max-width: 45.0rem;
}
The dashboard is centered using flexbox on the body element (styles.css:177-185):
body {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 100vh;
  padding: 8rem 0;
  background-color: var(--navy-950);
  color: var(--white);
}
In mobile view:
  • All cards stack vertically in a single column
  • Profile card appears first
  • Activity cards follow in natural document order
  • Gap between cards is 2.4rem (--spacing-300)

Tablet Layout (768px)

At 768px and above (styles.css:368-407), the layout shifts to a 3-column grid:
@media (min-width: 768px) {

  body {
    padding: 0;
  }

  .dashboard {
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: repeat(3, 1fr);
    max-width: 61.2rem;
  }

  .profile-card {
    grid-column: 1 / 4;
  }

  .profile-card__info {
    justify-content: flex-start;
  }

  .profile-card__options {
    justify-content: space-evenly;
    padding-bottom: 3rem;
  }

  .activity-card__info {
    gap: var(--spacing-200);
  }

  .activity-card__time {
    flex-direction: column;
    gap: var(--spacing-100);
  }

  .activity-card__hours {
    font-size: 5.6rem;
    line-height: 6.6rem;
    font-weight: 300;
  }
}

Tablet Grid Configuration

  • Grid structure: 3 columns × 3 rows
  • Profile card: Spans all 3 columns in the first row (grid-column: 1 / 4)
  • Activity cards: Each occupies one column, distributed across remaining rows
  • Max width: 61.2rem (612px)

Tablet Layout Changes

  1. Body padding removed: Content uses full viewport height
  2. Activity card time layout: Switches from horizontal to vertical (flex-direction: column)
  3. Hour font size increased: From 3.2rem to 5.6rem
  4. Profile info alignment: Changes to flex-start

Desktop Layout (1440px)

At 1440px and above (styles.css:411-446), the layout expands to a 4-column grid:
@media (min-width: 1440px) {
  .dashboard {
    grid-template-columns: repeat(4, 1fr);
    grid-template-rows: repeat(2, 1fr);
    max-width: 111.6rem;
  }
  
  .profile-card {
    grid-column: 1 / 2;
    grid-row: 1 / 3;
  }

  .profile-card__info {
    flex-direction: column;
    align-items: flex-start;
    gap: 4rem;
  }

  .profile-card__picture {
    width: 7.8rem;
    height: 7.8rem;
  }

  .profile-card__name {
    font-size: 4.0rem;
    line-height: 4.7rem;
  }

  .profile-card__options {
    flex-direction: column;
    align-items: flex-start;
    gap: 2.1rem;
    padding: 0 3.2rem;
    height: 10.6rem;
  }

}

Desktop Grid Configuration

  • Grid structure: 4 columns × 2 rows
  • Profile card: Occupies entire first column, spanning both rows (grid-column: 1 / 2; grid-row: 1 / 3)
  • Activity cards: Distributed across remaining 3 columns in 2 rows (6 cards total)
  • Max width: 111.6rem (1116px)

Desktop Layout Changes

  1. Profile card layout: Switches to vertical orientation
    • Profile info becomes vertical (flex-direction: column)
    • Timeframe buttons stack vertically
    • Profile picture enlarges to 7.8rem
    • Name font size increases to 4.0rem
  2. Activity cards: Fill the 3×2 grid beside the profile card

CSS Custom Properties

Spacing is managed through CSS variables (styles.css:50-55):
:root {
    --spacing-100: 0.8rem;
    --spacing-200: 1.6rem;
    --spacing-300: 2.4rem;
    --spacing-400: 3.2rem;
    --spacing-500: 4.0rem;
}
This allows consistent spacing across all breakpoints while making it easy to adjust values globally.

Mobile-First Approach

The design follows mobile-first principles:
  1. Base styles target mobile devices (no media query needed)
  2. Progressive enhancement adds complexity at larger screens
  3. Min-width media queries layer on tablet and desktop styles
  4. Performance benefit: Mobile devices load fewer CSS rules
The base font size is set to 62.5% (styles.css:118-120), making 1rem = 10px for easier calculations:
html {
  font-size: 62.5%;
}

Breakpoint Summary

BreakpointGrid LayoutProfile CardActivity CardsMax Width
Mobile (default)1 columnFull widthStacked45.0rem
Tablet (768px+)3×3 gridSpans 3 columns3 per row61.2rem
Desktop (1440px+)4×2 gridSpans 2 rows3×2 layout111.6rem

Build docs developers (and LLMs) love