desktop/src/@batch-flask/ui/table/table.scss (201 lines of code) (raw):

@import "app/styles/variables"; bl-table { $padding-first-and-last: 10px; $table-heading-height: 34px; $table-row-height: 28px; display: flex; flex-direction: column; position: relative; width: 100%; height: 100%; outline: none; -webkit-user-drag: none; bl-thead { display: flex; align-items: center; } > .table-head { color: $secondary-text; height: $table-heading-height; > bl-thead { height: $table-heading-height; } &.no-scroll { border-bottom: 1px solid $border-color; } } > .table-body { position: relative; flex: 1 1 auto; min-height: 0; display: flex; height: 100%; &:focus { outline: none; } > bl-virtual-scroll { flex: 1; min-height: 0; height: 100%; } } .checkbox-cell { width: 30px; height: $table-row-height; padding: 4px 5px; > .checkbox { border: 1px solid $border-color; width: 20px; height: 20px; padding: 1px; display: inline-block; position: relative; margin-right: 5px; cursor: pointer; > .fa-check { display: block; color: $secondary-text; font-size: 16px; } } &:hover { > .checkbox { border-color: $primary-color; } } } &.activable { bl-row-render { cursor: pointer; } } bl-row-render { display: flex; align-items: stretch; color: $primary-text; height: $table-row-height; &:not(:last-child) { border-bottom: 1px solid $border-color; } &.selected { background-color: $primary-color; color: $card-background; .checkbox { border-color: $secondary-text; } } &.focused { outline: 1px dashed $primary-color; outline-offset: -2px; } &.focused.selected { outline: 1px dashed $primary-contrast-color; outline-offset: -2px; } &.drop-target { background: $hover-bg-color; } &:hover:not(.selected) { background-color: $hover-bg-color; } &:last-child { border-bottom: 1px $border-color solid; } } .bl-table-cell, bl-table-head-cell { position: relative; vertical-align: middle; padding: 0 5px; overflow: hidden; text-overflow: ellipsis; flex: 1; word-wrap: break-word; &.focused { outline: 2px dashed $primary-color; outline-offset: -2px; } &.fixed-size { flex-grow: 0; } &:first-child { padding: 0 5px 0 $padding-first-and-last; } &:last-child { padding: 0 $padding-first-and-last 0 5px; } // If only one cell &:only-child { padding: 0 $padding-first-and-last; } &[numericField] { text-align: right; } } bl-table-head-cell { font-size: 0.9em; font-weight: bold; white-space: nowrap; user-select: none; > * { display: inline; } outline: none; &.sortable { cursor: pointer; .sort-icon { margin-left: 3px; } } &.sorting { color: $primary-color; > .sort-icon { color: $primary-color; } } } .bl-table-cell { font-size: 13px; position: relative; white-space: nowrap; line-height: $table-row-height; .cell-value { width: 98%; overflow: hidden; text-overflow: ellipsis; } } bl-thead { position: relative; .column-separator { opacity: 0; display: block; cursor: e-resize; background: $border-color; flex: 0 0 1px; height: 100%; position: relative; > .column-separator-hitbox { position: absolute; width: 5px; left: -2px; height: 100%; z-index: 100; &:hover { } } &.resizing { > .column-separator-hitbox { background: $border-color; } } } &:hover, &.resizing { .column-separator { opacity: 1; } } } } .cell-spinner { color: $primary-color; }