Files
Primora/project_frontend.md
T
2026-04-10 12:03:31 +02:00

258 lines
4.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# PRIMORA — Frontend System Architecture (SolidJS / React Hybrid)
A modern, developer-focused UI system for Primora.
---
## Table of Contents
- [🧠 Frontend Philosophy](#-frontend-philosophy)
- [⚙️ Tech Stack](#-tech-stack)
- [Default Stack (Primary)](#default-stack-primary)
- [Fallback Stack](#fallback-stack)
- [UI Libraries](#ui-libraries)
- [🎨 UI System Design](#-ui-system-design)
- [Core Visual Language](#core-visual-language)
- [Color System](#color-system)
- [Grid System](#grid-system)
- [Core UI Components](#core-ui-components)
- [⚡ Interaction Design](#-interaction-design)
- [♿ Accessibility](#-accessibility)
- [📱 Responsiveness](#-responsiveness)
- [🧠 Component Strategy](#-component-strategy)
- [🚀 Summary](#-summary)
---
## 🧠 Frontend Philosophy
- UI is a **control surface**, not decoration
- Everything is data-first
- Navigation is project-centric
- Components are reusable system blocks
- Minimal runtime overhead
---
## ⚙️ Tech Stack
### Default Stack (Primary)
- SolidJS (preferred)
- Vite
- TypeScript (strict mode)
- Tailwind CSS
### Fallback Stack
React is ONLY used when:
- The ecosystem requires it
- A third-party library is React-only
- Migration constraints exist
---
## UI Libraries
- Ark UI (Solid)
- shadcn-solid (preferred implementation layer)
- shadcn/ui (React fallback)
---
## 🎨 UI System Design
### Core Visual Language
- Dark-first UI system
- Blue accent: `#19a3d9`
- Card-based layout system
- Soft borders, minimal shadows
- High contrast typography hierarchy
### Color System
```css
:root {
--bg-main: #131315;
--bg-subtle: #19191c;
--bg-elevated: #1d1d21;
--surface-2: #2d2d31;
--surface-3: #4a4a4d;
--border: #252529;
--border-strong: #3e3e42;
--text-primary: #ededf0;
--text-secondary: #bebec4;
--text-muted: #5b5b5f;
--accent: #19a3d9;
}
```
**Typography**
- Primary: Inter
- Brand: Aeonik Pro
- Mono: Fira Code
**Hierarchy:**
- H1: product pages
- H2: sections
- H3: cards
- body: default
- small: metadata
### 🧱 Layout System
**Global Layout Pattern**
```
Sidebar → Context Header → Content Grid → Detail Panels
```
### Grid System
- 12-column responsive grid
- Auto-fit dashboard cards
```css
.grid {
grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}
```
**Spacing System**
- Base unit: 8px
- Card padding: 1624px
- Section spacing: 2440px
**Border Radius**
```css
:root {
--radius: 12px;
}
```
Applied consistently across:
- Cards
- Inputs
- Buttons
- Modals
### 🧩 Core UI Components
1. **Dashboard Card**
- Used for:
- Metrics
- Stats
- Charts
- Structure:
- Label (muted)
- Value (primary)
- Optional chart
2. **Sidebar Navigation**
- Persistent left layout
- Icon + label
- Active state highlight (accent background)
- Collapsible groups
**Active state:**
```css
background: rgba(25, 163, 217, 0.12);
border-left: accent line;
```
3. **Tables**
- Used for:
- Users
- Logs
- Files
- API keys
- Design:
- Minimal borders
- Hover highlight
- Compact spacing
- Fast scan readability
4. **File Explorer UI**
- Tree navigation (left)
- File list (center)
- Optional preview panel (right)
**Features:**
- Drag & drop upload
- Streaming upload
- Instant metadata fetch
5. **Charts**
- Minimal grid lines
- Single accent color
- No heavy gradients
- Focus on readability
6. **Buttons**
- **Primary:**
```css
background: #19a3d9;
color: white;
```
- **Secondary:**
```css
background: surface-based;
border: subtle border;
```
---
## ⚡ Interaction Design
- Hover: 150ms ease
- Modal open: 200ms
- No excessive animations
- Instant navigation priority
---
## ♿ Accessibility
**Mandatory Features:**
- Full ARIA labeling
- Keyboard navigation support
- Visible focus states
- Contrast compliance (WCAG AA minimum)
- Screen reader compatibility
---
## 📱 Responsiveness
- Mobile-first layout scaling
- Sidebar collapses into drawer
- Tables become stacked cards on small screens
- Charts remain responsive
---
## 🧠 Component Strategy
- Fully reusable primitives
- No page-specific UI components
- Composition over inheritance
- Predictable props structure
---
## 🚀 Summary
Primora frontend is:
A fast, accessible, system-driven developer UI built with SolidJS-first architecture and React compatibility fallback.
It prioritizes:
- Speed
- Clarity
- Accessibility
- Consistency
- Developer ergonomics