Spaces:
Sleeping
ReelShield β Wireframes & Design Documentation
High-fidelity mockups: every numbered screen below has a matching standalone HTML render under
mockups/β open any of those files in a browser for a production-quality view of the same screen described here. The ASCII below conveys structural intent; the HTML conveys finished fidelity.
Screen 1: Home / Search
Mockup:
mockups/01-home.html
ββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β [Skip to content] β
β β
β π¬ ReelShield β
β AI-powered analysis β Gemini + TMDB [β] β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Search for a movie β β
β β ββββββββββββββββββββββββββββββββββββββββββββ β β
β β β e.g. Interstellar, The Dark Knight... β β β
β β ββββββββββββββββββββββββββββββββββββββββββββ β β
β β 3 results found β β
β β ββββββββ ββββββββ ββββββββ β β
β β βposterβ βposterβ βposterβ β β
β β β β β β β β β β
β β βTitle β βTitle β βTitle β β β
β β β 1997 β β 2023 β β 2018 β β β
β β ββββββββ ββββββββ ββββββββ β β
β ββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β β Generating content warnings... β
β β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Design decisions:
- Search is full-width and immediately visible β primary action
- Poster grid for results: visual recognition faster than text lists
- Spinner with status messages prevents perceived abandonment during AI call
- β button top-right: discoverable but not distracting for primary users
Screen 2: Movie Loaded (Desktop β 2-column)
Mockup:
mockups/02-movie-loaded.html
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β οΈ PHOTOSENSITIVE EPILEPSY WARNING β
β This film contains flashing lights... [specific notes] β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
ββββββββββββββββββββββββββββ ββββββββββββββββββββββββββββββββββ
β π« Content Warnings β β π¬ Ask Questions β
β β β β
β Titanic (1997) β β ββββββββββββββββββββββββββββ β
β [PG-13] [β οΈ Predicts β β β Ask me anything about β β
β R/NC-17 Β· 87%] β β β this film. β β
β [194 min] [Drama] β β β β
β β β [You: Who is Rose?] β β
β Our ML classifier β β β β
β estimates this film's β β [AI: Rose is a young...] β β
β profile better matches β β β β
β R/NC-17 than its PG-13 β ββββββββββββββββββββββββββββ β
β rating. β β β β
β ββββββββββββββββββββββββ β β ββββββββββββββββββββ [Send] β β
β β Overview blurb text β β β ββββββββββββββββββββ β β
β β from TMDB... β β ββββββββββββββββββββββββββββββββββ
β ββββββββββββββββββββββββ β
β β
β Spoiler mode: Off [β] β
β β
β β οΈ Flashing Lights Mild β
β β Confirmed β
β Brief flashing... β
β β
β Violence & Gore Moderateβ
β β Confirmed β
β Drowning, injuries... β
β β
β Sexual Content Moderate β
β β Confirmed β
β β
β Language Mild β
β β Confirmed β
β β
β Self-Harm None β
β β Confirmed absent β
β β
β π¬ Content twins β
β (Adult drama cluster) β
β ββββββ ββββββ ββββββ β
β β B β β C β β D β β
β βΞ.42β βΞ.51β βΞ.63β β
β ββββββ ββββββ ββββββ β
ββββββββββββββββββββββββββββ
Design decisions:
- Epilepsy banner always renders above everything else β critical safety info
- 2-column layout: warnings left, chat right β parallel use without scrolling
- Warnings sorted by severity descending (most severe first)
- Color-coded left border: red=severe, orange=moderate, green=mild, grey=none
- β Confirmed in green builds trust; ~% in grey signals uncertainty
- Spoiler toggle above warnings: visible but default off
- MPA-disagreement badge sits next to the TMDB cert badge in amber when the LR classifier disagrees β₯70% confident; rendered in the same row as the cert so the comparison is the headline, not a footnote
- Content twins (K-Means neighbors) render below warnings as a small grid; Ξ = Euclidean distance in 9-dim severity space, so smaller Ξ = closer content-profile match
Screen 3: Mobile (Single Column)
βββββββββββββββββββββββββββ
β π¬ ReelShield β
β [β]β
βββββββββββββββββββββββββββ€
β β οΈ EPILEPSY WARNING β
β Brief flashing lights β
β during sinking sequence β
βββββββββββββββββββββββββββ€
β Search for a movie β
β βββββββββββββββββββββββ β
β β e.g. Titanic... β β
β βββββββββββββββββββββββ β
βββββββββββββββββββββββββββ€
β π« Content Warnings β
β Titanic (1997) β
β [PG-13][194 min][Drama] β
β Overview blurb... β
β β
β β οΈ Flashing Lights Mild β
β β Confirmed β
β β
β Violence & Gore Moderateβ
β β Confirmed β
β ... β
βββββββββββββββββββββββββββ€
β π¬ Ask Questions β
β βββββββββββββββββββββββ β
β β Chat history... β β
β βββββββββββββββββββββββ β
β ββββββββββββββββ[Send] β β
β ββββββββββββββββ β β
βββββββββββββββββββββββββββ
Responsive behavior: At <768px, columns stack. Epilepsy banner stays pinned to top. Chat moves below warnings.
Screen 4: Prompt Editor Modal
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β βοΈ Edit AI Prompt β
β β
β Customize how Gemini generates content warnings. β
β Required placeholders: {title} {year} {rating} β
β {genres} {overview} {keywords} β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β You are a film content expert... β β
β β β β
β β Movie: "{title}" ({year}) β β
β β MPA Rating: {rating} β β
β β ... β β
β β Return ONLY valid JSON... β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β [Save Prompt] [Reset to Default] [Cancel] β
β β
β β Prompt updated. New searches will use this. β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Screen 5: Find Movies (Discover)
Mockup:
mockups/03-discover.html
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Find Movies β
β Choose your mood and the warnings you want to avoid β we'll find β
β the best matches from our movie cache. β
β β
β ββββββββββββββββββββββββββββββββββββ ββββββββββββββββββββββββββ β
β β How are you feeling? (optional) β β Warnings to avoid β β
β ββββββββββββββββββββββββββββββββββββ€ β (pick up to 3) β β
β β [ Light and easy ] β ββββββββββββββββββββββββββ€ β
β β [ Some emotion, nothing heavy] β β β Violence & Gore β β
β β [ Can handle intense ] β β β Self-Harm & Suicide β β
β β [ Feel something deep ] β β β Miscarriage β β
β β [ Comfort and familiarity ] β β β Sexual Content β β
β β (one selected = highlighted; β β β Animal Abuse β β
β β click again to deselect) β β β Substance Use β β
β ββββββββββββββββββββββββββββββββββββ β β Language β β
β β β Horror / Intensity β β
β ββββββββββββββββββββββββββββββββββββ β β Flashing Lights β β
β β π You're feeling X β we'll β β β "Pick up to 3" β β
β β look for Y β ββββββββββββββββββββββββββ β
β β Tones that fit: [whimsical]β¦ β β
β β Tones to skip: [grim]β¦ β β
β ββββββββββββββββββββββββββββββββββββ β
β β
β [ Find Movies ] β
β β
β ββββββββ ββββββββ ββββββββ ββββββββ ββββββββ β
β β Safe β β Safe β β Safe β β Safe β β Safe β β color-coded badge β
β β 100 β β 92 β β 88 β β 80 β β 72 β per match quality β
β βposterβ βposterβ βposterβ βposterβ βposterβ β
β βTitle β βTitle β βTitle β βTitle β βTitle β β
β β Mood β β Mood β β Mood β β Mood β β Mood β β mood fit % β
β β β¦ β β β¦ β β β¦ β β β¦ β β β¦ β β
β ββββββββ ββββββββ ββββββββ ββββββββ ββββββββ β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Design decisions:
- Two-column layout puts emotional state and content rules side-by-side β neither is more important
- Mood is optional; warnings-to-avoid is the load-bearing filter
- Cap of 3 avoid categories is a soft constraint announced via
aria-live, not a disabled checkbox β keeps the UI accessible - Live mood-profile box updates as the user picks moods, so they understand what's about to be searched
- Results are scored 0β100 (safer = higher) with mood-fit shown separately
Screen 6: Group Watch Finder
Mockup:
mockups/04-group-watch.html
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β π₯ Group Watch Finder β
β Add everyone in your group, merge their sensitivities, and find β
β movies safe for all. β
β β
β βββββββββββββββββββββββββββββββββββ βββββββββββββββββββββββββββββββ β
β β Group Members β β Group Profile β β
β βββββββββββββββββββββββββββββββββββ€ βββββββββββββββββββββββββββββββ€ β
β β β’ Sarah β β β This group needs movies β β
β β Violence, Animal abuse β β free of violence, animal β β
β β β’ Leo β β β abuse, and miscarriage. β β
β β Miscarriage, Self-harm β β β β
β β β β All sensitivities: β β
β β βββββββββββββββββββββββββββββ β β [Violence] [Animal abuse] β β
β β β Member nameβ¦ β β β [Miscarriage] [Self-harm] β β
β β βββββββββββββββββββββββββββββ β β β β
β β Their sensitivities: β β Avoid genres: β β
β β β Violence β Self-Harm β β [Horror] [War] β β
β β β Animal β Sexual β β β β
β β β Substance β Language β β Suggested genres: β β
β β β Horror β Flashing β β [Family] [Comedy] [Animation] β
β β β Miscarriage β βββββββββββββββββββββββββββββββ β
β β [+ Add Member] β β
β β β Find Movies β
β β [β Merge Profiles] β Mood: [Any mood βΌ] β
β βββββββββββββββββββββββββββββββββββ Platform (optional): [____] β
β β
β [ Find Movies ] β
β β
β 3 movie(s) safe for everyone in the group: β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β
β β 100/100 β β 95/100 β β 88/100 β β
β β poster β β poster β β poster β β
β β Title β β Title β β Title β β
β β Why safeβ¦ β β Why safeβ¦ β β Why safeβ¦ β β
β β One concern β β One concern β β One concern β β
β ββββββββββββββββ ββββββββββββββββ ββββββββββββββββ β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Design decisions:
- Member-builder on the left, profile-and-results on the right β read left-to-right
- Merge button stays disabled until β₯1 member is added (prevents empty-state confusion)
- Privacy: rejection messages refer to "the group", never name the individual member who triggered them
- Each result card includes both
why_safeandone_concernso the group can debate trade-offs
Screen 7: My Watchlist
Mockup:
mockups/05-watchlist.html
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β π My Watchlist β
β Movies are ranked safest-to-most-triggering based on your β
β sensitivity profile. β
β β
β [ β Rank by My Sensitivities ] β
β β
β ββββββββββββ ββββββββββββ ββββββββββββ ββββββββββββ β
β β β β β β β‘ β β β β’ β β β β£ β β β
β β poster β β poster β β poster β β poster β β
β β Title β β Title β β Title β β Title β β
β β 1997 β β 2019 β β 2023 β β 2017 β β
β β π’ Safe β βπ‘ Mild β βπ‘ Mild β βπ΄ Strong β β
β β No trigβ¦ β βBriefβ¦ β βSomeβ¦ β βHeavyβ¦ β β
β ββββββββββββ ββββββββββββ ββββββββββββ ββββββββββββ β
β β
β (Rank β in top-left, β in top-right to remove) β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Design decisions:
- Rank badge (top-left) is the headline β at a glance the user sees what's safest tonight
- Color-coded watchlist badge (π’ / π‘ / π΄) mirrors the severity scale used on the warning cards
- Remove (β) is one click but lives in the top-right corner so it isn't fat-fingered while scanning
- Re-ranking is explicit, not automatic β running Gemini on the whole list is costly, so the user opts in
Screen 8: Reviews & Ratings (inline on movie page)
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β Reviews & Ratings β
β β
β From critics & aggregators: β
β ββββββββββ βββββββββββββββ ββββββββββββββ β
β β IMDb β β Rotten β β Metacritic β β
β β 7.8/10 β β Tomatoes 89%β β 74/100 β β
β ββββββββββ βββββββββββββββ ββββββββββββββ β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β Critic Reviews β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β A. Critic β "An absorbing, careful filmβ¦" β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β User Reviews β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β Your rating β β
β β β
β
β
β
β β β
β β Your review β β
β β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β β Share your thoughts... β β β
β β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β β
β β [ Post Review ] β β
β β (or: "Log in to post a review." if not authenticated) β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β @maria Β· β
β
β
β
β
Β· 2 days ago β β
β β Watched with my kids and felt prepared for every sceneβ¦ β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
β β @jordan Β· β
β
β
ββ Β· 1 week ago β β
β β Flashing-lights warning was spot-on, missed a couple of cutsβ¦ β β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Design decisions:
- Three trust layers stacked: external aggregators β critic reviews β user reviews β heaviest signal at top
- Star widget is keyboard-accessible (each star is a button with
aria-label) - Login gate is in-place: an inline note replaces the form, so the user isn't surprised by a redirect
- User reviews show username + star rating + relative timestamp β matches conventions users already know
Screen 9: Sensitivity Profile Editor (Modal)
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β π‘οΈ My Sensitivity Profile β
β β
β Select the content categories you want to be warned β
β about. This personalizes your watchlist ranking β
β and badges. β
β β
β βββββββββββββββββββββββ βββββββββββββββββββββββ β
β β β Violence & Gore β β β Substance Use β β
β β β Self-Harm/Suicide β β β Language β β
β β β Miscarriage β β β Horror / Intensityβ β
β β β Sexual Content β β β Flashing Lights β β
β β β Animal Abuse β β β β
β βββββββββββββββββββββββ βββββββββββββββββββββββ β
β β
β [ Save Profile ] [ Cancel ] β
β β
β β Profile saved. β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Design decisions:
- Modal carries
role="dialog"andaria-modal="true"β screen readers announce it as an interrupting layer - Two-column grid keeps all 9 categories on one screen without scrolling on desktop
- "Save" is the primary button (filled), "Cancel" is the ghost button β visual weight matches intent
- Saved state announced via
aria-live="polite"so assistive tech users get confirmation without focus shift
Style Guide
Colors
| Token | Hex | Usage |
|---|---|---|
--bg |
#0f1117 |
Page background |
--surf |
#1a1d27 |
Card/panel surface |
--surf2 |
#242736 |
Input fields, nested surfaces |
--bdr |
#2e3347 |
Borders |
--text |
#e8eaf0 |
Primary text |
--muted |
#8891a8 |
Secondary text, labels |
--accent |
#6c8eff |
Primary interactive elements |
--mild |
#4caf50 |
Mild severity, confirmed absent |
--moderate |
#ff9800 |
Moderate severity |
--severe |
#f44336 |
Severe severity |
--epi-bdr |
#ff2222 |
Epilepsy banner border |
Typography
- Font:
'Segoe UI', system-ui, sans-serif - Heading: 800 weight
- Body: 400 weight, 1.6 line-height
- Code/prompt:
'Courier New', monospace
Spacing
- Base unit: 8px
- Card padding: 24px
- Gap between cards: 20px
- Border radius: 8-12px
Accessibility Rationale
- Dark theme chosen: reduces eye strain for photosensitive users (Persona 2)
- 3px focus outlines: clearly visible on dark backgrounds
aria-live="polite"on search results and warnings: non-disruptive announcementsrole="alert"on epilepsy banner: immediate announcement, highest priority- Color contrast targets WCAG AA (4.5:1 normal text, 3:1 UI components)
Audit evidence
A Lighthouse accessibility audit run against the live container on
2026-05-15 scores 100 / 100 β all 26 audits pass, zero element
findings. The full report (raw JSON + HTML + a remediation-history
README documenting the four fixes that took the page from an initial
89/100 to 100/100) is committed under accessibility/
so the run is reproducible.