Skip to content

Instantly share code, notes, and snippets.

@amattu2
Last active December 22, 2021 15:40
Show Gist options
  • Save amattu2/db81f1cd3b27dcd7f671e0b51bff46e4 to your computer and use it in GitHub Desktop.
Save amattu2/db81f1cd3b27dcd7f671e0b51bff46e4 to your computer and use it in GitHub Desktop.

Revisions

  1. amattu2 revised this gist Dec 22, 2021. 1 changed file with 294 additions and 64 deletions.
    358 changes: 294 additions & 64 deletions service-history-listing.html
    Original file line number Diff line number Diff line change
    @@ -25,6 +25,86 @@
    <!-- include material icons -->
    <link href="https://fonts.googleapis.com/icon?family=Material+Icons|Material+Icons+Outlined" rel="stylesheet">
    <style>
    .material-icons, .material-icons-outlined {
    user-select: none;
    }

    :root {
    --colors-blue: #4285f4;
    --colors-lblue: #42a5f5;
    --colors-green: #4caf50;
    --colors-dred: #e74c3c;
    --colors-red: #d32f2f;
    --colors-lred: rgba(231, 76, 60, 1);
    --colors-black: #262626;
    --colors-gblack: #3b3b3b;
    --colors-orange: #e67e22;
    }

    [data-tooltip]::before {
    top: 50%;
    margin-top: -11px;
    font-weight: 600;
    font-family: 'Lato', sans-serif;
    border-radius: 2px;
    background: var(--colors-gblack);
    color: #fff;
    content: attr(data-tooltip);
    font-size: 12px;
    text-decoration: none;
    visibility: hidden;
    opacity: 0;
    padding: 4px 7px;
    position: absolute;
    transform: scale(0);
    right: 100%;
    line-height: 1.3;
    z-index: 999;
    white-space: nowrap;
    transition: all 0.2s cubic-bezier(0.25, 0.8, 0.25, 1);
    box-shadow: 0 10px 20px rgba(0, 0, 0, 0.19), 0 6px 6px rgba(0, 0, 0, 0.23);
    }

    [data-tooltip]:hover::before, [data-tooltip][data-tooltip-visible]::before {
    visibility: visible;
    opacity: 1;
    transform: scale(1);
    }

    [data-tooltip][data-tooltip-open-right]::before {
    transform-origin: top right;
    }

    [data-tooltip][data-tooltip-open-left]::before {
    left: 100% !important;
    right: unset !important;
    transform-origin: top left;
    }

    [data-tooltip][data-tooltip-margin-right]::before {
    margin-right: 12px;
    }

    [data-tooltip][data-tooltip-margin-left]::before {
    margin-left: 12px;
    }

    [data-tooltip][data-tooltip-open-right]:hover::before {
    transform-origin: right center 0;
    }

    [data-tooltip][data-tooltip-open-left]:hover::before {
    transform-origin: left center 0;
    }

    .item-dotted {
    cursor: pointer;
    text-decoration: underline;
    text-decoration-style: dashed;
    text-decoration-thickness: 1px;
    position: relative;
    }

    html {
    margin: 0;
    padding: 0;
    @@ -39,7 +119,7 @@
    }

    .container {
    width: 750px;
    width: 950px;
    margin: 0 auto;
    margin-top: 25px;
    background: #fff;
    @@ -81,31 +161,49 @@
    }

    .event-cards {
    width: calc(100% - 174px);
    width: calc(100% - 174px);
    }

    .card {
    box-shadow: 0 1px 3px rgb(0 0 0 / 12%), 0 1px 2px rgb(0 0 0 / 24%);
    background: #fff;
    border-radius: 2px;
    margin: 7px 5px;
    box-shadow: 0 1px 3px rgb(0 0 0 / 12%), 0 1px 2px rgb(0 0 0 / 24%);
    background: #fff;
    border-radius: 2px;
    margin: 7px 5px;
    }

    .card-header {
    padding: 14px 10px;
    font-size: 14px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
    display: flex;
    align-items: center;
    }

    .card-header .card-title {
    font-size: 14px;
    text-transform: uppercase;
    opacity: 0.6;
    font-weight: bold;
    }

    .card-header input {
    margin-right: 8px;
    }

    .card-header .card-button-outlined {
    margin: unset;
    margin-left: auto;
    }

    .card-detail-grid {
    display: flex;
    justify-content: center;
    align-items: center;
    background: #f2f2f2;
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
    display: flex;
    justify-content: center;
    align-items: center;
    background: #f2f2f2;
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
    }

    .card-detail-grid:last-child {
    border-bottom: unset;
    }

    .card-detail-grid.light {
    @@ -116,35 +214,35 @@
    }

    .card-detail:not(:last-of-type) {
    border-right: 1px solid rgba(0, 0, 0, 0.1);
    border-right: 1px solid rgba(0, 0, 0, 0.1);
    }

    .card-detail {
    width: auto;
    flex: 1;
    padding: 8px 10px;
    display: flex;
    justify-content: center;
    align-items: center;
    width: auto;
    flex: 1;
    padding: 8px 10px;
    display: flex;
    justify-content: center;
    align-items: center;
    }

    .detail-text-label {
    text-transform: uppercase;
    font-size: 13px;
    opacity: 0.6;
    margin-bottom: 4px;
    text-transform: uppercase;
    font-size: 12px;
    opacity: 0.6;
    margin-bottom: 4px;
    }

    .card-detail-text {
    margin-right: auto;
    margin-right: auto;
    }

    .detail-text-content {
    font-weight: bold;
    font-weight: bold;
    }

    .card-detail-icon {
    opacity: 0.6;
    opacity: 0.6;
    }

    .vehicle-event:not(:first-of-type) {
    @@ -171,66 +269,105 @@
    height: 50%;
    }


    .card-source-warning {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    margin-left: auto;
    font-size: 12px;
    padding: 4px;
    user-select: none;
    display: flex;
    justify-content: flex-end;
    align-items: center;
    margin-left: auto;
    font-size: 12px;
    padding: 4px;
    user-select: none;
    }

    .card-source-warning i {
    font-size: 18px;
    color: red;
    margin-right: 5px;
    font-size: 14px;
    color: var(--colors-red);
    margin-right: 5px;
    }

    .card-button-group {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    padding: 10px;
    display: flex;
    justify-content: flex-end;
    align-items: center;
    padding: 10px;
    }

    .card-button-outlined {
    margin: 0 6px;
    padding: 8px 10px;
    border: 1px solid;
    cursor: pointer;
    color: #2196f3;
    font-size: 13px;
    border-radius: 2px;
    user-select: none;
    margin: 0 6px;
    padding: 8px 10px;
    border: 1px solid;
    cursor: pointer;
    color: var(--colors-blue);
    font-size: 13px;
    border-radius: 2px;
    user-select: none;
    }

    .card-content {
    padding: 15px;
    overflow: hidden;
    transition: all 0.2s ease;
    }

    .card:not(.content-expanded) .card-content {
    max-height: 0px;
    padding: 0 15px;
    }

    .card.content-expanded .card-content {
    max-height: 9999px;
    }


    .content-item:not(:last-of-type) {
    margin-bottom: 10px;
    }

    .content-item-content .item-content-comments {
    white-space: pre-wrap;
    border: 1px solid rgba(0, 0, 0, 0.1);
    border-radius: 3px;
    border-left: 4px solid var(--colors-blue);
    padding: 3px 6px;
    background: #f2f2f2;
    padding: 7px;
    border-radius: 0 3px 3px 0;
    text-align: left;
    white-space: pre-wrap;
    }

    .content-item-content .item-content-comments.private {
    margin-top: 5px;
    border-left: 4px solid var(--colors-gblack);
    }

    .content-item-header {
    text-transform: uppercase;
    font-size: 13px;
    font-size: 12px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
    margin-bottom: 10px;
    padding-bottom: 10px;
    font-weight: bold;
    opacity: 0.6;
    }

    .item-attachment-pill {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    box-shadow: 0 1px 3px rgba(0,0,0,0.12), 0 1px 2px rgba(0,0,0,0.24);
    background: #fff;
    padding: 5px 3px;
    border-radius: 3px;
    margin: 5px;
    color: #3b3b3b;
    cursor: pointer;
    user-select: none;
    }

    .attachment-pill-icon i {
    font-size: 18px;
    }

    .attachment-pill-text {
    font-size: 15px;
    }
    </style>
    </head>
    <body>
    @@ -249,6 +386,43 @@ <h2>Vehicle Service History Listing</h2>
    <div class='event-cards'>
    <div class='card'>
    <div class='card-header'>
    <div class='card-title'>Appointment</div>
    <div class='card-button-outlined' data-toggle='more'>View</div>
    </div>
    <div class='card-detail-grid light'>
    <div class='card-detail'>
    <div class='card-detail-text'>
    <div class='detail-text-label'>Service</div>
    <div class='detail-text-content'>0W20 Oil Change</div>
    </div>
    <div class='card-detail-icon'>
    <i class="material-icons-outlined">description</i>
    </div>
    </div>
    <div class='card-detail'>
    <div class='card-detail-text'>
    <div class='detail-text-label'>Time</div>
    <div class='detail-text-content item-dotted' data-tooltip="4hrs, 31m">7:15 AM - 1:45 PM</div>
    </div>
    <div class='card-detail-icon'>
    <i class="material-icons-outlined">timelapse</i>
    </div>
    </div>
    <div class='card-detail'>
    <div class='card-detail-text'>
    <div class='detail-text-label'>Technician</div>
    <div class='detail-text-content'>W.V.</div>
    </div>
    <div class='card-detail-icon'>
    <i class="material-icons-outlined">car_repair</i>
    </div>
    </div>
    </div>
    </div>

    <div class='card'>
    <div class='card-header'>
    <input type='checkbox' />
    <div class='card-title'>Service Ticket</div>
    </div>
    <div class='card-detail-grid light'>
    @@ -284,7 +458,7 @@ <h2>Vehicle Service History Listing</h2>
    <div class='card-detail'>
    <div class='card-detail-text'>
    <div class='detail-text-label'>Odometer</div>
    <div class='detail-text-content'>119,752mi</div>
    <div class='detail-text-content item-dotted' data-tooltip="19,750mi ago" data-tooltip-open-right="1" data-tooltip-margin-right="1">119,752mi</div>
    </div>
    <div class='card-detail-icon'>
    <i class="material-icons-outlined">linear_scale</i>
    @@ -322,6 +496,7 @@ <h2>Vehicle Service History Listing</h2>
    <div class='event-cards'>
    <div class='card'>
    <div class='card-header'>
    <input type='checkbox' />
    <div class='card-title'>Service Ticket</div>
    </div>
    <div class='card-detail-grid light'>
    @@ -348,7 +523,7 @@ <h2>Vehicle Service History Listing</h2>
    <div class='card-detail'>
    <div class='card-detail-text'>
    <div class='detail-text-label'>Time</div>
    <div class='detail-text-content'>7:53 AM</div>
    <div class='detail-text-content item-dotted' data-tooltip="13 hours ago" data-tooltip-open-right="1" data-tooltip-margin-right="1">7:53 AM</div>
    </div>
    <div class='card-detail-icon'>
    <i class="material-icons-outlined">access_time</i>
    @@ -357,7 +532,7 @@ <h2>Vehicle Service History Listing</h2>
    <div class='card-detail'>
    <div class='card-detail-text'>
    <div class='detail-text-label'>Odometer</div>
    <div class='detail-text-content'>119,752mi</div>
    <div class='detail-text-content item-dotted' data-tooltip="32,733mi ago" data-tooltip-open-right="1" data-tooltip-margin-right="1">119,752mi</div>
    </div>
    <div class='card-detail-icon'>
    <i class="material-icons-outlined">linear_scale</i>
    @@ -375,16 +550,20 @@ <h2>Vehicle Service History Listing</h2>
    </div>
    <div class='card-content'>
    <div class='content-item'>
    <div class='content-item-header'>Ticket Comments</div>
    <div class='content-item-header'>Comments</div>
    <div class='content-item-content'>
    <div class='item-content-comments'>If you click on a history event, it expands down into a regionless (i.e. no background and not apart of the box-shadow card) grid of key:value items (i.e. similar to the customer contact details)

    It uses opacity to indicate if the record is unverified (CarFax/Autocheck/Etc sourced)
    </div>
    <div class='item-content-comments private'>If you click on a history event, it expands down into a regionless (i.e. no background and not apart of the box-shadow card) grid of key:value items (i.e. similar to the customer contact details)

    It uses opacity to indicate if the record is unverified (CarFax/Autocheck/Etc sourced)
    </div>
    </div>
    </div>
    <div class='content-item'>
    <div class='content-item-header'>Ticket Services</div>
    <div class='content-item-header'>Services</div>
    <div class='content-item-content'>
    <div class='item-content-services'>
    <ul>
    @@ -403,7 +582,7 @@ <h2>Vehicle Service History Listing</h2>
    </div>
    <div class='card-footer'>
    <div class='card-button-group'>
    <div class='card-button-outlined'>More Details</div>
    <div class='card-button-outlined' data-toggle='more'>More Details</div>
    <div class='card-button-outlined'>Edit</div>
    <a class='card-button-outlined'>PDF</a>
    </div>
    @@ -412,6 +591,7 @@ <h2>Vehicle Service History Listing</h2>

    <div class='card'>
    <div class='card-header'>
    <input type='checkbox' />
    <div class='card-title'>Service Ticket</div>
    </div>
    <div class='card-detail-grid light'>
    @@ -438,7 +618,7 @@ <h2>Vehicle Service History Listing</h2>
    <div class='card-detail'>
    <div class='card-detail-text'>
    <div class='detail-text-label'>Time</div>
    <div class='detail-text-content'>1:59 PM</div>
    <div class='detail-text-content item-dotted' data-tooltip="13 hours ago" data-tooltip-open-right="1" data-tooltip-margin-right="1">1:59 PM</div>
    </div>
    <div class='card-detail-icon'>
    <i class="material-icons-outlined">access_time</i>
    @@ -447,7 +627,7 @@ <h2>Vehicle Service History Listing</h2>
    <div class='card-detail'>
    <div class='card-detail-text'>
    <div class='detail-text-label'>Odometer</div>
    <div class='detail-text-content'>72,056mi</div>
    <div class='detail-text-content item-dotted' data-tooltip="14,000mi ago" data-tooltip-open-right="1" data-tooltip-margin-right="1">72,056mi</div>
    </div>
    <div class='card-detail-icon'>
    <i class="material-icons-outlined">linear_scale</i>
    @@ -463,9 +643,42 @@ <h2>Vehicle Service History Listing</h2>
    </div>
    </div>
    </div>
    <div class='card-content'>
    <div class='content-item'>
    <div class='content-item-header'>Attachments</div>
    <div class='content-item-content'>
    <a class='item-attachment-pill'>
    <div class='attachment-pill-icon'>
    <i class="material-icons-outlined">insert_drive_file</i>
    </div>
    <div class='attachment-pill-text'>44798_1.pdf</div>
    </a>
    <a class='item-attachment-pill'>
    <div class='attachment-pill-icon'>
    <i class="material-icons-outlined">insert_drive_file</i>
    </div>
    <div class='attachment-pill-text'>392nd19119192ue92.pdf</div>
    </a>
    <a class='item-attachment-pill'>
    <div class='attachment-pill-icon'>
    <i class="material-icons-outlined">insert_drive_file</i>
    </div>
    <div class='attachment-pill-text'>GEICO_ESTIMATE_4829101101.pdf</div>
    </a>
    </div>
    </div>
    <div class='content-item'>
    <div class='content-item-header'>Forked</div>
    <div class='content-item-content'>
    <div class='item-content-forked'>
    &rarr; Forked From <a>#32819 &ndash; GENERAL CHECKOVER & INSPECTION</a>
    </div>
    </div>
    </div>
    </div>
    <div class='card-footer'>
    <div class='card-button-group'>
    <div class='card-button-outlined'>More Details</div>
    <div class='card-button-outlined' data-toggle='more'>More Details</div>
    <a class='card-button-outlined'>PDF</a>
    </div>

    @@ -515,7 +728,7 @@ <h2>Vehicle Service History Listing</h2>
    <div class='card-detail'>
    <div class='card-detail-text'>
    <div class='detail-text-label'>Odometer</div>
    <div class='detail-text-content'>72,011mi</div>
    <div class='detail-text-content item-dotted' data-tooltip="74,000mi ago" data-tooltip-open-right="1" data-tooltip-margin-right="1">72,011mi</div>
    </div>
    <div class='card-detail-icon'>
    <i class="material-icons-outlined">linear_scale</i>
    @@ -544,5 +757,22 @@ <h2>Vehicle Service History Listing</h2>
    </div>
    </div>
    </div>
    <script>
    /**
    * Basic interaction script
    *
    * Use as desired
    **/

    // Activate all elements with a toggle
    const toggles = document.querySelectorAll("[data-toggle]");
    toggles.forEach((e) => {
    const parent = e.parentElement.parentElement.parentElement;

    e.onclick = () => {
    parent.classList.toggle("content-expanded")
    };
    });
    </script>
    </body>
    </html>
  2. amattu2 revised this gist Dec 20, 2021. 1 changed file with 73 additions and 8 deletions.
    81 changes: 73 additions & 8 deletions service-history-listing.html
    Original file line number Diff line number Diff line change
    @@ -60,7 +60,6 @@
    }

    .vehicle-event .event-date {
    display: inline-block;
    font-size: 12px;
    opacity: 0.6;
    width: 110px;
    @@ -75,10 +74,10 @@
    border: 1px solid rgba(0, 0, 0, 0.15);
    border-radius: 50%;
    background: #fff;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    margin-right: 9px;
    z-index: 3;
    }

    .event-cards {
    @@ -110,7 +109,10 @@
    }

    .card-detail-grid.light {
    background: unset;
    background: #fff;
    position: sticky;
    top: 0;
    z-index: 3;
    }

    .card-detail:not(:last-of-type) {
    @@ -256,7 +258,7 @@ <h2>Vehicle Service History Listing</h2>
    <div class='detail-text-content'>Battery Replacement</div>
    </div>
    <div class='card-detail-icon'>
    <i class="material-icons-outlined">receipt</i>
    <i class="material-icons-outlined">description</i>
    </div>
    </div>
    </div>
    @@ -302,7 +304,7 @@ <h2>Vehicle Service History Listing</h2>
    <div class='card-source-warning'>
    <i class="material-icons-outlined">warning</i>
    <span>
    This transaction was sourced from a third party.
    This event was sourced from a third party.
    </span>
    </div>
    </div>
    @@ -329,7 +331,7 @@ <h2>Vehicle Service History Listing</h2>
    <div class='detail-text-content'>{6.4Q - 5608} SYNTHETIC OC, FRONT BRAKES, WP, TB, ETC</div>
    </div>
    <div class='card-detail-icon'>
    <i class="material-icons-outlined">receipt</i>
    <i class="material-icons-outlined">description</i>
    </div>
    </div>
    </div>
    @@ -419,7 +421,7 @@ <h2>Vehicle Service History Listing</h2>
    <div class='detail-text-content'>MERCEDES A-SERVICE & INSPECTION</div>
    </div>
    <div class='card-detail-icon'>
    <i class="material-icons-outlined">receipt</i>
    <i class="material-icons-outlined">description</i>
    </div>
    </div>
    </div>
    @@ -470,7 +472,70 @@ <h2>Vehicle Service History Listing</h2>
    <div class='card-source-warning'>
    <i class="material-icons-outlined">warning</i>
    <span>
    This transaction was sourced from another customer
    This event was sourced from another customer.
    </span>
    </div>
    </div>
    </div>

    <div class='card'>
    <div class='card-header'>
    <div class='card-title'>Recall</div>
    </div>
    <div class='card-detail-grid light'>
    <div class='card-detail'>
    <div class='card-detail-text'>
    <div class='detail-text-label'>Description</div>
    <div class='detail-text-content'>NHTSA RECALL #81-183910</div>
    </div>
    <div class='card-detail-icon'>
    <i class="material-icons-outlined">description</i>
    </div>
    </div>
    </div>
    <div class='card-detail-grid'>
    <div class='card-detail'>
    <div class='card-detail-text'>
    <div class='detail-text-label'>Invoice #</div>
    <div class='detail-text-content'>-</div>
    </div>
    <div class='card-detail-icon'>
    <i class="material-icons-outlined">receipt</i>
    </div>
    </div>
    <div class='card-detail'>
    <div class='card-detail-text'>
    <div class='detail-text-label'>Time</div>
    <div class='detail-text-content'>-</div>
    </div>
    <div class='card-detail-icon'>
    <i class="material-icons-outlined">access_time</i>
    </div>
    </div>
    <div class='card-detail'>
    <div class='card-detail-text'>
    <div class='detail-text-label'>Odometer</div>
    <div class='detail-text-content'>72,011mi</div>
    </div>
    <div class='card-detail-icon'>
    <i class="material-icons-outlined">linear_scale</i>
    </div>
    </div>
    <div class='card-detail'>
    <div class='card-detail-text'>
    <div class='detail-text-label'>Total</div>
    <div class='detail-text-content'>-</div>
    </div>
    <div class='card-detail-icon'>
    <i class="material-icons-outlined">attach_money</i>
    </div>
    </div>
    </div>
    <div class='card-footer'>
    <div class='card-source-warning'>
    <i class="material-icons-outlined">warning</i>
    <span>
    This event was sourced from the NHTSA.
    </span>
    </div>
    </div>
  3. amattu2 created this gist Dec 19, 2021.
    483 changes: 483 additions & 0 deletions service-history-listing.html
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,483 @@
    <!--
    Produced: Sun Dec 19 2021
    Author: Alec M.
    GitHub: https://amattu.com/links/github
    Copyright: (C) 2021 Alec M.
    License: License GNU Affero General Public License v3.0
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU Affero General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    GNU Affero General Public License for more details.
    You should have received a copy of the GNU Affero General Public License
    along with this program. If not, see <http://www.gnu.org/licenses/>.
    -->

    <html>
    <head>
    <title>Automotive Service History</title>
    <!-- include material icons -->
    <link href="https://fonts.googleapis.com/icon?family=Material+Icons|Material+Icons+Outlined" rel="stylesheet">
    <style>
    html {
    margin: 0;
    padding: 0;
    }

    body {
    margin: 0;
    padding: 0;
    font-family: sans-serif;
    color: #262626;
    background-color: #f2f2f2;
    }

    .container {
    width: 750px;
    margin: 0 auto;
    margin-top: 25px;
    background: #fff;
    padding: 10px;
    border-radius: 3px;
    border: 1px solid rgba(0, 0, 0, 0.1);
    }

    .vehicle-event-list {
    background: #f2f2f2;
    }

    .vehicle-event {
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
    }

    .vehicle-event .event-date {
    display: inline-block;
    font-size: 12px;
    opacity: 0.6;
    width: 110px;
    text-align: center;
    margin-right: 20px;
    vertical-align: text-top;
    }

    .vehicle-event .event-icon {
    position: relative;
    padding: 4px;
    border: 1px solid rgba(0, 0, 0, 0.15);
    border-radius: 50%;
    background: #fff;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    margin-right: 9px;
    }

    .event-cards {
    width: calc(100% - 174px);
    }

    .card {
    box-shadow: 0 1px 3px rgb(0 0 0 / 12%), 0 1px 2px rgb(0 0 0 / 24%);
    background: #fff;
    border-radius: 2px;
    margin: 7px 5px;
    }

    .card-header {
    padding: 14px 10px;
    font-size: 14px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
    text-transform: uppercase;
    opacity: 0.6;
    font-weight: bold;
    }

    .card-detail-grid {
    display: flex;
    justify-content: center;
    align-items: center;
    background: #f2f2f2;
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
    }

    .card-detail-grid.light {
    background: unset;
    }

    .card-detail:not(:last-of-type) {
    border-right: 1px solid rgba(0, 0, 0, 0.1);
    }

    .card-detail {
    width: auto;
    flex: 1;
    padding: 8px 10px;
    display: flex;
    justify-content: center;
    align-items: center;
    }

    .detail-text-label {
    text-transform: uppercase;
    font-size: 13px;
    opacity: 0.6;
    margin-bottom: 4px;
    }

    .card-detail-text {
    margin-right: auto;
    }

    .detail-text-content {
    font-weight: bold;
    }

    .card-detail-icon {
    opacity: 0.6;
    }

    .vehicle-event:not(:first-of-type) {
    border-top: 1px solid rgba(0, 0, 0, 0.1);
    }

    .vehicle-event:not(:first-of-type)::before {
    content: " ";
    width: 1px;
    position: absolute;
    left: calc(110px + 20px + 34px/2);
    bottom: 50%;
    background: rgba(0, 0, 0, 0.1);
    height: 50%;
    }

    .vehicle-event:not(:last-of-type)::after {
    content: " ";
    width: 1px;
    position: absolute;
    left: calc(110px + 20px + 34px/2);
    top: 50%;
    background: rgba(0, 0, 0, 0.1);
    height: 50%;
    }


    .card-source-warning {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    margin-left: auto;
    font-size: 12px;
    padding: 4px;
    user-select: none;
    }

    .card-source-warning i {
    font-size: 18px;
    color: red;
    margin-right: 5px;
    }

    .card-button-group {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    padding: 10px;
    }

    .card-button-outlined {
    margin: 0 6px;
    padding: 8px 10px;
    border: 1px solid;
    cursor: pointer;
    color: #2196f3;
    font-size: 13px;
    border-radius: 2px;
    user-select: none;
    }

    .card-content {
    padding: 15px;
    }

    .content-item:not(:last-of-type) {
    margin-bottom: 10px;
    }

    .content-item-content .item-content-comments {
    white-space: pre-wrap;
    border: 1px solid rgba(0, 0, 0, 0.1);
    border-radius: 3px;
    background: #f2f2f2;
    padding: 7px;
    }

    .content-item-header {
    text-transform: uppercase;
    font-size: 13px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
    margin-bottom: 10px;
    padding-bottom: 10px;
    font-weight: bold;
    opacity: 0.6;
    }
    </style>
    </head>
    <body>
    <div class="container">
    <h2>Vehicle Service History Listing</h2>
    <p>Designed to be integrated within a automotive management system. Below is an example listing/layout for a single vehicle preview.</p>

    <div class='vehicle-event-list'>
    <div class='vehicle-event'>
    <div class='event-date'>
    Aug 14th, 2021
    </div>
    <div class='event-icon'>
    <i class="material-icons">event</i>
    </div>
    <div class='event-cards'>
    <div class='card'>
    <div class='card-header'>
    <div class='card-title'>Service Ticket</div>
    </div>
    <div class='card-detail-grid light'>
    <div class='card-detail'>
    <div class='card-detail-text'>
    <div class='detail-text-label'>Description</div>
    <div class='detail-text-content'>Battery Replacement</div>
    </div>
    <div class='card-detail-icon'>
    <i class="material-icons-outlined">receipt</i>
    </div>
    </div>
    </div>
    <div class='card-detail-grid'>
    <div class='card-detail'>
    <div class='card-detail-text'>
    <div class='detail-text-label'>Invoice #</div>
    <div class='detail-text-content'>-</div>
    </div>
    <div class='card-detail-icon'>
    <i class="material-icons-outlined">receipt</i>
    </div>
    </div>
    <div class='card-detail'>
    <div class='card-detail-text'>
    <div class='detail-text-label'>Time</div>
    <div class='detail-text-content'>-</div>
    </div>
    <div class='card-detail-icon'>
    <i class="material-icons-outlined">access_time</i>
    </div>
    </div>
    <div class='card-detail'>
    <div class='card-detail-text'>
    <div class='detail-text-label'>Odometer</div>
    <div class='detail-text-content'>119,752mi</div>
    </div>
    <div class='card-detail-icon'>
    <i class="material-icons-outlined">linear_scale</i>
    </div>
    </div>
    <div class='card-detail'>
    <div class='card-detail-text'>
    <div class='detail-text-label'>Total</div>
    <div class='detail-text-content'>-</div>
    </div>
    <div class='card-detail-icon'>
    <i class="material-icons-outlined">attach_money</i>
    </div>
    </div>
    </div>
    <div class='card-footer'>
    <div class='card-source-warning'>
    <i class="material-icons-outlined">warning</i>
    <span>
    This transaction was sourced from a third party.
    </span>
    </div>
    </div>
    </div>
    </div>
    </div>

    <div class='vehicle-event'>
    <div class='event-date'>
    Jul 29th, 2021
    </div>
    <div class='event-icon'>
    <i class="material-icons">event</i>
    </div>
    <div class='event-cards'>
    <div class='card'>
    <div class='card-header'>
    <div class='card-title'>Service Ticket</div>
    </div>
    <div class='card-detail-grid light'>
    <div class='card-detail'>
    <div class='card-detail-text'>
    <div class='detail-text-label'>Description</div>
    <div class='detail-text-content'>{6.4Q - 5608} SYNTHETIC OC, FRONT BRAKES, WP, TB, ETC</div>
    </div>
    <div class='card-detail-icon'>
    <i class="material-icons-outlined">receipt</i>
    </div>
    </div>
    </div>
    <div class='card-detail-grid'>
    <div class='card-detail'>
    <div class='card-detail-text'>
    <div class='detail-text-label'>Invoice #</div>
    <div class='detail-text-content'>52552</div>
    </div>
    <div class='card-detail-icon'>
    <i class="material-icons-outlined">receipt</i>
    </div>
    </div>
    <div class='card-detail'>
    <div class='card-detail-text'>
    <div class='detail-text-label'>Time</div>
    <div class='detail-text-content'>7:53 AM</div>
    </div>
    <div class='card-detail-icon'>
    <i class="material-icons-outlined">access_time</i>
    </div>
    </div>
    <div class='card-detail'>
    <div class='card-detail-text'>
    <div class='detail-text-label'>Odometer</div>
    <div class='detail-text-content'>119,752mi</div>
    </div>
    <div class='card-detail-icon'>
    <i class="material-icons-outlined">linear_scale</i>
    </div>
    </div>
    <div class='card-detail'>
    <div class='card-detail-text'>
    <div class='detail-text-label'>Total</div>
    <div class='detail-text-content'>$1,157.92</div>
    </div>
    <div class='card-detail-icon'>
    <i class="material-icons-outlined">attach_money</i>
    </div>
    </div>
    </div>
    <div class='card-content'>
    <div class='content-item'>
    <div class='content-item-header'>Ticket Comments</div>
    <div class='content-item-content'>
    <div class='item-content-comments'>If you click on a history event, it expands down into a regionless (i.e. no background and not apart of the box-shadow card) grid of key:value items (i.e. similar to the customer contact details)

    It uses opacity to indicate if the record is unverified (CarFax/Autocheck/Etc sourced)
    </div>
    </div>
    </div>
    <div class='content-item'>
    <div class='content-item-header'>Ticket Services</div>
    <div class='content-item-content'>
    <div class='item-content-services'>
    <ul>
    <li>Vehicle serviced
    <li>Pre-delivery inspection completed
    <li>Window tint installed
    <li>Vehicle washed/detailed
    <li>Tire condition and pressure checked
    <li>Nitrogen fill tires
    <li>Anti-theft/keyless device/alarm installed
    <li>Safety inspection performed
    </ul>
    </div>
    </div>
    </div>
    </div>
    <div class='card-footer'>
    <div class='card-button-group'>
    <div class='card-button-outlined'>More Details</div>
    <div class='card-button-outlined'>Edit</div>
    <a class='card-button-outlined'>PDF</a>
    </div>
    </div>
    </div>

    <div class='card'>
    <div class='card-header'>
    <div class='card-title'>Service Ticket</div>
    </div>
    <div class='card-detail-grid light'>
    <div class='card-detail'>
    <div class='card-detail-text'>
    <div class='detail-text-label'>Description</div>
    <div class='detail-text-content'>MERCEDES A-SERVICE & INSPECTION</div>
    </div>
    <div class='card-detail-icon'>
    <i class="material-icons-outlined">receipt</i>
    </div>
    </div>
    </div>
    <div class='card-detail-grid'>
    <div class='card-detail'>
    <div class='card-detail-text'>
    <div class='detail-text-label'>Invoice #</div>
    <div class='detail-text-content'>44798</div>
    </div>
    <div class='card-detail-icon'>
    <i class="material-icons-outlined">receipt</i>
    </div>
    </div>
    <div class='card-detail'>
    <div class='card-detail-text'>
    <div class='detail-text-label'>Time</div>
    <div class='detail-text-content'>1:59 PM</div>
    </div>
    <div class='card-detail-icon'>
    <i class="material-icons-outlined">access_time</i>
    </div>
    </div>
    <div class='card-detail'>
    <div class='card-detail-text'>
    <div class='detail-text-label'>Odometer</div>
    <div class='detail-text-content'>72,056mi</div>
    </div>
    <div class='card-detail-icon'>
    <i class="material-icons-outlined">linear_scale</i>
    </div>
    </div>
    <div class='card-detail'>
    <div class='card-detail-text'>
    <div class='detail-text-label'>Total</div>
    <div class='detail-text-content'>$256.70</div>
    </div>
    <div class='card-detail-icon'>
    <i class="material-icons-outlined">attach_money</i>
    </div>
    </div>
    </div>
    <div class='card-footer'>
    <div class='card-button-group'>
    <div class='card-button-outlined'>More Details</div>
    <a class='card-button-outlined'>PDF</a>
    </div>

    <div class='card-source-warning'>
    <i class="material-icons-outlined">warning</i>
    <span>
    This transaction was sourced from another customer
    </span>
    </div>
    </div>
    </div>
    </div>
    </div>
    </div>
    </div>
    </body>
    </html>