11 KiB
OrangeTV A2 redesign spec
Date: 2026-04-09
Status: approved and locked for planning
Chosen direction: A2 cinematic lounge
Summary
OrangeTV will be redesigned around the A2 direction: a sharper, warmer, projection-inspired interface that treats the app like a screening room rather than a generic streaming dashboard.
The redesign will not introduce a new information architecture or a new framework. It will keep the current React + Tailwind CSS stack, preserve existing product flows, and refactor the visual system through a new design token layer and updated component styling.
The visual reset is defined by these decisions:
- Remove pill-shaped controls.
- Reduce rounded-card language across the app.
- Stop using bordered boxes as the default way to separate sections.
- Use spacing, typography, alignment, and hairline rules as the primary structure system.
- Use one restrained warm accent family instead of blue-glass UI styling.
- Keep the player and source diagnostics visually integrated with the rest of the product.
Product intent
The redesigned product should feel:
- Cinematic, but not theatrical
- Technical, but not dense
- Premium, but not glossy
- Quietly authored, rather than algorithmically generated
The interface should support three main product behaviors without visual conflict:
- Browsing and resuming movies, series, anime, and variety content
- Switching sources and reading playback quality information
- Moving between media browsing and live TV without the interface feeling like two separate products
Non-goals
- No framework migration
- No redesign of core navigation architecture
- No decorative glassmorphism pass
- No “luxury landing page” treatment that harms usability
- No new visual system based on pills, large shadows, or saturated gradients
Design principles
1. Structure through rhythm, not containers
Sections should usually be separated by vertical spacing and a single rule. Full bordered cards should only appear when elevation or grouping is functionally meaningful.
Implications:
- Home rows sit directly on the page surface
- Sidebar, search, and player modules should rely on rails and dividers first
- Overuse of rounded panels is explicitly out of scope
2. Sharp controls over soft controls
Interactive controls should read like links, rails, tabs, and plain icon actions rather than pills or floating capsules.
Implications:
- Tab systems should move away from capsule switches where practical
- Filter chips should become underlined or rule-separated options
- Source actions should read as technical controls, not “friendly buttons”
3. Warm dark palette with one accent family
The product should abandon pale blue backgrounds and bright blue emphasis. The new base is warm charcoal with restrained copper as the primary accent family.
Implications:
- White is replaced by warm off-white
- Grays stay warm, not blue-gray
- Status cues remain visible but subdued
4. Typography carries identity
Identity should come from type, spacing, and hierarchy more than from decorative surfaces.
Implications:
- Lead headings use a tighter, characterful sans display style
- Section labels are small, uppercase, and dry
- Diagnostics use monospace
5. Player and browse surfaces belong to the same system
The playback page, source diagnostics, and browse pages should feel like one product, not two design systems stitched together.
Implications:
- Source metrics use the same token set as the home and browse pages
- The player page should inherit the same rule, spacing, and text system
- Live TV should feel like a programming rail, not a separate admin utility
Token architecture
The redesign will use a three-layer token model.
Layer 1: foundation tokens
Raw scales and primitives only.
color.neutral.*color.accent.copper.*space.*radius.*font.family.*font.size.*duration.*ease.*opacity.*z.*
Layer 2: semantic tokens
The primary implementation layer for this refactor.
surface.canvassurface.stagesurface.railsurface.overlayline.subtleline.frametext.primarytext.secondarytext.quiettext.inverseaccent.primarysignal.stablesignal.warnsignal.errorloading.shimmer
Layer 3: component alias tokens
Only where exact reuse is needed.
nav.link.defaultnav.link.activehero.frame.linequeue.row.ruleposter.frame.shadowsource.metric.valuesource.metric.labelplayer.overlay.scrimfield.linefield.fill-muted
Component alias tokens should be limited. The token system must not become a second component API.
Token values
These values are the initial locked direction and may be tuned slightly during implementation, but the relationships must remain intact.
Color foundation
-
color.neutral.950:#0B0909 -
color.neutral.900:#151212 -
color.neutral.800:#1E1817 -
color.neutral.700:#2B211F -
color.neutral.600:#4A3A34 -
color.neutral.100:#F0E6D9 -
color.accent.copper.700:#7F4E3C -
color.accent.copper.600:#9E654A -
color.accent.copper.500:#B37456
Semantic color mapping
surface.canvas:color.neutral.950surface.stage:color.neutral.900surface.rail:color.neutral.700text.primary:color.neutral.100text.secondary: rgba warm off-white at reduced opacitytext.quiet: muted uppercase utility textaccent.primary:color.accent.copper.500line.subtle: warm light line at low opacityline.frame: warm light line slightly stronger thanline.subtle
Radius scale
radius.0:0radius.xs:2pxradius.sm:4pxradius.md:8pxradius.lg:12px
Rules:
- Everyday utility UI should stop at
8px 12pxis reserved for poster clipping or larger visual surfaces- No token should enable pill controls
Spacing scale
space.2:8pxspace.3:12pxspace.4:16pxspace.5:20pxspace.6:24pxspace.8:32pxspace.10:40px
Rules:
- Prefer larger vertical spacing between sections to avoid boxed grouping
- Section spacing should do more work than background surfaces
Motion tokens
duration.fast:160msduration.base:220msduration.slow:320msease.standard:cubic-bezier(0.16, 1, 0.3, 1)
Rules:
- Animate with transform and opacity only
- Avoid buoyant, playful motion
- Hover should feel precise, not inflated
Typography system
Display
Use a characterful sans stack for major headings.
Preferred direction:
Cabinet Grotesk,Geist,"Segoe UI",sans-serif
Use cases:
- Home lead headings
- Player title anchors
- Major browse page anchors
Title and section
Use a tighter sans hierarchy for section headings and labels.
Use cases:
- Row headings
- Module titles
- Search result section headings
Utility and diagnostics
Use monospace for technical content.
Use cases:
- Source latency
- Throughput
- Quality labels
- Search streaming progress
- Runtime and timing metadata where machine-like reading helps
Typography behavior rules
- Lead headlines should be strong, not oversized for effect
- Section labels should stay small and uppercase
- Body copy should remain readable on dark surfaces
- Serif is not part of the A2 direction
Surface system
Page surface
The page background is a warm near-black canvas. Most pages should read as open surfaces, not layered card stacks.
Lead frame
The “hero frame” is a major signature of the system.
Definition:
- Artwork-driven
- Uses an inset rule
- Uses internal safe area for copy
- Does not rely on a rounded card shell
- Does not use glow-heavy chrome
Rails
Rails are the main grouping pattern for technical or utility content.
Use cases:
- Source metrics
- Continue watching lists
- Search filter bars
- Sidebar navigation
Rules
Hairline dividers are a primary structural token.
Use cases:
- Between sections
- Between technical rows
- Under headers
- Around frame insets
Component guidance
Sidebar
Current problem:
- Glassy bordered surface
- Soft active pills
- Generic icon/nav treatment
Target behavior:
- Reduce background chrome
- Use one vertical structure with rules and text emphasis
- Active state should use weight and a restrained marker, not a bubble
Mobile header and bottom nav
Current problem:
- Rounded control feeling
- Too much reliance on soft surfaces
Target behavior:
- One thin separating rule
- Plain icon anchors with stronger spacing
- Active state through tone and alignment, not filled capsules
Home page
Current problem:
- Row after row of similar cards on a pale background
- Weak hierarchy between “continue watching” and category rows
Target behavior:
- A stronger lead section
- Rows sit directly on the page
- Section distinction comes from copy, spacing, and poster rhythm
Browse pages
Current problem:
- Filter and category controls feel soft and generic
- Content grid is visually detached from the page
Target behavior:
- Filters become line-based or underlined controls
- Grid feels placed on a stage, not inside a frosted container
Search page
Current problem:
- Search state and filters risk drifting into utility clutter
Target behavior:
- Search input is flatter and more direct
- Streaming state is shown with subtle utility styling
- Filter UI avoids chips and pills
Player page
Current problem:
- Source switching area reads like a card stack
- Too much shape repetition between player, detail block, and source list
Target behavior:
- Source selection becomes a technical rail with rules
- Diagnostics are aligned, restrained, and monospace-led
- Playback surface is visually integrated with the rest of the system
Live page
Current problem:
- Risk of feeling like a separate tool
Target behavior:
- Treat live channels like programming rails
- Keep status and EPG information technical but visually consistent
Explicit rejections
The implementation must avoid these patterns:
- Pill-shaped buttons or tabs
- Rounded box grouping as the default section pattern
- Generic glassmorphism
- Blue accent reintroduction
- Thick shadows as hierarchy
- Decorative gradient text
- Overscaled hover motion
- “Friendly” streaming app chrome that conflicts with the sharper A2 system
Refactor boundaries
In scope for the redesign refactor:
- Token system creation
- Global color/type/spacing reset
- Navigation restyling
- Home page restyling
- Browse page restyling
- Search page restyling
- Player page restyling
- Live page restyling
- Shared component restyling
Out of scope unless separately planned:
- Functional product redesign
- Search architecture rewrite
- Player engine rewrite
- Data model changes
- New feature design unrelated to the visual system
Recommended implementation order
- Create foundation tokens
- Create semantic tokens
- Map component aliases only where needed
- Refactor layout shell and navigation
- Refactor shared content components such as poster cards and row containers
- Refactor high-traffic pages: home, browse, search
- Refactor player and live pages
- Add state styling for loading, empty, and error views in the new system
Approval state
This design is locked for planning based on user approval of:
- The
A2visual direction - The A2 token-system screen
- The corrected hero-frame spacing demonstration
Next step after user review of this document:
- Write the implementation plan for the refactor