aboutsummaryrefslogtreecommitdiff
path: root/web/src/components/layout/AppLayout.module.css
diff options
context:
space:
mode:
authorzwlucas <lucas.fariamo08@gmail.com>2026-07-25 21:23:29 +0000
committerzwlucas <lucas.fariamo08@gmail.com>2026-07-25 21:23:29 +0000
commitef55d9bb24430610b60c1b77821307cd72c08c55 (patch)
treee6935a810b34370b0a4c821e55f6397aac50c832 /web/src/components/layout/AppLayout.module.css
downloadhelpdesk-master.tar.gz
helpdesk-master.zip
feat: upload of the projectHEADmaster
Signed-off-by: zwlucas <lucas.fariamo08@gmail.com>
Diffstat (limited to 'web/src/components/layout/AppLayout.module.css')
-rw-r--r--web/src/components/layout/AppLayout.module.css194
1 files changed, 194 insertions, 0 deletions
diff --git a/web/src/components/layout/AppLayout.module.css b/web/src/components/layout/AppLayout.module.css
new file mode 100644
index 0000000..a6d32ce
--- /dev/null
+++ b/web/src/components/layout/AppLayout.module.css
@@ -0,0 +1,194 @@
+.shell {
+ display: grid;
+ grid-template-columns: var(--sidebar-width) 1fr;
+ min-height: 100vh;
+}
+
+/* ── Sidebar ───────────────────────────────────────────────────────────────── */
+.sidebar {
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: var(--sidebar-width);
+ height: 100vh;
+ background: var(--color-surface);
+ border-right: 1px solid var(--color-border);
+ display: flex;
+ flex-direction: column;
+ z-index: 100;
+ overflow-y: auto;
+}
+
+.sidebarHeader {
+ display: flex;
+ align-items: center;
+ gap: var(--space-3);
+ padding: var(--space-5) var(--space-5);
+ border-bottom: 1px solid var(--color-border);
+}
+
+.sidebarTitle {
+ font-size: var(--text-sm);
+ font-weight: 700;
+ color: var(--color-text-primary);
+ letter-spacing: -0.01em;
+ line-height: 1.2;
+}
+
+.sidebarSubtitle {
+ font-size: var(--text-xs);
+ color: var(--color-text-muted);
+ margin-top: 1px;
+}
+
+/* ── Navegação ─────────────────────────────────────────────────────────────── */
+.nav {
+ flex: 1;
+ padding: var(--space-4) var(--space-3);
+ display: flex;
+ flex-direction: column;
+ gap: var(--space-1);
+}
+
+.navLabel {
+ font-size: var(--text-xs);
+ font-weight: 600;
+ color: var(--color-text-muted);
+ text-transform: uppercase;
+ letter-spacing: 0.08em;
+ padding: 0 var(--space-3);
+ margin-bottom: var(--space-2);
+}
+
+.navLink {
+ display: flex;
+ align-items: center;
+ gap: var(--space-3);
+ padding: var(--space-2) var(--space-3);
+ border-radius: var(--radius-md);
+ font-size: var(--text-sm);
+ font-weight: 500;
+ color: var(--color-text-secondary);
+ transition: all var(--transition-fast);
+ text-decoration: none;
+}
+
+.navLink:hover {
+ background: var(--color-surface-2);
+ color: var(--color-text-primary);
+}
+
+.navLinkActive {
+ background: var(--color-accent-subtle);
+ color: var(--color-accent);
+}
+
+.navLinkActive:hover {
+ background: var(--color-accent-subtle);
+ color: var(--color-accent-hover);
+}
+
+/* ── Footer da sidebar ─────────────────────────────────────────────────────── */
+.sidebarFooter {
+ display: flex;
+ align-items: center;
+ gap: var(--space-3);
+ padding: var(--space-4) var(--space-4);
+ border-top: 1px solid var(--color-border);
+ margin-top: auto;
+}
+
+.userAvatar {
+ width: 32px;
+ height: 32px;
+ border-radius: var(--radius-full);
+ background: var(--color-accent-subtle);
+ color: var(--color-accent);
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ flex-shrink: 0;
+}
+
+.userInfo {
+ min-width: 0;
+}
+
+.userName {
+ font-size: var(--text-sm);
+ font-weight: 500;
+ color: var(--color-text-primary);
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+
+.userRole {
+ font-size: var(--text-xs);
+ color: var(--color-text-muted);
+}
+
+.logoutBtn {
+ margin-left: auto;
+ flex-shrink: 0;
+ color: var(--color-text-muted);
+ padding: var(--space-1);
+ border-radius: var(--radius-sm);
+ transition: color var(--transition-fast), background var(--transition-fast);
+}
+
+.logoutBtn:hover {
+ color: var(--color-priority-critical);
+ background: rgba(248, 113, 113, 0.1);
+}
+
+
+/* ── Área principal ────────────────────────────────────────────────────────── */
+.main {
+ grid-column: 2;
+ min-height: 100vh;
+ display: flex;
+ flex-direction: column;
+}
+
+/* ── Header ────────────────────────────────────────────────────────────────── */
+.header {
+ position: sticky;
+ top: 0;
+ height: var(--header-height);
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ padding: 0 var(--space-8);
+ background: rgba(15, 17, 23, 0.85);
+ backdrop-filter: blur(12px);
+ border-bottom: 1px solid var(--color-border);
+ z-index: 50;
+}
+
+.pageTitle {
+ font-size: var(--text-lg);
+ font-weight: 600;
+ color: var(--color-text-primary);
+ letter-spacing: -0.02em;
+}
+
+.headerActions {
+ display: flex;
+ align-items: center;
+ gap: var(--space-3);
+}
+
+/* ── Conteúdo ──────────────────────────────────────────────────────────────── */
+.content {
+ flex: 1;
+ padding: var(--space-8);
+ max-width: var(--content-max-w);
+ width: 100%;
+ animation: fadeIn var(--transition-normal) ease;
+}
+
+@keyframes fadeIn {
+ from { opacity: 0; transform: translateY(6px); }
+ to { opacity: 1; transform: translateY(0); }
+}