Files
sibedas/resources/scss/pages/pbg-task/show.scss
2025-08-19 13:00:40 +07:00

311 lines
6.5 KiB
SCSS

// PBG Task Show Page Styles
// Custom styles for data lists display (List Layout)
// Enhanced checkbox styling for is_valid field
.form-check.form-switch {
padding-left: 0;
.form-check-input {
width: 3.25rem;
height: 1.75rem;
border-radius: 1rem;
background-color: #dc3545;
border: none;
transition: all 0.3s ease;
position: relative;
cursor: pointer;
margin-left: 0;
// Remove default browser styling
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
&:checked {
background-color: #28a745;
box-shadow: 0 0 0 0.2rem rgba(40, 167, 69, 0.25);
}
&:focus {
box-shadow: 0 0 0 0.2rem rgba(93, 135, 255, 0.25);
outline: none;
}
&:not(:checked) {
background-color: #dc3545;
}
// The toggle circle
&::before {
content: "";
position: absolute;
top: 0.125rem;
left: 0.125rem;
width: 1.5rem;
height: 1.5rem;
background-color: #fff;
border-radius: 50%;
transition: all 0.3s ease;
box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
z-index: 1;
}
// Animation for checked state
&:checked::before {
transform: translateX(1.5rem);
}
}
.form-check-label {
margin-left: 1rem;
cursor: pointer;
padding-left: 0;
.status-text {
font-weight: 600;
font-size: 1rem;
color: #2c3e50;
transition: color 0.3s ease;
}
small {
font-size: 0.85rem;
margin-top: 0.25rem;
line-height: 1.3;
}
}
}
// Status indicator styling
.status-validation-container {
background: #f8f9fa;
border: 1px solid #e9ecef;
border-radius: 8px;
padding: 1rem;
transition: all 0.3s ease;
&.valid {
background: #d4edda;
border-color: #c3e6cb;
color: #155724;
}
&.invalid {
background: #f8d7da;
border-color: #f5c6cb;
color: #721c24;
}
}
.data-list-section {
.section-header {
border-bottom: 2px solid #f8f9fa;
padding-bottom: 0.75rem;
.section-icon {
font-size: 1.2rem;
color: #5d87ff;
}
.section-title {
font-size: 1.1rem;
font-weight: 600;
color: #2c3e50;
}
.section-count {
font-size: 0.85rem;
}
}
}
.data-list-container {
.data-list-item {
border: 1px solid #e9ecef;
border-radius: 6px;
margin-bottom: 0.75rem;
padding: 1rem;
background: #ffffff;
transition: all 0.2s ease;
position: relative;
&:hover {
border-color: #5d87ff;
box-shadow: 0 2px 8px rgba(93, 135, 255, 0.1);
transform: translateX(2px);
}
&::before {
content: "";
position: absolute;
left: 0;
top: 0;
bottom: 0;
width: 3px;
background: #5d87ff;
border-radius: 3px 0 0 3px;
opacity: 0;
transition: opacity 0.2s ease;
}
&:hover::before {
opacity: 1;
}
.list-item-header {
.item-title {
font-size: 1rem;
font-weight: 600;
color: #2c3e50;
line-height: 1.4;
.item-number {
color: #5d87ff;
font-weight: 700;
margin-right: 0.5rem;
}
}
.item-description {
font-size: 0.9rem;
line-height: 1.4;
color: #6c757d;
margin-bottom: 0.5rem;
}
.item-status {
.badge {
font-size: 0.75rem;
padding: 0.25rem 0.6rem;
}
}
}
.list-item-meta {
margin-top: 0.75rem;
padding-top: 0.75rem;
border-top: 1px solid #f1f3f4;
small {
font-size: 0.8rem;
i {
opacity: 0.7;
}
.text-dark {
font-weight: 500;
}
.badge {
font-size: 0.7rem;
padding: 0.1rem 0.4rem;
}
}
}
}
// Empty state for individual sections
.no-items {
text-align: center;
padding: 2rem;
color: #6c757d;
font-style: italic;
border: 2px dashed #dee2e6;
border-radius: 6px;
i {
font-size: 2rem;
margin-bottom: 0.5rem;
opacity: 0.5;
}
}
}
// Empty state styles
.empty-state {
text-align: center;
padding: 3rem 1rem;
.empty-icon {
font-size: 3rem;
color: #6c757d;
margin-bottom: 1rem;
opacity: 0.6;
}
.empty-title {
font-size: 1.25rem;
color: #6c757d;
margin-bottom: 0.5rem;
}
.empty-text {
color: #6c757d;
opacity: 0.8;
}
}
// Badge variations
.badge {
&.bg-success {
background-color: #28a745 !important;
}
&.bg-danger {
background-color: #dc3545 !important;
}
&.bg-info {
background-color: #17a2b8 !important;
}
&.bg-light {
background-color: #f8f9fa !important;
border: 1px solid #dee2e6;
}
}
// Tab content spacing
#pbgTaskDataLists {
.section-divider {
border-bottom: 1px solid #e9ecef;
margin-bottom: 2rem;
padding-bottom: 1rem;
&:last-child {
border-bottom: none;
margin-bottom: 0;
}
}
}
// Responsive adjustments
@media (max-width: 768px) {
.data-list-container {
.data-list-item {
padding: 0.75rem;
.list-item-header {
.item-title {
font-size: 0.95rem;
}
}
.list-item-meta {
small {
font-size: 0.75rem;
}
}
}
}
.data-list-section {
.section-header {
.section-title {
font-size: 1rem;
}
}
}
}