DESIGN.md · Analysis

Cinejoy

cinejoy.to · 24 Aug 2026 · 47 colors · Montserrat, Inter

Cinejoy

A free streaming platform for movies and TV shows with a cinematic, dark-mode-first interface. Cinejoy combines deep purples, vibrant lime accents, and glassmorphic cards to create an immersive entertainment discovery experience.

Colors

surface#04120b
surface-dim#050505
surface-bright#1d1728
surface-container-lowest#0a0a0a
surface-container-low#131829
surface-container#1c243c
surface-container-high#251e32
surface-container-highest#302741
on-surface#756790
on-surface-variant#5b627b
inverse-surface#f2f2f2
inverse-on-surface#000000
outline#2b344e
outline-variant#444b64
surface-tint#95ff50
primary#95ff50
on-primary#000000
primary-container#5fb82c
on-primary-container#ffffff
inverse-primary#43861e
secondary#7a6bae
on-secondary#ffffff
secondary-container#5a4e8c
on-secondary-container#e0d7ff
tertiary#c9ffab
on-tertiary#000000
tertiary-container#3f8a1d
on-tertiary-container#ffffff
error#ff6b6b
on-error#ffffff
error-container#8b0000
on-error-container#ffcccc
primary-fixed#c9ffab
primary-fixed-dim#95ff50
on-primary-fixed#1c243c
on-primary-fixed-variant#356916
secondary-fixed#e0d7ff
secondary-fixed-dim#7a6bae
on-secondary-fixed#1d1728
on-secondary-fixed-variant#5a4e8c
tertiary-fixed#c9ffab
tertiary-fixed-dim#5fb82c
on-tertiary-fixed#050505
on-tertiary-fixed-variant#3f8a1d
background#04120b
on-background#756790
surface-variant#3c324f

Typography

display
fontFamily: Montserrat · fontSize: 60px · fontWeight: 700 · lineHeight: 68px · letterSpacing: -0.04em
headline-lg
fontFamily: Montserrat · fontSize: 40px · fontWeight: 600 · lineHeight: 48px · letterSpacing: -0.02em
headline-md
fontFamily: Montserrat · fontSize: 28px · fontWeight: 600 · lineHeight: 36px · letterSpacing: -0.01em
title-lg
fontFamily: Inter · fontSize: 20px · fontWeight: 600 · lineHeight: 28px · letterSpacing: 0em
body-lg
fontFamily: Inter · fontSize: 18px · fontWeight: 400 · lineHeight: 28px · letterSpacing: 0.01em
body-md
fontFamily: Inter · fontSize: 16px · fontWeight: 400 · lineHeight: 24px · letterSpacing: 0em
label-md
fontFamily: Inter · fontSize: 14px · fontWeight: 600 · lineHeight: 20px · letterSpacing: 0.01em
label-sm
fontFamily: Inter · fontSize: 12px · fontWeight: 500 · lineHeight: 16px · letterSpacing: 0.02em

Design guidance

Overview

Cinejoy is a free streaming platform designed for cinephiles and casual viewers seeking an immersive, discovery-first experience. The design language embraces a "Cinematic Glassmorphism" aesthetic—layered frosted-glass surfaces floating over a deep, atmospheric dark background, punctuated by a vibrant lime-green accent (#95FF50) that evokes the energy of cinema marquees and modern tech interfaces. The brand personality is sophisticated yet approachable: it treats content discovery as an art form, not a transaction. The UI whispers rather than shouts, using depth, blur, and subtle color shifts to guide attention without overwhelming. Voice: conversational, knowledgeable, never condescending. Example: "Discover what's trending tonight—or dive into a curated collection from your favorite studios."

Colors

The color system is anchored in a deep, cool-toned dark mode (surface #04120b, near-black #050505) that serves as a canvas for cinematic imagery. Primary accent is a vivid lime-green (#95FF50)—the brand's signature call-to-action color, used on play buttons, active navigation, and key interactive elements. This high-contrast accent ensures CTAs remain legible and clickable even over complex hero imagery. Secondary accent is a muted purple (#7a6bae, #5a4e8c) that appears in pill buttons, dividers, and subtle UI chrome, creating a sophisticated secondary layer without competing with the primary. Tertiary (#3f8a1d, #5fb82c) supports status indicators and success states. The surface stack progresses from the deepest container-lowest (#0a0a0a, used for modals and overlays) through mid-tone cont

Typography

The type system pairs Montserrat (headlines, display) with Inter (body, labels), creating a hierarchy that balances editorial gravitas with technical clarity. Montserrat's geometric warmth anchors hero content and section titles, while Inter's neutrality ensures readability in dense UI. Display (60px, 700 weight, -0.04em tracking) is reserved for hero movie titles and brand moments; headline-lg (40px, 600 weight) for section headers like "Trending Movies"; headline-md (28px, 600 weight) for subsections; title-lg (20px, 600 weight, Inter) for card titles. Body-lg (18px, 400 weight) is used for descriptive text over hero imagery; body-md (16px, 400 weight) for standard UI copy. Label-md (14px, 600 weight, 0.01em tracking) and label-sm (12px, 500 weight, 0.02em tracking) handle buttons, badge

Layout

The layout follows a 12-column fluid grid with a max-width of 1280px, allowing content to breathe on desktop while remaining responsive on mobile. The page rhythm is built on a semantic spacing scale: xs (4px) for micro-interactions, sm (12px) for component padding, md (24px) for section gutters and card padding, lg (40px) for major section separation, and xl (64px) for hero-to-content transitions. Hero sections occupy full viewport height with a semi-transparent overlay (rgba(0, 0, 0, 0.3)) to ensure text legibility over imagery. Content rows (trending movies, browse by provider) use lg spacing (40px) between sections. Cards are laid out in responsive grids: 4 columns on desktop, 2 on tablet, 1 on mobile, with md (24px) gaps. The gutter (24px) is consistently applied to all container edge

Elevation & Depth

Depth is conveyed through a layered glassmorphic stack rather than traditional shadows. Level 1 (Base): The background is a dynamic aurora gradient (purples, deep blues, blacks) with subtle grain texture, creating atmospheric depth. Level 2 (Standard Cards): backdrop-filter: blur(20px), background: rgba(29, 23, 40, 0.6), border: 1px solid rgba(255, 255, 255, 0.1), box-shadow: 0 3px 8px rgba(0, 0, 0, 0.15). This creates a frosted-glass effect that feels both ethereal and tactile. Level 3 (Elevated/Modals): backdrop-filter: blur(40px), background: rgba(10, 10, 10, 0.9), border: 1px solid rgba(25

Shapes

The shape philosophy is "Soft-Technical Minimalism"—rounded corners are used strategically to soften the interface without sacrificing clarity. Buttons and pills use full border-radius (9999px) to create a friendly, approachable feel that contrasts with the dark, cinematic background. Cards and containers use lg (1rem / 16px) radius for a balanced, modern appearance. Input fields and smaller UI elements use DEFAULT (0.5rem / 8px) radius for subtle definition. Media cards use md (0.75rem / 12px) to maintain visual hierarchy without appearing too soft. The rationale: full-radius buttons act as v

Components

Action Elements Buttons are the primary interaction pattern. The primary button (Play, Watch Now) uses background: {colors.primary} (#95ff50), text-color: {colors.on-primary} (black), typography: label-md, rounded: full, padding: 12px 24px, height: 48px, and box-shadow: 0 3px 8px rgba(0, 0, 0, 0.15). On hover, background shifts to #c9ffab (primary-fixed) with a smooth transition: all 200ms ease-out. Secondary buttons use background: rgba(255, 255, 255, 0.1), text-color: {colors.primary}, border: 1px solid rgba(255, 255, 255, 0.2), and the same rounded/padding/height. On hover, background becomes rgba(255, 255, 255, 0.15) and border becomes rgba(255, 255, 255, 0.3). Pill buttons (genre filters, provider tabs) use background: rgba(60, 50, 79, 0.7), rounded: full, padding: 8px 16px, and a

Do's and Don'ts

**Do**

  • Do use the lime-green primary (#95ff50) exclusively for CTAs, active states, and brand moments—never dilute it with secondary uses.
  • Do apply backdrop-filter: blur(20px) to all glass surfaces to maintain the frosted-lens aesthetic and ensure layered depth.
  • Do pair Montserrat headlines with Inter body text to create editorial authority without sacrificing UI clarity.
  • Do use the full rounded-radius (9999px) on all buttons to create visual anchors that pop against the dark background.
  • Do maintain generous spacing (lg: 40px between sections) to emphasize the cinematic, gallery-like nature of content discovery.
  • Do include 1px borders at rgba(255, 255, 255, 0.1) on all glass surfaces to define edges without harsh contrast.

**Don't**

  • Don't use the primary accent (#95ff50) for body text, backgrounds, or non-interactive elements—reserve it for CTAs only.
  • Don't apply heavy drop shadows (box-shadow: 0 20px 60px) that contradict the glassmorphic aesthetic; use soft shadows (0 3px 8px) or glow effects instead.
  • Don't mix rounded-radius values arbitrarily; stick to the defined scale (sm, DEFAULT, md, lg, xl, full) to maintain visual consistency.
  • Don't reduce padding or spacing to cram more content; the generous white-space is essential to the brand's cinematic, premium feel.