323 lines
11 KiB
Markdown
323 lines
11 KiB
Markdown
# Reonomy Contact Extractor - Video Storyboard
|
||
|
||
**Duration:** 37 seconds (1100 frames @ 30fps)
|
||
**Resolution:** 1920 × 1080
|
||
**Style:** Product demo with Canvas Viewport technique (camera moves WITHIN screenshots)
|
||
|
||
---
|
||
|
||
## Scene 1: Title Card
|
||
**Frames:** 0–120 (4 seconds)
|
||
**Source:** Generated background (gradient)
|
||
|
||
### Visual Content
|
||
- Deep purple-to-indigo gradient background (`#0f172a → #1e1b4b → #0f172a`)
|
||
- Centered title: "🏢 Reonomy Contact Extractor"
|
||
- Subtitle below: "CRE Leads → Your CRM … On Demand"
|
||
|
||
### Motion
|
||
- **Title animation:** Fades in + slides up from 40px below (spring damping: 25)
|
||
- **Subtitle animation:** Same motion, delayed 25 frames (staggered entrance)
|
||
- **Background:** Subtle static gradient, no movement
|
||
|
||
### Typography
|
||
- Title: 72px, weight 800, white
|
||
- Subtitle: 28px, weight 400, slate-400 (`#94a3b8`)
|
||
|
||
### Transition Out
|
||
- Crossfade (20 frames overlap with next scene)
|
||
|
||
---
|
||
|
||
## Scene 2: Login
|
||
**Frames:** 110–260 (5 seconds)
|
||
**Source:** `02-login-filled.png` (Reonomy login page with email pre-filled)
|
||
|
||
### Visual Content
|
||
- Reonomy login modal showing:
|
||
- Logo at top
|
||
- "Log In" / "Sign Up" tabs
|
||
- "Sign in with Google" button
|
||
- "Sign in with Salesforce" button
|
||
- Email field showing `henry@realestateenhanced.com`
|
||
- Step badge in bottom-left: "1" + "Login to Reonomy"
|
||
|
||
### Motion (Canvas Viewport)
|
||
| Time | X | Y | Zoom | What's Visible |
|
||
|------|---|---|------|----------------|
|
||
| Start | 0.5 | 0.2 | 2.0× | Reonomy logo and top of login form |
|
||
| End | 0.5 | 0.7 | 2.5× | Login buttons and email field (zoomed tight) |
|
||
|
||
**Camera movement:** Slow vertical pan DOWN the login form, zooming IN as it descends to draw attention to the authentication area.
|
||
|
||
### Overlays
|
||
- Radial vignette (transparent center, 50% black at edges)
|
||
- Step badge animates in with spring (delay: 10 frames after scene start)
|
||
|
||
### Audio Cue (if added)
|
||
- Soft "whoosh" on scene entrance
|
||
|
||
---
|
||
|
||
## Scene 3: Search Interface
|
||
**Frames:** 250–400 (5 seconds)
|
||
**Source:** `04-search-results.png` (Reonomy home/search page)
|
||
|
||
### Visual Content
|
||
- Reonomy search interface showing:
|
||
- Navigation bar with "Saved Searches", "Data Upload"
|
||
- Hero section: "What would you like to search for today?"
|
||
- Large search input with placeholder text
|
||
- Illustrated cityscape background
|
||
- Step badge: "2" + "Search & Filter"
|
||
|
||
### Motion (Canvas Viewport)
|
||
| Time | X | Y | Zoom | What's Visible |
|
||
|------|---|---|------|----------------|
|
||
| Start | 0.0 | 0.0 | 1.8× | Top-left: nav bar and start of search area |
|
||
| End | 0.3 | 0.5 | 1.6× | Centered on search bar, slight pull-back to show context |
|
||
|
||
**Camera movement:** Diagonal drift from top-left corner toward center, slight zoom OUT to reveal the full search interface. Creates sense of "arriving" at the workspace.
|
||
|
||
### Overlays
|
||
- Same vignette
|
||
- Step badge with spring animation
|
||
|
||
---
|
||
|
||
## Scene 4: Property Selection
|
||
**Frames:** 390–530 (4.7 seconds)
|
||
**Source:** `05-property-detail.png` (Property detail page with satellite map)
|
||
|
||
### Visual Content
|
||
- Property detail page showing:
|
||
- Satellite/aerial view of property (Orlando, FL area)
|
||
- Yellow property boundary outline on map
|
||
- Address: "...od Bay Dr, Orlando, FL 32821"
|
||
- Map controls (zoom, rotate, layers)
|
||
- Mini map inset on right
|
||
- Step badge: "3" + "Select Property"
|
||
|
||
### Motion (Canvas Viewport)
|
||
| Time | X | Y | Zoom | What's Visible |
|
||
|------|---|---|------|----------------|
|
||
| Start | 0.3 | 0.0 | 1.6× | Top portion: property header and map top |
|
||
| End | 0.5 | 0.4 | 1.4× | Centered on satellite view, showing property outline |
|
||
|
||
**Camera movement:** Gentle drift down and right, slight zoom OUT. Mimics "exploring" the property details. The yellow boundary should be clearly visible mid-scene.
|
||
|
||
### Overlays
|
||
- Vignette
|
||
- Step badge
|
||
|
||
---
|
||
|
||
## Scene 5: Owner Tab
|
||
**Frames:** 520–660 (4.7 seconds)
|
||
**Source:** `06-owner-tab.png` (Property page with Owner tab visible)
|
||
|
||
### Visual Content
|
||
- Same property view but scrolled/panned to show:
|
||
- Satellite map (upper portion)
|
||
- Address visible
|
||
- Tab navigation at bottom: "Sales", "Debt", "Tax", "Demographics", "Notes"
|
||
- Owner tab should be highlighted/selected
|
||
- Step badge: "4" + "Owner Tab"
|
||
|
||
### Motion (Canvas Viewport)
|
||
| Time | X | Y | Zoom | What's Visible |
|
||
|------|---|---|------|----------------|
|
||
| Start | 0.5 | 0.2 | 1.5× | Map and upper property info |
|
||
| End | 0.6 | 0.5 | 1.8× | Lower portion with tabs visible, zoomed into Owner area |
|
||
|
||
**Camera movement:** Pan DOWN and slightly RIGHT while zooming IN. The motion "discovers" the Owner tab, guiding the viewer's eye to click target.
|
||
|
||
### Overlays
|
||
- Vignette
|
||
- Step badge
|
||
|
||
---
|
||
|
||
## Scene 6: Contact Extraction
|
||
**Frames:** 650–830 (6 seconds)
|
||
**Source:** `09-contact-modal.png` (Contact modal with phone numbers and emails)
|
||
|
||
### Visual Content
|
||
- Contact modal/panel showing:
|
||
- "Phone Numbers" header
|
||
- Multiple phone contacts with company names:
|
||
- 919-469-9553 (Greystone Property Management)
|
||
- 727-341-0186 (Seaside Villas Gulfport)
|
||
- 903-566-9506 (Apartment Income Reit, L.P.)
|
||
- 407-671-2400 (F.P. Management, Inc.)
|
||
- Property type pie chart visible in background
|
||
- Company name "INTERNATIONAL LLC +5 more companies"
|
||
- Step badge: "5" + "Extract Contacts"
|
||
|
||
### Motion (Canvas Viewport)
|
||
| Time | X | Y | Zoom | What's Visible |
|
||
|------|---|---|------|----------------|
|
||
| Start | 0.6 | 0.1 | 1.8× | Top of contact list, first phone number |
|
||
| End | 0.6 | 0.6 | 2.2× | Scrolled down, showing multiple contacts |
|
||
|
||
**Camera movement:** Vertical scroll DOWN through the contact list while zooming IN. This is the "money shot" — the viewer sees real contact data appearing. Slow, deliberate movement to let them read the numbers.
|
||
|
||
### Overlays
|
||
- Vignette
|
||
- Step badge
|
||
- **Key moment:** Camera should pause slightly on each phone number (achieved via easing, not literal pauses)
|
||
|
||
---
|
||
|
||
## Scene 7: Results Summary
|
||
**Frames:** 820–1100 (9.3 seconds)
|
||
**Source:** Generated (React components, not screenshot)
|
||
|
||
### Visual Content
|
||
|
||
#### Phase 1: Title (frames 820–870)
|
||
- "🎉 Contacts Extracted" title
|
||
- Spring animation entrance
|
||
|
||
#### Phase 2: Contact Lists (frames 870–980)
|
||
Two columns side by side:
|
||
|
||
**Left column — Phone Numbers (green accent)**
|
||
```
|
||
📞 Phone Numbers
|
||
┌─────────────────┐
|
||
│ 919-469-9553 │
|
||
│ 727-341-0186 │
|
||
│ 903-566-9506 │
|
||
│ 407-671-2400 │
|
||
│ 407-382-2683 │
|
||
└─────────────────┘
|
||
```
|
||
|
||
**Right column — Email Addresses (purple accent)**
|
||
```
|
||
📧 Email Addresses
|
||
┌──────────────────────────────┐
|
||
│ berrizoro@gmail.com │
|
||
│ aberriz@hotmail.com │
|
||
│ jasonhitch1@gmail.com │
|
||
│ albert@annarborusa.org │
|
||
│ albertb@sterlinghousing.com │
|
||
└──────────────────────────────┘
|
||
```
|
||
|
||
#### Phase 3: Stats (frames 980–1100)
|
||
Four stat counters across bottom:
|
||
|
||
| Stat | Value | Color |
|
||
|------|-------|-------|
|
||
| Contacts | 10 | Purple (`#6366f1`) |
|
||
| Phones | 5 | Green (`#10b981`) |
|
||
| Emails | 5 | Amber (`#f59e0b`) |
|
||
| Time | 60s | Pink (`#ec4899`) |
|
||
|
||
### Motion
|
||
- **Title:** Fade in + slide up (spring, damping 25)
|
||
- **Column headers:** Staggered fade in (phones at frame 870, emails at 875)
|
||
- **Contact items:** Cascade animation — each item slides in from the side with 8-frame stagger
|
||
- Phones: slide in from LEFT (`translateX(-30px → 0)`)
|
||
- Emails: slide in from RIGHT (`translateX(30px → 0)`)
|
||
- **Stats:** Scale up from 0.5× to 1× with spring, 10-frame stagger between each
|
||
|
||
### Typography
|
||
- Title: 52px, weight 800, white
|
||
- Column headers: 22px, weight 700, accent color
|
||
- Contact items: 18px, weight 600, slate-800 on white cards
|
||
- Stat values: 48px, weight 800, accent color
|
||
- Stat labels: 16px, weight 400, slate-400
|
||
|
||
### Background
|
||
- Same gradient as title card (`#0f172a → #1e1b4b → #0f172a`)
|
||
|
||
### Transition Out
|
||
- Global fade to black over final 30 frames
|
||
|
||
---
|
||
|
||
## Global Elements
|
||
|
||
### Vignette Overlay
|
||
Applied to all screenshot scenes (2–6):
|
||
```css
|
||
background: radial-gradient(
|
||
ellipse at center,
|
||
transparent 30%,
|
||
rgba(0, 0, 0, 0.5) 100%
|
||
);
|
||
```
|
||
Creates focus on center content and masks rough edges of zoomed screenshots.
|
||
|
||
### Step Badge Component
|
||
Persistent UI element in bottom-left during screenshot scenes:
|
||
- Purple circle (48px) with step number
|
||
- Black pill with step description
|
||
- Spring entrance animation (damping: 20)
|
||
- Positioned: `bottom: 50px, left: 50px`
|
||
|
||
### Easing
|
||
All camera movements use: `Easing.inOut(Easing.cubic)`
|
||
All UI animations use: `spring({ damping: 18-25 })`
|
||
|
||
### Color Palette
|
||
| Use | Color | Hex |
|
||
|-----|-------|-----|
|
||
| Background dark | Slate 900 | `#0f172a` |
|
||
| Background accent | Indigo 950 | `#1e1b4b` |
|
||
| Primary | Indigo 500 | `#6366f1` |
|
||
| Secondary | Violet 500 | `#8b5cf6` |
|
||
| Success | Emerald 500 | `#10b981` |
|
||
| Warning | Amber 500 | `#f59e0b` |
|
||
| Accent | Pink 500 | `#ec4899` |
|
||
| Text primary | White | `#ffffff` |
|
||
| Text secondary | Slate 400 | `#94a3b8` |
|
||
| Text on cards | Slate 800 | `#1e293b` |
|
||
|
||
---
|
||
|
||
## Asset Checklist
|
||
|
||
### Screenshots Needed
|
||
- [x] `02-login-filled.png` — Login page with email filled
|
||
- [x] `04-search-results.png` — Search/home interface
|
||
- [x] `05-property-detail.png` — Property with satellite map
|
||
- [x] `06-owner-tab.png` — Property showing owner tab
|
||
- [x] `09-contact-modal.png` — Contact list modal
|
||
|
||
### Generated Assets
|
||
- [ ] Intro background gradient (or use CSS gradient)
|
||
- [ ] Outro background gradient (same as intro)
|
||
|
||
### Audio (Optional Future)
|
||
- [ ] Background music (upbeat, corporate-friendly)
|
||
- [ ] Whoosh sounds on scene transitions
|
||
- [ ] "Pop" sounds on stat reveals
|
||
|
||
---
|
||
|
||
## Implementation Notes
|
||
|
||
### Canvas Viewport Technique
|
||
Each screenshot scene uses the `CanvasViewport` component which:
|
||
1. Renders the image at 2.5× the viewport size
|
||
2. Positions a clipping viewport over a portion of the image
|
||
3. Animates X, Y, and Zoom values to create camera movement
|
||
4. Creates the illusion of moving THROUGH the UI rather than just showing it
|
||
|
||
### Key Insight
|
||
The zoom values (1.4× to 2.5×) mean we're always cropped IN — never showing the whole screenshot. This:
|
||
- Hides any rough edges or UI inconsistencies
|
||
- Forces focus on the relevant area
|
||
- Creates cinematic "documentary" feel
|
||
- Allows lower-res source images to still look sharp
|
||
|
||
### Timing Philosophy
|
||
- **Scene 1 (Title):** 4 seconds — enough to read, not too long
|
||
- **Scenes 2-5 (UI flow):** ~5 seconds each — enough for camera to move meaningfully
|
||
- **Scene 6 (Contacts):** 6 seconds — the payoff, give it room
|
||
- **Scene 7 (Results):** 9 seconds — celebration, let animations complete, end strong
|