funda-ui
Version:
React components using pure Bootstrap 5+ which does not contain any external style and script libraries.
585 lines (583 loc) • 18.3 kB
CSS
/* ======================================================
<!-- Table (Synthetic) -->
/* ====================================================== */
.syntable__wrapper {
--syntable-alternant-bg: #f0f0f0;
--syntable-dark-bg: #212529;
--syntable-row-active-bg: #f0f8ff;
--syntable-scrollbar-color: rgba(0, 0, 0, 0.2);
--syntable-scrollbar-track: rgba(0, 0, 0, 0);
--syntable-scrollbar-h: 3px;
--syntable-scrollbar-w: 10px;
--syntable-padding-x: 1rem;
--syntable-padding-y: 0.5rem;
--syntable-cell-focus-shadow: inset 0px 0px 2px 0px rgba(13, 110, 253, 2.25);
/*------ allow sort ------*/
/*------ allow drag and drop ------*/
}
.syntable__wrapper.table-responsive {
overflow-x: auto;
overflow-y: hidden;
}
.syntable__wrapper.table-responsive::-webkit-scrollbar {
height: var(--syntable-scrollbar-h);
}
.syntable__wrapper.table-responsive::-webkit-scrollbar-thumb {
background: var(--syntable-scrollbar-color);
}
.syntable__wrapper.table-responsive::-webkit-scrollbar-track {
background: var(--syntable-scrollbar-track);
}
.syntable__wrapper table td,
.syntable__wrapper table th {
position: relative;
/* focus */
}
.syntable__wrapper table td:focus,
.syntable__wrapper table th:focus {
outline: none;
}
.syntable__wrapper table td.cell-focus,
.syntable__wrapper table th.cell-focus {
box-shadow: var(--syntable-cell-focus-shadow);
}
.syntable__wrapper table tr {
transition: 0.1s ease-in-out;
}
.syntable__wrapper table tr.active {
background-color: var(--syntable-row-active-bg);
}
.syntable__wrapper table.table-colgroup tbody tr td:first-child,
.syntable__wrapper table.table-colgroup tbody tr th:first-child {
color: #fff;
}
.syntable__wrapper table.table-colgroup col:nth-child(odd) {
background-color: var(--syntable-alternant-bg);
}
.syntable__wrapper table.table-colgroup col:first-child {
background-color: var(--syntable-dark-bg);
}
.syntable__wrapper table.cell-autowidth {
display: block; /* Key 1 */
width: max-content; /* Do not use "max-width", It affects the horizontal scroll length of sticky, and if you exceed it, it will be invalid */
}
.syntable__wrapper .syntable__caption.syntable__caption--top {
caption-side: top;
}
.syntable__wrapper .syntable__caption.syntable__caption--bottom {
caption-side: bottom;
}
.syntable__wrapper .sort-trigger {
cursor: pointer;
}
.syntable__wrapper .sort-trigger svg {
transition: 0.1s ease-in-out;
opacity: 0.3;
}
.syntable__wrapper .sort-trigger:hover svg {
transform: scale(1.2);
opacity: 0.7;
}
.syntable__wrapper.allow-sort {
/* Transition animation */
}
.syntable__wrapper.allow-sort .sort-trigger {
cursor: pointer;
}
.syntable__wrapper.allow-sort .sort-trigger svg {
transition: 0.1s ease-in-out;
opacity: 0.3;
}
.syntable__wrapper.allow-sort .sort-trigger:hover svg {
transform: scale(1.2);
opacity: 0.7;
}
.syntable__wrapper.allow-sort .newsort {
animation: table-newsort 0.5s linear 1 forwards;
opacity: 0;
}
.syntable__wrapper.allow-sort .newsort:nth-child(2) {
animation-delay: 50ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(3) {
animation-delay: 100ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(4) {
animation-delay: 150ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(5) {
animation-delay: 200ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(6) {
animation-delay: 250ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(7) {
animation-delay: 300ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(8) {
animation-delay: 350ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(9) {
animation-delay: 400ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(10) {
animation-delay: 450ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(11) {
animation-delay: 500ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(12) {
animation-delay: 550ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(13) {
animation-delay: 600ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(14) {
animation-delay: 650ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(15) {
animation-delay: 700ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(16) {
animation-delay: 750ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(17) {
animation-delay: 800ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(18) {
animation-delay: 850ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(19) {
animation-delay: 900ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(20) {
animation-delay: 950ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(21) {
animation-delay: 1000ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(22) {
animation-delay: 1050ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(23) {
animation-delay: 1100ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(24) {
animation-delay: 1150ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(25) {
animation-delay: 1200ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(26) {
animation-delay: 1250ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(27) {
animation-delay: 1300ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(28) {
animation-delay: 1350ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(29) {
animation-delay: 1400ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(30) {
animation-delay: 1450ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(31) {
animation-delay: 1500ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(32) {
animation-delay: 1550ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(33) {
animation-delay: 1600ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(34) {
animation-delay: 1650ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(35) {
animation-delay: 1700ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(36) {
animation-delay: 1750ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(37) {
animation-delay: 1800ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(38) {
animation-delay: 1850ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(39) {
animation-delay: 1900ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(40) {
animation-delay: 1950ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(41) {
animation-delay: 2000ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(42) {
animation-delay: 2050ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(43) {
animation-delay: 2100ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(44) {
animation-delay: 2150ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(45) {
animation-delay: 2200ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(46) {
animation-delay: 2250ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(47) {
animation-delay: 2300ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(48) {
animation-delay: 2350ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(49) {
animation-delay: 2400ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(50) {
animation-delay: 2450ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(51) {
animation-delay: 2500ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(52) {
animation-delay: 2550ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(53) {
animation-delay: 2600ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(54) {
animation-delay: 2650ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(55) {
animation-delay: 2700ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(56) {
animation-delay: 2750ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(57) {
animation-delay: 2800ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(58) {
animation-delay: 2850ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(59) {
animation-delay: 2900ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(60) {
animation-delay: 2950ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(61) {
animation-delay: 3000ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(62) {
animation-delay: 3050ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(63) {
animation-delay: 3100ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(64) {
animation-delay: 3150ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(65) {
animation-delay: 3200ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(66) {
animation-delay: 3250ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(67) {
animation-delay: 3300ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(68) {
animation-delay: 3350ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(69) {
animation-delay: 3400ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(70) {
animation-delay: 3450ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(71) {
animation-delay: 3500ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(72) {
animation-delay: 3550ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(73) {
animation-delay: 3600ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(74) {
animation-delay: 3650ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(75) {
animation-delay: 3700ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(76) {
animation-delay: 3750ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(77) {
animation-delay: 3800ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(78) {
animation-delay: 3850ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(79) {
animation-delay: 3900ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(80) {
animation-delay: 3950ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(81) {
animation-delay: 4000ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(82) {
animation-delay: 4050ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(83) {
animation-delay: 4100ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(84) {
animation-delay: 4150ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(85) {
animation-delay: 4200ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(86) {
animation-delay: 4250ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(87) {
animation-delay: 4300ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(88) {
animation-delay: 4350ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(89) {
animation-delay: 4400ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(90) {
animation-delay: 4450ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(91) {
animation-delay: 4500ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(92) {
animation-delay: 4550ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(93) {
animation-delay: 4600ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(94) {
animation-delay: 4650ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(95) {
animation-delay: 4700ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(96) {
animation-delay: 4750ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(97) {
animation-delay: 4800ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(98) {
animation-delay: 4850ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(99) {
animation-delay: 4900ms;
}
.syntable__wrapper.allow-sort .newsort:nth-child(100) {
animation-delay: 4950ms;
}
@keyframes table-newsort {
0% {
opacity: 0;
transform: translateX(10px);
}
100% {
opacity: 1;
transform: translateX(0);
}
}
.syntable__wrapper.allow-dragdrop {
/* Specify a drag trigger point */
/* placeholder */
/* trigger */
}
.syntable__wrapper.allow-dragdrop .drag-trigger {
cursor: move;
opacity: 0.5;
}
.syntable__wrapper.allow-dragdrop tbody .row-obj-clonelast {
height: 0 ;
}
.syntable__wrapper.allow-dragdrop tbody .row-obj-clonelast td {
border: none;
box-shadow: none;
}
.syntable__wrapper.allow-dragdrop tbody td,
.syntable__wrapper.allow-dragdrop tbody th {
pointer-events: none;
user-select: auto;
}
.syntable__wrapper.allow-dragdrop tbody.drag-trigger-mousedown td,
.syntable__wrapper.allow-dragdrop tbody.drag-trigger-mousedown th {
pointer-events: auto;
}
.syntable__wrapper.allow-dragdrop .row-placeholder {
border: 2px dotted #b5ba91;
background-color: #e4e9c3;
}
.syntable__wrapper.allow-dragdrop .drag-trigger {
display: inline-block;
pointer-events: auto;
}
.syntable__wrapper.allow-dragdrop .drag-trigger ~ span:not(.checkbox-trigger) {
display: inline-block;
padding-left: calc(var(--syntable-padding-x) * 1.5);
}
.syntable__wrapper.allow-dragdrop.has-checkbox .drag-trigger ~ span:not(.checkbox-trigger) {
padding-left: calc(var(--syntable-padding-x) * 3);
}
.syntable__wrapper.allow-dragdrop.has-checkbox tbody .checkbox-trigger {
padding-left: calc(var(--syntable-padding-x) * 1.5);
}
@media all and (max-width: 768px) {
.syntable__wrapper {
--syntable-border-color: #dee2e6;
--syntable-per-shadow: 0 2px 4px 0 rgba(0,0,0,.1);
/*------ Enhanced Responsive ------*/
/*------ Enhanced Responsive with Scroll Bars ------*/
}
.syntable__wrapper.table-enhanced-responsive table thead {
display: none;
}
.syntable__wrapper.table-enhanced-responsive table tbody tr {
box-shadow: var(--syntable-per-shadow);
margin-bottom: 1rem;
display: block;
}
.syntable__wrapper.table-enhanced-responsive table tbody td,
.syntable__wrapper.table-enhanced-responsive table tbody th {
display: block;
}
.syntable__wrapper.table-enhanced-responsive table tbody td::before,
.syntable__wrapper.table-enhanced-responsive table tbody th::before {
content: attr(data-table-text);
display: block;
float: left;
width: 40%;
font-weight: bold;
border-right: 1px solid var(--syntable-border-color);
margin-right: 0.5rem;
}
.syntable__wrapper.table-enhanced-responsive table tbody td::after,
.syntable__wrapper.table-enhanced-responsive table tbody th::after {
content: "";
display: block;
clear: both;
}
.syntable__wrapper.table-enhanced-responsive table.cell-autowidth {
display: table; /* Key 1 */
width: 100%;
}
.syntable__wrapper.table-enhanced-responsive-scrolled table {
display: block;
width: 100%;
border-bottom: 0 ;
border-left: 0 ;
border-right: 0 ;
overflow: auto;
}
.syntable__wrapper.table-enhanced-responsive-scrolled table::-webkit-scrollbar {
height: var(--syntable-scrollbar-h);
width: var(--syntable-scrollbar-w);
}
.syntable__wrapper.table-enhanced-responsive-scrolled table::-webkit-scrollbar-thumb {
background: var(--syntable-scrollbar-color);
}
.syntable__wrapper.table-enhanced-responsive-scrolled table::-webkit-scrollbar-track {
background: var(--syntable-scrollbar-track);
}
.syntable__wrapper.table-enhanced-responsive-scrolled table thead {
display: block;
float: left;
width: 100px;
border-bottom: 1px solid var(--syntable-border-color);
}
.syntable__wrapper.table-enhanced-responsive-scrolled table thead th {
display: block;
/* required */
min-width: auto ;
width: auto ;
}
.syntable__wrapper.table-enhanced-responsive-scrolled table thead th:not(:last-child) {
border-bottom: 0;
}
.syntable__wrapper.table-enhanced-responsive-scrolled table tbody {
width: calc(100% - 100px);
display: block;
float: left;
overflow-x: scroll;
border-bottom: 1px solid var(--syntable-border-color);
border-right: 1px solid var(--syntable-border-color);
}
.syntable__wrapper.table-enhanced-responsive-scrolled table tbody::-webkit-scrollbar {
height: var(--syntable-scrollbar-h);
}
.syntable__wrapper.table-enhanced-responsive-scrolled table tbody::-webkit-scrollbar-thumb {
background: var(--syntable-scrollbar-color);
}
.syntable__wrapper.table-enhanced-responsive-scrolled table tbody::-webkit-scrollbar-track {
background: var(--syntable-scrollbar-track);
}
.syntable__wrapper.table-enhanced-responsive-scrolled table thead tr,
.syntable__wrapper.table-enhanced-responsive-scrolled table tbody tr {
display: block;
border-color: var(--syntable-border-color);
}
.syntable__wrapper.table-enhanced-responsive-scrolled table th,
.syntable__wrapper.table-enhanced-responsive-scrolled table tbody td,
.syntable__wrapper.table-enhanced-responsive-scrolled table tbody th {
box-sizing: border-box;
overflow-x: hidden;
overflow-y: auto;
}
.syntable__wrapper.table-enhanced-responsive-scrolled table th::-webkit-scrollbar,
.syntable__wrapper.table-enhanced-responsive-scrolled table tbody td::-webkit-scrollbar,
.syntable__wrapper.table-enhanced-responsive-scrolled table tbody th::-webkit-scrollbar {
width: var(--syntable-scrollbar-w);
}
.syntable__wrapper.table-enhanced-responsive-scrolled table th::-webkit-scrollbar-thumb,
.syntable__wrapper.table-enhanced-responsive-scrolled table tbody td::-webkit-scrollbar-thumb,
.syntable__wrapper.table-enhanced-responsive-scrolled table tbody th::-webkit-scrollbar-thumb {
background: var(--syntable-scrollbar-color);
}
.syntable__wrapper.table-enhanced-responsive-scrolled table th::-webkit-scrollbar-track,
.syntable__wrapper.table-enhanced-responsive-scrolled table tbody td::-webkit-scrollbar-track,
.syntable__wrapper.table-enhanced-responsive-scrolled table tbody th::-webkit-scrollbar-track {
background: var(--syntable-scrollbar-track);
}
.syntable__wrapper.table-enhanced-responsive-scrolled table th:first-child,
.syntable__wrapper.table-enhanced-responsive-scrolled table tbody td:first-child,
.syntable__wrapper.table-enhanced-responsive-scrolled table tbody th:first-child {
border-top: 0;
}
.syntable__wrapper.table-enhanced-responsive-scrolled table th:not(:last-child),
.syntable__wrapper.table-enhanced-responsive-scrolled table tbody td:not(:last-child),
.syntable__wrapper.table-enhanced-responsive-scrolled table tbody th:not(:last-child) {
border-bottom: 0;
border-right: 0;
}
.syntable__wrapper.table-enhanced-responsive-scrolled table tbody tr {
display: table-cell;
}
.syntable__wrapper.table-enhanced-responsive-scrolled table tbody td,
.syntable__wrapper.table-enhanced-responsive-scrolled table tbody th {
display: block;
}
}