fifth and last part of syncing LCARStrek with Firefox 45-48 windows theme changes
[themes.git] / LCARStrek / devtools / memory.css
CommitLineData
e9fbfc3a
RK
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 file,
3 * You can obtain one at http://mozilla.org/MPL/2.0/. */
4
5/* CSS Variables specific to this panel that aren't defined by the themes */
6.theme-dark,
7.theme-light {
8 --cell-border-color: #9C9CFF;
9 --cell-border-color-light: #A09090;
10 --focus-cell-border-color: #9C9CFF;
11 --row-alt-background-color: #402000;
12 --row-hover-background-color: #603000;
13}
14
15html, body, #app, #memory-tool {
16 height: 100%;
17}
18
19#memory-tool {
20 /**
21 * Flex: contains two children: .devtools-toolbar and #memory-tool-container,
22 * which need to be laid out vertically. The toolbar has a fixed height and
23 * the container needs to flex to fill out all remaining vertical space.
24 */
25 display: flex;
26 flex-direction: column;
27 --sidebar-width: 185px;
28 /**
29 * If --heap-tree-row-height changes, be sure to change HEAP_TREE_ROW_HEIGHT
30 * in `devtools/client/memory/components/heap.js`.
31 */
32 --heap-tree-row-height: 14px;
33 --heap-tree-header-height: 17px;
34}
35
36/**
37 * Toolbar
38 */
39
40.devtools-toolbar {
41 /**
42 * Flex: contains several children, which need to be laid out horizontally,
43 * and aligned vertically in the middle of the container.
44 */
45 display: flex;
46 align-items: center;
47}
48
49.devtools-toolbar > .toolbar-group:nth-of-type(1) {
50 /**
51 * We want this to be exactly at a `--sidebar-width` distance from the
52 * toolbar's start boundary. A `.devtools-toolbar` has a 3px start padding.
53 */
54 flex: 0 0 calc(var(--sidebar-width) - 4px);
55 border-inline-end: 1px solid var(--theme-splitter-color);
56 margin-inline-end: 5px;
57 padding-right: 1px;
58}
59
60.devtools-toolbar > .toolbar-group {
61 /**
62 * Flex: contains several children, which need to be laid out horizontally,
63 * and aligned vertically in the middle of the container.
64 */
65 display: flex;
66 align-items: center;
67 flex: 1;
68 white-space: nowrap;
69 overflow: hidden;
70 text-overflow: ellipsis;
71}
72
73.devtools-toolbar > .toolbar-group > label {
74 /**
75 * Flex: contains form controls and text, which need to be laid out
76 * horizontally, vertically aligned in the middle of the container.
77 */
78 display: flex;
79 align-items: center;
80 margin-inline-end: 5px;
81}
82
83.devtools-toolbar > .toolbar-group > label.display-by > span {
84 margin-inline-end: 5px;
85}
86
87.devtools-toolbar > .toolbar-group > label.label-by > span {
88 margin-inline-end: 5px;
89}
90
91.devtools-toolbar > label {
92 margin-inline-end: 5px;
93}
94
95#select-view {
96 margin-inline-start: 5px;
97}
98
99#take-snapshot::before {
100 background-image: url(images/command-screenshot.svg);
101}
102
103#clear-snapshots::before {
104 background-image: url(chrome://devtools/skin/images/clear.svg);
105}
106
107#diff-snapshots::before {
108 background-image: url(chrome://devtools/skin/images/diff.svg);
109}
110
111/**
112 * Due to toolbar styles of `.devtools-toolbarbutton:not([label])` which overrides
113 * .devtools-toolbarbutton's min-width of 78px, reset the min-width.
114 */
115#import-snapshot,
116#clear-snapshots {
117 -moz-box-align: center;
118 flex-grow: 1;
119 padding: 1px;
120 margin: 2px 1px;
121 min-width: unset;
122}
123
124.spacer {
125 flex: 1;
126}
127
128#filter {
129 align-self: stretch;
130 margin: 2px;
131}
132
133/**
134 * Container (sidebar + main panel)
135 */
136
137#memory-tool-container {
138 /**
139 * Flex: contains two children: .list (sidebar) and #heap-view (main panel),
140 * which need to be laid out horizontally. The sidebar has a fixed width and
141 * the main panel needs to flex to fill out all remaining horizontal space.
142 */
143 display: flex;
144 /**
145 * Flexing to fill out remaining vertical space. The preceeding sibling is
146 * the toolbar. @see #memory-tool.
147 */
148 flex: 1;
149 overflow: hidden;
150}
151
152/**
153 * Sidebar
154 */
155
156.list {
157 width: var(--sidebar-width);
158 min-width: var(--sidebar-width);
159 overflow-y: auto;
160 margin: 0;
161 padding: 0;
162 background-color: var(--theme-sidebar-background);
163 border-inline-end: 1px solid var(--theme-splitter-color);
164}
165
166.snapshot-list-item {
167 /**
168 * Flex: contains several children, which need to be laid out vertically.
169 */
170 display: flex;
171 flex-direction: column;
172 color: var(--theme-body-color);
173 border-bottom: 1px solid #A09090;
174 padding: 8px;
175 cursor: default;
176}
177
178.snapshot-list-item.selected {
179 background-color: var(--theme-selection-background);
180 color: var(--theme-selection-color);
181}
182
183.snapshot-list-item.selected ::-moz-selection {
184 background-color: var(--theme-selection-color);
185 color: var(--theme-selection-background);
186}
187
188.snapshot-list-item .snapshot-info {
189 display: flex;
190 justify-content: space-between;
191 font-size: 90%;
192}
193
194.snapshot-list-item .save {
195 text-decoration: underline;
196 cursor: pointer;
197}
198
199.snapshot-list-item > .snapshot-title {
200 margin-bottom: 14px;
201}
202
203.snapshot-list-item > .snapshot-title > input[type=checkbox] {
204 margin: 0;
205 margin-inline-end: 5px;
206}
207
208.snapshot-list-item > .snapshot-state,
209.snapshot-list-item > .snapshot-totals {
210 font-size: 90%;
211 color: var(--theme-body-color-alt);
212}
213
214.snapshot-list-item.selected > .snapshot-state,
215.snapshot-list-item.selected > .snapshot-totals {
216 /* Text inside a selected item should not be custom colored. */
217 color: inherit !important;
218}
219
220/**
221 * Main panel
222 */
223
224.vbox {
225 display: flex;
226 flex-direction: column;
227 width: 100%;
228 height: 100%;
229 overflow: auto;
230 padding: 0;
231 margin: 0;
232}
233
234.vbox > * {
235 flex: 1;
236
237 /**
238 * By default, flex items have min-width: auto;
239 * (https://drafts.csswg.org/css-flexbox/#min-size-auto)
240 */
241 min-width: 0;
242}
243
244#heap-view {
245 /**
246 * Flex: contains a .heap-view-panel which needs to fill out all the
247 * available space, horizontally and vertically.
248 */;
249 display: flex;
250 /**
251 * Flexing to fill out remaining horizontal space. The preceeding sibling
252 * is the sidebar. @see #memory-tool-container.
253 */
254 flex: 1;
255 background-color: var(--theme-body-background);
256
257 /**
258 * By default, flex items have min-width: auto;
259 * (https://drafts.csswg.org/css-flexbox/#min-size-auto)
260 */
261 min-width: 0;
262 font-size: 90%;
263}
264
265#heap-view > .heap-view-panel {
266 /**
267 * Flex: can contain several children, including a tree with a header and
268 * multiple rows, all of which need to be laid out vertically. When the
269 * tree is visible, the header has a fixed height and tree body needs to flex
270 * to fill out all remaining vertical space.
271 */
272 display: flex;
273 flex-direction: column;
274 /**
275 * Flexing to fill out remaining horizontal space. @see #heap-view.
276 */
277 flex: 1;
278
279 /**
280 * By default, flex items have min-width: auto;
281 * (https://drafts.csswg.org/css-flexbox/#min-size-auto)
282 */
283 min-width: 0;
284}
285
286#heap-view > .heap-view-panel > .snapshot-status,
287#heap-view > .heap-view-panel > .take-snapshot,
288#heap-view .empty,
289#shortest-paths-select-node-msg {
290 margin: auto;
291 margin-top: 65px;
292 font-size: 120%;
293}
294
295#heap-view > .heap-view-panel > .take-snapshot {
296 padding: 5px;
297}
298
299#heap-view > .heap-view-panel[data-state="snapshot-state-error"] pre {
300 background-color: var(--theme-body-background);
301 margin: 20px;
302 padding: 20px;
303}
304
305/**
306 * Heap tree view header
307 */
308
309.header {
310 /**
311 * Flex: contains several span columns, all of which need to be laid out
312 * horizontally. All columns except the last one have percentage widths, and
313 * the last one needs to flex to fill out all remaining horizontal space.
314 */
315 display: flex;
316 color: var(--theme-body-color);
317 background-color: var(--theme-tab-toolbar-background);
318 border-bottom: 1px solid var(--cell-border-color);
319 flex: 0;
320}
321
322.header > span,
323#shortest-paths-header {
324 text-overflow: ellipsis;
325 line-height: var(--heap-tree-header-height);
326 justify-content: center;
327 justify-self: center;
328 white-space: nowrap;
329}
330
331.header > span {
332 overflow: hidden;
333}
334
335.header > .heap-tree-item-name {
336 justify-content: flex-start;
337}
338
339#shortest-paths {
340 background-color: var(--theme-body-background);
341 overflow: hidden;
342 height: 100%;
343 width: 100%;
344}
345
346#shortest-paths-select-node-msg {
347 justify-self: center;
348}
349
350/**
351 * Heap tree view body
352 */
353
354.tree {
355 /**
356 * Flexing to fill out remaining vertical space. @see .heap-view-panel
357 */
358 flex: 1;
359 overflow-y: auto;
360 background-color: var(--theme-body-background);
361}
362
363.tree-node {
364 height: var(--heap-tree-row-height);
365 line-height: var(--heap-tree-row-height);
366 cursor: default;
367}
368
369.children-pointer {
370 padding-inline-end: 5px;
371}
372
373/**
374 * Heap tree view columns
375 */
376
377.heap-tree-item {
378 /**
379 * Flex: contains several span columns, all of which need to be laid out
380 * horizontally. All columns except the last one have percentage widths, and
381 * the last one needs to flex to fill out all remaining horizontal space.
382 */
383 display: flex;
384}
385
386.tree-node-odd {
387 background-color: var(--row-alt-background-color);
388}
389
390.tree-node:hover {
391 background-color: var(--row-hover-background-color);
392}
393
394.heap-tree-item.focused {
395 background-color: var(--theme-selection-background);
396 color: var(--theme-selection-color);
397}
398
399.heap-tree-item.focused ::-moz-selection {
400 background-color: var(--theme-selection-color);
401 color: var(--theme-selection-background);
402}
403
404.heap-tree-item-bytes,
405.heap-tree-item-count,
406.heap-tree-item-total-bytes,
407.heap-tree-item-total-count {
408 /**
409 * Flex: contains several subcolumns, which need to be laid out horizontally.
410 * These subcolumns may have specific widths or need to flex.
411 */
412 display: flex;
413 text-align: end;
414 border-inline-end: var(--cell-border-color) 1px solid;
415}
416
417.heap-tree-item-count,
418.heap-tree-item-total-count,
419.heap-tree-item-bytes,
420.heap-tree-item-total-bytes {
421 width: 10%;
422 /*
423 * Provision for up to 19 characters:
424 *
425 * GG_MMM_KKK_BBB_100%
426 * | ||| |
427 * '------------'|'--'
428 * 14 ch for 10s | 4 ch for the largest % we will
429 * of GB and | normally see: "100%"
430 * spaces every |
431 * 3 digits |
432 * |
433 * A space between the number and percent
434 */
435 min-width: 19ch;
436}
437
438.heap-tree-item-name {
439 /**
440 * Flex: contains an .arrow and some text, which need to be laid out
441 * horizontally, vertically aligned in the middle of the container.
442 */
443 display: flex;
444 align-items: center;
445 /**
446 * Flexing to fill out remaining vertical space.
447 * @see .header and .heap-tree-item */
448 flex: 1;
449 padding-inline-start: 5px;
450}
451
452/**
453 * Heap tree view subcolumns
454 */
455
456.heap-tree-number,
457.heap-tree-percent,
458.heap-tree-item-name {
459 white-space: nowrap;
460}
461
462.heap-tree-number {
463 padding-inline-start: 3px;
464}
465
466.heap-tree-percent {
467 padding-inline-start: 3px;
468 padding-inline-end: 3px;
469}
470
471.heap-tree-number,
472.heap-tree-percent {
473 font-family: var(--monospace-font-family);
474}
475
476.heap-tree-number {
477 flex: 1;
478 color: var(--theme-content-color3);
479}
480
481.heap-tree-percent {
482 width: 4ch;
483}
484
485.heap-tree-item.focused .heap-tree-number,
486.heap-tree-item.focused .heap-tree-percent {
487 color: inherit;
488}
489
490/**
491 * Heap tree errors.
492 */
493
494.error::before {
495 content: "";
496 display: inline-block;
497 width: 12px;
498 height: 12px;
499 max-height: 12px;
500 background-image: url(chrome://devtools/skin/images/webconsole.svg);
501 background-size: 72px 60px;
502 background-position: -24px -24px;
503 background-repeat: no-repeat;
504 margin: 0px;
505 margin-top: 2px;
506 margin-inline-end: 5px;
507}
508
509.theme-light .error::before {
510 background-image: url(chrome://devtools/skin/images/webconsole.svg#light-icons);
511}
512
513/**
514 * Frame View components
515 */
516
517.separator,
518.not-available,
519.heap-tree-item-address {
520 opacity: .5;
521 margin-left: .5em;
522 margin-right: .5em;
523}
524
525.no-allocation-stacks {
526 border-color: var(--theme-splitter-color);
527 border-style: solid;
528 border-width: 0px 0px 1px 0px;
529 text-align: center;
530 padding: 5px;
531}
532
533/**
534 * Dagre-D3 graphs
535 */
536
537.edgePath path {
538 stroke-width: 1px;
539 fill: none;
540}
541
542.theme-dark .edgePath path {
543 stroke: var(--theme-body-color-alt);
544}
545.theme-light .edgePath path {
546 stroke: var(--theme-splitter-color);
547}
548
549g.edgeLabel rect {
550 fill: var(--theme-body-background);
551}
552g.edgeLabel tspan {
553 fill: var(--theme-body-color-alt);
554}
555
556.nodes rect {
557 stroke-width: 1px;
558}
559
560.nodes rect {
561 stroke: var(--theme-tab-toolbar-background);
562}
563.theme-light rect {
564 fill: var(--theme-tab-toolbar-background);
565}
566.theme-dark rect {
567 fill: var(--theme-toolbar-background);
568}
569
570text {
571 font-weight: 300;
572 font-family: "Liberation Sans",Arial,Tahoma,Helvetica,sans-serif;
573 font-size: 14px;
574}
575
576text {
577 fill: var(--theme-body-color-alt);
578}