xref: /aosp_15_r20/external/perfetto/ui/src/assets/widgets/tree.scss (revision 6dbdd20afdafa5e3ca9b8809fa73465d530080dc)
1*6dbdd20aSAndroid Build Coastguard Worker@import "theme";
2*6dbdd20aSAndroid Build Coastguard Worker
3*6dbdd20aSAndroid Build Coastguard Worker$chevron-svg: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' height='8' width='8'%3E%3Cline x1='2' y1='0' x2='6' y2='4' stroke='black'/%3E%3Cline x1='6' y1='4' x2='2' y2='8' stroke='black'/%3E%3C/svg%3E");
4*6dbdd20aSAndroid Build Coastguard Worker
5*6dbdd20aSAndroid Build Coastguard Worker.pf-tree {
6*6dbdd20aSAndroid Build Coastguard Worker  font-family: $pf-font;
7*6dbdd20aSAndroid Build Coastguard Worker  display: grid;
8*6dbdd20aSAndroid Build Coastguard Worker  grid-template-columns: [left]auto [right]1fr;
9*6dbdd20aSAndroid Build Coastguard Worker  row-gap: 5px;
10*6dbdd20aSAndroid Build Coastguard Worker
11*6dbdd20aSAndroid Build Coastguard Worker  .pf-tree-node {
12*6dbdd20aSAndroid Build Coastguard Worker    display: contents;
13*6dbdd20aSAndroid Build Coastguard Worker
14*6dbdd20aSAndroid Build Coastguard Worker    &:hover {
15*6dbdd20aSAndroid Build Coastguard Worker      background: $table-hover-color;
16*6dbdd20aSAndroid Build Coastguard Worker    }
17*6dbdd20aSAndroid Build Coastguard Worker
18*6dbdd20aSAndroid Build Coastguard Worker    .pf-tree-left {
19*6dbdd20aSAndroid Build Coastguard Worker      grid-column: left;
20*6dbdd20aSAndroid Build Coastguard Worker      background: inherit;
21*6dbdd20aSAndroid Build Coastguard Worker      min-width: max-content;
22*6dbdd20aSAndroid Build Coastguard Worker      border-radius: $pf-border-radius 0 0 $pf-border-radius;
23*6dbdd20aSAndroid Build Coastguard Worker      font-weight: bolder;
24*6dbdd20aSAndroid Build Coastguard Worker    }
25*6dbdd20aSAndroid Build Coastguard Worker
26*6dbdd20aSAndroid Build Coastguard Worker    .pf-tree-right {
27*6dbdd20aSAndroid Build Coastguard Worker      grid-column: right;
28*6dbdd20aSAndroid Build Coastguard Worker      background: inherit;
29*6dbdd20aSAndroid Build Coastguard Worker      padding: 0 0 0 15px;
30*6dbdd20aSAndroid Build Coastguard Worker      border-radius: 0 $pf-border-radius $pf-border-radius 0;
31*6dbdd20aSAndroid Build Coastguard Worker      overflow-wrap: break-word; // Break words if overflowing
32*6dbdd20aSAndroid Build Coastguard Worker      white-space: pre-wrap;
33*6dbdd20aSAndroid Build Coastguard Worker      min-width: 0; // Allow column to shrink past content if container is thin
34*6dbdd20aSAndroid Build Coastguard Worker    }
35*6dbdd20aSAndroid Build Coastguard Worker
36*6dbdd20aSAndroid Build Coastguard Worker    .pf-tree-gutter {
37*6dbdd20aSAndroid Build Coastguard Worker      display: inline-flex;
38*6dbdd20aSAndroid Build Coastguard Worker      position: relative;
39*6dbdd20aSAndroid Build Coastguard Worker      width: 16px;
40*6dbdd20aSAndroid Build Coastguard Worker      justify-content: center;
41*6dbdd20aSAndroid Build Coastguard Worker      align-items: center;
42*6dbdd20aSAndroid Build Coastguard Worker    }
43*6dbdd20aSAndroid Build Coastguard Worker
44*6dbdd20aSAndroid Build Coastguard Worker    &.pf-collapsed > .pf-tree-left > .pf-tree-gutter {
45*6dbdd20aSAndroid Build Coastguard Worker      cursor: pointer;
46*6dbdd20aSAndroid Build Coastguard Worker
47*6dbdd20aSAndroid Build Coastguard Worker      &::after {
48*6dbdd20aSAndroid Build Coastguard Worker        content: $chevron-svg;
49*6dbdd20aSAndroid Build Coastguard Worker      }
50*6dbdd20aSAndroid Build Coastguard Worker    }
51*6dbdd20aSAndroid Build Coastguard Worker    &.pf-expanded > .pf-tree-left > .pf-tree-gutter {
52*6dbdd20aSAndroid Build Coastguard Worker      cursor: pointer;
53*6dbdd20aSAndroid Build Coastguard Worker      &::after {
54*6dbdd20aSAndroid Build Coastguard Worker        content: $chevron-svg;
55*6dbdd20aSAndroid Build Coastguard Worker        rotate: 90deg;
56*6dbdd20aSAndroid Build Coastguard Worker      }
57*6dbdd20aSAndroid Build Coastguard Worker    }
58*6dbdd20aSAndroid Build Coastguard Worker
59*6dbdd20aSAndroid Build Coastguard Worker    &.pf-loading > .pf-tree-left > .pf-tree-gutter {
60*6dbdd20aSAndroid Build Coastguard Worker      &::after {
61*6dbdd20aSAndroid Build Coastguard Worker        content: "";
62*6dbdd20aSAndroid Build Coastguard Worker        border: solid 1px lightgray;
63*6dbdd20aSAndroid Build Coastguard Worker        border-top: solid 1px $pf-primary-background;
64*6dbdd20aSAndroid Build Coastguard Worker        animation: pf-spinner-rotation 1s infinite linear;
65*6dbdd20aSAndroid Build Coastguard Worker        width: 8px;
66*6dbdd20aSAndroid Build Coastguard Worker        height: 8px;
67*6dbdd20aSAndroid Build Coastguard Worker        border-radius: 50%;
68*6dbdd20aSAndroid Build Coastguard Worker      }
69*6dbdd20aSAndroid Build Coastguard Worker    }
70*6dbdd20aSAndroid Build Coastguard Worker    .pf-tree-indent-gutter {
71*6dbdd20aSAndroid Build Coastguard Worker      display: block;
72*6dbdd20aSAndroid Build Coastguard Worker      position: relative;
73*6dbdd20aSAndroid Build Coastguard Worker    }
74*6dbdd20aSAndroid Build Coastguard Worker
75*6dbdd20aSAndroid Build Coastguard Worker    &.pf-collapsed + .pf-tree-children {
76*6dbdd20aSAndroid Build Coastguard Worker      display: none;
77*6dbdd20aSAndroid Build Coastguard Worker    }
78*6dbdd20aSAndroid Build Coastguard Worker  }
79*6dbdd20aSAndroid Build Coastguard Worker
80*6dbdd20aSAndroid Build Coastguard Worker  .pf-tree-children {
81*6dbdd20aSAndroid Build Coastguard Worker    display: grid;
82*6dbdd20aSAndroid Build Coastguard Worker    grid-column: 1 / span 2;
83*6dbdd20aSAndroid Build Coastguard Worker    grid-template-columns: subgrid;
84*6dbdd20aSAndroid Build Coastguard Worker    row-gap: 5px;
85*6dbdd20aSAndroid Build Coastguard Worker    border-left: solid rgba(0, 0, 0, 0.2) 1px;
86*6dbdd20aSAndroid Build Coastguard Worker    margin-left: 6px;
87*6dbdd20aSAndroid Build Coastguard Worker    padding-left: 6px;
88*6dbdd20aSAndroid Build Coastguard Worker  }
89*6dbdd20aSAndroid Build Coastguard Worker}
90