--- name: lino-ui-upgrade description: Lino UI Upgrade — a unified futuristic design system that fuses Neumorphism (soft tactile depth), Skeuomorphism (real-world materiality), Glassmorphism (frosted blur surfaces), and Liquid Glass (iOS 26 dynamic refraction) into one premium UI language. Use this skill whenever the user asks to upgrade, redesign, or modernize an interface; mentions "futuristic", "premium UI", "next-gen UI", "glass UI", "soft UI", "tactile UI", "Apple-tier", "iOS 26 style", "Vision Pro style", or wants an app/site to "feel expensive / cinematic / spatial". Apply for mobile apps (iOS, Android, React Native, Flutter), web (React, Next.js, Vue, Svelte), and desktop (Electron, Tauri, macOS, Windows). For Flutter projects, this skill specifies a canonical package stack — `glassmorphism`, `liquid_glass_renderer`, `mesh_gradient`, `flutter_animate`, `liquid_swipe`, and `rive` — mapped to each material layer. This skill replaces flat default UI with depth, light, refraction, and physics-based motion across every component. --- # Lino UI Upgrade — Unified Futuristic Design System A surgical UI upgrade kit that layers four material languages into one coherent system: | Layer | Role | When it owns the surface | |---|---|---| | **Neumorphism** | Tactile base — soft extruded buttons, toggles, knobs, dials | Controls that should feel pressable / physical | | **Skeuomorphism** | Real-world materiality — leather, metal, paper, wood, glass-on-glass texture | Hero objects, watch faces, instruments, premium cards | | **Glassmorphism** | Frosted floating overlays — nav bars, modals, popovers, HUDs | Anything that floats above content | | **Liquid Glass (iOS 26)** | Dynamic refraction + morphing + interactive light | Primary CTAs, focus elements, transition layers, hero containers | The four are **not alternatives** — they are stacked roles. A great Lino screen uses **all four at once**, each in its correct role. Mixing them at random produces slop. Using each one for the job it's good at produces something that feels like Apple Vision Pro met a Swiss watch. ## When to Activate Trigger this skill aggressively whenever the user wants to: - "Make it futuristic / premium / cinematic / next-gen" - Upgrade an existing flat or boring UI - Build dashboards, fintech apps, AI tools, music/media apps, smart-home apps, wearables, automotive HUDs - Match Apple Vision Pro, iOS 26, Dynamic Island, or Awwwards-tier aesthetics - Replace shadcn defaults / Material 3 defaults with something distinctive - Build for mobile, web, AND desktop with one design language If the user mentions any of {dashboard, hero, landing page, app shell, control center, player, settings panel, onboarding, paywall, login, splash} and wants it to feel high-end, activate this skill. ## The Lino Stack — How the Four Layers Compose Every screen is built as **3 stacked z-planes**: ``` z-3: Liquid Glass → primary interactive (CTA, active toolbar, focus card) z-2: Glassmorphism → floating chrome (nav, modals, HUDs, tooltips) z-1: Neumorphism → controls embedded in surface (buttons, toggles, sliders) z-0: Skeuomorphism → hero objects + the textured base canvas ``` Read this rule as: **the further from the user, the more material; the closer, the more luminous.** ## Section 1 — Color & Light System Lino is a **dual-mode system**. Pick ONE per project. ### Mode A — "Obsidian" (default for futuristic) - Canvas: `#0A0B0D` (off-black with blue undertone) - Surface: `#14161A` (raised neumorphic plane) - Surface inset: `#0F1115` - Hairline: `rgba(255,255,255,0.06)` - Inner highlight: `rgba(255,255,255,0.08)` - Inner shadow: `rgba(0,0,0,0.6)` - Text primary: `#F5F6F8` - Text secondary: `#9095A0` - Accent (pick one only): Electric Cyan `#5EE2FF`, Plasma Violet `#8B7CFF`, Solar Amber `#FFB454`, or Mint Photon `#5EFFB6` ### Mode B — "Pearl" (default for tactile / wellness / premium consumer) - Canvas: `#ECEEF1` (warm pearl) - Surface raised: `#F4F6F8` - Surface inset: `#E4E7EB` - Hairline: `rgba(15,20,30,0.08)` - Inner highlight: `rgba(255,255,255,0.9)` - Inner shadow: `rgba(150,160,180,0.35)` - Text primary: `#11151B` - Text secondary: `#5A6473` - Accent: same options as Obsidian, used sparingly ### Banned colors Pure `#000`, pure `#FFF` for surfaces, AI purple/blue gradients, more than one accent per screen, neon outer glows, oversaturated default Tailwind palette. ## Section 2 — Neumorphism Layer (the tactile base) Use for: buttons, toggles, sliders, knobs, segmented controls, search inputs, dial widgets, settings rows. ### The dual-shadow formula Every neumorphic element gets **two shadows simultaneously** — one light from top-left, one dark from bottom-right. ```css /* Obsidian mode — raised */ .neu-raised { background: #14161A; border-radius: 20px; box-shadow: -6px -6px 14px rgba(255,255,255,0.04), 6px 6px 14px rgba(0,0,0,0.55); } /* Obsidian mode — inset (pressed / active) */ .neu-inset { background: #14161A; border-radius: 20px; box-shadow: inset -4px -4px 10px rgba(255,255,255,0.04), inset 4px 4px 10px rgba(0,0,0,0.55); } /* Pearl mode — raised */ .neu-raised-pearl { background: #ECEEF1; box-shadow: -6px -6px 14px rgba(255,255,255,0.9), 6px 6px 14px rgba(150,160,180,0.35); } ``` ### Rules - Light source is always **top-left at 315°**. Never rotate it across components — inconsistent lighting destroys the illusion. - Background of the neumorphic element **must equal** the parent surface color. Different colors break the "extruded from the surface" effect. - Press state = swap raised → inset. Animate over 120ms with `cubic-bezier(0.32, 0.72, 0, 1)`. - Never put a neumorphic element on a glass / blurred background. It needs an opaque parent. - Border-radius must be at least 16px — neumorphism collapses at sharp corners. ### Tailwind variant ```tsx ``` ## Section 3 — Skeuomorphism Layer (the hero materials) Use sparingly — **one skeuomorphic hero per screen, max**. Use for: watch faces, music players' vinyl, camera shutters, instrument dials, premium card mockups, the "physical" thing your app is replacing. ### The four real materials Lino supports **Brushed metal** — subtle horizontal noise + soft gradient + 1px inner highlight at the top edge. ```css background: linear-gradient(180deg, #2A2D33 0%, #1B1D21 100%), url('data:image/svg+xml;utf8,'); background-blend-mode: overlay; box-shadow: inset 0 1px 0 rgba(255,255,255,0.12), 0 20px 40px rgba(0,0,0,0.4); ``` **Glass-over-glass** (skeuo crystal) — a real-world lens cap effect using `backdrop-filter: blur()` + a radial highlight on top. ```css position: relative; background: rgba(255,255,255,0.04); backdrop-filter: blur(20px) saturate(140%); border: 1px solid rgba(255,255,255,0.12); border-radius: 28px; &::before { content: ''; position: absolute; inset: 0; background: radial-gradient(120% 80% at 30% 0%, rgba(255,255,255,0.18), transparent 60%); border-radius: inherit; pointer-events: none; } ``` **Soft leather / paper** — fine grain noise + warm tone + inset shadow at edges. Use SVG noise, not images. **Polished ceramic** — for wellness/health apps. Smooth radial gradient + diffuse soft shadow + zero hairlines. ### Rules - Skeuomorphic objects **must cast a real shadow on the canvas below**. Always include a soft drop shadow (40-60px blur, 30% opacity, offset Y +20). - Add a **single specular highlight** at the top — this is what makes it read as a physical object. - Never apply skeuomorphism to chrome (nav, buttons in toolbars). It belongs on content. - One material per screen. Brushed metal + leather + glass-over-glass on the same view = costume party. ## Section 4 — Glassmorphism Layer (the floating chrome) Use for: top navs, side panels that overlay content, modals, popovers, tooltips, command palettes, floating action menus, HUDs over media. ### The four glass strengths ```tsx // Whisper — barely visible, for ambient HUDs
// Standard — nav bars, toolbars // Strong — modals, command palettes // Crystal — splash overlays, hero scrims ``` ### Rules — these are the difference between premium glass and slop - **Always pair** `backdrop-blur` with `saturate(140-180%)`. Without saturation boost, blurred content looks washed out and dead. - **Always include the inner top highlight**: `inset 0 1px 0 rgba(255,255,255,0.15)`. This is the edge refraction. Skipping it makes the glass look flat. - **Never** put glass on a flat solid background — it needs busy content behind it (image, gradient, scrolling list) or there's nothing to refract. - **Never** apply backdrop-blur to scrolling containers — only to fixed/sticky elements. Causes catastrophic mobile FPS drop. - Border must use `rgba(255,255,255, X)` — never solid gray. The whole point is light passing through the edge. ### Glass over hero image — the canonical Lino nav ```tsx ``` ## Section 5 — Liquid Glass Layer (the interactive light) This is the **top-of-stack** material — primary CTAs, focus elements, the active tab in a tab bar, the morphing element during a transition. It's glassmorphism + reactive light + spring physics. ### What makes Liquid Glass different from Glassmorphism | Glassmorphism | Liquid Glass | |---|---| | Static blur | Dynamic refraction that **reacts to cursor / touch** | | Fixed shape | **Morphs** between shapes during state changes | | Single layer | Has **inner gloss + edge refraction + ambient color pickup** | | `backdrop-blur` | `backdrop-blur` + `displacement` + `radial highlight that follows pointer` | ### Native iOS 26 (use when available) ```swift Button("Continue") { /* */ } .buttonStyle(.glassProminent) .glassEffect(.regular.tint(.cyan).interactive(), in: .capsule) ``` ### Web / React equivalent ```tsx function LiquidGlassButton({ children }: { children: React.ReactNode }) { const ref = useRef