feat: PWA support + mobile-responsive layout + QR code to open Atlas on phone

Made-with: Cursor
This commit is contained in:
2026-03-02 20:56:20 -08:00
parent 585343968e
commit 3896eb671c
6 changed files with 181 additions and 9 deletions

View File

@@ -351,7 +351,7 @@ export function AtlasChat({ projectId }: AtlasChatProps) {
)}
{/* Input bar */}
<div style={{ padding: "14px 32px 22px", flexShrink: 0 }}>
<div style={{ padding: "14px 32px max(22px, env(safe-area-inset-bottom))", flexShrink: 0 }}>
<div style={{
display: "flex", gap: 8, padding: "5px 5px 5px 16px",
background: "#fff", border: "1px solid #e0dcd4", borderRadius: 10,

View File

@@ -129,15 +129,30 @@ export function ProjectShell({
return (
<>
<div style={{ display: "flex", height: "100vh", background: "#f6f4f0", overflow: "hidden" }}>
<style>{`
@media (max-width: 768px) {
.vibn-left-sidebar { display: none !important; }
.vibn-right-panel { display: none !important; }
.vibn-tab-bar { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.vibn-tab-bar a { padding: 10px 14px !important; font-size: 0.75rem !important; }
.vibn-project-header { padding: 12px 16px !important; }
.vibn-page-content { padding-bottom: env(safe-area-inset-bottom); }
}
@media (max-width: 480px) {
.vibn-tab-bar a { padding: 10px 10px !important; }
}
`}</style>
<div style={{ display: "flex", height: "100dvh", background: "#f6f4f0", overflow: "hidden" }}>
{/* Left sidebar */}
<VIBNSidebar workspace={workspace} />
<div className="vibn-left-sidebar" style={{ display: "flex" }}>
<VIBNSidebar workspace={workspace} />
</div>
{/* Main column */}
<div style={{ flex: 1, display: "flex", flexDirection: "column", minWidth: 0 }}>
{/* Project header */}
<div style={{
<div className="vibn-project-header" style={{
padding: "18px 32px",
borderBottom: "1px solid #e8e4dc",
display: "flex",
@@ -189,7 +204,7 @@ export function ProjectShell({
</div>
{/* Tab bar */}
<div style={{
<div className="vibn-tab-bar" style={{
padding: "0 32px",
borderBottom: "1px solid #e8e4dc",
display: "flex",
@@ -219,13 +234,13 @@ export function ProjectShell({
</div>
{/* Page content */}
<div style={{ flex: 1, overflow: "auto" }}>
<div className="vibn-page-content" style={{ flex: 1, overflow: "auto" }}>
{children}
</div>
</div>
{/* Right panel */}
<div style={{
<div className="vibn-right-panel" style={{
width: 230,
borderLeft: "1px solid #e8e4dc",
background: "#fff",