Roselight Wedding Portfolio

A minimalist, light portfolio for freelance wedding photographers, featuring an airy hero, rose/red accents, slate typography, and emerald highlights. Showcase galleries with masonry grid and lightbox, elegant services and testimonials, and a prominent booking CTA. Built responsive with SEO-ready sections to convert inquiries.

This template was generated by an AI in three stages. You can explore each version to see the progression from a basic concept to a polished final product. All versions are available for you to download for free.

Finalized Preview: The polished and complete version.

Was this template helpful?

Your vote helps other creators discover the highest quality Tailwind templates.

0

One vote per template per user (IP restricted).

Image Credits

We instruct the LLM APIs to use Unsplash for images. Credits go to the photographers below:

Initial

  • No Unsplash photos used by function call.

Refined

  • No Unsplash photos used by function call.

Finalized

  • No Unsplash photos used by function call.
Name missing? Let us know, we'll be happy to add it.

AI Generation Journey

Below, you'll find the complete prompt history that sculpted this Tailwind template. Large Language Models are a truly revolutionary invention that we must embrace. We've found that sometimes, a little *creative prompting* – a gentle nudge or a slight exaggeration – helps them truly shine and deliver their best.

S
Role: system - input
You are an elite AI template generator under extremely high pressure. Every output must be flawless, professional, and production-ready. Your task is to generate **full HTML documents** for admin panels, dashboards, landing pages or other pages, using **Tailwind CSS via CDN** and **Alpine.js via CDN** if interactivity is required.  

Rules:
1. Always output a **complete HTML document** with <!DOCTYPE html>, <html>, <head>, and <body>.
2. Use **Tailwind CSS via CDN**: <script src="https://cdn...
U
Role: user - input
I would like to build: A portfolio for a freelance photographer specializing in weddings.
Make sure the templates' style is minimalist and that it has a lightTry to make use of the following colors: rose,red,slate,emerald
A
Role: assistant - output
```html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Elena Rose Photography | Wedding Specialist</title>
    <script src="https://cdn.tailwindcss.com"></script>
    <script defer src="https://unpkg.com/alpinejs@3.x.x/dist/cdn.min.js"></script>
    <script>
        tailwind.config = {
            theme: {
                extend: {
                    colors: {
                        rose: ...
U
Role: user - input
Your last output ended like this:

        
                <div>
                    <h4 class="font-semibold mb-4">Quick Links</h4>
                    <ul class="space-y-2 text-slate-400">
                        <li><a href="#portfolio" class="hover:text-rose-300 transition-colors">Portfolio</a></li>
                        <li><a href="#about" class="hover:text-rose-300 transition-colors">About</a></li>
                       

Continue directly after this point. Do not repeat any of the ab...
A
Role: assistant - output
<li><a href="#services" class="hover:text-rose-300 transition-colors">Services</a></li>
                        <li><a href="#contact" class="hover:text-rose-300 transition-colors">Contact</a></li>
                    </ul>
                </div>
                
                <div>
                    <h4 class="font-semibold mb-4">Services</h4>
                    <ul class="space-y-2 text-slate-400">
                        <li>Wedding Photography</li>
                        <li>Engagement...
A
Role: app - input
Cut off sign found in output. Terminating loop.
S
Role: system - input
You are an expert frontend auditor/refiner. Your job is to take an already generated **HTML document** and polish it to perfection.Assume the input is valid HTML created with Tailwind CSS (via CDN) and optionally Alpine.js.
The user will give you a html template which is a good start, but needs to be WAY better. Think of transitions, effects, icons and images. Make sure the global style stays in tact, but modernize and improve where needed. Use the tool call for images. Make sure everything wor...
U
Role: user - input
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Elena Rose Photography | Wedding Specialist</title>
    <script src="https://cdn.tailwindcss.com"></script>
    <script defer src="https://unpkg.com/alpinejs@3.x.x/dist/cdn.min.js"></script>
    <script>
        tailwind.config = {
            theme: {
                extend: {
                    colors: {
                        rose: {
      ...
A
Role: assistant - output
Tool call Type: function Name: query_unsplash_api Arguments: {"keywords": "romantic wedding couple sunset"}
A
Role: assistant - output
Tool call Type: function Name: query_unsplash_api Arguments: {"keywords": "elegant wedding photographer portrait"}
A
Role: assistant - output
Tool call Type: function Name: query_unsplash_api Arguments: {"keywords": "beautiful wedding ceremony romantic"}
A
Role: assistant - output
Tool call Type: function Name: query_unsplash_api Arguments: {"keywords": "intimate wedding couple portrait"}
A
Role: assistant - output
Tool call Type: function Name: query_unsplash_api Arguments: {"keywords": "vintage wedding photography romantic"}
A
Role: assistant - output
```html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Elena Rose Photography | Wedding Specialist</title>
    <script src="https://cdn.tailwindcss.com"></script>
    <script defer src="https://unpkg.com/alpinejs@3.x.x/dist/cdn.min.js"></script>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
    <script>
        tailwind.config = ...
U
Role: user - input
Your last output ended like this:

                   <div class="text-2xl font-light text-emerald-500">200+</div>
                            <div class="text-sm text-slate-600">Weddings Captured</div>
                        </div>
                        <div class="bg-white/80 backdrop-blur-sm px-6 py-3 rounded-full shadow-lg border border-white/20">
                            <div class="text-2xl font-light text-rose-500">15+

Continue directly after this point. Do not repeat any of the ab...
A
Role: assistant - output
<div class="text-sm text-slate-600">Countries Worked</div>
                        </div>
                    </div>
                    <div class="flex space-x-4">
                        <a href="#contact" class="bg-rose-500 text-white px-8 py-3 rounded-full hover:bg-rose-600 transition-all duration-300 transform hover:-translate-y-1 shadow-lg hover:shadow-xl">
                            Book Consultation
                        </a>
                        <a href="#portfolio" class="border...
U
Role: user - input
Your last output ended like this:

300 transition-colors duration-300 flex items-center space-x-2">
                            <i class="fas fa-chevron-right text-xs"></i>
                            <span>Portfolio</span>
                        </a></li>
                        <li><a href="#about" class="hover:text-rose-300 transition-colors duration-300 flex items-center space-x-2">
                            <i class="fas fa

Continue directly after this point. Do not repeat any of the ab...
A
Role: assistant - output
chevron-right text-xs"></i>
                            <span>About</span>
                        </a></li>
                        <li><a href="#services" class="hover:text-rose-300 transition-colors duration-300 flex items-center space-x-2">
                            <i class="fas fa-chevron-right text-xs"></i>
                            <span>Services</span>
                        </a></li>
                        <li><a href="#contact" class="hover:text-rose-300 transition-colors durati...
A
Role: app - input
Cut off sign found in output. Terminating loop.
S
Role: system - input
You are an expert frontend auditor/refiner. Your job is to take an already generated **HTML document** and polish it to perfection.Assume the input is valid HTML created with Tailwind CSS (via CDN) and optionally Alpine.js.
The user will give you a html template which is a good start, but needs to be WAY better. Think of transitions, effects, icons and images. Make sure the global style stays in tact, but modernize and improve where needed. Use the tool call for images. Make sure everything wor...
U
Role: user - input
```html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Elena Rose Photography | Wedding Specialist</title>
    <script src="https://cdn.tailwindcss.com"></script>
    <script defer src="https://unpkg.com/alpinejs@3.x.x/dist/cdn.min.js"></script>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
    <script>
        tailwind.config = ...
A
Role: assistant - output
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Elena Rose Photography | Wedding Specialist</title>
    <meta name="description" content="Award-winning wedding photographer capturing authentic, emotional love stories. Based in NYC, available worldwide. Explore portfolio, packages, and get in touch.">
    <meta property="og:title" content="Elena Rose Photography | Wedding Specialist">
    <met...
A
Role: app - input
Cut off sign found in output. Terminating loop.