A cinematic luxury real estate showcase built with Next.js, Tailwind CSS, Framer Motion, and Lenis.
Lumina is a premium real estate front-end focused on atmosphere, movement, and editorial presentation. The interface combines a dramatic hero composition, kinetic typography, smooth momentum scrolling, hover-revealed property cards, and a luxury black-and-gold design system.
The current site flow is intentionally lean:
Navbarkeeps navigation fixed and glassy as the page scrolls.Herointroduces the brand with staggered animated text and a parallax building visual.Marqueeadds a continuous credibility strip for project and brand signals.BentoGridpresents featured residences in a responsive image grid.Philosophypairs brand copy with an animated architectural blueprint.TestimonialsandFooterclose the experience with social proof and contact cues.
Lumina uses movement as part of the product language, not decoration.
- Animated headline sequencing through Framer Motion variants.
- Scroll-triggered reveal blocks through the shared
FadeIncomponent. - Parallax hero image movement from
useScrollanduseTransform. - Pointer-responsive 3D hero tilt for a premium, gallery-like feel.
- Infinite marquee animation for brand metrics and positioning.
- Hover zoom, gradient overlays, and content reveal states for property cards.
- Custom cursor follower that appears over bento project cards.
- Animated SVG blueprint in the philosophy section.
- CSS
text-shimmerutility for luminous animated typography.
flowchart TD
User["Visitor"] --> Browser["Browser"]
Browser --> Next["Next.js App Router"]
Next --> Layout["src/app/layout.tsx"]
Layout --> Smooth["SmoothScroll + Lenis"]
Layout --> Cursor["CursorFollower"]
Next --> Page["src/app/page.tsx"]
Page --> Navbar["Navbar"]
Page --> Hero["Hero"]
Page --> Marquee["Marquee"]
Page --> Grid["BentoGrid"]
Page --> Philosophy["Philosophy"]
Page --> Testimonials["Testimonials"]
Page --> Footer["Footer"]
Hero --> Motion["Framer Motion"]
Grid --> Motion
Philosophy --> Motion
Grid --> Assets["public/Images"]
Hero --> Assets
Layout --> Styles["globals.css theme tokens"]
| Layer | Choice |
|---|---|
| Framework | Next.js 16 with App Router |
| Language | TypeScript |
| Styling | Tailwind CSS v4 theme tokens in globals.css |
| Animation | Framer Motion, CSS keyframes, animated SVG |
| Scrolling | Lenis smooth scrolling |
| Fonts | next/font/google with Inter and Playfair Display |
| Assets | Static architectural imagery in public/Images |
Lumina
|-- docs/assets # README preview GIF and animated wordmark
|-- public/Images # Property and hero imagery
|-- src/app # App Router entry, metadata, global styles
|-- src/components # Reusable interface and motion sections
|-- package.json # Scripts and dependencies
`-- tsconfig.json # TypeScript configuration
Install dependencies:
npm installRun the development server:
npm run devOpen http://localhost:3000 to view Lumina locally.
Build for production:
npm run buildRun lint checks:
npm run lintLumina uses a restrained luxury palette and typography system:
| Token | Value | Use |
|---|---|---|
--color-background |
#050505 |
Deep black cinematic base |
--color-primary |
#f2ca50 |
Gold accents and calls to action |
--color-on-surface |
#eae1d4 |
Primary text |
--color-on-surface-variant |
#d0c5af |
Supporting copy |
--font-display-lg |
Playfair Display | Editorial headings |
--font-body-lg |
Inter | Readable product copy |
This project is intended as a showcase. All rights reserved.



