1 /* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5 /* === file identical to profiler.inc.css === */
7 /* CSS Variables specific to this panel that aren't defined by the themes */
10 --cell-border-color: #9C9CFF;
11 --focus-cell-border-color: #9C9CFF;
12 --row-alt-background-color: #402800;
13 --row-hover-background-color: #795900;
20 /* Reload and waiting notices */
25 background-color: var(--theme-toolbar-background);
26 color: var(--theme-body-color);
30 #recording-notice button {
34 list-style-image: url("profiler-stopwatch.svg");
37 #empty-notice button[checked],
38 #recording-notice button[checked] {
39 list-style-image: url("profiler-stopwatch-checked.svg");
42 #empty-notice button .button-text,
43 #recording-notice button .button-text {
54 #recordings-pane > tabs,
55 #recordings-pane .devtools-toolbar {
56 -moz-border-end-width: 1px;
59 #recordings-pane > tabs,
60 #recordings-pane .devtools-toolbar {
61 -moz-border-end-color: var(--theme-splitter-color);
65 list-style-image: url("profiler-stopwatch.svg");
68 #record-button[checked] {
69 list-style-image: url("profiler-stopwatch-checked.svg");
72 #record-button[locked] {
82 .recording-item-title {
86 .recording-item-footer {
91 .recording-item-save {
92 text-decoration: underline;
96 .recording-item-duration,
97 .recording-item-save {
98 color: var(--theme-body-color-alt);
101 #recordings-list .selected label {
102 /* Text inside a selected item should not be custom colored. */
103 color: inherit !important;
108 #profile-content tabs {
109 -moz-box-align: stretch;
114 #profile-content tab {
116 background-color: transparent;
121 transition-duration: 0.25s;
122 transition-timing-function: ease-in-out;
123 transition-property: opacity, transform;
126 #profile-content tab {
127 color: var(--theme-body-color);
130 #profile-content tab:not([selected]) {
134 #profile-content tab[covered] {
136 transform: translateY(100%);
139 #profile-content tab {
140 -moz-appearance: none;
141 -moz-border-end: 1px solid var(--theme-splitter-color);
144 #profile-content tab:hover {
145 background-color: var(--theme-hover-background);
146 color: var(--theme-hover-color);
149 #profile-content tab[selected] {
150 background-color: var(--theme-selection-background);
151 color: var(--theme-selection-color);
154 #profile-content tabpanel {
155 -moz-box-orient: vertical;
156 transform: translateZ(1px); /* Make sure the tabpanel appears above the tab */
159 #profile-newtab-button {
160 -moz-appearance: none;
161 background-color: transparent;
162 background-position: 4px 2px;
163 background-size: 54px 20px;
170 #profile-newtab-button {
171 background-color: #C09070;
174 #profile-newtab-button {
175 background-image: url("newtab.png");
178 @media (min-resolution: 2dppx) {
179 #profile-newtab-button {
180 background-image: url("newtab@2x.png");
184 /* Profile call tree */
186 .call-tree-headers-container {
187 border-top: 1px solid var(--theme-splitter-color);
190 .call-tree-cells-container {
191 /* Hack: force hardware acceleration */
192 transform: translateZ(1px);
196 .call-tree-cells-container[categories-hidden] .call-tree-category {
200 .call-tree-header[type="duration"],
201 .call-tree-cell[type="duration"],
202 .call-tree-header[type="self-duration"],
203 .call-tree-cell[type="self-duration"] {
207 .call-tree-header[type="percentage"],
208 .call-tree-cell[type="percentage"],
209 .call-tree-header[type="self-percentage"],
210 .call-tree-cell[type="self-percentage"] {
214 .call-tree-header[type="samples"],
215 .call-tree-cell[type="samples"] {
219 .call-tree-header[type="function"],
220 .call-tree-cell[type="function"] {
226 -moz-box-align: center;
229 color: var(--theme-body-color);
232 .call-tree-header:not(:last-child),
233 .call-tree-cell:not(:last-child) {
234 -moz-border-end-width: 1px;
235 -moz-border-end-style: solid;
240 -moz-border-end-color: var(--cell-border-color);
243 .call-tree-header:not(:last-child) {
247 .call-tree-cell:not(:last-child) {
252 background-color: var(--theme-contrastsidebar-background);
253 color: var(--theme-contrastsidebar-color);
256 .call-tree-item:last-child:not(:focus) {
257 border-bottom: 1px solid var(--cell-border-color);
260 .call-tree-item:nth-child(2n) {
261 background-color: var(--row-alt-background-color);
264 .call-tree-item:hover {
265 background-color: var(--row-hover-background-color);
268 .call-tree-item:focus {
269 background-color: var(--theme-selection-background);
270 color: var(--theme-selection-color);
273 .call-tree-item:focus label {
274 color: var(--theme-selection-color) !important;
277 .call-tree-item:focus .call-tree-cell {
278 -moz-border-end-color: var(--focus-cell-border-color);
281 .call-tree-item:not([origin="content"]) .call-tree-name,
282 .call-tree-item:not([origin="content"]) .call-tree-url,
283 .call-tree-item:not([origin="content"]) .call-tree-line {
284 /* Style chrome and non-JS nodes differently. */
289 -moz-margin-start: 4px !important;
293 .call-tree-url:hover {
294 text-decoration: underline;
298 color: var(--theme-highlight-blue);
302 color: var(--theme-content-color2);
306 -moz-margin-start: 8px !important;
311 color: var(--theme-highlight-pink);
314 .call-tree-url[value=""],
315 .call-tree-line[value=""],
316 .call-tree-host[value=""] {
321 -moz-appearance: none;
322 background-color: transparent;
323 background-position: center;
324 background-repeat: no-repeat;
325 background-size: 11px;
327 -moz-margin-start: 8px !important;
333 background-image: url("magnifying-glass.png");
336 @media (min-resolution: 2dppx) {
338 background-image: url("magnifying-glass@2x.png");
342 .call-tree-item:hover .call-tree-zoom {
343 transition: opacity 0.3s ease-in;
347 .call-tree-item:hover .call-tree-zoom:hover {
351 .call-tree-category {
352 transform: scale(0.75);
353 transform-origin: center right;