Free
Reviews
Fashora Reviews
A reviews block extracted from the Fashora template, available in Tailwind CSS, Bootstrap, DaisyUI, and Material Design.
0
15
A reviews block extracted from the Fashora template, available in Tailwind CSS, Bootstrap, DaisyUI, and Material Design.
<!DOCTYPE html>
<html lang="en" class="w-full">
<head>
<script>
window.FontAwesomeConfig = {
autoReplaceSvg: 'nest'
};
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/js/all.min.js" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Fashora Reviews | Tailwind CSS UI Block</title>
<meta name="description" content="A reviews block extracted from the Fashora template, available in Tailwind CSS, Bootstrap, DaisyUI, and Material Design.">
<meta name="keywords" content="Fashora, Tailwind CSS template, HTML website template, streetwear store template, fashion landing page, clothing collection, responsive ecommerce design">
<meta name="author" content="Let's templates">
<link rel="canonical" href="">
<meta property="og:type" content="product">
<meta property="og:site_name" content="Let's templates">
<meta property="og:locale" content="en_US">
<meta property="og:url" content="">
<meta property="og:title" content="Fashora | Tailwind CSS Streetwear Ecommerce Template">
<meta property="og:description" content="A vibrant Tailwind CSS streetwear store template for presenting fashion collections, featured products, and bold editorial campaigns.">
<meta property="og:image" content="">
<meta property="og:image:alt" content="Fashora template preview">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:url" content="">
<meta name="twitter:title" content="Fashora | Tailwind CSS Streetwear Ecommerce Template">
<meta name="twitter:description" content="A vibrant Tailwind CSS streetwear store template for presenting fashion collections, featured products, and bold editorial campaigns.">
<meta name="twitter:image" content="">
<meta name="twitter:image:alt" content="Fashora template preview">
<script src="https://cdn.tailwindcss.com"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
<link href="https://fonts.googleapis.com/css2?family=Teko:wght@300..700&family=Inter:wght@400;700;900&display=swap" rel="stylesheet">
<script>
tailwind.config = {
theme: {
extend: {
colors: {
primary: '#3B82F6',
dark: '#121212',
light: '#f4f4f5',
},
fontFamily: {
sans: ['Inter', 'sans-serif'],
teko: ['Teko', 'sans-serif'],
},
spacing: {
'15': '3.75rem',
},
keyframes: {
marquee: {
'0%': { transform: 'translateX(0)' },
'100%': { transform: 'translateX(-50%)' },
},
},
animation: {
marquee: 'marquee 20s linear infinite',
},
},
},
};
</script>
<style>
body { font-family: 'Inter', sans-serif; }
.nav-link::after {
content: '';
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 2px;
background: currentColor;
transform: scaleX(0);
transform-origin: right;
transition: transform 0.3s ease;
}
.nav-link:hover::after {
transform: scaleX(1);
transform-origin: left;
}
.no-scrollbar::-webkit-scrollbar { display: none; }
.no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }
#product, #shops, #pricing { scroll-margin-top: 5rem; }
.nav-pill {
color: rgba(255, 255, 255, 0.5);
}
.nav-pill:hover { color: #fff; }
.nav-pill.is-active {
color: #fff;
background: rgba(255, 255, 255, 0.1);
}
</style>
</head>
<body class="bg-light text-black overflow-x-hidden">
<%
nav_links = [
["#hero", "Home", true],
["#product", "Product", false],
["#pricing", "Pricing", false],
["#shops", "Our Shops", false]
]
%>
<% nav_links.each do |href, label, active| %>
<% end %>
<% nav_links.each do |href, label, active| %>
<% end %>
<!-- block:start reviews -->
<section class="py-32 px-[5%] bg-light overflow-hidden">
<%
reviews = [
["https://storage.googleapis.com/uxpilot-auth.appspot.com/gen_e1b34278c5_7145e372fb5079ea.png", "portrait of a young man streetwear collector, candid smile, natural light", "Marcus Reed", "Streetwear Curator", "The fit and finish on these drops is unreal. Every piece I've grabbed has become a staple — quality that actually holds up."],
["https://storage.googleapis.com/uxpilot-auth.appspot.com/gen_0c2282be82_b664794ada528832.png", "portrait of a woman fashion stylist, confident expression, studio lighting", "Elena Vance", "Fashion Stylist", "Finally a brand that gets the balance between function and fashion. The modular shells are my everyday uniform now."],
["https://storage.googleapis.com/uxpilot-auth.appspot.com/gen_51c265eab8_88d8caf835ad707b.png", "portrait of a male creative director, thoughtful gaze, soft window light", "Leo Tanaka", "Creative Director", "Limited runs, real craftsmanship. It feels exclusive without being pretentious. Fashora gets it."],
["https://images.unsplash.com/photo-1531123897727-8f129e1688ce?auto=format&fit=crop&w=200&q=80", "portrait of a woman brand consultant, warm studio lighting", "Amara Cole", "Brand Consultant", "The archival pieces still look current seasons later. That kind of longevity is rare in streetwear and it's why I keep coming back."],
["https://images.unsplash.com/photo-1500648767791-00dcc994a43e?auto=format&fit=crop&w=200&q=80", "portrait of a male photographer, natural outdoor light", "Noah Blake", "Photographer", "Every campaign I shoot for these drops feels considered. The silhouettes read instantly on camera and hold up in real life."],
["https://images.unsplash.com/photo-1544005313-94ddf0286df2?auto=format&fit=crop&w=200&q=80", "portrait of a woman retail buyer, soft window light", "Priya Shah", "Retail Buyer", "Customers ask for Fashora by name now. The utility systems sell themselves once people try a piece on the floor."]
]
%>
<div class="max-w-[1400px] mx-auto">
<div class="flex justify-between items-end mb-20">
<h2 class="text-6xl font-bold text-black uppercase max-w-2xl">
WHAT OUR COLLECTORS ARE SAYING
</h2>
<div class="flex gap-4">
<button type="button" id="reviews-prev" class="w-12 h-12 rounded-full border border-black/10 flex items-center justify-center hover:bg-black hover:text-white transition-all" aria-controls="reviews-track" aria-label="Previous reviews">
<i class="fa-solid fa-arrow-left"></i>
</button>
<button type="button" id="reviews-next" class="w-12 h-12 rounded-full border border-black/10 flex items-center justify-center hover:bg-black hover:text-white transition-all" aria-controls="reviews-track" aria-label="Next reviews">
<i class="fa-solid fa-arrow-right"></i>
</button>
</div>
</div>
<div id="reviews-track" class="flex gap-6 overflow-x-auto no-scrollbar pb-10 snap-x">
<% reviews.each do |src, alt, name, role, quote| %>
<article data-review class="w-[min(400px,100%)] shrink-0 bg-[#1c1c1c] p-10 rounded-3xl text-white snap-center">
<p class="text-xl leading-relaxed mb-8">"<%= quote %>"</p>
<div class="flex items-center gap-4">
<div class="w-14 h-14 rounded-full overflow-hidden">
<img class="w-full h-full object-cover" src="<%= src %>" alt="<%= alt %>" />
</div>
<div>
<div class="font-bold"><%= name %></div>
<div class="text-sm text-gray-400"><%= role %></div>
</div>
</div>
</article>
<% end %>
</div>
</div>
</section>
<!-- block:end reviews -->
<script>
(function () {
var track = document.getElementById("reviews-track");
var prev = document.getElementById("reviews-prev");
var next = document.getElementById("reviews-next");
if (!track || !prev || !next) return;
function cardStep() {
var card = track.querySelector("[data-review]");
if (!card) return 400;
var styles = window.getComputedStyle(track);
var gap = parseFloat(styles.columnGap || styles.gap) || 24;
return card.getBoundingClientRect().width + gap;
}
function scrollByDir(dir) {
var step = cardStep();
var max = Math.max(track.scrollWidth - track.clientWidth, 0);
var nextLeft = track.scrollLeft + dir * step;
if (nextLeft > max - 8) nextLeft = 0;
if (nextLeft < 8 && dir < 0) nextLeft = max;
track.scrollTo({ left: nextLeft, behavior: "smooth" });
}
prev.addEventListener("click", function () { scrollByDir(-1); });
next.addEventListener("click", function () { scrollByDir(1); });
})();
(function () {
var links = document.querySelectorAll("[data-nav-link]");
function setActive(href) {
links.forEach(function (link) {
var isActive = link.getAttribute("href") === href;
link.classList.toggle("is-active", isActive);
if (isActive) {
link.setAttribute("aria-current", "page");
} else {
link.removeAttribute("aria-current");
}
});
}
links.forEach(function (link) {
link.addEventListener("click", function () {
setActive(link.getAttribute("href"));
});
});
})();
</script>
</body>
</html>
Free
Business
Unlock the entire library of premium templates and blocks. Renews automatically, cancel anytime.