@synergy-design-system/styles
Version:
Utility classes and helpers for applications using the Synergy Design System
133 lines (131 loc) • 4.72 kB
CSS
/**
* @synergy-design-system/styles version 2.1.1
* SICK Global UX Foundation
*/
/**
* Table / table cell styles
*/
/**
* Table classes
* @boolean { false } syn-table Applies the styling to a table element
* @boolean { true } syn-table--default Applies all default table stylings to a table and its children
* @boolean { false } syn-table--alternating Applies all alternate table stylings to a table and its children
* @boolean { false } syn-table--border Applies all border table stylings to a table and its children
*/
.syn-table,
.syn-table--default,
.syn-table--alternating,
.syn-table--border {
all: unset;
border-collapse: collapse;
border-spacing: var(--syn-border-width-none);
display: table;
}
/**
* Table cell classes
*
* @boolean { true } syn-table-cell Applies the table cell styling
* @boolean syn-table-cell--alternating Applies an alternating style to help separate rows visually
* @boolean syn-table-cell--border-start Applies a border to the left of the table cell
* @boolean syn-table-cell--border-end Applies a border to the right of the table cell
* @boolean syn-table-cell--border-top Applies a border to the top of the table cell
* @boolean syn-table-cell--border-bottom Applies a border to the bottom of the table cell
* @boolean syn-table-cell--header Applies the table cell header styling
* @variant { NO_DEFAULT | bottom | top | start | end } syn-table-cell--shadow Applies the selected shadow to the table cell
* @boolean syn-table-cell--shadow-active Displays the table shadow
*/
.syn-table-cell,
.syn-table--default td,
.syn-table--alternating td,
.syn-table--border td {
background-color: var(--syn-table-background-color);
color: var(--syn-typography-color-text);
font: var(--syn-body-small-regular);
height: var(--syn-spacing-large);
padding: var(--syn-spacing-small) var(--syn-spacing-medium);
text-align: start;
vertical-align: top;
}
.syn-table-cell--alternating,
.syn-table--alternating tr:nth-child(even) > td {
background-color: var(--syn-table-background-color-alternating);
}
/* Border */
.syn-table-cell--border-start {
border-inline-start: var(--syn-border-width-small) solid var(--syn-table-border-color);
}
.syn-table-cell--border-end,
.syn-table--border tr > td:not(:last-child) {
border-inline-end: var(--syn-border-width-small) solid var(--syn-table-border-color);
}
.syn-table-cell--border-top {
border-top: var(--syn-border-width-small) solid var(--syn-table-border-color);
}
.syn-table-cell--border-bottom,
.syn-table--border tr:not(:last-child) > td {
border-bottom: var(--syn-border-width-small) solid var(--syn-table-border-color);
}
/* Header */
.syn-table-cell--header,
.syn-table--default th,
.syn-table--alternating th,
.syn-table--border th {
background-color: var(--syn-table-background-color-header);
color: var(--syn-typography-color-text);
font: var(--syn-body-small-semibold);
height: var(--syn-spacing-large);
padding: var(--syn-spacing-small) var(--syn-spacing-medium);
text-align: start;
vertical-align: top;
}
/* Shadow */
.syn-table-cell--shadow-bottom::after,
.syn-table-cell--shadow-top::after,
.syn-table-cell--shadow-start::after,
.syn-table-cell--shadow-end::after {
--shadow-start: var(--syn-table-shadow-start, rgb(49 55 58 / 15%));
--shadow-end: var(--syn-table-shadow-end, rgb(49 55 58 / 0%));
content: '';
opacity: 0;
pointer-events: none;
position: absolute;
transition-duration: 0.25s;
transition-property: opacity;
transition-timing-function: cubic-bezier(0.2, 0, 0.38, 0.9);
}
.syn-table-cell--shadow-bottom::after,
.syn-table-cell--shadow-top::after {
height: var(--syn-spacing-x-small);
left: 0;
right: 0;
}
.syn-table-cell--shadow-start::after,
.syn-table-cell--shadow-end::after {
bottom: 0;
top: 0;
width: var(--syn-spacing-x-small);
}
.syn-table-cell--shadow-bottom::after {
background: linear-gradient(180deg, var(--shadow-start) 0%, var(--shadow-end) 100%);
bottom: calc(var(--syn-spacing-x-small) * -1);
}
.syn-table-cell--shadow-top::after {
background: linear-gradient(0deg, var(--shadow-start) 0%, var(--shadow-end) 100%);
top: calc(var(--syn-spacing-x-small) * -1);
}
.syn-table-cell--shadow-start::after,
:dir(rtl) .syn-table-cell--shadow-end::after {
background: linear-gradient(270deg, var(--shadow-start) 0%, var(--shadow-end) 100%);
left: calc(var(--syn-spacing-x-small) * -1);
right: unset;
}
/* stylelint-disable-next-line no-descending-specificity */
.syn-table-cell--shadow-end::after,
:dir(rtl) .syn-table-cell--shadow-start::after {
background: linear-gradient(90deg, var(--shadow-start) 0%, var(--shadow-end) 100%);
left: unset;
right: calc(var(--syn-spacing-x-small) * -1);
}
.syn-table-cell--shadow-active::after {
opacity: 1;
}