Free
Team
Physiotech Team
A team block extracted from the Physiotech template, available in Tailwind CSS, Bootstrap, DaisyUI, and Material Design.
0
19
A team block extracted from the Physiotech template, available in Tailwind CSS, Bootstrap, DaisyUI, and Material Design.
<!DOCTYPE html>
<html lang="en">
<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>Physiotech Team | Tailwind CSS UI Block</title>
<meta name="description" content="A team block extracted from the Physiotech template, available in Tailwind CSS, Bootstrap, DaisyUI, and Material Design." />
<meta name="keywords" content="Physiotech, Tailwind CSS template, HTML website template, healthcare website template, fitness landing page, digital health, responsive medical 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="Physiotech | Tailwind CSS Healthcare & Fitness Template">
<meta property="og:description" content="A responsive Tailwind CSS healthcare website template for fitness tracking, nutrition tools, workout scheduling, and digital health services.">
<meta property="og:image" content="">
<meta property="og:image:alt" content="Physiotech template preview">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:url" content="">
<meta name="twitter:title" content="Physiotech | Tailwind CSS Healthcare & Fitness Template">
<meta name="twitter:description" content="A responsive Tailwind CSS healthcare website template for fitness tracking, nutrition tools, workout scheduling, and digital health services.">
<meta name="twitter:image" content="">
<meta name="twitter:image:alt" content="Physiotech template preview">
<script src="https://cdn.tailwindcss.com"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css" />
<style>
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');
body { font-family: 'Inter', sans-serif; }
</style>
</head>
<body class="bg-white overflow-x-hidden">
<!-- block:start team -->
<section id="team" class="bg-gray-50 w-full px-4 sm:px-8 py-16 md:py-24">
<%
team_members = [
["https://storage.googleapis.com/uxpilot-auth.appspot.com/gen_569461d1de_b8525e8b12e7633b.png", "female doctor in white coat with dark vest standing confidently, tropical green plants background", "Amara Cole", "Clinical Director"],
["https://storage.googleapis.com/uxpilot-auth.appspot.com/gen_760653c638_7d1101aaf02e7334.png", "male doctor in dark green scrubs with stethoscope smiling, indoor plants and bright window background", "James Okonkwo", "Sports Medicine"],
["https://storage.googleapis.com/uxpilot-auth.appspot.com/gen_fb5f7d2783_e407475c4ee126e9.png", "young male doctor in white coat with stethoscope standing by large window, indoor plants background", "Leo Hart", "Digital Health"],
["https://storage.googleapis.com/uxpilot-auth.appspot.com/gen_30925c4d33_1a272b2c67c83272.png", "female doctor in white coat sitting at desk working on a computer, tropical green plants surrounding", "Priya Shah", "Preventive Care"],
["https://images.unsplash.com/photo-1559839734-2b71ea197ec2?auto=format&fit=crop&w=800&q=80", "female physician in a white coat smiling in a bright clinic", "Elena Voss", "Nutrition Science"],
["https://images.unsplash.com/photo-1622253692010-333f2da6031d?auto=format&fit=crop&w=800&q=80", "male physician in a white coat standing in a modern hospital corridor", "Noah Blake", "Physiotherapy"]
]
%>
<div class="max-w-6xl mx-auto">
<div class="flex items-center gap-4 md:gap-6 mb-6 overflow-x-auto no-scrollbar">
<span class="text-[10px] md:text-xs text-gray-400 tracking-widest uppercase font-medium whitespace-nowrap">Physiotech</span>
<span class="text-[10px] md:text-xs text-gray-400 tracking-widest uppercase font-medium whitespace-nowrap">Our Team</span>
</div>
<div class="flex flex-col md:flex-row md:items-start md:justify-between mb-8 md:mb-12 gap-6">
<h2 class="text-3xl md:text-4xl lg:text-5xl font-semibold text-gray-900 leading-tight max-w-xl">
Get to Know the People<br class="hidden md:block" />that Get It All Done
</h2>
<!-- Nav Arrows -->
<div class="flex items-center gap-2">
<button type="button" id="team-prev" class="w-10 h-10 md:w-12 md:h-12 rounded-full border border-gray-300 bg-white flex items-center justify-center text-gray-500 hover:bg-gray-100 transition shadow-sm" aria-controls="team-grid" aria-label="Previous team members">
<i class="fa-solid fa-chevron-left text-xs"></i>
</button>
<button type="button" id="team-next" class="w-10 h-10 md:w-12 md:h-12 rounded-full border border-gray-300 bg-white flex items-center justify-center text-gray-500 hover:bg-gray-100 transition shadow-sm" aria-controls="team-grid" aria-label="Next team members">
<i class="fa-solid fa-chevron-right text-xs"></i>
</button>
</div>
</div>
<script type="application/json" id="team-members-data"><%= raw team_members.to_json %></script>
<div class="flex flex-col md:flex-row gap-8 lg:gap-12">
<!-- Sidebar Info -->
<div class="w-full md:w-44 flex-shrink-0">
<p class="text-gray-500 text-sm md:text-base leading-relaxed">
On our platform, our devoted team works ceaselessly to enhance our online presence and ensure the best possible customer experience.
</p>
</div>
<!-- Cards Grid -->
<div id="team-grid" class="flex-1 grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-6">
<% team_members.first(3).each_with_index do |(src, alt, name, role), index| %>
<article data-team-slot class="<%= "hidden lg:block " if index == 2 %>rounded-3xl overflow-hidden h-80 relative group shadow-sm">
<img class="w-full h-full object-cover group-hover:scale-105 transition duration-500" src="<%= src %>" alt="<%= alt %>" />
<div class="absolute inset-x-0 bottom-0 p-5 bg-gradient-to-t from-black/70 via-black/30 to-transparent">
<p data-team-name class="text-white font-semibold"><%= name %></p>
<p data-team-role class="text-white/70 text-xs tracking-widest uppercase"><%= role %></p>
</div>
</article>
<% end %>
</div>
</div>
</div>
</section>
<!-- block:end team -->
<script>
(function () {
var data = document.getElementById("team-members-data");
var members = data ? JSON.parse(data.textContent) : [];
var prev = document.getElementById("team-prev");
var next = document.getElementById("team-next");
var slots = document.querySelectorAll("[data-team-slot]");
var index = 0;
if (!prev || !next || !slots.length || !members.length) return;
function render() {
slots.forEach(function (slot, offset) {
var member = members[(index + offset) % members.length];
var image = slot.querySelector("img");
var name = slot.querySelector("[data-team-name]");
var role = slot.querySelector("[data-team-role]");
image.style.opacity = "0";
window.setTimeout(function () {
image.src = member[0];
image.alt = member[1];
name.textContent = member[2];
role.textContent = member[3];
image.style.opacity = "1";
}, 160);
});
}
function step(direction) {
index = (index + direction + members.length) % members.length;
render();
}
prev.addEventListener("click", function () { step(-1); });
next.addEventListener("click", function () { step(1); });
})();
</script>
</body>
</html>
Free
Business
Unlock the entire library of premium templates and blocks. Renews automatically, cancel anytime.