// HostGroup- and -ServiceGroupTable styles .item-table.table-layout { --columns: 1; } ul.item-table.table-layout { grid-template-columns: 1fr repeat(var(--columns), auto); > li { display: contents; &:hover, &.active { .col, &::before, &::after { // The li might get a background on hover. Though, this won't be visible // as it has no box model since we apply display:contents to it. background-color: inherit; } } } li:not(:last-of-type) { .col { border-bottom: 1px solid @gray-light; } .visual { border-bottom: 1px solid @default-bg; } } > .table-row { &:not(:last-of-type) .title .visual { margin-bottom: ~"calc(-.5em - 1px)"; } .col { padding: .5em 0; } .col:not(:last-child) { padding-right: 1em; } } } .content.full-width ul.item-table.table-layout { // Again, since the li has no box model, it cannot have padding. So the first // and last child need to get the left and right padding respectively. // But we don't want to have a border that spans to the very right or left, // so pseudo elements are required. We could add empty cells instead, but // that would require hard coding the width here, which I'd like to avoid. grid-template-columns: ~"auto 1fr repeat(calc(var(--columns) + 1), auto)"; > li.table-row { &::before, &::after { display: inline-block; content: '\00a0'; margin-bottom: 1px; } &::before { padding-left: inherit; } &::after { padding-right: inherit; } } }