atlus/frontend/css/shell.css
roberts f9743bb29a Initial commit — Atlus web desktop environment for SBCs
Full-stack implementation: FastAPI backend with PAM auth, WebSocket
stats/terminal, and vanilla JS frontend with tiling desktop shell.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-14 16:53:46 -05:00

143 lines
2.8 KiB
CSS

/* Atlus Shell — three-column layout */
* { margin: 0; padding: 0; box-sizing: border-box; }
html, body {
height: 100dvh;
overflow: hidden;
font-family: var(--font-ui);
background: var(--bg-stage);
color: var(--text-primary);
-webkit-font-smoothing: antialiased;
-webkit-text-size-adjust: 100%;
}
body {
display: flex;
flex-direction: row;
}
/* Utility */
.hidden { display: none !important; }
/* Scrollbar styling */
::-webkit-scrollbar {
width: 6px;
height: 6px;
}
::-webkit-scrollbar-track {
background: transparent;
}
::-webkit-scrollbar-thumb {
background: var(--border-component);
border-radius: 3px;
}
::-webkit-scrollbar-thumb:hover {
background: var(--text-muted);
}
/* System menu overlay */
.system-menu {
position: fixed;
inset: 0;
z-index: 1000;
background: rgba(0, 0, 0, 0.5);
display: flex;
align-items: center;
justify-content: center;
}
.system-menu-content {
background: var(--bg-titlebar);
border: 1px solid var(--border-structural);
border-radius: var(--radius-lg);
padding: 8px;
min-width: 200px;
}
.system-menu-item {
display: block;
width: 100%;
padding: 12px 16px;
background: none;
border: none;
color: var(--text-primary);
font-family: var(--font-ui);
font-size: 14px;
text-align: left;
border-radius: var(--radius-sm);
cursor: pointer;
min-height: var(--tap-min);
display: flex;
align-items: center;
}
.system-menu-item:hover {
background: var(--accent-hover);
}
.system-menu-danger {
color: var(--status-red);
}
.system-menu-sep {
height: 1px;
background: var(--border-structural);
margin: 4px 8px;
}
.system-menu-about {
padding: 8px 16px;
color: var(--text-muted);
font-family: var(--font-mono);
font-size: 12px;
text-align: center;
}
/* Welcome screen */
.welcome-screen {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
height: 100%;
gap: 16px;
}
.welcome-logo {
font-family: var(--font-mono);
font-size: 72px;
font-weight: 500;
color: var(--text-ghost);
}
.welcome-text {
font-size: 14px;
color: var(--text-muted);
}
/* Responsive — portrait/narrow */
@media (max-width: 768px) {
.dock {
position: fixed;
left: -var(--dock-width);
z-index: 100;
transition: transform var(--transition-base);
}
.dock.open {
transform: translateX(var(--dock-width));
}
.panel {
position: fixed;
right: calc(-1 * var(--panel-width));
z-index: 100;
transition: transform var(--transition-base);
}
.panel.open {
transform: translateX(calc(-1 * var(--panel-width)));
}
.stage {
width: 100%;
}
}