lupine.web
Version:
lupine.web is a extremely fast, small size and lightweight frontend framework, using React TSX syntax.
67 lines (47 loc) • 2.63 kB
Markdown
**lupine.web** is a React-like, extremely fast, small-size, and lightweight frontend framework designed for modern web development. It focuses on performance, simplicity, and a full-stack experience when paired with `lupine.api`.
We believe in keeping things simple. `lupine.web` has **zero external dependencies**, resulting in a tiny bundle size and lightning-fast load times. It uses TSX syntax, so if you know React, you already feel at home.
Forget about setting up complex CSS loaders or external styling libraries. `lupine.web` comes with a powerful, built-in CSS-in-JS solution.
- **Scoped Styles**: Styles are automatically scoped to your components to prevent collisions.
- **Nesting Support**: Write cleaner CSS with nested selectors (e.g., `&:hover`, `& > span`).
- **Theming**: Native support for light/dark modes and custom themes.
```tsx
const MyButton = (props) => (
<button
css={{
backgroundColor: 'blue',
color: 'white',
'&:hover': { backgroundColor: 'darkblue' },
[]: { width: '100%' },
}}
>
{props.children}
</button>
);
```
Our functional router is designed for flexibility and control.
- **Route Guards**: Easily implement authentication checks or permissions.
- **Nested Routes**: Organize your application with sub-routers for modular architecture.
- **SSR Ready**: Routes work seamlessly on both server and client.
```typescript
const pageRouter = new PageRouter();
// Middleware/Guard example
pageRouter.setFilter(async (props) => {
if (!checkAuth(props)) return <Redirect to='/login' />;
return null; // Pass
});
pageRouter.use('/dashboard/*', DashboardRouter);
```
Visual performance is critical. `lupine.web` is built with SSR in mind from day one.
- **No Flashing**: Content is rendered on the server, ensuring users see the page immediately.
- **SEO Friendly**: Fully customizable Metadata and Open Graph (OG) tags for social sharing.
- **Hydration**: The client takes over smoothly without re-rendering the entire tree.
### 🌍 Internationalization (i18n)
Go global with ease. Built-in support for multi-language applications allows you to switch languages dynamically without complex configuration.
### 🛠️ Environment Configuration
Manage your application environments efficiently. `lupine.web` supports loading environment variables (from `.env` files via `lupine.api`) and injecting strictly filtered configurations into the frontend.