Merge pull request #268 from Ark0N/feat/mobile-shell-keyboard-262

feat(mobile): shell keyboard bar with a one-shot Ctrl modifier
This commit is contained in:
Ark0N
2026-08-10 04:33:22 +02:00
committed by GitHub
8 changed files with 1043 additions and 8 deletions
+19 -1
View File
@@ -1174,6 +1174,18 @@ html.mobile-init .file-browser-panel {
color: #ffd54f;
}
/* Armed one-shot Ctrl (shell bar, issue #262). Phone palette is hardcoded in
this block, so the state needs its own entry here. Three classes beat the
plain .accessory-btn rules; the light-skin rule at the bottom of this file
is higher still at (0,3,1) and is excluded by hand there, not outranked. */
.accessory-btn.accessory-btn-ctrl.armed {
background: #2563eb;
border-color: rgba(59, 130, 246, 0.9);
color: #fff;
font-weight: 700;
box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.45);
}
.accessory-btn:active {
background: #3a3a3a;
}
@@ -2919,7 +2931,13 @@ html:is([data-skin="paper-gray"], [data-skin="solarized-light"], [data-skin="cat
color: var(--text);
}
html:is([data-skin="paper-gray"], [data-skin="solarized-light"], [data-skin="catppuccin-latte"], [data-skin="rose-pine-dawn"]) :is(.btn-voice-mobile, .btn-settings-mobile, .btn-toolbar.btn-shell, .toolbar .btn-case-add, .accessory-btn) {
/* `.accessory-btn:not(.armed)` on purpose: this selector is (0,3,1) — `:is()`
takes the specificity of its most specific argument, and `.btn-toolbar
.btn-shell` is two classes — so it OUTRANKS the (0,3,0) armed-Ctrl rules in
both stylesheets and repainted the armed modifier back to a resting button on
all four light skins. Excluding the state here fixes phone and tablet at once;
adding a class to the armed rules would only have moved the tie. */
html:is([data-skin="paper-gray"], [data-skin="solarized-light"], [data-skin="catppuccin-latte"], [data-skin="rose-pine-dawn"]) :is(.btn-voice-mobile, .btn-settings-mobile, .btn-toolbar.btn-shell, .toolbar .btn-case-add, .accessory-btn:not(.armed)) {
background: var(--control-bg);
border-color: var(--control-border);
color: var(--text-dim);