Welcome to Affino
Affino provides framework-agnostic UI cores paired with lightweight adapters for Vue 3 and React 18. Build intent-aware menus, high-performance virtualization, and spreadsheet-grade selection without compromising on accessibility or control.
- Live demos: https://affino.dev
- GitHub: https://github.com/affinio/affinio
Architecture
Every Affino primitive follows a core + adapter pattern:
- Core packages — Pure TypeScript logic, zero framework deps, full test coverage
- Framework adapters — Thin reactive wrappers for Vue and React
This keeps the state machines portable while letting you stay in your framework's idioms.
Packages
Menu System
| Package | Description | Version |
|---|---|---|
| @affino/menu-core | Headless menu engine with diagonal pointer prediction, keyboard nav, nested submenus | |
| @affino/menu-vue | Vue 3 adapter with renderless components and controller hooks | |
| @affino/menu-react | React 18 adapter mirroring the Vue API surface |
Virtualization (Coming Soon)
| Package | Description |
|---|---|
| @affino/virtualization-core | High-performance virtual scrolling engine |
Selection (Coming Soon)
| Package | Description |
|---|---|
| @affino/selection-core | Spreadsheet-grade cell selection with keyboard/mouse navigation |
Getting Started
bash
# Menu (Vue)
npm install @affino/menu-vue
# Menu (React)
npm install @affino/menu-reactSee Menu Getting Started for full setup.
Snapshot preview
The block below is a static rendering of the default glassmorphic menu skin used in the demos. It is decorative only.