blob: c00defcfb8b49cce93c21dbfc654d02b125b76c8 [file] [log] [blame]
/*
* Copyright (C) 2013 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
* THE POSSIBILITY OF SUCH DAMAGE.
*/
.timeline-ruler {
position: relative;
pointer-events: none;
--timeline-ruler-marker-translateX: -1px;
}
.timeline-ruler.allows-time-range-selection:not(.disabled) {
pointer-events: all;
}
.timeline-ruler.resizing-selection,
.timeline-ruler.resizing-selection > .selection-drag {
cursor: col-resize;
}
.timeline-ruler > * {
pointer-events: none;
}
body[dir=ltr] .timeline-ruler > .header > .divider,
body[dir=ltr] .timeline-ruler > .markers > :matches(.divider, .marker) {
transform: translateX(var(--timeline-ruler-marker-translateX));
}
body[dir=rtl] .timeline-ruler > .header > .divider,
body[dir=rtl] .timeline-ruler > .markers > :matches(.divider, .marker) {
transform: translateX(calc(-1 * var(--timeline-ruler-marker-translateX)));
}
.timeline-ruler > .header {
border-bottom: 1px solid var(--border-color);
position: absolute;
top: 0;
left: 0;
right: 0;
height: var(--timeline-ruler-height);
--timeline-ruler-height: 23px;
}
.timeline-ruler > .header > .divider {
position: absolute;
width: 1px;
top: 0;
bottom: 0;
background-image: linear-gradient(to bottom, hsla(0, 0%, 70%, 0), hsla(0, 0%, 70%, 2) 85%);
}
body.window-inactive .timeline-ruler > .header > .divider {
background-image: linear-gradient(to bottom, hsla(0, 0%, 85%, 0), hsla(0, 0%, 85%, 1) 85%);
}
.timeline-ruler > .header > .divider > .label {
position: absolute;
top: 6px;
font-size: 9px;
color: hsl(0, 0%, 50%);
white-space: nowrap;
--timeline-ruler-header-divider-label-offset-end: 5px;
}
body[dir=ltr] .timeline-ruler > .header > .divider > .label {
right: var(--timeline-ruler-header-divider-label-offset-end);
}
body[dir=rtl] .timeline-ruler > .header > .divider > .label {
left: var(--timeline-ruler-header-divider-label-offset-end);
}
.timeline-ruler > .markers {
position: absolute;
top: 22px;
left: 0;
right: 0;
bottom: 0;
}
.timeline-ruler > .markers > .divider {
position: absolute;
top: 1px;
z-index: var(--timeline-marker-z-index);
bottom: 0;
width: 1px;
background-color: hsla(0, 0%, var(--foreground-lightness), 0.07);
}
.timeline-ruler > .markers > .marker {
position: absolute;
top: 0;
z-index: var(--timeline-marker-z-index);
bottom: 0;
width: 3px;
color: hsla(0, 0%, 50%, 0.5);
border: 0 solid currentColor;
pointer-events: all;
--timeline-ruler-marker-border-width: 1px;
}
body[dir=ltr] .timeline-ruler > .markers > .marker {
border-left-width: var(--timeline-ruler-marker-border-width);
}
body[dir=rtl] .timeline-ruler > .markers > .marker {
border-right-width: var(--timeline-ruler-marker-border-width);
}
.timeline-ruler > .markers > .marker::before {
width: var(--timeline-ruler-marker-before-size);
position: absolute;
top: 0;
bottom: 0;
content: "";
--timeline-ruler-marker-before-size: 6px;
--timeline-ruler-marker-before-offset: calc(-1 * ((var(--timeline-ruler-marker-before-size) + var(--timeline-ruler-marker-border-width)) / 2));
}
body[dir=ltr] .timeline-ruler > .markers > .marker::before {
left: var(--timeline-ruler-marker-before-offset);
}
body[dir=rtl] .timeline-ruler > .markers > .marker::before {
right: var(--timeline-ruler-marker-before-offset);
}
.timeline-ruler > .markers > .marker::after {
position: absolute;
top: calc(-1 * (var(--timeline-ruler-marker-after-size) - 1px) / 2);
content: "";
border-right: calc(var(--timeline-ruler-marker-after-size) / 2) solid transparent;
border-left: calc(var(--timeline-ruler-marker-after-size) / 2) solid transparent;
border-top: calc(var(--timeline-ruler-marker-after-size) / 2) solid currentColor;
--timeline-ruler-marker-after-size: 10px;
--timeline-ruler-marker-after-offset: calc(-1 * ((var(--timeline-ruler-marker-after-size) + var(--timeline-ruler-marker-border-width)) / 2));
}
body[dir=ltr] .timeline-ruler > .markers > .marker::after {
left: var(--timeline-ruler-marker-after-offset);
}
body[dir=rtl] .timeline-ruler > .markers > .marker::after {
right: var(--timeline-ruler-marker-after-offset);
}
.timeline-ruler > .markers > .marker.stopping-time {
color: hsl(0, 0%, 75%);
}
.timeline-ruler > .markers > .marker.current-time {
z-index: var(--timeline-current-time-z-index);
color: red;
}
.timeline-ruler > .markers > .marker:matches(.stopping-time, .current-time)::after {
top: var(--timeline-ruler-marker-after-offset);
width: var(--timeline-ruler-marker-after-size);
height: var(--timeline-ruler-marker-after-size);
background-color: currentColor;
border: none;
border-radius: 5px;
}
.timeline-ruler > .markers > .marker.load-event {
color: hsl(0, 100%, 50%);
}
.timeline-ruler > .markers > .marker.dom-content-event {
color: hsl(240, 100%, 50%);
}
.timeline-ruler > .markers > .marker.timestamp {
color: hsl(119, 100%, 21%);
}
.timeline-ruler > .markers > .marker.scanner {
color: var(--timeline-scanner-color);
}
.timeline-ruler > .selection-drag {
position: absolute;
top: 0;
height: 23px;
}
.timeline-ruler:not(.disabled, .resizing-selection) > .selection-drag {
cursor: -webkit-grab;
pointer-events: all;
}
.timeline-ruler:not(.disabled, .resizing-selection) > .selection-drag:active {
cursor: -webkit-grabbing;
}
.timeline-ruler > .selection-handle {
position: absolute;
top: 0;
width: 8px;
height: 22px;
border-radius: 5px;
background-color: hsl(0, 0%, 64%);
border: 1px solid white;
cursor: col-resize;
pointer-events: all;
z-index: var(--timeline-selection-z-index);
--timeline-ruler-selection-handle-translateX: -4px;
}
.timeline-ruler.disabled > .selection-handle {
display: none;
}
.timeline-ruler.selection-hidden > :matches(.selection-drag, .selection-handle, .shaded-area) {
display: none;
}
.timeline-ruler > .selection-handle.clamped {
border-color: hsl(0, 0%, 64%);
background-color: white;
}
.timeline-ruler > .selection-handle:hover,
.timeline-ruler > .selection-handle:active {
background-color: hsl(0, 0%, 50%);
border-color: white;
}
.timeline-ruler.both-handles-clamped > .selection-handle {
z-index: calc(var(--timeline-selection-z-index) - 1);
}
.timeline-ruler > .selection-handle.clamped.hidden {
display: none;
}
body[dir=ltr] .timeline-ruler > .selection-handle.left,
body[dir=rtl] .timeline-ruler > .selection-handle.right {
transform: translateX(var(--timeline-ruler-selection-handle-translateX));
}
body[dir=ltr] .timeline-ruler > .selection-handle.right,
body[dir=rtl] .timeline-ruler > .selection-handle.left {
transform: translateX(calc(-1 * var(--timeline-ruler-selection-handle-translateX)));
}
.timeline-ruler > .shaded-area {
position: absolute;
top: 0;
bottom: 0;
background-color: hsla(0, 0%, 0%, 0.1);
z-index: var(--timeline-selection-z-index);
}
body[dir=ltr] .timeline-ruler > .shaded-area.left,
body[dir=rtl] .timeline-ruler > .shaded-area.right {
left: 0;
}
body[dir=ltr] .timeline-ruler > .shaded-area.right,
body[dir=rtl] .timeline-ruler > .shaded-area.left {
right: 0;
}
@media (prefers-color-scheme: dark) {
.timeline-ruler > .markers > .marker.stopping-time {
color: lightgrey;
}
.timeline-ruler > .markers > .marker.dom-content-event {
color: hsl(240, 100%, 70%);
}
}