atlus/frontend/css/keyboard.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

138 lines
2.6 KiB
CSS

/* Custom on-screen keyboard for terminal */
.osk {
background: var(--bg-dock);
border-top: 1px solid var(--border-structural);
padding: 6px;
display: flex;
flex-direction: column;
gap: 4px;
touch-action: manipulation;
user-select: none;
-webkit-user-select: none;
}
.osk.hidden { display: none; }
/* Quick row — frequently used symbols */
.osk-quick {
display: flex;
gap: 3px;
padding: 2px 0;
}
/* Mode tabs */
.osk-modes {
display: flex;
gap: 2px;
margin-bottom: 2px;
}
.osk-mode-tab {
flex: 1;
height: 32px;
background: var(--bg-stage);
border: 1px solid var(--border-structural);
border-radius: var(--radius-sm);
color: var(--text-secondary);
font-family: var(--font-ui);
font-size: 11px;
font-weight: 500;
cursor: pointer;
}
.osk-mode-tab.active {
background: var(--accent-dim);
color: var(--accent);
border-color: var(--accent);
}
/* Keyboard rows */
.osk-row {
display: flex;
gap: 3px;
justify-content: center;
}
/* Keys */
.osk-key {
min-width: 36px;
height: 40px;
padding: 0 6px;
background: var(--bg-titlebar);
border: 1px solid var(--border-component);
border-radius: var(--radius-sm);
color: var(--text-primary);
font-family: var(--font-mono);
font-size: 13px;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
transition: background var(--transition-fast);
touch-action: manipulation;
-webkit-tap-highlight-color: transparent;
}
.osk-key:active {
background: var(--accent-dim);
}
/* Modifier keys */
.osk-key.mod {
background: var(--bg-stage);
color: var(--text-secondary);
font-size: 11px;
font-family: var(--font-ui);
font-weight: 500;
}
.osk-key.mod.armed {
background: var(--accent-dim);
color: var(--accent);
border-color: var(--accent);
}
.osk-key.mod.locked {
background: var(--accent);
color: #fff;
}
/* Special width keys */
.osk-key.wide { flex: 1.5; }
.osk-key.wider { flex: 2; }
.osk-key.space { flex: 5; }
/* Quick row keys — smaller */
.osk-quick .osk-key {
min-width: 32px;
height: 32px;
font-size: 14px;
flex: 1;
}
/* Fn keys — horizontally scrollable */
.osk-fn-scroll {
display: flex;
gap: 3px;
overflow-x: auto;
-webkit-overflow-scrolling: touch;
padding-bottom: 2px;
}
.osk-fn-scroll .osk-key {
min-width: 44px;
flex-shrink: 0;
font-size: 11px;
}
/* Nav grid */
.osk-nav {
display: grid;
grid-template-columns: repeat(5, 1fr);
gap: 3px;
}
.osk-nav .osk-key {
min-width: unset;
font-size: 12px;
}