fleet/frontend/components/TableContainer/DataTable/_styles.scss
2023-05-23 16:24:01 -05:00

320 lines
6.6 KiB
SCSS

$shadow-width: 40px;
$shadow-transition-width: 10px;
.data-table-block {
position: relative;
display: inline-block;
width: 100%;
.data-table {
&__wrapper {
position: relative;
border: 1px solid $ui-fleet-black-10;
border-radius: 6px;
margin-top: $pad-small;
flex-grow: 1;
width: 100%;
// Shadow
background-image:
/* Shadows */ linear-gradient(
to right,
white,
$transparent
),
linear-gradient(to left, white, $transparent),
/* Shadow covers */
linear-gradient(to right, $ui-shadow, white $shadow-transition-width),
linear-gradient(to left, $ui-shadow, white $shadow-transition-width);
background-position: left center, right center, left center, right center;
background-repeat: no-repeat;
background-color: white;
background-size: $shadow-width 100%, $shadow-width 100%, 50% 100%,
50% 100%;
/* Opera doesn't support this in the shorthand */
background-attachment: local, local, scroll, scroll;
// End shadow
}
&__table {
position: relative;
width: 100%;
border-collapse: collapse;
color: $core-fleet-black;
font-size: $x-small;
}
tbody {
.component__tooltip-wrapper {
margin: 10px 0; // vertical padding multiline text with tooltip
}
.component__tooltip-wrapper__element {
white-space: initial; // wraps long text with tooltip
}
tr,
.single-row {
transition: background-color 150ms ease-out;
&:hover {
background-color: $ui-off-white-opaque; // opaque needed for horizontal scroll shadow
}
}
.single-row {
&:hover {
cursor: pointer;
}
&:active {
background-color: $ui-vibrant-blue-10-opaque; // opaque needed for horizontal scroll shadow
}
}
}
tr {
border-bottom: 1px solid $ui-fleet-black-10;
&:last-child {
border-bottom: 0;
}
// override styles of checkbox data cells
.form-field--checkbox {
display: flex;
justify-content: center;
margin-bottom: 0;
.fleet-checkbox__label {
padding-left: 0;
}
}
}
thead {
background-color: $ui-off-white-opaque; // opaque needed for horizontal scroll shadow
color: $core-fleet-black;
text-align: left;
border-bottom: 1px solid $ui-fleet-black-10;
// resize header icons
img {
width: 16px;
height: 16px;
vertical-align: top;
}
// do not resize button icons inside headers
.button {
img {
width: initial;
height: initial;
vertical-align: initial;
}
}
th {
padding: $pad-medium $pad-large;
white-space: nowrap;
border-right: 1px solid $ui-fleet-black-10;
font-weight: $bold;
&:first-child {
border-top-left-radius: 6px;
}
&.selection__header {
width: 22px;
padding: $pad-medium;
}
&:last-child {
border-right: none;
border-top-right-radius: 6px;
}
.column-header {
span {
display: flex;
align-items: center;
gap: 3px;
}
}
}
&.active-selection {
background: none;
z-index: 1;
th {
border: 0;
}
.fleet-checkbox {
opacity: 0;
}
.active-selection__container {
background-color: $ui-off-white;
width: 100% !important; // Too much specificity currently at page-level styling. Revisit after data table CSS update to remove !important.
.active-selection__inner {
justify-content: flex-start;
}
}
}
}
.active-selection {
position: absolute;
top: 0px;
width: 100%;
border: 0;
border-radius: 6px;
&__checkbox {
padding: 16px;
width: 20px;
}
&__container {
padding: 0 24px;
}
&__inner {
display: flex;
justify-content: space-between;
align-items: center;
p {
margin: 0 $pad-medium 0 0;
font-weight: $regular;
span {
font-weight: $bold;
}
}
button {
margin-right: $pad-medium;
}
}
&__inner-left,
&__inner-right {
display: flex;
align-items: center;
}
}
tbody {
td {
height: 40px;
padding: 0 $pad-large;
&.selection__cell {
width: 0px;
padding: 0 $pad-medium;
}
.link-cell,
.text-cell {
display: block;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
margin: 0;
}
.w400 {
max-width: calc(400px - 48px);
min-width: 100%;
text-align: left;
}
.w250 {
max-width: calc(250px - 48px);
min-width: 100%;
text-align: left;
}
.grey-cell {
color: $ui-fleet-black-50;
font-style: italic;
}
}
.disable-highlight:hover {
background-color: initial;
}
}
}
.loading-overlay {
display: flex;
flex-grow: 1;
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
background-color: rgba(255, 255, 255, 0.8);
z-index: 1;
}
&__pagination {
display: flex;
justify-content: flex-end;
margin-top: $pad-small;
margin-bottom: $pad-small;
margin-left: auto;
text-align: right;
button {
color: $core-vibrant-blue;
padding: 6px;
font-weight: $bold;
.fleeticon-chevronleft {
margin-right: $pad-small;
&:before {
font-size: 0.6rem;
font-weight: $bold;
position: relative;
top: -2px;
}
}
.fleeticon-chevronright {
margin-left: $pad-small;
&:before {
font-size: 0.6rem;
font-weight: $bold;
position: relative;
top: -2px;
}
}
}
button:hover,
button:focus {
background-color: $ui-vibrant-blue-10;
}
.button--disabled:hover,
.button--disabled:focus {
background-color: transparent;
}
button:last-child {
margin-left: $pad-large;
}
}
&__footer {
display: flex;
align-items: center;
}
&__footer-text {
font-size: $x-small;
display: flex;
align-items: center;
}
}