smart-museum-front / css /layout.css
youssef357402's picture
Upload css/layout.css with huggingface_hub
751b072 verified
Raw
History Blame Contribute Delete
19.1 kB
/* layout.css - نظام التخطيط المتكامل */
/* ========== CONTAINER ========== */
.container {
width: 100%;
padding-right: var(--spacing-4);
padding-left: var(--spacing-4);
margin-right: auto;
margin-left: auto;
}
@media (min-width: 640px) {
.container {
max-width: 640px;
}
}
@media (min-width: 768px) {
.container {
max-width: 768px;
}
}
@media (min-width: 1024px) {
.container {
max-width: 1024px;
}
}
@media (min-width: 1280px) {
.container {
max-width: 1280px;
}
}
@media (min-width: 1536px) {
.container {
max-width: 1536px;
}
}
.container-fluid {
width: 100%;
padding-right: var(--spacing-4);
padding-left: var(--spacing-4);
margin-right: auto;
margin-left: auto;
}
/* ========== GRID SYSTEM ========== */
.row {
display: flex;
flex-wrap: wrap;
margin-right: calc(var(--spacing-4) * -0.5);
margin-left: calc(var(--spacing-4) * -0.5);
}
.row > * {
flex-shrink: 0;
width: 100%;
max-width: 100%;
padding-right: calc(var(--spacing-4) * 0.5);
padding-left: calc(var(--spacing-4) * 0.5);
margin-top: var(--spacing-4);
}
.col {
flex: 1 0 0%;
}
/* Column Widths */
.col-1 { flex: 0 0 auto; width: 8.33333333%; }
.col-2 { flex: 0 0 auto; width: 16.66666667%; }
.col-3 { flex: 0 0 auto; width: 25%; }
.col-4 { flex: 0 0 auto; width: 33.33333333%; }
.col-5 { flex: 0 0 auto; width: 41.66666667%; }
.col-6 { flex: 0 0 auto; width: 50%; }
.col-7 { flex: 0 0 auto; width: 58.33333333%; }
.col-8 { flex: 0 0 auto; width: 66.66666667%; }
.col-9 { flex: 0 0 auto; width: 75%; }
.col-10 { flex: 0 0 auto; width: 83.33333333%; }
.col-11 { flex: 0 0 auto; width: 91.66666667%; }
.col-12 { flex: 0 0 auto; width: 100%; }
/* Responsive Columns */
@media (min-width: 640px) {
.col-sm-1 { flex: 0 0 auto; width: 8.33333333%; }
.col-sm-2 { flex: 0 0 auto; width: 16.66666667%; }
.col-sm-3 { flex: 0 0 auto; width: 25%; }
.col-sm-4 { flex: 0 0 auto; width: 33.33333333%; }
.col-sm-5 { flex: 0 0 auto; width: 41.66666667%; }
.col-sm-6 { flex: 0 0 auto; width: 50%; }
.col-sm-7 { flex: 0 0 auto; width: 58.33333333%; }
.col-sm-8 { flex: 0 0 auto; width: 66.66666667%; }
.col-sm-9 { flex: 0 0 auto; width: 75%; }
.col-sm-10 { flex: 0 0 auto; width: 83.33333333%; }
.col-sm-11 { flex: 0 0 auto; width: 91.66666667%; }
.col-sm-12 { flex: 0 0 auto; width: 100%; }
}
@media (min-width: 768px) {
.col-md-1 { flex: 0 0 auto; width: 8.33333333%; }
.col-md-2 { flex: 0 0 auto; width: 16.66666667%; }
.col-md-3 { flex: 0 0 auto; width: 25%; }
.col-md-4 { flex: 0 0 auto; width: 33.33333333%; }
.col-md-5 { flex: 0 0 auto; width: 41.66666667%; }
.col-md-6 { flex: 0 0 auto; width: 50%; }
.col-md-7 { flex: 0 0 auto; width: 58.33333333%; }
.col-md-8 { flex: 0 0 auto; width: 66.66666667%; }
.col-md-9 { flex: 0 0 auto; width: 75%; }
.col-md-10 { flex: 0 0 auto; width: 83.33333333%; }
.col-md-11 { flex: 0 0 auto; width: 91.66666667%; }
.col-md-12 { flex: 0 0 auto; width: 100%; }
}
@media (min-width: 1024px) {
.col-lg-1 { flex: 0 0 auto; width: 8.33333333%; }
.col-lg-2 { flex: 0 0 auto; width: 16.66666667%; }
.col-lg-3 { flex: 0 0 auto; width: 25%; }
.col-lg-4 { flex: 0 0 auto; width: 33.33333333%; }
.col-lg-5 { flex: 0 0 auto; width: 41.66666667%; }
.col-lg-6 { flex: 0 0 auto; width: 50%; }
.col-lg-7 { flex: 0 0 auto; width: 58.33333333%; }
.col-lg-8 { flex: 0 0 auto; width: 66.66666667%; }
.col-lg-9 { flex: 0 0 auto; width: 75%; }
.col-lg-10 { flex: 0 0 auto; width: 83.33333333%; }
.col-lg-11 { flex: 0 0 auto; width: 91.66666667%; }
.col-lg-12 { flex: 0 0 auto; width: 100%; }
}
@media (min-width: 1280px) {
.col-xl-1 { flex: 0 0 auto; width: 8.33333333%; }
.col-xl-2 { flex: 0 0 auto; width: 16.66666667%; }
.col-xl-3 { flex: 0 0 auto; width: 25%; }
.col-xl-4 { flex: 0 0 auto; width: 33.33333333%; }
.col-xl-5 { flex: 0 0 auto; width: 41.66666667%; }
.col-xl-6 { flex: 0 0 auto; width: 50%; }
.col-xl-7 { flex: 0 0 auto; width: 58.33333333%; }
.col-xl-8 { flex: 0 0 auto; width: 66.66666667%; }
.col-xl-9 { flex: 0 0 auto; width: 75%; }
.col-xl-10 { flex: 0 0 auto; width: 83.33333333%; }
.col-xl-11 { flex: 0 0 auto; width: 91.66666667%; }
.col-xl-12 { flex: 0 0 auto; width: 100%; }
}
/* ========== DASHBOARD LAYOUT ========== */
.dashboard-layout {
display: flex;
min-height: 100vh;
background: linear-gradient(135deg, var(--color-neutral-50) 0%, var(--color-neutral-100) 100%);
direction: rtl;
}
/* Sidebar Area */
.sidebar-area {
width: var(--sidebar-width);
flex-shrink: 0;
transition: width var(--transition-duration-300) var(--transition-timing-function-ease);
position: fixed;
top: 0;
right: 0;
bottom: 0;
z-index: var(--z-index-fixed);
}
.sidebar-collapsed .sidebar-area {
width: var(--sidebar-collapsed-width);
}
/* Main Content Area */
.main-content {
flex: 1;
margin-right: var(--sidebar-width);
transition: margin-right var(--transition-duration-300) var(--transition-timing-function-ease);
}
.sidebar-collapsed .main-content {
margin-right: var(--sidebar-collapsed-width);
}
/* Content Wrapper */
.content-wrapper {
min-height: calc(100vh - var(--header-height));
padding: var(--spacing-6);
}
@media (max-width: 768px) {
.content-wrapper {
padding: var(--spacing-4);
}
}
/* ========== HEADER ========== */
.header {
position: sticky;
top: 0;
z-index: var(--z-index-sticky);
height: var(--header-height);
background: rgba(255, 255, 255, 0.9);
backdrop-filter: blur(10px);
border-bottom: 1px solid var(--color-neutral-200);
padding: 0 var(--spacing-6);
display: flex;
align-items: center;
justify-content: space-between;
transition: all var(--transition-duration-300) var(--transition-timing-function-ease);
}
.header.scrolled {
box-shadow: var(--shadow-md);
background: rgba(255, 255, 255, 0.95);
}
/* Header Sections */
.header-brand {
display: flex;
align-items: center;
gap: var(--spacing-3);
}
.header-logo {
width: 2.5rem;
height: 2.5rem;
background: linear-gradient(135deg, var(--color-primary-500), var(--color-primary-700));
border-radius: var(--radius-lg);
display: flex;
align-items: center;
justify-content: center;
color: white;
font-size: 1.25rem;
font-weight: var(--font-weight-bold);
}
.header-title {
font-size: var(--text-xl);
font-weight: var(--font-weight-bold);
color: var(--color-neutral-900);
margin: 0;
}
.header-actions {
display: flex;
align-items: center;
gap: var(--spacing-3);
}
/* Header Navigation */
.header-nav {
display: flex;
align-items: center;
gap: var(--spacing-2);
}
.header-nav-item {
padding: var(--spacing-2) var(--spacing-3);
color: var(--color-neutral-600);
text-decoration: none;
border-radius: var(--radius-md);
transition: all var(--transition-duration-200) var(--transition-timing-function-ease);
}
.header-nav-item:hover {
background: var(--color-neutral-100);
color: var(--color-neutral-800);
}
.header-nav-item.active {
background: var(--color-primary-50);
color: var(--color-primary-700);
font-weight: var(--font-weight-semibold);
}
/* Header Search */
.header-search {
position: relative;
width: 300px;
}
.header-search input {
width: 100%;
padding: var(--spacing-2) var(--spacing-3) var(--spacing-2) var(--spacing-10);
border: 1px solid var(--color-neutral-300);
border-radius: var(--radius-md);
background: var(--color-neutral-50);
transition: all var(--transition-duration-200) var(--transition-timing-function-ease);
}
.header-search input:focus {
border-color: var(--color-primary-500);
background: var(--color-neutral-0);
box-shadow: 0 0 0 3px rgba(30, 64, 175, 0.1);
}
.header-search-icon {
position: absolute;
right: var(--spacing-3);
top: 50%;
transform: translateY(-50%);
color: var(--color-neutral-400);
}
/* Header Notifications */
.header-notifications {
position: relative;
}
.notification-badge {
position: absolute;
top: -5px;
left: -5px;
width: 18px;
height: 18px;
background: var(--color-error);
color: white;
font-size: var(--text-xs);
font-weight: var(--font-weight-bold);
border-radius: var(--radius-full);
display: flex;
align-items: center;
justify-content: center;
}
/* Header User Menu */
.header-user {
display: flex;
align-items: center;
gap: var(--spacing-3);
padding: var(--spacing-2) var(--spacing-3);
background: var(--color-neutral-50);
border-radius: var(--radius-lg);
cursor: pointer;
transition: all var(--transition-duration-200) var(--transition-timing-function-ease);
}
.header-user:hover {
background: var(--color-neutral-100);
}
.user-avatar {
width: 2.5rem;
height: 2.5rem;
background: linear-gradient(135deg, var(--color-primary-400), var(--color-primary-600));
border-radius: var(--radius-full);
display: flex;
align-items: center;
justify-content: center;
color: white;
font-weight: var(--font-weight-bold);
}
.user-info {
text-align: right;
}
.user-name {
font-size: var(--text-sm);
font-weight: var(--font-weight-semibold);
color: var(--color-neutral-900);
display: block;
}
.user-role {
font-size: var(--text-xs);
color: var(--color-neutral-500);
display: block;
}
/* ========== SIDEBAR ========== */
.sidebar {
height: 100%;
background: linear-gradient(180deg,
var(--color-primary-800) 0%,
var(--color-primary-900) 100%
);
backdrop-filter: blur(20px);
-webkit-backdrop-filter: blur(20px);
box-shadow: var(--shadow-xl);
display: flex;
flex-direction: column;
transition: all var(--transition-duration-300) var(--transition-timing-function-ease);
overflow: hidden;
}
/* Sidebar Header */
.sidebar-header {
padding: var(--spacing-6) var(--spacing-4);
border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}
.sidebar-logo {
display: flex;
align-items: center;
gap: var(--spacing-3);
margin-bottom: var(--spacing-2);
}
.sidebar-logo-icon {
width: 3rem;
height: 3rem;
background: linear-gradient(135deg,
var(--color-secondary-500),
var(--color-secondary-700)
);
border-radius: var(--radius-lg);
display: flex;
align-items: center;
justify-content: center;
font-size: 1.5rem;
color: white;
box-shadow: var(--shadow-lg);
transition: all var(--transition-duration-300);
}
.sidebar-logo-text {
font-size: var(--text-xl);
font-weight: var(--font-weight-bold);
color: white;
transition: all var(--transition-duration-300);
}
.sidebar-subtitle {
font-size: var(--text-xs);
color: rgba(255, 255, 255, 0.7);
text-transform: uppercase;
letter-spacing: 1px;
margin: 0;
}
/* Sidebar Navigation */
.sidebar-nav {
flex: 1;
padding: var(--spacing-4) 0;
overflow-y: auto;
}
.sidebar-nav::-webkit-scrollbar {
width: 4px;
}
.sidebar-nav::-webkit-scrollbar-track {
background: rgba(255, 255, 255, 0.05);
}
.sidebar-nav::-webkit-scrollbar-thumb {
background: rgba(255, 255, 255, 0.2);
border-radius: var(--radius-full);
}
.nav-section {
margin-bottom: var(--spacing-6);
padding: 0 var(--spacing-4);
}
.nav-section:last-child {
margin-bottom: 0;
}
.nav-section-title {
font-size: var(--text-xs);
text-transform: uppercase;
letter-spacing: 1px;
color: rgba(255, 255, 255, 0.5);
margin-bottom: var(--spacing-3);
padding-right: var(--spacing-2);
font-weight: var(--font-weight-semibold);
}
.nav-item {
display: flex;
align-items: center;
gap: var(--spacing-3);
padding: var(--spacing-3) var(--spacing-4);
color: rgba(255, 255, 255, 0.8);
text-decoration: none;
border-radius: var(--radius-lg);
margin-bottom: var(--spacing-2);
transition: all var(--transition-duration-200) var(--transition-timing-function-ease);
position: relative;
overflow: hidden;
}
.nav-item:last-child {
margin-bottom: 0;
}
.nav-item:hover {
color: white;
background: rgba(255, 255, 255, 0.1);
transform: translateX(-5px);
}
.nav-item:hover .nav-icon {
transform: scale(1.1);
}
.nav-item.active {
color: white;
background: linear-gradient(90deg,
rgba(255, 255, 255, 0.15),
rgba(255, 255, 255, 0.05)
);
box-shadow: var(--shadow-inner);
}
.nav-item.active::before {
content: '';
position: absolute;
right: 0;
top: 0;
bottom: 0;
width: 4px;
background: linear-gradient(
to bottom,
var(--color-secondary-400),
var(--color-secondary-600)
);
border-radius: 0 var(--radius-base) var(--radius-base) 0;
}
.nav-icon {
font-size: 1.25rem;
transition: transform var(--transition-duration-200) var(--transition-timing-function-ease);
flex-shrink: 0;
}
.nav-text {
flex: 1;
font-size: var(--text-sm);
font-weight: var(--font-weight-medium);
transition: all var(--transition-duration-300);
}
.nav-badge {
background: var(--color-secondary-500);
color: white;
font-size: var(--text-xs);
padding: 2px 6px;
border-radius: var(--radius-full);
font-weight: var(--font-weight-bold);
}
/* Sidebar Footer */
.sidebar-footer {
padding: var(--spacing-4);
border-top: 1px solid rgba(255, 255, 255, 0.1);
background: rgba(0, 0, 0, 0.2);
}
.user-profile {
display: flex;
align-items: center;
gap: var(--spacing-3);
padding: var(--spacing-3);
background: rgba(255, 255, 255, 0.05);
border-radius: var(--radius-lg);
transition: all var(--transition-duration-300);
}
.user-profile:hover {
background: rgba(255, 255, 255, 0.1);
}
.user-profile-avatar {
width: 2.5rem;
height: 2.5rem;
background: linear-gradient(135deg,
var(--color-primary-400),
var(--color-primary-600)
);
border-radius: var(--radius-full);
display: flex;
align-items: center;
justify-content: center;
font-weight: var(--font-weight-bold);
color: white;
box-shadow: var(--shadow-md);
flex-shrink: 0;
}
.user-profile-info {
flex: 1;
min-width: 0;
transition: all var(--transition-duration-300);
}
.user-profile-name {
font-size: var(--text-sm);
font-weight: var(--font-weight-semibold);
color: white;
display: block;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.user-profile-role {
font-size: var(--text-xs);
color: rgba(255, 255, 255, 0.7);
display: block;
}
/* Collapsed Sidebar */
.sidebar-collapsed .sidebar {
width: var(--sidebar-collapsed-width);
}
.sidebar-collapsed .sidebar-logo-text,
.sidebar-collapsed .sidebar-subtitle,
.sidebar-collapsed .nav-section-title,
.sidebar-collapsed .nav-text,
.sidebar-collapsed .nav-badge,
.sidebar-collapsed .user-profile-info {
opacity: 0;
width: 0;
overflow: hidden;
}
.sidebar-collapsed .nav-item {
justify-content: center;
padding: var(--spacing-3);
}
.sidebar-collapsed .nav-item:hover {
transform: translateX(0);
}
.sidebar-collapsed .user-profile {
justify-content: center;
padding: var(--spacing-3);
}
/* ========== FOOTER ========== */
.footer {
background: var(--color-neutral-800);
color: var(--color-neutral-400);
padding: var(--spacing-8) 0 var(--spacing-4);
margin-top: auto;
}
.footer-content {
display: grid;
grid-template-columns: repeat(1, 1fr);
gap: var(--spacing-8);
margin-bottom: var(--spacing-8);
}
@media (min-width: 768px) {
.footer-content {
grid-template-columns: repeat(2, 1fr);
}
}
@media (min-width: 1024px) {
.footer-content {
grid-template-columns: repeat(4, 1fr);
}
}
.footer-section-title {
font-size: var(--text-lg);
font-weight: var(--font-weight-semibold);
color: var(--color-neutral-0);
margin-bottom: var(--spacing-4);
}
.footer-links {
list-style: none;
padding: 0;
margin: 0;
}
.footer-links li {
margin-bottom: var(--spacing-2);
}
.footer-links a {
color: var(--color-neutral-400);
text-decoration: none;
transition: color var(--transition-duration-200) var(--transition-timing-function-ease);
}
.footer-links a:hover {
color: var(--color-neutral-0);
}
.footer-bottom {
padding-top: var(--spacing-4);
border-top: 1px solid var(--color-neutral-700);
text-align: center;
font-size: var(--text-sm);
}
/* ========== RESPONSIVE UTILITIES ========== */
/* Hide on different screen sizes */
.hidden-xs { display: none; }
.hidden-sm { display: none; }
.hidden-md { display: none; }
.hidden-lg { display: none; }
.hidden-xl { display: none; }
@media (max-width: 639px) {
.hidden-xs { display: block !important; }
.visible-xs { display: block !important; }
}
@media (min-width: 640px) and (max-width: 767px) {
.hidden-sm { display: block !important; }
.visible-sm { display: block !important; }
}
@media (min-width: 768px) and (max-width: 1023px) {
.hidden-md { display: block !important; }
.visible-md { display: block !important; }
}
@media (min-width: 1024px) and (max-width: 1279px) {
.hidden-lg { display: block !important; }
.visible-lg { display: block !important; }
}
@media (min-width: 1280px) {
.hidden-xl { display: block !important; }
.visible-xl { display: block !important; }
}
/* Mobile Responsive */
@media (max-width: 768px) {
.sidebar-area {
transform: translateX(100%);
transition: transform var(--transition-duration-300) var(--transition-timing-function-ease);
}
.sidebar-open .sidebar-area {
transform: translateX(0);
}
.main-content {
margin-right: 0 !important;
}
.sidebar-overlay {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
background: rgba(0, 0, 0, 0.5);
backdrop-filter: blur(4px);
z-index: calc(var(--z-index-fixed) - 1);
opacity: 0;
visibility: hidden;
transition: all var(--transition-duration-300) var(--transition-timing-function-ease);
}
.sidebar-open .sidebar-overlay {
opacity: 1;
visibility: visible;
}
.header {
padding: 0 var(--spacing-4);
}
.header-search {
width: 200px;
}
.header-user .user-info {
display: none;
}
}
@media (max-width: 640px) {
.header-search {
display: none;
}
.header-title {
font-size: var(--text-lg);
}
.content-wrapper {
padding: var(--spacing-4) var(--spacing-3);
}
}
/* Print Styles for Layout */
@media print {
.sidebar-area,
.header,
.footer {
display: none !important;
}
.main-content {
margin-right: 0 !important;
}
.content-wrapper {
padding: 0 !important;
min-height: auto !important;
}
}