react-router-framework-mode
Build full-stack React applications using React Router's framework mode. Use when configuring routes, working with loaders and actions, handling forms, handling navigation, pending/optimistic UI, error boundaries, or working with react-router.config.ts or other react router conventions.
Works with
---
name: react-router-framework-mode
description: Build full-stack React applications using React Router's framework mode. Use when configuring routes, working with loaders and actions, handling forms, handling navigation, pending/optimistic UI, error boundaries, or working with react-router.config.ts or other react router conventions.
license: MIT
---
# React Router Framework Mode
Framework mode is React Router's full-stack development experience with file-based routing, server-side, client-side, and static rendering strategies, data loading and mutations, and type-safe route module API.
## When to Apply
- Configuring new routes (`app/routes.ts`)
- Loading data with `loader` or `clientLoader`
- Handling mutations with `action` or `clientAction`
- Navigating with `<Link>`, `<NavLink>`, `<Form>`, `redirect`, and `useNavigate`
- Implementing pending/loading UI states
- Configuring SSR, SPA mode, or pre-rendering (`react-router.config.ts`)
- Implementing authentication
## References
Load the relevant reference for detailed guidance on the specific API/concept:
| Reference | Use When |
| ------------------------------------ | ----------------------------------------------------- |
| `references/routing.md` | Configuring routes, nested routes, dynamic segments |
| `references/route-modules.md` | Understanding all route module exports |
| `references/special-files.md` | Customizing root.tsx, adding global nav/footer, fonts |
| `references/data-loading.md` | Loading data with loaders, streaming, caching |
| `references/actions.md` | Handling forms, mutations, validation |
| `references/navigation.md` | Links, programmatic navigation, redirects |
| `references/pending-ui.md` | Loading states, optimistic UI |
| `references/error-handling.md` | Error boundaries, error reporting |
| `references/rendering-strategies.md` | SSR vs SPA vs pre-rendering configuration |
| `references/middleware.md` | Adding middleware (requires v7.9.0+) |
| `references/sessions.md` | Cookie sessions, authentication, protected routes |
| `references/type-safety.md` | Auto-generated route types, type imports, type safety |
## Version Compatibility
Some features require specific React Router versions. **Always verify before implementing:**
```bash
npm list react-router
```
| Feature | Minimum Version | Notes |
| ----------------------- | --------------- | ----------------------------- |
| Middleware | 7.9.0+ | Requires `v8_middleware` flag |
| Core framework features | 7.0.0+ | loaders, actions, Form, etc. |
## Critical Patterns
These are the most important patterns to follow. Load the relevant reference for full details.
### Forms & Mutations
**Search forms** - use `<Form method="get">`, NOT `onSubmit` with `setSearchParams`:
```tsx
// ✅ Correct
<Form method="get">
<input name="q" />
</Form>
// ❌ Wrong - don't manually handle search params
<form onSubmit={(e) => { e.preventDefault(); setSearchParams(...) }}>
```
**Inline mutations** - use `useFetcher`, NOT `<Form>` (which causes page navigation):
```tsx
const fetcher = useFetcher();
const optimistic = fetcher.formData?.get("favorite") === "true" ?? isFavorite;
<fetcher.Form method="post" action={`/favorites/${id}`}>
<button>{optimistic ? "★" : "☆"}</button>
</fetcher.Form>;
```
See `references/actions.md` for complete patterns.
### Layouts
**Global UI belongs in `root.tsx`** - don't create separate layout files for nav/footer:
```tsx
// app/root.tsx - add navigation, footer, providers here
export default function App() {
return (
<div>
<nav>...</nav>
<Outlet />
<footer>...</footer>
</div>
);
}
```
**Use nested routes** for section-specific layouts. See `references/routing.md`.
### Route Module Exports
**`meta` uses `loaderData`**, not deprecated `data`:
```tsx
// ✅ Correct
export function meta({ loaderData }: Route.MetaArgs) { ... }
// ❌ Wrong - `data` is deprecated
export function meta({ data }: Route.MetaArgs) { ... }
```
See `references/route-modules.md` for all exports.
## Further Documentation
If anything related to React Router is not covered in these references, you can search the official documentation:
https://reactrouter.com/docsMore Frontend Frameworks skills
frontend-design
anthropics/skills
Guidance for distinctive, intentional visual design when building new UI or reshaping an existing one. Helps with aesthetic direction, typography, and making choices that don't read as templated defaults.
design-taste-frontend
leonxlnx/taste-skill
Anti-slop frontend skill for landing pages, portfolios, and redesigns. The agent reads the brief, infers the right design direction, and ships interfaces that do not look templated. Real design systems when applicable, audit-first on redesigns, strict pre-flight check.
hyperframes-creative
heygen-com/hyperframes
Non-animation creative direction for HyperFrames videos. Use for design spec (frame.md / design.md) handling, palettes, typography, narration, beat planning, audio-reactive visuals, composition patterns, and brand / style decisions. For atomic motion patterns and scene blueprints, use `hyperframes-animation`.

