Files
infoscreen/dashboard/src/App.css
olaf 4e74f72c9f multiple corrections on docker-compose and Dockerfile
robust start sequence
avoid scrolling of main content
2025-08-31 07:30:53 +00:00

160 lines
5.1 KiB
CSS

@import "../node_modules/@syncfusion/ej2-base/styles/material.css";
@import "../node_modules/@syncfusion/ej2-buttons/styles/material.css";
@import "../node_modules/@syncfusion/ej2-calendars/styles/material.css";
@import "../node_modules/@syncfusion/ej2-dropdowns/styles/material.css";
@import "../node_modules/@syncfusion/ej2-inputs/styles/material.css";
@import "../node_modules/@syncfusion/ej2-lists/styles/material.css";
@import "../node_modules/@syncfusion/ej2-navigations/styles/material.css";
@import "../node_modules/@syncfusion/ej2-popups/styles/material.css";
@import "../node_modules/@syncfusion/ej2-splitbuttons/styles/material.css";
@import "../node_modules/@syncfusion/ej2-react-schedule/styles/material.css";
@import "../node_modules/@syncfusion/ej2-kanban/styles/material.css";
@import "../node_modules/@syncfusion/ej2-notifications/styles/material.css";
@import "../node_modules/@syncfusion/ej2-react-filemanager/styles/material.css";
@import "../node_modules/@syncfusion/ej2-layouts/styles/material.css";
@import "../node_modules/@syncfusion/ej2-grids/styles/material.css";
@import "../node_modules/@syncfusion/ej2-icons/styles/material.css";
body {
font-family: Inter, 'Segoe UI', Roboto, Arial, sans-serif;
overflow: hidden; /* Verhindert den Scrollbalken auf der obersten Ebene */
}
:root {
--sidebar-bg: #e5d8c7;
--sidebar-fg: #78591c;
--sidebar-border: #d6c3a6;
}
/* Layout-Container für Sidebar und Content */
.layout-container {
display: flex;
position: relative; /* Wichtig für die absolute Positionierung des Inhalts */
height: 100vh; /* Feste Höhe auf die des Viewports setzen */
overflow: hidden; /* Verhindert, dass der Scrollbalken den gesamten Container betrifft */
}
/* Sidebar fixieren, keine Scrollbalken */
.sidebar-theme {
background-color: var(--sidebar-bg);
color: var(--sidebar-fg);
font-size: 1.15rem;
font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;
flex-shrink: 0;
overflow: hidden;
z-index: 10; /* Stellt sicher, dass die Sidebar über dem Inhalt ist */
}
.sidebar-theme .sidebar-link {
text-decoration: none;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.sidebar-theme .sidebar-logout {
border: none;
cursor: pointer;
text-align: left;
width: 100%;
font-size: 1.15rem;
}
.sidebar-theme .sidebar-btn,
.sidebar-theme .sidebar-link,
.sidebar-theme .sidebar-logout {
background-color: var(--sidebar-bg);
color: var(--sidebar-fg);
transition: background 0.2s, color 0.2s;
font-weight: 500;
}
.sidebar-theme .sidebar-btn:hover,
.sidebar-theme .sidebar-link:hover,
.sidebar-theme .sidebar-logout:hover {
background-color: var(--sidebar-fg);
color: var(--sidebar-bg);
}
/* === START: ROBUSTES ABSOLUTE-POSITIONING-LAYOUT === */
/* Der Inhaltsbereich wird absolut positioniert, um den Rest des Bildschirms auszufüllen */
.content-area {
position: absolute;
inset: 0 0 0 16rem; /* Shorthand für top, right, bottom, left */
display: flex;
flex-direction: column;
transition: inset-inline-start 0.3s ease-in-out; /* Animiert die 'left' Eigenschaft */
}
/* Anpassung für die eingeklappte Sidebar */
.content-area.collapsed {
left: 5rem; /* Breite der eingeklappten Sidebar (w-20) */
}
.content-header {
flex-shrink: 0; /* Header soll nicht schrumpfen */
}
.page-content {
flex-grow: 1; /* Füllt den verbleibenden Platz */
overflow-y: auto; /* NUR dieser Bereich scrollt */
padding: 2rem;
background-color: #f3f4f6;
}
/* === ENDE: ROBUSTES ABSOLUTE-POSITIONING-LAYOUT === */
/* Kanban-Karten im Sidebar-Style */
.e-kanban .e-card,
.e-kanban .e-card .e-card-content,
.e-kanban .e-card .e-card-header {
background-color: var(--sidebar-bg) !important;
color: var(--sidebar-fg) !important;
}
.e-kanban .e-card:hover,
.e-kanban .e-card.e-selection,
.e-kanban .e-card.e-card-active,
.e-kanban .e-card:hover .e-card-content,
.e-kanban .e-card.e-selection .e-card-content,
.e-kanban .e-card.e-card-active .e-card-content,
.e-kanban .e-card:hover .e-card-header,
.e-kanban .e-card.e-selection .e-card-header,
.e-kanban .e-card.e-card-active .e-card-header {
background-color: var(--sidebar-fg) !important;
color: var(--sidebar-bg) !important;
}
/* Optional: Fokus-Style für Tastatur-Navigation */
.e-kanban .e-card:focus {
outline: 2px solid var(--sidebar-fg);
outline-offset: 2px;
}
/* Kanban-Spaltenheader: Hintergrund und Textfarbe überschreiben */
.e-kanban .e-kanban-table .e-header-cells {
background-color: color-mix(in srgb, var(--sidebar-bg) 80%, #fff 20%) !important;
color: var(--sidebar-fg) !important;
font-weight: 700;
font-size: 1.08rem;
border-bottom: 2px solid var(--sidebar-fg);
box-shadow: 0 2px 6px 0 color-mix(in srgb, #78591c 8%, transparent);
letter-spacing: 0.02em;
}
/* Header-Text noch spezifischer and mit !important */
.e-kanban .e-kanban-table .e-header-cells .e-header-text {
color: color-mix(in srgb, var(--sidebar-fg) 85%, #000 15%) !important;
}
/* Entferne den globalen Scrollbalken von .main-content! */
.main-content {
width: 100%;
overflow-x: auto; /* Wiederherstellen des ursprünglichen Scroll-Verhaltens */
padding-bottom: 8px;
}