Mobile app shell
A phone-first layout with a sticky top bar, four tab screens, and a bottom navigation bar.
Designed at 360–430px first and framed as a phone on larger screens. Includes a bottom tab bar with aria-current, safe-area insets for installed web apps, and four example screens (home cards, a search list, an activity feed and a profile with accessible switches). No router dependency — tabs are component state.
- react
- mobile
- pwa
- bottom-nav
- tailwind
This preview is the template's actual file tree and source code — exactly what is copied into a new project. Codexa does not publish screenshots or mock-ups of templates; run the project to see it rendered.
Files13 files
import { useState } from "react";
const items = ["Onboarding checklist", "Invoices", "Team directory", "Release notes", "Support inbox", "Settings"];
export function Search() {
const [q, setQ] = useState("");
const results = items.filter((i) => i.toLowerCase().includes(q.toLowerCase()));
return (
<div>
<label className="sr-only" htmlFor="search">
Search
</label>
<input id="search" type="search" value={q} onChange={(e) => setQ(e.target.value)} placeholder="Search" className="w-full rounded-xl border border-slate-300 px-4 py-3 text-base" autoComplete="off" />
<ul className="mt-4 divide-y divide-slate-100">
{results.map((r) => (
<li key={r} className="py-3 text-sm">
{r}
</li>
))}
{results.length === 0 ? <li className="py-6 text-center text-sm text-slate-500">No results</li> : null}
</ul>
</div>
);
}
Dependencies
Documented from the template's package.json. The runtime has a prebuilt dependency set for Vite + React + TypeScript, so installs are fast.
| Package | Version |
|---|---|
| react | ^19.1.0 |
| react-dom | ^19.1.0 |
| vite | ^6.3.0 |
| @vitejs/plugin-react | ^4.4.0 |
| tailwindcss | ^4.1.0 |
| @tailwindcss/vite | ^4.1.0 |
| typescript | ^5.8.0 |
How it runs
- Framework
- Vite + React + TypeScript
- Dev command
- npm run dev
- Build command
- npm run build
- Output directory
- dist
- Port
- 5173
- Opens at
- /
- Difficulty
- beginner
Projects run in an isolated sandbox with a live preview. Read the projects documentation for details on settings, snapshots and deployment.
Need the raw data? GET /api/v1/templates/vite-react-mobile-shell returns this template with its files.
Build on Mobile app shell
Create a free account, start from this template, and ask the AI agent to turn it into your app.