Merge sync and async code paths for getting context menus
[WebKit-https.git] / Source / WebInspectorUI / UserInterface / Views / HierarchicalPathComponent.css
1 /*
2  * Copyright (C) 2013-2017 Apple Inc. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  * 1. Redistributions of source code must retain the above copyright
8  *    notice, this list of conditions and the following disclaimer.
9  * 2. Redistributions in binary form must reproduce the above copyright
10  *    notice, this list of conditions and the following disclaimer in the
11  *    documentation and/or other materials provided with the distribution.
12  *
13  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
14  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
15  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
17  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
19  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
20  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
21  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
22  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
23  * THE POSSIBILITY OF SUCH DAMAGE.
24  */
25
26 .hierarchical-path-component {
27     display: flex;
28     position: relative;
29     height: 20px;
30     min-width: 32px;
31
32     font-size: 11px;
33     font-family: -webkit-system-font, sans-serif;
34
35     --path-component-icon-margin-start: 4px;
36     --path-component-icon-margin-end: 3px;
37 }
38
39 .hierarchical-path-component.show-selector-arrows {
40     min-width: 44px;
41 }
42
43 .hierarchical-path-component.collapsed {
44     min-width: 24px;
45 }
46
47 .hierarchical-path-component.collapsed > .icon {
48     display: none;
49 }
50
51 .hierarchical-path-component.collapsed > .title {
52     margin-left: 3px;
53 }
54
55 .hierarchical-path-component.collapsed > select {
56     display: none;
57 }
58
59 .hierarchical-path-component > .icon {
60     vertical-align: top;
61     width: 16px;
62     height: 16px;
63 }
64
65 .hierarchical-path-component > :matches(.icon, .selector-arrows) {
66     margin-top: 2px;
67     margin-bottom: 2px;
68 }
69
70 body[dir=ltr] .hierarchical-path-component > :matches(.icon, .selector-arrows) {
71     margin-left: var(--path-component-icon-margin-start);
72     margin-right: var(--path-component-icon-margin-end);
73 }
74
75 body[dir=rtl] .hierarchical-path-component > :matches(.icon, .selector-arrows) {
76     margin-left: var(--path-component-icon-margin-end);
77     margin-right: var(--path-component-icon-margin-start);
78 }
79
80 .hierarchical-path-component > .selector-arrows {
81     vertical-align: top;
82     width: 5px;
83     height: 16px;
84     opacity: 0.6;
85     content: url(../Images/UpDownArrows.svg);
86 }
87
88 .hierarchical-path-component > .title {
89     display: flex;
90     flex: 1;
91
92     vertical-align: top;
93
94     line-height: 20px;
95     height: 20px;
96
97     min-width: 0;
98     max-width: 400px;
99 }
100
101 .hierarchical-path-component > .title > .content {
102     min-width: 0;
103     width: 100%;
104     overflow: hidden;
105     text-overflow: ellipsis;
106     white-space: nowrap;
107 }
108
109 .hierarchical-path-component > select {
110     opacity: 0;
111
112     position: absolute;
113     top: -1px;
114     bottom: 0;
115
116     --path-component-select-offset-start: 13px;
117     --path-component-select-offset-end: 0;
118 }
119
120 /* Positioned so the text in the menu aligns with the text in .title. */
121 body[dir=ltr] .hierarchical-path-component > select {
122     left: var(--path-component-select-offset-start);
123     right: var(--path-component-select-offset-end);
124 }
125
126 body[dir=rtl] .hierarchical-path-component > select {
127     left: var(--path-component-select-offset-end);
128     right: var(--path-component-select-offset-start);
129 }
130
131 .hierarchical-path:not(.always-show-last-path-component-separator) > .hierarchical-path-component:last-child > .separator {
132     visibility: hidden;
133 }
134
135 .hierarchical-path-component > .separator {
136     display: inline-block;
137     vertical-align: top;
138
139     background-image: url(../Images/HierarchicalNavigationItemChevron.svg);
140     background-repeat: no-repeat;
141     background-position-y: center;
142
143     opacity: 0.75;
144
145     width: 7px;
146     height: 20px;
147
148     --path-component-separator-margin-start: 3px;
149 }
150
151 body[dir=ltr] .hierarchical-path-component > .separator {
152     margin-left: var(--path-component-separator-margin-start);
153 }
154
155 body[dir=rtl] .hierarchical-path-component > .separator {
156     margin-right: var(--path-component-separator-margin-start);
157     /* Flip the icon horizontally. */
158     transform: scaleX(-1);
159 }
160
161 .hierarchical-path-component.text-only {
162     --text-only-path-component-padding-start: 5px;
163     --text-only-path-component-padding-end: 1px;
164     --text-only-path-component-select-offset-start: -8px;
165 }
166
167 body[dir=ltr] .hierarchical-path-component.text-only {
168     padding-left: var(--text-only-path-component-padding-start);
169     padding-right: var(--text-only-path-component-padding-end);
170 }
171
172 body[dir=rtl] .hierarchical-path-component.text-only {
173     padding-left: var(--text-only-path-component-padding-end);
174     padding-right: var(--text-only-path-component-padding-start);
175 }
176
177 body[dir=ltr] .hierarchical-path-component.text-only > select {
178  /* Positions so the text in the menu aligns with the text in .title for text only path components. */
179     left: var(--text-only-path-component-select-offset-start);
180 }
181
182 body[dir=rtl] .hierarchical-path-component.text-only > select {
183  /* Positions so the text in the menu aligns with the text in .title for text only path components. */
184     right: var(--text-only-path-component-select-offset-start);
185 }