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 semantic HTML5 elements to create an accessible and well-structured document. The layout consists of a profile card and six activity cards, all contained within a main dashboard container.

Document Structure

The application uses a semantic <main> element with the class .dashboard to contain all components:
<main class="dashboard">
  <section class="profile-card">
    <!-- Profile card content -->
  </section>
  
  <section class="activity-card activity-card--work">
    <!-- Activity card content -->
  </section>
  <!-- More activity cards... -->
</main>
Reference: index.html:24

Profile Card Component

The profile card displays user information and time period selection buttons.
<section class="profile-card">
  <div class="profile-card__wrapper"> 
    <div class="profile-card__info">
      <img class="profile-card__picture" src="./images/image-jeremy.png" alt="Jeremy Robson">

      <div class="profile-card__container">
        <p class="text--p6 text--p6--color">Report for</p>

        <h1 class="profile-card__name">Jeremy Robson</h1>
      </div>
    </div>

    <div class="profile-card__options">
      <button class="profile-card__option text--p5-regular" id="daily">Daily</button>

      <button class="profile-card__option profile-card__option--active text--p5-regular" id="weekly">Weekly</button>

      <button class="profile-card__option text--p5-regular" id="monthly">Monthly</button>
    </div>
  </div>
</section>
Reference: index.html:25-45

Activity Card Components

Each activity card follows a consistent structure with category-specific styling.
<section class="activity-card activity-card--work"> 
  <img class="activity-card__picture" src="./images/icon-work.svg" alt="">

  <div class="activity-card__info">
    <div class="activity-card__top-row">
      <h2 class="text--p5-medium">Work</h2>

      <button class="activity-card__menu" aria-label="Menu"><img src="./images/icon-ellipsis.svg" alt=""></button>
    </div>

    <div class="activity-card__time">
      <p class="activity-card__hours"><span id="work-current">32</span>hrs</p>

      <p class="text--p6 text--p6--color">Last Week - <span id="work-previous">36</span>hrs</p>
    </div>
  </div>
</section>
Reference: index.html:47-63
<section class="activity-card activity-card--play"> 
  <img class="activity-card__picture activity-card__picture--play" src="./images/icon-play.svg" alt="">

  <div class="activity-card__info">
    <div class="activity-card__top-row">
      <h2 class="text--p5-medium">Play</h2>

      <button class="activity-card__menu" aria-label="Menu"><img src="./images/icon-ellipsis.svg" alt=""></button>
    </div>

    <div class="activity-card__time">
      <p class="activity-card__hours"><span id="play-current">10</span>hrs</p>

      <p class="text--p6 text--p6--color">Last Week - <span id="play-previous">36</span>hrs</p>
    </div>
  </div>
</section>
Reference: index.html:65-81
<section class="activity-card activity-card--study"> 
  <img class="activity-card__picture activity-card__picture--study" src="./images/icon-study.svg" alt="">

  <div class="activity-card__info">
    <div class="activity-card__top-row">
      <h2 class="text--p5-medium">Study</h2>

      <button class="activity-card__menu" aria-label="Menu"><img src="./images/icon-ellipsis.svg" alt=""></button>
    </div>

    <div class="activity-card__time">
      <p class="activity-card__hours"><span id="study-current">4</span>hrs</p>

      <p class="text--p6 text--p6--color">Last Week - <span id="study-previous">7</span>hrs</p>
    </div>
  </div>
</section>
Reference: index.html:83-99
<section class="activity-card activity-card--exercise"> 
  <img class="activity-card__picture activity-card__picture--exercise" src="./images/icon-exercise.svg" alt="">

  <div class="activity-card__info">
    <div class="activity-card__top-row">
      <h2 class="text--p5-medium">Exercise</h2>

      <button class="activity-card__menu" aria-label="Menu"><img src="./images/icon-ellipsis.svg" alt=""></button>
    </div>

    <div class="activity-card__time">
      <p class="activity-card__hours"><span id="exercise-current">4</span>hrs</p>

      <p class="text--p6 text--p6--color">Last Week - <span id="exercise-previous">5</span>hrs</p>
    </div>
  </div>
</section>
Reference: index.html:101-117
<section class="activity-card activity-card--social"> 
  <img class="activity-card__picture activity-card__picture--social" src="./images/icon-social.svg" alt="">

  <div class="activity-card__info">
    <div class="activity-card__top-row">
      <h2 class="text--p5-medium">Social</h2>

      <button class="activity-card__menu" aria-label="Menu"><img src="./images/icon-ellipsis.svg" alt=""></button>
    </div>

    <div class="activity-card__time">
      <p class="activity-card__hours"><span id="social-current">5</span>hrs</p>

      <p class="text--p6 text--p6--color">Last Week - <span id="social-previous">10</span>hrs</p>
    </div>
  </div>
</section>
Reference: index.html:119-135
<section class="activity-card activity-card--self-care"> 
  <img class="activity-card__picture activity-card__picture--self-care" src="./images/icon-self-care.svg" alt="">

  <div class="activity-card__info">
    <div class="activity-card__top-row">
      <h2 class="text--p5-medium">Self Care</h2>

      <button class="activity-card__menu" aria-label="Menu"><img src="./images/icon-ellipsis.svg" alt=""></button>
    </div>

    <div class="activity-card__time">
      <p class="activity-card__hours"><span id="self-care-current">2</span>hrs</p>

      <p class="text--p6 text--p6--color">Last Week - <span id="self-care-previous">2</span>hrs</p>
    </div>
  </div>
</section>
Reference: index.html:137-153

Data Attributes and IDs

The HTML uses specific ID attributes to enable JavaScript manipulation of the content:

Button IDs

  • #daily - Triggers daily view (index.html:38)
  • #weekly - Triggers weekly view (index.html:40)
  • #monthly - Triggers monthly view (index.html:42)

Content Span IDs

Each activity category has two span elements for displaying current and previous time data:
CategoryCurrent IDPrevious ID
Work#work-current#work-previous
Play#play-current#play-previous
Study#study-current#study-previous
Exercise#exercise-current#exercise-previous
Social#social-current#social-previous
Self Care#self-care-current#self-care-previous
Example from the Work card:
<div class="activity-card__time">
  <p class="activity-card__hours"><span id="work-current">32</span>hrs</p>
  <p class="text--p6 text--p6--color">Last Week - <span id="work-previous">36</span>hrs</p>
</div>
Reference: index.html:57-61

Accessibility Features

Alt Text

The profile image includes descriptive alt text:
<img class="profile-card__picture" src="./images/image-jeremy.png" alt="Jeremy Robson">
Reference: index.html:28

ARIA Labels

Menu buttons use aria-label for screen reader accessibility:
<button class="activity-card__menu" aria-label="Menu">
  <img src="./images/icon-ellipsis.svg" alt="">
</button>
Reference: index.html:54 Decorative icons use empty alt attributes to hide them from screen readers:
<img class="activity-card__picture" src="./images/icon-work.svg" alt="">
Reference: index.html:48

Semantic Elements

  • <main> - Wraps the entire dashboard (index.html:24)
  • <section> - Used for both profile and activity cards (index.html:25, 47)
  • <h1> - User name heading (index.html:33)
  • <h2> - Activity category headings (index.html:52, 70, etc.)
  • <button> - Interactive elements for period selection and menu (index.html:38, 54)

BEM Naming Convention

The HTML follows the Block Element Modifier (BEM) methodology:
  • Block: .profile-card, .activity-card
  • Elements: .profile-card__picture, .activity-card__hours
  • Modifiers: .profile-card__option--active, .activity-card--work
Example:
<section class="activity-card activity-card--work">
  <div class="activity-card__info">
    <div class="activity-card__top-row">
      <!-- content -->
    </div>
  </div>
</section>

Build docs developers (and LLMs) love