feat: mobile UI overhaul — iPhone-style app grid, icon-only tab bar, fullscreen app sessions
- Add AppIconGrid: 4-column swipeable icon grid with page dots for My Apps on mobile - Tab bar: remove text labels, square icon-only buttons (w-14 h-14), doubled padding - Hide tab bar and top context tabs when app session is open - App session header hidden on mobile, replaced with floating glass close button - App sessions now render fullscreen on mobile without nav chrome Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
7288bff6e0
commit
6bd515cb82
@@ -91,8 +91,16 @@
|
||||
<p class="text-white/70">{{ t('apps.noResults', { query: searchQuery }) }}</p>
|
||||
</div>
|
||||
|
||||
<!-- Apps Grid -->
|
||||
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4 pb-6">
|
||||
<!-- Mobile: iPhone-style icon grid -->
|
||||
<div class="md:hidden">
|
||||
<AppIconGrid
|
||||
:apps="filteredPackageEntries as [string, PackageDataEntry][]"
|
||||
@go-to-app="goToApp"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<!-- Desktop: Card grid -->
|
||||
<div class="hidden md:grid grid-cols-2 lg:grid-cols-3 gap-4 pb-6">
|
||||
<AppCard
|
||||
v-for="([id, pkg], index) in filteredPackageEntries"
|
||||
:key="id"
|
||||
@@ -147,6 +155,7 @@ import { useServerStore } from '@/stores/server'
|
||||
import { useAppLauncherStore } from '@/stores/appLauncher'
|
||||
import type { PackageDataEntry } from '@/types/api'
|
||||
import AppCard from './apps/AppCard.vue'
|
||||
import AppIconGrid from './apps/AppIconGrid.vue'
|
||||
import AppsUninstallModal from './apps/AppsUninstallModal.vue'
|
||||
import { useAppsActions } from './apps/useAppsActions'
|
||||
import {
|
||||
|
||||
Reference in New Issue
Block a user