NonInventPurchasingSystem/CPRNIMS.WebApps/wwwroot/css/PR/PRTabsV2.css
2026-03-13 14:48:15 +08:00

261 lines
5.5 KiB
CSS

.pr-tabs-header {
border-bottom: 1px solid #00695c;
margin: -1rem -1rem 0 -1rem;
background: linear-gradient( 270deg, #004d40, #00695c, #00897b, #00acc1, #00897b, #00695c, #004d40 );
background-size: 300% 100%;
animation: gradientShimmer 6s ease infinite;
color: white;
padding: 0;
border-radius: 8px;
text-align: center;
box-shadow: 0 4px 12px rgba(0, 150, 136, 0.3);
position: relative;
overflow: visible;
min-height: 58px;
}
/* Light sweep over the tab header */
.pr-tabs-header::after {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 60%;
height: 100%;
background: linear-gradient( 120deg, transparent 0%, rgba(255,255,255,0.06) 40%, rgba(255,255,255,0.13) 50%, rgba(255,255,255,0.06) 60%, transparent 100% );
animation: lightSweep 4s ease-in-out infinite;
pointer-events: none;
border-radius: 8px;
z-index: 0;
}
.pr-tabs-nav {
display: flex;
gap: 0;
align-items: stretch;
padding: 0;
min-height: 58px;
position: relative;
z-index: 1;
}
.pr-tab-btn {
flex: 0 0 auto;
padding: 25px 40px;
background: transparent;
border: none;
border-bottom: none;
color: rgba(255, 255, 255, 0.9);
font-size: 15px;
font-weight: 500;
border-radius: 0;
cursor: pointer;
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
position: relative;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
letter-spacing: 0.3px;
margin: 0;
z-index: 2;
}
.pr-tab-btn:hover {
background: rgba(255, 255, 255, 0.15);
color: white;
border-radius: 0;
}
.pr-tab-btn.active {
background: white;
color: #00695c;
font-weight: 800;
border-radius: 15px 15px 0 0;
box-shadow: 2px 0 10px rgba(0, 0, 0, 0.15);
margin: 2px 0 0 8px;
padding: 12px 36px 18px 36px;
position: relative;
z-index: 3; /* above sweep layer */
}
.pr-tab-btn.active::before {
display: none;
}
.pr-tab-btn:first-child.active {
margin-left: 8px;
}
@keyframes lightSweep {
0% {
left: -100%;
}
50% {
left: 150%;
}
100% {
left: 150%;
}
}
/* Loading State */
.pr-tab-btn.loading {
pointer-events: none;
opacity: 0.6;
}
.pr-tab-btn.loading::after {
content: '';
position: absolute;
right: 12px;
top: 50%;
transform: translateY(-50%);
width: 12px;
height: 12px;
border: 2px solid currentColor;
border-top-color: transparent;
border-radius: 50%;
animation: spin 0.7s linear infinite;
}
@keyframes spin {
to {
transform: translateY(-50%) rotate(360deg);
}
}
.page-header-section {
padding: 24px 0 16px 0;
}
.page-heading {
margin: 0;
font-size: 28px;
font-weight: 600;
color: teal;
text-align: left;
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
letter-spacing: -0.5px;
position: relative;
padding-bottom: 12px;
}
/* Subtle Accent Line Under Heading */
.page-heading::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
width: 60px;
height: 3px;
background: teal;
border-radius: 2px;
}
/* Title Transition Animation */
.page-heading {
transition: opacity 0.25s ease, transform 0.25s ease;
}
.page-heading.updating {
opacity: 0;
transform: translateX(-10px);
}
.table-container {
margin-top: -15px !important;
overflow: hidden;
background: #ffffff;
border-radius: 12px !important;
box-shadow: 0 4px 20px rgba(0, 150, 136, 0.12);
border: 1px solid rgba(0, 150, 136, 0.12);
}
.table-container.rounded {
border-radius: 12px !important;
}
.table-container::before {
content: '';
display: block;
height: 4px;
background: linear-gradient(135deg, #00695c 0%, #00acc1 100%);
}
/* Responsive Design */
@media (max-width: 768px) {
.pr-tabs-nav {
overflow-x: auto;
-webkit-overflow-scrolling: touch;
}
.pr-tab-btn {
padding: 12px 24px;
font-size: 14px;
white-space: nowrap;
}
.page-heading {
font-size: 24px;
}
.page-header-section {
padding: 20px 0 12px 0;
}
}
@media (max-width: 576px) {
.pr-tab-btn {
padding: 10px 20px;
font-size: 13px;
}
.page-heading {
font-size: 22px;
}
.page-header-section {
padding: 16px 0 10px 0;
}
}
/* Smooth scrollbar for mobile tabs */
.pr-tabs-nav::-webkit-scrollbar {
height: 3px;
}
.pr-tabs-nav::-webkit-scrollbar-track {
background: #e0f2f1;
}
.pr-tabs-nav::-webkit-scrollbar-thumb {
background: #80cbc4;
border-radius: 10px;
}
.pr-tabs-nav::-webkit-scrollbar-thumb:hover {
background: #4db6ac;
}
/* Enhanced Table Styling */
#PRTable {
margin-top: 0 !important;
}
/* Focus States for Accessibility */
.pr-tab-btn:focus {
outline: 2px solid white;
outline-offset: -2px;
}
.pr-tab-btn:focus:not(:focus-visible) {
outline: none;
}
/* Print Styles */
@media print {
.pr-tabs-header {
display: none;
}
.page-heading::after {
display: none;
}
}