@talentsoft-opensource/hylia
Version:
The Hylia design systems. Contains all the building blocks style rules for Talentsoft.
651 lines (549 loc) • 13.9 kB
text/less
@import "./table-panel.less";
@import "./table-footer.less";
.Hylia-o-table-wrapper {
width: 100%;
border-radius: @radius;
// Modifiers
&--large {
tbody tr {
height: 8rem;
}
&.Hylia-o-table-wrapper--resizable {
.Hylia-o-table-header__resizer {
min-width: 8rem;
}
}
.Hylia-o-table__body {
tr {
// Stripe
.Hylia-o-table-cell__content {
&:before {
background: linear-gradient(to bottom, transparent 0%, @stormtrooper 90%);
}
}
&:nth-child(even) {
.Hylia-o-table-cell__content {
&:before {
background: linear-gradient(to bottom, transparent 0%, @acolyte 100%);
}
}
}
&.Hylia-o-table-row--selected {
.Hylia-o-table-cell__content {
&:before {
background: linear-gradient(to bottom, transparent 0%, lighten(@terran, 25%) 100%);
}
}
}
&.Hylia-o-table-row--hover {
.Hylia-o-table-cell__content {
&:before {
background: linear-gradient(to bottom, transparent 0%, @adept 100%);
}
}
}
}
}
.Hylia-o-table-cell {
text-overflow: initial;
white-space: normal;
&__content {
text-overflow: initial;
white-space: normal;
height: 5.3rem;
overflow: hidden;
margin: 1rem 0;
display: flex;
align-items: center;
&:before {
content: "";
display: block;
height: 2rem;
width: 100%;
position: absolute;
bottom: 0;
}
& > * {
margin: auto 0;
}
}
}
}
}
// Row
.Hylia-o-table-row {
td {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.Hylia-a-inputCheckbox {
opacity: 0;
transition: opacity 0.3s;
}
&--hover {
background-color: @adept ;
.Hylia-a-inputCheckbox {
opacity: 1;
}
.Hylia-a-button-round {
background-color: transparent ;
}
.Hylia-a-button-ghost {
background-color: @stormtrooper;
&--positive {
border: solid .1rem @namek;
}
&--negative {
border: solid .1rem @ruban;
}
&--warning {
border: solid .1rem @saien;
}
}
}
&--focused {
td:first-child {
position: relative;
&:before {
content: "";
width: 0.4rem;
height: 100%;
top: 0;
left: 0;
display: block;
position: absolute;
background-color: @terran;
}
}
}
}
// Table Thead
.Hylia-o-table-header {
font-size: 1.4rem;
color: @knight;
&__resize {
position: absolute;
top: 0;
right: -0.1rem;
height: 100%;
width: 0.4rem;
z-index: 1;
display: block;
transition: background-color 0.3s;
background-color: transparent;
&--active {
background-color: @terran ;
cursor: col-resize;
&:before {
content: "";
height: 200vh;
width: 0.1rem;
background: @terran;
position: absolute;
right: .1rem;
top: 0;
}
}
&:hover {
background-color: @terran ;
cursor: col-resize;
&:before {
content: "";
height: 200vh;
width: 0.1rem;
background: @terran;
position: absolute;
right: .1rem;
top: 0;
}
}
}
&__resizer {
display: flex;
align-items: center;
width: 100%;
}
&__title {
font-family: @regular_bold;
user-select: none;
text-overflow: ellipsis;
padding-right: 1rem;
overflow: hidden;
display: inline-block;
white-space: nowrap;
cursor: pointer;
min-width: 4rem;
max-width: 30rem;
&--sorted {
color: @vader;
}
}
&__info {
margin-left: 0.5rem;
color: @knight;
cursor: pointer;
transition: color 0.3s;
&:hover {
color: @vader;
}
}
&__filter {
position: absolute;
top: 0;
right: .5rem;
width: 4rem;
height: 100%;
flex-grow: 0;
flex-shrink: 0;
display: flex;
justify-content: center;
align-items: center;
cursor: pointer;
i {
color: transparent;
transition: color .3s;
}
&--active {
i {
color: @terran;
}
}
}
&__sort {
position: relative;
margin-right: 0.3rem;
cursor: pointer;
&--asc {
color: @terran;
}
&--desc {
color: @terran;
}
}
&__cell {
position: relative;
white-space: nowrap;
background-color: @adept;
z-index: 1;
padding: 1rem;
box-sizing: initial;
border-left: 0.1rem solid @apprentice;
&:hover {
.Hylia-o-table-header__filter i {
color: @apprentice;
}
.Hylia-o-table-header__resize {
background-color: @knight;
}
}
&--filter {
padding-right: 4rem;
}
}
&--options {
tr th {
border: none;
}
}
}
.Hylia-o-table {
&__body {
tr {
// Stripe
&:nth-child(even) {
background-color: @acolyte;
}
&.Hylia-o-table-row--selected {
background-color: lighten(@terran, 25%);
.Hylia-a-inputCheckbox {
opacity: 1;
}
}
}
td {
border-bottom: .1px solid @stormtrooper;
button.Hylia-a-button:not(:last-child) {
margin-right: 1rem;
}
}
}
// Align content
&--align {
&--center {
.Hylia-o-table-cell__content {
text-align: center;
}
}
&--left {
.Hylia-o-table-cell__content {
text-align: left;
}
}
&--right {
.Hylia-o-table-cell__content {
text-align: right;
}
}
}
}
//***
// Container Table
//***
.Hylia-o-table-container {
display: flex;
background-color: @stormtrooper;
border-collapse: collapse;
border: 0.1rem solid @minion;
position: relative;
tr {
height: 4rem;
}
td {
padding: 0 1rem;
font-family: @condensed_regular;
}
&__loader {
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: ~"calc(100% - 4rem)";
z-index: 3;
background-color: fade(@stormtrooper, 90%);
}
&__empty {
position: absolute;
top: 0;
left: 0;
z-index: 3;
background-color: fade(@stormtrooper, 60%);
width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
&__desc {
background-color: @minion;
padding: 1rem;
border-radius: @radius;
}
}
}
//***
// Table Main
//***
.Hylia-o-table-main {
flex: 1;
position: relative;
overflow: hidden;
&:before {
content: "";
background: linear-gradient(-90deg, rgba(170, 170, 170, 0) 0%, @apprentice 100%);
display: block;
position: absolute;
width: 0.6rem;
height: 100%;
top: 0;
left: 0;
opacity: 0;
z-index: 2;
transition: opacity 0.3s;
}
&:after {
content: "";
background: linear-gradient(90deg, rgba(170, 170, 170, 0) 0%, @apprentice 100%);
display: block;
position: absolute;
width: 0.6rem;
height: 100%;
top: 0;
right: 0;
z-index: 2;
}
&__header {
th:last-child {
.Hylia-o-table-header__resize {
display: none;
}
}
}
&__content {
&--resizable {
td {
max-width: 0;
}
}
}
&--onScroll {
&:before {
opacity: 1;
}
}
.Hylia-o-table {
min-width: 100%;
}
}
//***
// Table Options
//***
.Hylia-o-table-options {
overflow: hidden;
&__select {
box-sizing: border-box;
width: 4rem;
.Hylia-a-inputCheckbox {
justify-content: center;
}
.Hylia-a-inputCheckbox__apparence {
// Remove margin input
margin: 0;
}
}
&__state {
box-sizing: border-box;
width: 4rem;
vertical-align: middle;
}
&__status {
width: 0.5rem;
height: 0.5rem;
margin: auto;
display: block;
border-radius: 50%;
background-color: @apprentice;
border: 0.5rem solid lighten(@apprentice, 25%);
box-sizing: content-box;
&--positive {
background-color: @namek;
border: 0.5rem solid lighten(@namek, 25%);
}
&--warning {
background-color: @saien;
border: 0.5rem solid lighten(@saien, 25%);
}
&--negative {
background-color: @ruban;
border: 0.5rem solid lighten(@ruban, 25%);
}
}
}
//***
// Table Actions
//***
.Hylia-o-table-actions {
overflow-x: hidden;
overflow-y: auto;
&__more {
i {
color: @apprentice;
}
}
&__btn {
width: 20rem;
overflow: inherit;
&__container {
display: flex;
justify-content: center;
}
.Hylia-a-button {
margin: 0;
width: 100%;
padding:0 1rem;
&:hover {
color: @stormtrooper;
}
}
.Hylia-a-button-ghost {
&--positive {
&:hover {
background-color: @namek;
}
}
&--negative {
&:hover {
background-color: @ruban;
}
}
&--warning {
&:hover {
background-color: @saien;
}
}
}
}
}
//***
// Cell
//***
.Hylia-o-table-cell {
&__content {
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
vertical-align: middle;
display: inline-block;
width: 100%;
position: relative;
}
&--left {
text-align: left;
}
&--right {
text-align: right;
}
&--center {
text-align: center;
}
&--sorted {
color: @smart;
}
}
//***
// Button Menu
//***
.Hylia-o-table-button-menu {
.panel-menu {
bottom: -.7rem;
}
.Hylia-a-button {
margin: 0;
i {
transition: color .3s;
font-size: 1.3rem;
}
&:hover {
background-color: transparent;
box-shadow: none;
i {
color: @knight;
}
}
&:focus {
animation: none;
}
}
}
.Hylia-o-table-menu-filter {
min-width: 14rem;
border-radius: @radius;
background-color: @stormtrooper;
box-shadow: 0 0 .4rem 0 rgba(0, 0, 0, 0.29);
&:before {
position: absolute;
z-index: 0;
top: -0.8rem;
right: 2.5rem;
display: block;
width: 1.5rem;
height: 1.5rem;
content: "";
transform: rotate(45deg);
background-color: @stormtrooper;
box-shadow: -2px -2px 2px 0 rgba(0, 0, 0, 0.1);
}
&__content {
position: relative;
padding: 1rem;
}
}