custom-table-search
Version:
A customizable, dynamic table component with advanced search, sorting, and pagination for React.
144 lines (125 loc) • 3 kB
CSS
/* General Styling for the Component */
.responsive-table-component {
margin-bottom: 20px;
}
.bgColor {
background-color: var(--back-color, #007bff) ; /* Default to white if not set */
}
.txtColor {
color: var(--txt-color, #fff) ; /* Default to dark gray if not set */
}
/* Toolbar Styling */
.toolbar {
background-color: #fff;
padding: 10px;
border-radius: 5px;
box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.1);
border: 1px solid var(--border-color);
}
.customSearch .form-control,
.customSearch .form-control::placeholder {
font-size: 14px;
}
.customSearch .btn {
top: 0;
height: 40px;
padding: 5px;
width: 35px;
cursor: pointer;
}
.customSearch .btn span {
font-size: 20px;
padding: 0;
text-align: center;
line-height: 1;
}
.entries-dropdown .form-select,
.customSearch .form-select {
background-position: right 0.3rem center;
background-size: 8px 10px;
padding: 0.375rem 1rem 0.375rem 0.75rem ;
}
.customSearch .card {
box-shadow: 0px 0px 2px 1px #9d9b9b54;
}
/* Align elements in toolbar */
.entries-dropdown {
display: flex;
align-items: center;
}
/* Table View */
.responsive-table-component .responsiveTable {
width: 100%;
background-color: #fff;
border-collapse: collapse;
}
.responsive-table-component .responsiveTable th,
.responsive-table-component .responsiveTable td {
padding: 8px;
border: 1px solid var(--border-color);
border-radius: 4px;
}
.responsive-table-component .responsiveTable th {
color: #fff;
text-align: center;
font-weight: 600;
vertical-align: middle;
border-right: 0;
}
.responsive-table-component .responsiveTable tr:hover {
background-color: #fff;
}
/* Card View for Mobile and Tablet */
.responsive-table-component .cardView {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
gap: 16px;
}
.responsive-table-component .cardItem {
border: 1px solid var(--border-color);
background-color: #fff;
transition: all 0.3s ease-in-out;
}
.responsive-table-component .cardItem:hover {
background-color: #fff;
}
.cardItem .card-text {
display: flex;
justify-content: space-between;
border: 1px solid var(--border-color);
padding: 8px;
margin: -1px;
color: #2a0f0d;
white-space: break-spaces;
flex-wrap: wrap;
}
/* Pagination Styling */
.pagination-container {
padding: 10px;
border-radius: 5px;
box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.1);
margin-bottom: 5px;
color: #fff;
}
.pagination-info {
font-size: 14px;
}
/* Customize Bootstrap Pagination */
.pagination .page-item.active .page-link {
background-color: var(--back-color, #007bff);
border-color: var(--border-color, #ddd);
color: var(--txt-color, #fff);
cursor: pointer;
}
.pagination .page-item .page-link {
color: #111;
border-color: #bbe9ff;
cursor: pointer;
}
.pagination .page-item .page-link:hover {
cursor: pointer;
}
/* Hide elements initially for responsive design */
.dHide {
display: none ;
}