// J Renee Studios — Homepage Sections // Color/font spec is per the user's locked brand bible (overrides design-system tokens): // Black #1A1A1A · White #FFFFFF · Gold #C9A84C · Light Beige #F6F2EE // Display: Gloock · Body: Poppins Light (300) const { useState, useEffect, useRef } = React; const INK = "#1A1A1A"; const WHITE = "#FFFFFF"; const GOLD = "#C9A84C"; const BEIGE = "#F6F2EE"; const GREY = "#8A8580"; // ---------- Primitives ---------- function Eyebrow({ children, color = GOLD, style }) { return (
{children}
); } function GoldRule({ width = 56, color = GOLD, style }) { return ; } // Editorial placeholder image — warm tinted, portrait-respecting composition. // Optional inner "subject" silhouette band so verticals feel like covers rather than blank gradients. function Plate({ ratio = "4/5", tone = "warm", label = "IMAGE", grain = true, style, children, overlay }) { const tones = { warm: { bg: "linear-gradient(170deg, #efe3cf 0%, #d6bf9c 55%, #8c7553 100%)", subject: "linear-gradient(180deg, rgba(60,42,28,0) 35%, rgba(60,42,28,0.55) 100%)" }, blush: { bg: "linear-gradient(170deg, #f4ece2 0%, #e3d3c0 55%, #b89c7e 100%)", subject: "linear-gradient(180deg, rgba(80,55,40,0) 40%, rgba(70,48,32,0.5) 100%)" }, moody: { bg: "linear-gradient(170deg, #5a4a39 0%, #2c241c 60%, #15110d 100%)", subject: "linear-gradient(180deg, rgba(0,0,0,0) 30%, rgba(0,0,0,0.5) 100%)" }, cream: { bg: "linear-gradient(170deg, #f8f1e7 0%, #e7d6bd 60%, #c8a87f 100%)", subject: "linear-gradient(180deg, rgba(80,55,40,0) 40%, rgba(70,48,32,0.45) 100%)" }, bw: { bg: "linear-gradient(170deg, #e9e6e1 0%, #b5b0a8 50%, #2b2826 100%)", subject: "linear-gradient(180deg, rgba(20,20,20,0) 30%, rgba(20,20,20,0.55) 100%)" }, ink: { bg: "linear-gradient(170deg, #2a2520 0%, #14110e 100%)", subject: "linear-gradient(180deg, rgba(0,0,0,0) 50%, rgba(0,0,0,0.4) 100%)" }, }; const t = tones[tone] || tones.warm; return (
{/* subject vignette */}
{/* implied silhouette — subtle radial highlight, top-third */}
{/* film grain */} {grain && (
)} {overlay} {/* tiny label, bottom-left */}
{label}
{children}
); } // CTA buttons — single, consistent style across all 3 placements (gold solid). function CityBtn({ children, variant = "outline-light", onClick, href, style }) { const base = { padding: "18px 34px", fontFamily: "Poppins, sans-serif", fontWeight: 300, fontSize: 11, letterSpacing: "0.36em", textTransform: "uppercase", cursor: "pointer", border: "1px solid", borderRadius: 0, transition: "background-color 220ms ease, color 220ms ease, border-color 220ms ease", display: "inline-flex", alignItems: "center", gap: 12, textDecoration: "none", }; const variants = { "outline-light": { background: "transparent", color: WHITE, borderColor: "rgba(255,255,255,0.85)" }, "outline-ink": { background: "transparent", color: INK, borderColor: INK }, "gold": { background: GOLD, color: WHITE, borderColor: GOLD }, "ink": { background: INK, color: WHITE, borderColor: INK }, }; const [hover, setHover] = useState(false); const hoverStyle = hover ? ( variant === "outline-light" ? { background: WHITE, color: INK, borderColor: WHITE } : variant === "outline-ink" ? { background: INK, color: WHITE } : variant === "gold" ? { background: "#b59340", borderColor: "#b59340" } : { background: GOLD, borderColor: GOLD } ) : {}; const combinedStyle = { ...base, ...variants[variant], ...hoverStyle, ...style }; if (href) { return ( setHover(true)} onMouseLeave={()=>setHover(false)} style={combinedStyle}>{children} ); } return ( ); } // ---------- Header (sticky, transparent → white on scroll) ---------- function Header({ scrolled }) { return (
{[ { label: "Boise", href: "/boise/" }, { label: "Las Vegas", href: "/las-vegas/" }, ].map(it => ( {it.label} ))}
J Renee
Studios
); } // ---------- 1. HERO ---------- function Hero() { return (
{/* Full-bleed editorial b&w image */} Black-and-white editorial portrait of a woman seated and laughing in a soft cold-shoulder sweater — signature image for J Renee Studios, modern boudoir and portrait photography in Boise and Las Vegas {/* Soft vertical gradient for legibility at top + bottom */}
Est. 2001  ·  Boise  ·  Las Vegas

Are you ready
to truly see yourself?

Modern boudoir, portraits, and editorial photography for women — in Boise and Las Vegas.

Explore Boise Explore Las Vegas
{/* tiny scroll cue */}
Scroll
); } // ---------- 2. WELCOME ---------- function Welcome() { return (
Welcome

I'm Jennifer — the photographer behind J Renee Studios.

Two decades behind a camera. Thousands of women photographed. One thing I've learned that most photographers never figure out:

My job isn't to make you look beautiful.
You already are. My job is to create the conditions
where you can finally see what everyone
else has always seen.
Jennifer Renee
); } // ---------- 3. THE EXPERIENCE ---------- function Experience() { const pillars = [ { n: "01", title: "Pampered, start to finish.", body: "Professional hair and makeup with my in-studio team. Access to a fully stocked client closet — every size, every color, every style. Preparation emails before your session, so you walk in confident, not nervous.", }, { n: "02", title: "Fully guided, every step.", body: "You're never standing there wondering what to do. I walk you through every pose, every angle, every expression, every movement — start to finish. Most women tell me this is where they were the most nervous. It ends up being their favorite part of the day.", }, { n: "03", title: "Next-day reveal.", body: "Every image retouched. The very next day, we hop on a private Zoom and go through your gallery together — narrowing down your absolute favorites. You only purchase what you love.", }, ]; return (
The Experience

Fully guided. Fully supported.
Always you.

{pillars.map((p) => (
{p.n}

{p.title}

{p.body}

))}
); } // ---------- 4. WHO I PHOTOGRAPH ---------- function WhoIPhotograph() { const cards = [ { src: "/images/boudoir.jpg", pos: "center 30%", alt: "Black-and-white modern boudoir portrait of a curly-haired woman with her back to camera in a draped white shirt — J Renee Studios boudoir photography Boise and Las Vegas", overline: "Modern Boudoir", headline: "Seeing yourself the way the people who love you already do.", tagline: "For the woman ready to finally believe what everyone else has always seen." }, { src: "/images/headshots.jpg?v=2", pos: "center 30%", alt: "Editorial black-and-white branding portrait of a confident blonde woman in a black v-neck dress, leaning forward with a warm smile — J Renee Studios modern headshots and personal branding for women in Boise and Las Vegas", overline: "Modern Headshots & Branding", headline: "The face of your work deserves better than a stiff corporate photo.", tagline: "Editorial headshots and brand imagery for women CEOs, founders, and entrepreneurs." }, { src: "/images/portraits.jpg", pos: "center 20%", alt: "Soft black-and-white portrait of a woman in an oversized cream sweater seated on a stool, hair in a loose top knot — J Renee Studios modern portrait photography for women in Boise and Las Vegas", overline: "Modern Portraits", headline: "A portrait worthy of the woman you've become.", tagline: "Modern portrait sessions for women, motherhood, and families — including our signature ICONIC Experience 40+." }, { src: "/images/maternity.jpg", pos: "center 30%", alt: "Editorial black-and-white maternity portrait of a pregnant woman in profile in a black turtleneck crop and briefs — J Renee Studios modern maternity photography in Boise and Las Vegas", overline: "Modern Maternity", headline: "A body in the middle of becoming.", tagline: "Editorial maternity portraits for the woman who already trusts hers." }, ]; return (
Who I Photograph

The work I'm known for.

{/* Edge-to-edge 4-up strip */}
{cards.map((c, i) => (
{c.alt}
{c.overline}

{c.headline}

{c.tagline}

))}
); } // ---------- 5. WHY ME ---------- function WhyMe() { return (
{/* full-bleed moody image */}
Twenty Years Behind the Lens

Experience you can feel
in every frame.

{/* stat callouts */}
{[ { stat: "20+", lead: "years photographing women", body: "through the most defining chapters of their lives" }, { stat: "Thousands", lead: "of women photographed", body: "across two decades of doing this work" }, { stat: "1", lead: "all-female team", body: "trusted with the most personal portraits a woman will ever sit for" }, ].map((s, i) => (
0 ? "1px solid rgba(201,168,76,0.35)" : "none", textAlign: "center", }}>
{s.stat}
{s.lead}
{s.body}
))}

When you book J Renee Studios, you get me. Every session. Every frame. Some studios scale by hiring associate photographers — I scale by going deeper into the work, not wider. My all-female team is here to make you feel completely supported and at ease, and the woman behind the camera is always me.

This isn't my first session. It isn't my thousandth. It's the most meaningful work of my life — and I'd be honored to make it part of yours.

); } // ---------- 5.5 MID-PAGE CITY CTA ---------- function MidCityCTA() { return (

Where will we meet?

Explore Boise Explore Las Vegas
); } // ---------- 6. ABOUT JENNIFER ---------- function AboutJennifer() { return (
Black-and-white editorial portrait of Jennifer Renee Johnson, founder and lead photographer of J Renee Studios — modern boudoir, portrait, and branding photography in Boise and Las Vegas
Jennifer Renee  ·  Boise + Las Vegas
About Jennifer

The photographer
behind the work.

I started my photography business in 2001.

For the first fifteen years, I was a wedding photographer. Then years of newborns and maternity portraits — the privilege of being trusted with families during the most tender moments of their lives.

Today, I'm lucky enough to choose. And what I've chosen is women.

After photographing my own boudoir session, something shifted. I watched what happened when a woman finally saw herself — really saw herself — through a lens that knew how to look. That's the work I do now. Boudoir. Portraits. Branding. Maternity. All of it under one roof: documenting women, empowering women, and creating images they'll never outgrow.

I live in Boise — but Las Vegas is my second home, and where it all began. I started my business there over twenty years ago, and for the last eleven years I've been traveling back and forth between both cities. I have a dedicated studio near the Las Vegas airport, and a second studio in Boise. This isn't a side project or a tour. It's my work, in two cities, every month — and it isn't going anywhere.

I grew up in Hawaii. I've been married to my husband Rodney for over twenty years. I'm raising three kids — my biological son, my adopted daughter, and my late sister's children. I live a quiet, intentional life so I can pour everything I have into the women in front of my camera.

That's who you'd be working with.

Jennifer
); } // ---------- 7. LOVE NOTES (testimonials) ---------- function LoveNotes() { const reviews = [ { name: "Sarah M.", avatar: "/images/avatar-sarah.jpg", avatarAlt: "Sarah M., J Renee Studios boudoir client portrait", text: "I went into my session feeling very nervous, but from the moment I arrived, Jenn made me feel completely at ease. She guided me through every step in such a warm, encouraging way that the nerves melted into laughter and fun. Looking through my photos, I was blown away.", }, { name: "Diana R.", avatar: "/images/avatar-diana.jpg", avatarAlt: "Diana R., J Renee Studios boudoir client — 30th wedding anniversary session", text: "I did this as a gift for my husband for our 30th wedding anniversary. He says it's the best gift he's ever received — but honestly, I think it has been a bigger gift for me. Jenn captured me how he sees me, so finally I can see myself how he does.", }, { name: "Mia T.", avatar: "/images/avatar-mia.jpg", avatarAlt: "Mia T., J Renee Studios boudoir client portrait — motherhood session", text: "As a mom, I've struggled with feeling fully comfortable in my post-baby body, so this was way outside my comfort zone. From the moment I sat down for hair and makeup, everything started to shift. Jenn coached me through every pose with such patience and encouragement — it never felt forced.", }, ]; const Star = () => ( ); return (
Love Notes

What women say after.

Real reviews from real women. Pulled from Google.

{reviews.map((r, i) => (
{[...Array(5)].map((_, j) => )}

"{r.text}"

{r.name}
Verified Google Review
))}
4.9 / 5  ·  127+ Verified Google Reviews  ·  Las Vegas + Boise
); } // ---------- 8. YOUR STUDIO ---------- function YourStudio() { const cards = [ { city: "Boise, ID", headline: "My home base.", sub: "Modern Boudoir. Modern Headshots & Branding. Modern Portraits. Modern Maternity. Plus Modern Headshot Day, monthly.", cta: "Explore Boise", href: "/boise/" }, { city: "Las Vegas, NV", headline: "My second home — and where it all began.", sub: "Modern Boudoir. Modern Headshots & Branding. Modern Portraits. Modern Maternity. Plus Modern Headshot Day, monthly.", cta: "Explore Las Vegas", href: "/las-vegas/" }, ]; return (
Your Studio

Choose where we'll meet.

{cards.map((c, i) => (
{c.city}

{c.headline}

{c.sub}

{c.cta} →
))}
Two studios. Two cities. One photographer — for over a decade.
); } // ---------- 9. CLOSING ---------- function Closing() { return (
{/* very subtle moody backdrop */}

That feeling
isn't an accident.

It's your sign.

Schedule Your Free Consultation
); } // ---------- FOOTER ---------- function FooterJR() { return ( ); } Object.assign(window, { Header, Hero, Welcome, Experience, WhoIPhotograph, WhyMe, MidCityCTA, AboutJennifer, LoveNotes, YourStudio, Closing, FooterJR, });