| /* |
| * 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. |
| */ |
| |
| .tree-outline.dom { |
| position: relative; |
| |
| min-width: 100%; |
| margin: 0; |
| padding: 0; |
| |
| outline: none; |
| |
| list-style-type: none; |
| |
| /* Needed to make the negative z-index on .selection-area works. Otherwise the background-color from .syntax-highlighted hides the selection. */ |
| background-color: transparent !important; |
| color: var(--text-color); |
| |
| --item-pseudo-class-indicator-start: 2px; |
| |
| --sublist-margin-start: 4px; |
| --sublist-padding-start: 1px; |
| --sublist-border-width-start: 9px; |
| } |
| |
| .tree-outline.dom li .selection-area { |
| position: absolute; |
| left: 0; |
| right: 0; |
| height: 15px; |
| } |
| |
| .tree-outline.dom li.selected .selection-area { |
| background-color: var(--selected-background-color-unfocused); |
| } |
| |
| .tree-outline.dom li.elements-drag-over .selection-area { |
| margin-top: -2px; |
| border-top: 2px solid var(--selected-background-color); |
| } |
| |
| body:not(.window-inactive, .window-docked-inactive) .tree-outline.dom:not(.non-selectable):focus-within li.selected .selection-area { |
| background-color: var(--selected-background-color); |
| } |
| |
| .tree-outline.dom:not(.non-selectable) li.hovered:not(.selected) .selection-area { |
| background-color: var(--selected-background-color); |
| opacity: 0.3; |
| } |
| |
| .tree-outline.dom li > :not(.selection-area) { |
| position: relative; |
| z-index: 1; |
| } |
| |
| .tree-outline.dom li.inspected-node > span::after { |
| content: " = " var(--console-saved-result-prefix) "0"; |
| color: var(--console-secondary-text-color); |
| position: absolute; |
| white-space: pre; |
| } |
| |
| body:not(.window-inactive, .window-docked-inactive) .tree-outline.dom:focus-within li.inspected-node.selected > span::after { |
| color: var(--selected-secondary-text-color); |
| } |
| |
| .tree-outline.dom ol { |
| list-style-type: none; |
| margin: 0; |
| -webkit-padding-start: calc(var(--sublist-margin-start) + var(--sublist-padding-start) + var(--sublist-border-width-start)); |
| } |
| |
| .tree-outline.dom ol.children { |
| display: none; |
| } |
| |
| .tree-outline.dom ol.children.expanded { |
| display: block; |
| } |
| |
| .tree-outline.dom li:matches(.hovered, .selected) + ol.children.expanded { |
| -webkit-margin-start: var(--sublist-margin-start); |
| -webkit-padding-start: var(--sublist-padding-start); |
| border: 0 solid hsla(0, 0%, 83%, 0.5); |
| } |
| |
| .tree-outline.dom li:matches(.hovered, .selected) + ol.children.expanded { |
| border-left-width: var(--sublist-border-width-start); |
| } |
| |
| .tree-outline.dom li.selected + ol.children.expanded { |
| border-color: hsl(0, 0%, 65%, 0.5); |
| } |
| |
| .tree-outline.dom li { |
| padding: 0; |
| word-wrap: break-word; |
| outline: none; |
| |
| --item-padding-start: 17px; |
| --item-padding-end: 6px; |
| } |
| |
| .tree-outline.dom li:not(.editing) { |
| padding-left: var(--item-padding-start); |
| padding-right: var(--item-padding-end); |
| } |
| |
| .tree-outline.dom li.editing { |
| margin-left: var(--item-padding-start); |
| margin-right: var(--item-padding-end); |
| } |
| |
| .tree-outline.dom li > span > .html-text-node { |
| unicode-bidi: isolate-override; |
| } |
| |
| .tree-outline.dom li .pseudo-class-indicator { |
| display: inline-block; |
| position: absolute; |
| width: 5px; |
| height: 5px; |
| margin-top: 4px; |
| content: ""; |
| background-color: var(--glyph-color-active); |
| border-radius: 50%; |
| } |
| |
| .tree-outline.dom li .pseudo-class-indicator { |
| left: var(--item-pseudo-class-indicator-start); |
| } |
| |
| body:not(.window-inactive, .window-docked-inactive) .tree-outline.dom:focus-within li.selected .pseudo-class-indicator { |
| background-color: var(--selected-foreground-color); |
| } |
| |
| .tree-outline.dom.single-node li { |
| padding-left: 2px; |
| } |
| |
| body:not(.window-inactive, .window-docked-inactive) .tree-outline.dom:focus-within li.selected { |
| color: white; |
| } |
| |
| body:not(.window-inactive, .window-docked-inactive) .tree-outline.dom:focus-within li.selected * { |
| color: inherit; |
| } |
| |
| .tree-outline.dom li.parent { |
| margin-left: -15px; |
| line-height: 13px; |
| } |
| |
| .tree-outline.dom li .html-tag.close { |
| margin-left: calc(-1 * var(--sublist-margin-start) - var(--sublist-border-width-start)); |
| } |
| |
| .tree-outline.dom li .html-tag ~ .go-to-arrow { |
| height: 13px; |
| vertical-align: -3px; |
| } |
| |
| .tree-outline.dom li:not(.hovered) .html-tag ~ .go-to-arrow { |
| visibility: hidden; |
| } |
| |
| .tree-outline.dom li.parent::before { |
| position: relative; |
| z-index: 20; |
| width: 13px; |
| height: 13px; |
| padding-right: 2px; |
| content: ""; |
| background-image: url(../Images/DisclosureTriangles.svg#closed-normal); |
| background-size: 13px 13px; |
| background-repeat: no-repeat; |
| } |
| |
| .tree-outline.dom li.parent::before { |
| float: left; |
| } |
| |
| body:not(.window-inactive, .window-docked-inactive) .tree-outline.dom:focus-within li.parent.selected::before { |
| background-image: url(../Images/DisclosureTriangles.svg#closed-selected); |
| } |
| |
| .tree-outline.dom li.parent.expanded::before { |
| background-image: url(../Images/DisclosureTriangles.svg#open-normal); |
| } |
| |
| body:not(.window-inactive, .window-docked-inactive) .tree-outline.dom:focus-within li.parent.expanded.selected::before { |
| background-image: url(../Images/DisclosureTriangles.svg#open-selected); |
| } |
| |
| .tree-outline.dom .html-text-node.large { |
| display: inline-block; |
| min-width: 100%; |
| white-space: pre-wrap; |
| } |
| |
| .tree-outline.dom .html-pseudo-element { |
| color: hsl(0, 59%, 41%); |
| } |
| |
| .tree-outline.dom .shadow { |
| color: gray; |
| } |
| |
| /* Cannot apply styling directly to the parent element since it has a disclosure triangle. */ |
| .tree-outline.dom li.parent.shadow::after { |
| display: block; |
| /* Adds padding to the right edge. */ |
| width: calc(100% + 8px); |
| height: 1.2em; |
| margin-top: -13px; |
| margin-left: -2px; |
| content: ""; |
| background-color: hsla(0, 0%, 90%, 0.5); |
| } |
| |
| .tree-outline.dom li.parent.shadow + ol.children.expanded { |
| background-color: hsla(0, 0%, 90%, 0.5); |
| } |
| |
| .showing-find-banner .tree-outline.dom .search-highlight { |
| color: black; |
| background-color: hsla(53, 83%, 53%, 0.2); |
| border-bottom: 1px solid hsl(47, 82%, 60%); |
| } |
| |
| @keyframes node-state-changed { |
| from { background-color: var(--value-changed-highlight); } |
| } |
| |
| .node-state-changed { |
| animation: node-state-changed 1s cubic-bezier(0.25, 0, 0.25, 1); |
| } |
| |
| @keyframes dom-tree-outline-highlight-fadeout { |
| from { background-color: highlight; } |
| } |
| |
| .highlight .selection-area { |
| animation: "dom-tree-outline-highlight-fadeout" 2s; |
| } |
| |
| .tree-outline.dom li .highlight { |
| background-color: hsla(53, 83%, 53%, 0.2); |
| border-bottom: 1px solid hsl(47, 82%, 60%); |
| } |
| |
| @media (prefers-color-scheme: dark) { |
| .tree-outline.dom .shadow { |
| color: var(--text-color); |
| } |
| |
| /* FIXME: extract this as a variable. It's slightly different from var(background-color-secondary), |
| but close enough for now. It needs to use partial translucency so that the selection area shines through. */ |
| .tree-outline.dom li.parent.shadow + ol.children.expanded, |
| .tree-outline.dom li.parent.shadow::after { |
| background-color: hsla(0, 0%, 90%, 0.1); |
| } |
| |
| .showing-find-banner .tree-outline.dom .search-highlight { |
| /* FIXME: This should use a variable. */ |
| background-color: hsla(53, 83%, 53%, 0.8); |
| } |
| |
| .tree-outline.dom .html-pseudo-element { |
| color: hsl(0, 80%, 65%); |
| } |
| } |