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/. */
6 --flex-basis-outline-border-color: var
(--blue-40
);
7 --flex-basis-outline-background-color: rgba
(69, 161, 255, 0.25);
8 --flex-growing-delta-outline-background-color: rgba
(221, 0, 169, 0.13);
9 --flex-shrinking-delta-outline-background-color: #E9E3FF;
10 --flex-min-max-properties-color: var
(--purple-60
);
14 --flex-basis-outline-border-color: rgba
(10, 132, 255, 0.85);
15 --flex-basis-outline-background-color: rgba
(10, 132, 255, 0.3);
16 --flex-growing-delta-outline-background-color: rgba
(255, 26, 217, 0.25);
17 --flex-shrinking-delta-outline-background-color: #322952;
18 --flex-min-max-properties-color: var
(--theme-highlight-purple
);
29 .layout-container .accordion ._content {
33 #layout-container .accordion
._header
{
35 text-overflow: ellipsis
;
40 * Common styles for the layout container
52 .layout-content input {
53 margin-inline-end: 7px;
54 vertical-align: middle
;
57 .layout-content label {
58 margin-inline-start: -3px;
61 .layout-content button.open-inspector {
62 vertical-align: middle
;
65 .layout-color-swatch {
68 margin-inline-start: -1px;
69 border: 1px solid var
(--theme-highlight-gray
);
72 display: inline-block
;
73 vertical-align: middle
;
81 /* Layout Properties: Common styles used for the Box Model and Flexbox Properties */
83 .layout-properties-header {
89 .layout-properties-expander {
90 vertical-align: middle
;
91 display: inline-block
;
92 margin-inline: 2px 1px;
95 .layout-properties-wrapper {
98 column-rule: 1px solid var
(--theme-splitter-color
);
101 .layout-properties-wrapper .computed-property-view {
102 padding-inline-start: 20px;
105 .layout-properties-wrapper .computed-property-name-container {
109 .layout-properties-wrapper .computed-property-value-container {
118 #layout-flexbox-container {
120 flex-direction: column
;
131 border-block-end: 1px solid var
(--theme-splitter-color
);
134 .flex-header-button-prev {
138 .flex-header-button-prev::before {
139 background-image: url
("chrome://devtools/skin/images/arrowhead-left.svg");
140 background-size: 16px;
143 html
[dir
="rtl"] .flex-header-button-prev::before
{
144 background-image: url
("chrome://devtools/skin/images/arrowhead-right.svg");
147 .flex-header-content {
151 padding-inline-start: 20px;
155 .flex-header-content:not(.flex-item-shown) {
156 flex-direction: column
;
160 .flex-header-content:not(.flex-item-shown) .objectBox {
161 max-width: calc
(100% - 20px);
162 margin-inline-end: 5px;
163 text-overflow: ellipsis
;
168 .flex-header-content.flex-item-shown {
169 justify-content: center
;
171 text-overflow: ellipsis
;
176 .flex-header-container-properties {
180 .flex-header-container-properties .inspector-badge:first-child {
181 margin-inline-start: 0;
184 .flex-header-container-label
,
185 .flex-header-container-properties {
201 .flex-item-list .flex-item-list-header {
202 color: var
(--theme-comment
);
203 padding-inline-start: 23px;
208 .flex-item-list .devtools-button {
209 background-color: transparent
;
211 text-overflow: ellipsis
;
217 padding-inline: 28px 16px;
219 outline-offset: -2px;
222 .flex-item-list .devtools-button::after {
224 background-image: url
(chrome://devtools
/skin
/images
/arrowhead-right
.svg
);
225 background-size: 16px;
226 background-repeat: no-repeat
;
227 background-position: center
-1px;
228 fill: var
(--theme-comment
);
229 -moz-context-properties: fill
;
236 html
[dir
="rtl"] .flex-item-list
.devtools-button::after
{
237 background-image: url
(chrome://devtools
/skin
/images
/arrowhead-left
.svg
);
242 .flex-item-list .flex-item-index {
248 .flex-item-list .objectBox-node {
249 padding-inline-start: 8px;
250 vertical-align: middle
;
257 #flex-item-selector {
263 * Flex Item Sizing Outline
266 .flex-outline-container {
268 justify-content: center
;
269 /* The flex outline is always drawn in ltr. Whether the UI of DevTools is in RTL or some
270 other writing mode doesn't have an impact on whether the outline should face left,
271 right, top or bottom. This should only be dictated by which direction does the flex
272 item currently face in the page. */
279 grid-auto-rows: 35px;
285 /* To make sure very small distances on the outline still have enough room to be
286 represented and to avoid overlapping labels, we make sure each grid item is at least
287 10px wide. This might sometimes render the outline in a different way than the item
288 but the information shown will still be correct, and will be more easily visible */
292 .flex-outline.vertical-tb {
293 transform: translate
(50%, -2em) rotate
(.25turn);
296 .flex-outline.vertical-bt {
297 transform:translate
(50%, 12em) rotate
(0.75turn);
300 .flex-outline
.vertical-tb
,
301 .flex-outline.vertical-bt {
302 transform-origin: center left
;
304 margin-bottom: 120px;
309 .flex-outline-delta {
313 .flex-outline-final {
314 border: 2px solid currentColor
;
316 grid-column: final-start
/ final-end
;
319 .flex-outline-final.clamped::after {
321 background-image: url
(chrome://devtools
/skin
/images
/lock
.svg
);
322 background-size: 16px;
323 background-repeat: no-repeat
;
324 background-position: center
1px;
325 fill: var
(--flex-min-max-properties-color
);
326 -moz-context-properties: fill
;
332 /* Making sure the icon is visible against any background by creating a plain background
333 around its shape, using a drop-shadow filter. */
335 drop-shadow
(1px 0px 0px var
(--theme-body-background
))
336 drop-shadow
(0px 1px 0px var
(--theme-body-background
))
337 drop-shadow
(-1px 0px 0px var
(--theme-body-background
))
338 drop-shadow
(0px -1px 0px var
(--theme-body-background
));
341 .flex-outline.vertical-tb .flex-outline-final.clamped::after {
342 transform: rotate
(-.25turn);
345 .flex-outline.vertical-bt .flex-outline-final.clamped::after {
346 transform: rotate
(-.75turn);
349 .flex-outline-basis {
351 border: 3px dotted var
(--flex-basis-outline-border-color
);
353 grid-column: basis-start
/ basis-end
;
356 /* Fills the basis outline with a blue background color that is contained inside the
357 dotted border. This gives the impression the dotted border alternates between
359 .flex-outline-basis::before {
366 background-color: var
(--flex-basis-outline-background-color
);
369 .flex-outline-basis.zero-basis {
370 border-width: 0 0 0 3px;
373 .flex-outline-delta {
374 grid-column: delta-start
/ delta-end
;
378 .flex-outline.growing .flex-outline-delta {
379 background-color: var
(--flex-growing-delta-outline-background-color
);
383 .flex-outline.shrinking .flex-outline-delta {
384 background-color: var
(--flex-shrinking-delta-outline-background-color
);
385 margin: 5px 5px 5px 0;
388 .flex-outline-delta::before {
393 top: calc
(50% - .5px);
395 background: var
(--theme-highlight-red
);
398 .flex-outline-delta::after {
404 border: 1px solid var
(--theme-highlight-red
);
407 .flex-outline.growing .flex-outline-delta:after {
409 border-width: 1px 1px 0 0;
410 transform-origin: top right
;
411 transform: rotate
(.125turn);
414 .flex-outline.shrinking .flex-outline-delta:after {
416 border-width: 1px 0 0 1px;
417 transform-origin: top left
;
418 transform: rotate
(-.125turn);
421 .flex-outline-point {
428 .flex-outline.horizontal-rl .flex-outline-point {
432 .flex-outline.vertical-bt .flex-outline-point {
433 transform: rotate
(180deg);
434 justify-content: end
;
437 .flex-outline-point
.basis
,
438 .flex-outline-point
.basisfinal
,
439 .flex-outline
.horizontal-rl
.flex-outline-point
.basis
,
440 .flex-outline.horizontal-rl .flex-outline-point.basisfinal {
441 grid-column-end: basis-end
;
443 color: var
(--theme-highlight-blue
);
446 .flex-outline.shrinking .flex-outline-point.basis {
447 grid-column-start: basis-end
;
451 .flex-outline.horizontal-rl.shrinking .flex-outline-point.basis {
452 grid-column-start: basis-start
;
456 .flex-outline-point.final {
457 grid-column-start: final-end
;
461 .flex-outline.shrinking .flex-outline-point.final {
462 grid-column-end: final-end
;
463 grid-column-start: unset
;
467 .flex-outline-point
.min
,
468 .flex-outline-point.max {
469 color: var
(--flex-min-max-properties-color
);
472 .flex-outline-point.min {
478 .flex-outline.shrinking .flex-outline-point.min {
479 place-self: end start
;
483 .flex-outline-point.max {
489 .flex-outline-point::before {
490 content: attr
(data-label
);
495 border-color: currentColor
;
501 .flex-outline
.vertical-tb
.flex-outline-point::before
,
502 .flex-outline.vertical-bt .flex-outline-point::before {
504 writing-mode: sideways-lr
;
507 .flex-outline-point
.basis::before
,
508 .flex-outline-point
.final::before
,
509 .flex-outline-point.basisfinal::before {
513 .flex-outline-point
.min::before
,
514 .flex-outline-point.max::before {
518 .flex-outline
.horizontal-rl
.flex-outline-point
.min::before
,
519 .flex-outline
.horizontal-rl
.flex-outline-point
.max::before
,
520 .flex-outline
.vertical-bt
.flex-outline-point
.min::before
,
521 .flex-outline.vertical-bt .flex-outline-point.max::before {
525 .flex-outline
.vertical-tb
.flex-outline-point
.max::before
,
526 .flex-outline
.vertical-tb
.flex-outline-point
.min::before
,
527 .flex-outline
.vertical-bt
.flex-outline-point
.max::before
,
528 .flex-outline.vertical-bt .flex-outline-point.min::before {
532 .flex-outline-point
.final::before
,
533 .flex-outline-point
.min::before
,
534 .flex-outline-point
.max::before
,
535 .flex-outline
.shrinking
.flex-outline-point
.basis::before
,
536 .flex-outline
.horizontal-rl
.flex-outline-point
.basis::before
,
537 .flex-outline
.horizontal-rl
.flex-outline-point
.basisfinal::before
,
538 .flex-outline
.horizontal-rl
.shrinking
.flex-outline-point
.final::before
,
539 .flex-outline
.vertical-bt
.flex-outline-point
.basis::before
,
540 .flex-outline
.vertical-bt
.flex-outline-point
.basisfinal::before
,
541 .flex-outline.vertical-bt.shrinking .flex-outline-point.final::before {
542 border-left-width: 1px;
543 border-right-width: 0;
546 .flex-outline-point
.basis::before
,
547 .flex-outline
.shrinking
.flex-outline-point
.final::before
,
548 .flex-outline-point
.basisfinal::before
,
549 .flex-outline
.horizontal-rl
.flex-outline-point
.final::before
,
550 .flex-outline
.horizontal-rl
.flex-outline-point
.min::before
,
551 .flex-outline
.horizontal-rl
.flex-outline-point
.max::before
,
552 .flex-outline
.vertical-bt
.shrinking
.flex-outline-point
.basis::before
,
553 .flex-outline
.vertical-bt
.flex-outline-point
.final::before
,
554 .flex-outline
.vertical-bt
.flex-outline-point
.min::before
,
555 .flex-outline.vertical-bt .flex-outline-point.max::before {
556 border-right-width: 1px;
557 border-left-width: 0;
560 .flex-outline
.horizontal-rl
,
561 .flex-outline
.horizontal-rl
.flex-outline-point
,
562 .flex-outline.horizontal-rl .flex-outline-final.clamped::after {
563 transform: rotate
(.5turn);
567 * Flex Item Sizing Properties
576 .flex-item-sizing .section {
578 padding: var
(--padding
);
579 border-block-start: 1px solid var
(--theme-splitter-color
);
581 grid-template-columns: 1fr max-content
;
582 grid-column-gap: var
(--padding
);
585 .flex-item-sizing .section:first-child {
589 .flex-item-sizing .name {
593 grid-template-columns: max-content max-content
;
597 .flex-item-sizing .flexibility .name {
598 color: var
(--theme-highlight-red
);
601 .flex-item-sizing .base .name {
602 color: var
(--theme-highlight-blue
);
605 .flex-item-sizing
.min
.name
,
606 .flex-item-sizing .max .name {
607 color: var
(--flex-min-max-properties-color
);
610 .flex-item-sizing .value {
616 .flex-item-sizing .value .unit {
617 color: var
(--theme-comment
);
621 .flex-item-sizing .css-property-link {
623 margin-inline-start: .5em;
626 .flex-item-sizing
.reasons
,
627 .flex-item-sizing .reasons li {
638 #layout-grid-container {
640 flex-direction: column
;
646 flex-direction: column
;
649 margin-inline-start: 16px;
652 .grid-container:first-child {
656 .grid-container > span {
659 pointer-events: none
;
662 .grid-container > ul {
668 padding-inline-start: 20px;
686 .grid-outline-container {
690 .grid-outline-container svg {
694 .grid-outline-border {
696 stroke: currentColor
;
698 vector-effect: non-scaling-stroke
;
703 stroke: currentColor
;
704 stroke-dasharray: 0.5, 2;
705 vector-effect: non-scaling-stroke
;
708 .grid-outline-cell:hover {
721 justify-content: center
;
722 color: var
(--theme-graphs-full-red
);
725 .grid-outline-text-icon {
726 background: url
("chrome://devtools/skin/images/sad-face.svg");
727 margin-inline-end: 5px;
736 .grid-settings-item label {