Skip to content

Commit 8a60351

Browse files
Eugen Soloviovclaude
authored andcommitted
fix: Android keyboard overlay instead of resize (v0.7.3)
Switch from resizes-content to overlays-content so keyboard doesn't squish the entire app. Input lifts above keyboard via --keyboard-height CSS variable. Auto-scroll messages to bottom when keyboard opens. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent a1cfb1c commit 8a60351

11 files changed

Lines changed: 863 additions & 465 deletions

File tree

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# Changelog
22

3+
## [0.7.3] - 2026-03-16
4+
### Bug Fixes
5+
- Fix Android keyboard squishing entire app — switch from `resizes-content` to `overlays-content`
6+
- Keyboard now overlays content instead of compressing it; input lifts above keyboard via `--keyboard-height` CSS var
7+
- Auto-scroll messages to bottom when keyboard opens on mobile
8+
39
## [0.7.2] - 2026-03-15
410
### Bug Fixes
511
- Fix Android keyboard pushing content up (visualViewport API + CSS var)

index.html

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,23 +4,22 @@
44
<head>
55
<meta charset="UTF-8" />
66
<link rel="icon" type="image/svg+xml" href="/vasyapp.svg" />
7-
<meta name="viewport" content="width=device-width, initial-scale=1.0, interactive-widget=resizes-content" />
7+
<meta name="viewport" content="width=device-width, initial-scale=1.0, interactive-widget=overlays-content" />
88
<link rel="preconnect" href="https://fonts.googleapis.com">
99
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
1010
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=Newsreader:ital,opsz,wght@0,6..72,400;0,6..72,500;0,6..72,600;1,6..72,400&display=swap" rel="stylesheet">
1111
<title>Vasyapp</title>
1212
<script>
13-
// Fix Android keyboard pushing content up: use visualViewport to compute real height
14-
function updateAppHeight() {
15-
var vh = window.visualViewport ? window.visualViewport.height : window.innerHeight;
16-
document.documentElement.style.setProperty('--app-height', vh + 'px');
13+
// Android keyboard: compute keyboard height via visualViewport and expose as CSS variable.
14+
// With overlays-content the layout viewport never shrinks, so we track the offset ourselves.
15+
function updateKeyboardInset() {
16+
if (!window.visualViewport) return;
17+
var kbHeight = window.innerHeight - window.visualViewport.height;
18+
document.documentElement.style.setProperty('--keyboard-height', Math.max(0, kbHeight) + 'px');
1719
}
18-
updateAppHeight();
1920
if (window.visualViewport) {
20-
window.visualViewport.addEventListener('resize', updateAppHeight);
21-
window.visualViewport.addEventListener('scroll', updateAppHeight);
22-
} else {
23-
window.addEventListener('resize', updateAppHeight);
21+
window.visualViewport.addEventListener('resize', updateKeyboardInset);
22+
window.visualViewport.addEventListener('scroll', updateKeyboardInset);
2423
}
2524
</script>
2625
</head>

package-lock.json

Lines changed: 19 additions & 16 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "vasyapp",
33
"private": true,
4-
"version": "0.7.2",
4+
"version": "0.7.3",
55
"type": "module",
66
"scripts": {
77
"dev": "vite",
@@ -14,7 +14,7 @@
1414
"@dnd-kit/sortable": "^10.0.0",
1515
"@dnd-kit/utilities": "^3.2.2",
1616
"@tanstack/react-virtual": "^3.13.18",
17-
"@tauri-apps/api": "^2",
17+
"@tauri-apps/api": "^2.10.1",
1818
"@tauri-apps/plugin-clipboard-manager": "^2.3.2",
1919
"@tauri-apps/plugin-notification": "^2.3.3",
2020
"@tauri-apps/plugin-opener": "^2",

0 commit comments

Comments
 (0)