blob: 70003059d89f8564dcf755d83f4d0acd95dd2bef [file]
/* Copyright 2026 The Chromium Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
:root {
--body-padding: 5px;
--color-sep: #888;
--splitter-size: 7px;
--tree-toggle-width: 20px;
--z-index-overlay: 1000;
}
body {
align-items: center;
box-sizing: border-box;
display: flex;
flex-direction: column;
font-family: sans-serif;
height: 100vh;
margin: 0;
padding: var(--body-padding);
}
button {
background-color: #007bff;
border-radius: 5px;
border: none;
color: white;
cursor: pointer;
font-size: 16px;
&.action-button {
padding: 5px 5px;
width: 100px;
}
&:disabled {
background-color: #6c757d;
cursor: not-allowed;
opacity: 0.65;
}
}
.hidden {
display: none !important;
}
#div-controls {
align-items: center;
background-color: #f8f9fa;
box-sizing: border-box;
display: flex;
flex-direction: row;
flex-shrink: 0;
gap: 15px;
overflow-x: auto;
padding: 10px;
user-select: none;
white-space: nowrap;
width: 100%;
& > * {
flex-shrink: 0;
}
}
#div-main {
display: flex;
flex-grow: 1;
overflow: hidden;
position: relative;
width: 100%;
}
.main-layout {
&[data-layout="left"] {
flex-direction: row;
}
&[data-layout="right"] {
flex-direction: row-reverse;
}
&[data-layout="top"] {
flex-direction: column;
}
&[data-layout="bottom"] {
flex-direction: column-reverse;
}
}
#div-pane-screenshot {
display: flex;
flex-basis: 50%;
flex-direction: column;
flex-grow: 0;
flex-shrink: 0;
max-height: 100%;
max-width: 100%;
overflow: hidden;
position: relative;
}
#div-screenshot {
align-items: safe start;
background-color: #fff;
display: grid;
flex-grow: 1;
justify-items: safe center;
min-height: 0;
overflow: auto;
#div-main[data-layout="top"] &,
#div-main[data-layout="bottom"] & {
align-items: safe center;
}
.screenshot-inner {
cursor: crosshair;
flex-shrink: 0;
position: relative;
}
.canv-base {
display: block;
image-rendering: pixelated;
transition: opacity 0.15s;
}
}
#div-main-splitter {
background-color: transparent;
flex-basis: var(--splitter-size);
flex-shrink: 0;
position: relative;
z-index: 10;
&::before {
background-color: var(--color-sep);
content: '';
position: absolute;
}
#div-main[data-layout="left"] &,
#div-main[data-layout="right"] & {
cursor: col-resize;
&::before {
height: 100%;
left: 3px;
top: 0;
width: 1px;
}
}
#div-main[data-layout="top"] &,
#div-main[data-layout="bottom"] & {
cursor: row-resize;
&::before {
height: 1px;
left: 0;
top: 3px;
width: 100%;
}
}
}
#div-pane-view-tree {
display: flex;
flex-basis: 0;
flex-direction: column;
flex-grow: 1;
gap: 5px;
overflow: hidden;
}
#div-view-tree {
flex-grow: 1;
overflow-y: auto;
padding: 10px;
user-select: none;
.view-row {
align-items: center;
background-clip: border-box;
border-bottom: 1px solid #0001;
border-left: 3px solid transparent; /* Descendant selection indicator. */
display: flex;
font-family: monospace;
height: 24px;
white-space: nowrap;
&.expanded {
.tree-toggle span {
transform: rotate(90deg);
}
}
.tree-toggle {
align-items: center;
box-sizing: border-box;
color: #666;
cursor: pointer;
display: inline-flex;
flex-shrink: 0;
font-size: 10px;
height: 100%;
justify-content: center;
user-select: none;
width: var(--tree-toggle-width);
&:hover {
color: #000;
}
span {
border-bottom: 4px solid transparent;
border-left: 4px solid currentColor;
border-top: 4px solid transparent;
box-sizing: border-box;
display: inline-block;
height: 8px;
pointer-events: none;
transition: transform 0.15s;
width: 4px;
}
}
.view-label {
padding-left: 4px;
padding-right: 4px;
pointer-events: none;
&.no-id {
color: #888;
font-style: italic;
}
.leaf & {
margin-left: var(--tree-toggle-width);
}
}
}
}
#div-info-bar {
background-color: #f8f9fa;
border-top: solid 1px var(--color-sep);
box-sizing: border-box;
display: flex;
flex-direction: column;
flex-shrink: 0;
font-family: monospace;
height: 5em;
justify-content: flex-start;
padding: 10px;
user-select: none;
width: 100%;
.hint-text {
color: #666;
font-style: italic;
margin-bottom: -4px;
margin-top: auto;
}
}
#div-overlay {
&:not(.hidden) {
align-items: center;
background-color: rgba(0, 0, 0, 0.5);
color: white;
display: flex;
font-size: 2em;
height: 100%;
justify-content: center;
left: 0;
position: fixed;
top: 0;
width: 100%;
z-index: var(--z-index-overlay);
}
.content {
align-items: center;
display: flex;
inset: var(--body-padding);
justify-content: center;
position: absolute;
}
}