diff --git a/design/aeronet-visualization-DESIGN.md b/design/aeronet-visualization-DESIGN.md new file mode 100644 index 0000000..db60d40 --- /dev/null +++ b/design/aeronet-visualization-DESIGN.md @@ -0,0 +1,76 @@ +--- +version: "neuform-top-creators-featured" +name: "AeroNet Visualization" +description: "Aeronet Visualization Dashboard Section is designed for demonstrating application workflows and interface hierarchy. Key features include clear information density, modular panels, and interface rhythm. It is suitable for product showcases, admin panels, and analytics experiences." +colors: + primary: "#FFFFFF" + secondary: "#000000" + accent: "#FFFFFF" + background: "#FFFFFF" + surface: "#18181B" + text-primary: "#111827" + text-secondary: "#4B5563" + border: "#E5E7EB" +typography: + display-lg: + fontFamily: "Inter" + fontSize: "64px" + fontWeight: 500 + lineHeight: "1.04" + letterSpacing: "0" + body-md: + fontFamily: "Inter" + fontSize: "16px" + fontWeight: 400 + lineHeight: "1.6" + label-md: + fontFamily: "JetBrains Mono" + fontSize: "12px" + fontWeight: 600 + lineHeight: "1.2" +spacing: + base: "8px" + gap: "16px" + card-padding: "24px" + section-padding: "80px" +rounded: + card: "16px" + control: "8px" + pill: "9999px" +components: + card: + background: "Use the surface token with subtle borders and HTML-matched shadow depth" + radius: "Match the declared card radius token" + button: + background: "Use primary or accent colors for the main action" + radius: "Use the control or pill radius based on the source HTML" +--- +# AeroNet Visualization +Source: Neuform Featured templates from top creators. Author: Sourasith Phomhome (@madebysourasith). Views: 419; favorites: 14; remixes: 4. +Tags: dashboard, animated, threejs, charts, navigation, links, support, effect. +## Overview +Aeronet Visualization Dashboard Section is designed for demonstrating application workflows and interface hierarchy. Key features include clear information density, modular panels, and interface rhythm. It is suitable for product showcases, admin panels, and analytics experiences. + +AeroNet Mapping Framework Metrics Docs Log In Deploy Node Planet Core Uninterrupted worldwide relay networks driving next-generation infrastructure. 19.5 TB/s +924 820 GB/s +418 Relay established successfully. 2.41 PB/s… +## Composition +Use the attached HTML reference as the source of truth. Preserve the visible hierarchy, first-screen composition, section rhythm, density, and interaction tone before adapting copy or content. +Key visible headings include: Planet Core. +## Colors +Anchor the palette in primary #FFFFFF, secondary #000000, accent #FFFFFF, background #FFFFFF, surface #18181B, text-primary #111827. Keep background, surface, text, and border roles distinct so generated layouts retain the same contrast pattern as the source. +## Typography +Use Inter for display moments and Inter for body copy unless the HTML clearly demands a compatible fallback. Labels and technical metadata should use JetBrains Mono or an equivalent mono face. +## Layout +Keep spacing deliberate and stable. Favor the same grid direction, max-width behavior, card density, and responsive stacking seen in the HTML. Do not replace distinctive source structures with generic SaaS sections. +## Components +Dashboard, chart, and data panels should preserve their compact operational hierarchy, nested surfaces, and metric emphasis. +## Motion +Preserve existing motion cues such as masked reveals, staggered entrance, hover lift, scroll-triggered transitions, and ambient movement. Keep easing smooth and restrained. +## WebGL & Effects + +If the source includes canvas, WebGL, Three.js, gradients, particles, or atmospheric effects, rebuild them as supporting layers behind the content. Keep effects performant, responsive, and secondary to the interface. + +## Guardrails +- Do not flatten the source into a generic card grid. +- Do not swap the color mode unless the source clearly supports it. +- Preserve the first viewport signal, focal object, and visual density. +- Keep buttons, cards, and badges aligned to the same radius and border language. \ No newline at end of file diff --git a/design/nexus-capital-render-DESIGN.md b/design/nexus-capital-render-DESIGN.md new file mode 100644 index 0000000..c4bd5ce --- /dev/null +++ b/design/nexus-capital-render-DESIGN.md @@ -0,0 +1,76 @@ +--- +version: "neuform-top-creators-featured" +name: "Nexus Capital Render" +description: "Nexus Capital Feature Section is designed for highlighting product capabilities and value points. Key features include reusable structure, responsive behavior, and production-ready presentation. It is suitable for component libraries and responsive product interfaces." +colors: + primary: "#F2EAD3" + secondary: "#000000" + accent: "#F2EAD3" + background: "#000000" + surface: "#F2EAD3" + text-primary: "#FFFFFF" + text-secondary: "#A1A1AA" + border: "#27272A" +typography: + display-lg: + fontFamily: "Inter" + fontSize: "64px" + fontWeight: 500 + lineHeight: "1.04" + letterSpacing: "0" + body-md: + fontFamily: "Playfair Display" + fontSize: "16px" + fontWeight: 400 + lineHeight: "1.6" + label-md: + fontFamily: "JetBrains Mono" + fontSize: "12px" + fontWeight: 600 + lineHeight: "1.2" +spacing: + base: "8px" + gap: "16px" + card-padding: "24px" + section-padding: "80px" +rounded: + card: "16px" + control: "8px" + pill: "9999px" +components: + card: + background: "Use the surface token with subtle borders and HTML-matched shadow depth" + radius: "Match the declared card radius token" + button: + background: "Use primary or accent colors for the main action" + radius: "Use the control or pill radius based on the source HTML" +--- +# Nexus Capital Render +Source: Neuform Featured templates from top creators. Author: Meng To (@mengto). Views: 311; favorites: 22; remixes: 15. +Tags: feature, section, animated, bento, charts. +## Overview +Nexus Capital Feature Section is designed for highlighting product capabilities and value points. Key features include reusable structure, responsive behavior, and production-ready presentation. It is suitable for component libraries and responsive product interfaces. + +NEXUS WEALTH CORP. Beyond traditional equity. The multi-asset strategy. A dynamic portfolio framework where capital transitions seamlessly from baseline reserves to high-yield synthetic instruments. Drag the timeline to… +## Composition +Use the attached HTML reference as the source of truth. Preserve the visible hierarchy, first-screen composition, section rhythm, density, and interaction tone before adapting copy or content. +Key visible headings include: Beyond traditional equity. The multi-asset strategy.. +## Colors +Anchor the palette in primary #F2EAD3, secondary #000000, accent #F2EAD3, background #000000, surface #F2EAD3, text-primary #FFFFFF. Keep background, surface, text, and border roles distinct so generated layouts retain the same contrast pattern as the source. +## Typography +Use Inter for display moments and Playfair Display for body copy unless the HTML clearly demands a compatible fallback. Labels and technical metadata should use JetBrains Mono or an equivalent mono face. +## Layout +Keep spacing deliberate and stable. Favor the same grid direction, max-width behavior, card density, and responsive stacking seen in the HTML. Do not replace distinctive source structures with generic SaaS sections. +## Components +Dashboard, chart, and data panels should preserve their compact operational hierarchy, nested surfaces, and metric emphasis. +## Motion +Preserve existing motion cues such as masked reveals, staggered entrance, hover lift, scroll-triggered transitions, and ambient movement. Keep easing smooth and restrained. +## WebGL & Effects + +If the source includes canvas, WebGL, Three.js, gradients, particles, or atmospheric effects, rebuild them as supporting layers behind the content. Keep effects performant, responsive, and secondary to the interface. + +## Guardrails +- Do not flatten the source into a generic card grid. +- Do not swap the color mode unless the source clearly supports it. +- Preserve the first viewport signal, focal object, and visual density. +- Keep buttons, cards, and badges aligned to the same radius and border language. \ No newline at end of file diff --git a/design/summit-cloud-migration-platform-DESIGN.md b/design/summit-cloud-migration-platform-DESIGN.md new file mode 100644 index 0000000..eb51173 --- /dev/null +++ b/design/summit-cloud-migration-platform-DESIGN.md @@ -0,0 +1,76 @@ +--- +version: "neuform-staff-featured-2026-05-22" +name: "Summit — Cloud Migration Platform" +description: "Summit Cloud Pricing Section is designed for comparing plans and supporting conversion decisions. Key features include plan comparison blocks and conversion-oriented actions. It is suitable for subscription pricing pages and plan comparison experiences." +colors: + primary: "#2563EB" + secondary: "#050510" + accent: "#3B82F6" + background: "#050510" + surface: "#18181B" + text-primary: "#FFFFFF" + text-secondary: "#A1A1AA" + border: "#27272A" +typography: + display-lg: + fontFamily: "Inter" + fontSize: "64px" + fontWeight: 500 + lineHeight: "1.04" + letterSpacing: "0" + body-md: + fontFamily: "Inter" + fontSize: "16px" + fontWeight: 400 + lineHeight: "1.6" + label-md: + fontFamily: "JetBrains Mono" + fontSize: "12px" + fontWeight: 600 + lineHeight: "1.2" +spacing: + base: "8px" + gap: "16px" + card-padding: "24px" + section-padding: "80px" +rounded: + card: "23px" + control: "18px" + pill: "9999px" +components: + card: + background: "Use the surface token with subtle borders and HTML-matched shadow depth" + radius: "Match the declared card radius token" + button: + background: "Use primary or accent colors for the main action" + radius: "Use the control or pill radius based on the source HTML" +--- +# Summit — Cloud Migration Platform +Source: Neuform staff featured templates. Author: Vanh DesignCode (@vanh). Views: 161; favorites: 11; remixes: 3. +Tags: pricing, section, animated, cta, charts, billing. +## Overview +Summit Cloud Pricing Section is designed for comparing plans and supporting conversion decisions. Key features include plan comparison blocks and conversion-oriented actions. It is suitable for subscription pricing pages and plan comparison experiences. + +Summit Platform Solutions Pricing Docs Start Migration Now in General Availability Migrate to the cloud with confidence Automated discovery, dependency mapping, and zero-downtime migration for enterprise workloads. Move… +## Composition +Use the attached HTML reference as the source of truth. Preserve the visible hierarchy, first-screen composition, section rhythm, density, and interaction tone before adapting copy or content. +Key visible headings include: Migrate to the cloud with confidence; Discover untethered scalability. The platform built to dynamically map, migrate, and optimize your entire infrastructure without lifting a finger.; Architectural Clarity; Dynamic Scaling. +## Colors +Anchor the palette in primary #2563EB, secondary #050510, accent #3B82F6, background #050510, surface #18181B, text-primary #FFFFFF. Keep background, surface, text, and border roles distinct so generated layouts retain the same contrast pattern as the source. +## Typography +Use Inter for display moments and Inter for body copy unless the HTML clearly demands a compatible fallback. Labels and technical metadata should use JetBrains Mono or an equivalent mono face. +## Layout +Keep spacing deliberate and stable. Favor the same grid direction, max-width behavior, card density, and responsive stacking seen in the HTML. Do not replace distinctive source structures with generic SaaS sections. +## Components +Dashboard, chart, and data panels should preserve their compact operational hierarchy, nested surfaces, and metric emphasis. +## Motion +Preserve existing motion cues such as masked reveals, staggered entrance, hover lift, scroll-triggered transitions, and ambient movement. Keep easing smooth and restrained. +## WebGL & Effects + +If the source includes canvas, WebGL, Three.js, gradients, particles, or atmospheric effects, rebuild them as supporting layers behind the content. Keep effects performant, responsive, and secondary to the interface. + +## Guardrails +- Do not flatten the source into a generic card grid. +- Do not swap the color mode unless the source clearly supports it. +- Preserve the first viewport signal, focal object, and visual density. +- Keep buttons, cards, and badges aligned to the same radius and border language. \ No newline at end of file diff --git a/docs/superpowers/specs/2026-07-05-frontend-overhaul-design.md b/docs/superpowers/specs/2026-07-05-frontend-overhaul-design.md new file mode 100644 index 0000000..034071a --- /dev/null +++ b/docs/superpowers/specs/2026-07-05-frontend-overhaul-design.md @@ -0,0 +1,397 @@ +# Frontend Overhaul — IMPHNEN Dashboard + +**Date:** 2026-07-05 +**Status:** Spec (approved design, pre-implementation) + +--- + +## 1. Goals + +1. **Visual redesign** — Elevate the dashboard from "functional prototype" to "premium monitoring tool" using the Neuform-inspired dark design language (AeroNet, Nexus Capital, Summit references from `design/`). +2. **Code restructure** — Split oversized files, modularize CSS, eliminate inline styles, and add consistent state handling across all components. + +--- + +## 2. Scope + +Two sequential phases, both targeting the Leptos 0.9.0-alpha WASM frontend at `services/frontend/frontend/`. + +| Phase | Focus | Deliverables | +|-------|-------|-------------| +| **Fase 1** | Code Restructure | File splits, CSS modules, inline→classes, state consistency | +| **Fase 2** | Visual Redesign | Palette, layout, all panels, UI primitives | + +--- + +## 3. File Splitting (Fase 1) + +### 3.1 `message_card.rs` (453 lines → 4 files) + +| New file | Content | Lines (est.) | +|----------|---------|-------------| +| `message_card.rs` | Main component — card layout orchestration | ~100 | +| `message_embed.rs` | Discord embed rendering (title, fields, images, footer) | ~120 | +| `message_meta.rs` | Author row, timestamp, channel badge, AI status chip | ~100 | +| `message_actions.rs` | Reanalyze button, moderate action, expand/collapse | ~80 | + +### 3.2 `messages/mod.rs` (397 lines → 3 files) + +| New file | Content | Lines (est.) | +|----------|---------|-------------| +| `mod.rs` | Panel orchestrator — wires FilterBar + MessageList | ~60 | +| `filter_bar.rs` | Channel picker, search input, status filter chips, live count | ~150 | +| `message_list.rs` | Infinite scroll logic, pagination, skeleton/empty/error states | ~180 | + +### 3.3 `ws/socket.rs` (227 lines → 2 files) + +| New file | Content | Lines (est.) | +|----------|---------|-------------| +| `connection.rs` | WebSocket lifecycle (connect, reconnect, heartbeat, close) | ~120 | +| `handlers.rs` | Event dispatch — maps WS event types to signal updates | ~100 | + +### 3.4 Dashboard (`dashboard/mod.rs`, 276 lines) + +Already well-split (`stats_overview.rs`, `channel_summary_list.rs`, `user_summary_list.rs` are separate). Extract orchestrator wiring from `mod.rs` into a focused panel component. No further splitting needed. + +--- + +## 4. CSS Architecture (Fase 1) + +### 4.1 File Structure + +``` +src/styles/ +├── main.css @import hub — imported by index.html +├── tokens.css CSS custom properties (dark + light) +├── reset.css Reset, base elements, scrollbar, selection +├── utilities.css Utility classes (flex, gap, grid, w-full, etc.) +├── layout.css App shell, sidebar, topbar, content area, mobile tab +├── ui.css Button, card, input, select, modal, badge, +│ skeleton, tabs, scroll area, toast, status badge +├── messages.css Message card, feed, embed, image grid, filter bar +├── live.css Voice connection, speakers, visualizer, mic meter, +│ music player, screen share, recordings, waveform +├── dashboard.css Stats overview, channel/user summary lists +└── polish.css Particle background, theme toggle, mascot chatbot +``` + +### 4.2 Bundling + +`index.html` links to `src/styles/main.css`. Trunk resolves `@import` statements and bundles into a single CSS file in the build output. Ordering is guaranteed by `@import` sequence. + +### 4.3 Design Tokens (`tokens.css`) + +#### Dark theme (default — `:root` without attribute selector) + +```css +:root { + --surface-base: #050510; + --surface-raised: #0a0a1a; + --surface-overlay: #12122a; + --surface-container: #1a1a35; + --surface-border: rgba(255, 255, 255, 0.06); + --surface-hover: rgba(59, 130, 246, 0.06); + --surface-glass: rgba(5, 5, 16, 0.78); + + --text-primary: #f1f1f9; + --text-secondary: #9d9db5; + --text-tertiary: #5c5c78; + --text-inverse: #050510; + + --color-primary: #3b82f6; + --color-primary-hover: #60a5fa; + --color-primary-active: #2563eb; + --color-primary-muted: rgba(59, 130, 246, 0.12); + --gradient-primary: linear-gradient(135deg, #3b82f6 0%, #6366f1 100%); + --gradient-brand: linear-gradient(135deg, #3b82f6 0%, #5865f2 50%, #6366f1 100%); + + --color-success: #10b981; + --color-warning: #f59e0b; + --color-error: #ef4444; + --color-info: #3b82f6; + + --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.3); + --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.35); + --shadow-lg: 0 12px 40px rgba(0, 0, 0, 0.4); + + --radius-sm: 8px; + --radius-md: 12px; + --radius-lg: 16px; + --radius-xl: 23px; + --radius-pill: 9999px; + + --sidebar-width: 240px; + --header-height: 0px; /* header dihapus */ +} +``` + +#### Light theme (`[data-theme="light"]`) + +```css +[data-theme="light"] { + --surface-base: #f4f6fb; + --surface-raised: #ffffff; + --surface-overlay: #eeeff4; + --surface-container: #dde0e8; + --surface-border: rgba(0, 0, 0, 0.06); + --surface-hover: rgba(35, 161, 235, 0.05); + --surface-glass: rgba(255, 255, 255, 0.72); + + --text-primary: #0f172a; + --text-secondary: #475569; + --text-tertiary: #94a3b8; + --text-inverse: #ffffff; + + --color-primary: #2563eb; + --color-primary-hover: #3b82f6; + --color-primary-active: #1d4ed8; + --color-primary-muted: rgba(37, 99, 235, 0.1); + --gradient-primary: linear-gradient(135deg, #2563eb 0%, #6366f1 100%); + --gradient-brand: linear-gradient(135deg, #2563eb 0%, #5865f2 50%, #6366f1 100%); + + /* reuse same semantic tokens */ + --color-success: #10b981; + --color-warning: #f59e0b; + --color-error: #ef4444; + --color-info: #2563eb; + + --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.04); + --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.06); + --shadow-lg: 0 12px 40px rgba(0, 0, 0, 0.08); +} +``` + +--- + +## 5. Layout Architecture (Fase 2) + +### 5.1 Current → Proposed + +``` +// Current (app.rs) +app-shell +├── app-header (brand + ThemeToggle + WS status — redundant) +├── app-main +│ ├── app-sidebar (TabButton × 3 — no icons, inline styles) +│ └── app-content (tab panel) + +// Proposed +app-shell +├── app-sidebar +│ ├── brand (◉ IMPHNEN + "Guild Watcher" subtitle) +│ ├── nav (3 items with lucide icons + active indicator) +│ └── footer (WS status dot + compact ThemeToggle) +└── app-content + └── tab-panel (no header wrapper — full height) +``` + +### 5.2 Sidebar Specifics + +- **Width:** 240px, full viewport height, sticky/fixed +- **Brand area:** 60px tall, logo placeholder (◉) + "IMPHNEN" bold + subtitle "Guild Watcher" (JetBrains Mono 11px) +- **Nav items:** icon (lucide-leptos) + label, 40px tall, border-radius 10px on hover/active + - Active state: 3px left border indicator + `var(--surface-overlay)` background +- **Footer:** separated by a subtle divider, WS dot + status text + ThemeToggle icon-button +- **Mobile:** sidebar collapses or slides overlay, MobileTabBar at bottom + +### 5.3 Content Area + +- Full remaining width, scrollable, padding 24px (desktop) +- Max-width 1400px for readability +- No header at top — brand is in sidebar + +--- + +## 6. Components Redesign (Fase 2) + +### 6.1 Messages Panel + +**FilterBar:** +- **Channel picker:** `