{% extends 'baseFront.html.twig' %}
{% block title %}Hello HomeController!{% endblock %}
{% block body %}
<main>
<div class="container px-1 ">
<h1>Speakers </h1>
</div>
<!-- Section image de couverture -->
{# <header class="hero">
<h1>Plenary Speakers</h1>
</header>#}
<!-- Section des conférenciers -->
<section class="speakers">
{% for speaker in speakers %}
<a href="https://lien-ulugbek.com" class="card">
<img src="{{ speaker.photo ? asset('uploads/speaker/' ~ speaker.photo) : '' }}" alt="{{ speaker.nom}} {{ speaker.prenom}}">
<div class="info">
<p class="role">PLENARY SPEAKER</p>
<p class="name">{{ speaker.nom}} {{ speaker.prenom}}</p>
</div>
</a>
{% endfor %}
{#
<div class="card">
<img src="img/speaker2.jpg" alt="speaker">
<div class="info">
<p class="role">PLENARY SPEAKER</p>
<p class="name">Rebecca Willett</p>
<a href="https://example.com" class="icon-link">
<img src="img/blue-icon.png" alt="icon">
</a>
</div>
</div>
<div class="card">
<img src="img/speaker3.jpg" alt="speaker">
<div class="info">
<p class="role">PLENARY SPEAKER</p>
<p class="name">Stéphane Mallat</p>
<a href="https://example.com" class="icon-link">
<img src="img/blue-icon.png" alt="icon">
</a>
</div>
</div>#}
</section>
<style>
body {
margin: 0;
font-family: Arial, sans-serif;
background: #fff;
}
/* Bandeau principal */
.hero {
background-image: url("{{ asset('assetFront/images/headerBackground1.webp') }}"); /* votre image */
background-size: cover;
background-position: center;
height: 350px;
display: flex;
justify-content: center;
align-items: center;
}
.hero h1 {
color: white;
font-size: 48px;
font-weight: bold;
text-shadow: 0 2px 8px rgba(0,0,0,0.4);
}
/* Responsive du bandeau */
@media (max-width: 768px) {
.hero {
height: 250px;
}
.hero h1 {
font-size: 32px;
}
}
@media (max-width: 480px) {
.hero {
height: 200px;
}
.hero h1 {
font-size: 24px;
text-align: center;
padding: 0 20px;
}
}
/* Section des cartes */
.speakers {
display: flex;
flex-wrap: wrap; /* Permet le retour à la ligne */
justify-content: center;
gap: 30px;
padding: 40px 20px;
max-width: 1200px;
margin: 0 auto;
}
/* Carte individuelle */
.card {
width: 300px;
height: 450px;
background: #f7f7f7;
border-radius: 10px;
box-shadow: 0 4px 15px rgba(0,0,0,0.15);
overflow: hidden;
text-align: center;
transition: transform 0.3s ease;
text-decoration: none;
color: inherit;
}
.card:hover {
transform: translateY(-5px);
}
.card img {
width: 100%;
height: 350px;
object-fit: cover;
}
/* Texte sur les cartes */
.info {
padding: 20px;
}
.role {
font-size: 12px;
color: #555;
margin: 0;
letter-spacing: 1px;
text-transform: uppercase;
}
.name {
font-size: 20px;
font-weight: bold;
margin-top: 5px;
color: #333;
}
/* Styles pour les icônes des liens (si vous en ajoutez plus tard) */
.icon-link img {
width: 35px;
height: 35px;
margin-top: 12px;
cursor: pointer;
transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.icon-link img:hover {
transform: scale(1.12);
box-shadow: 0 0 10px rgba(0, 140, 255, 0.6);
border-radius: 50%;
}
/* Responsive Mobile */
@media (max-width: 768px) {
.speakers {
gap: 25px;
padding: 30px 15px;
}
.card {
width: 280px;
height: 420px;
}
.card img {
height: 320px;
}
}
@media (max-width: 640px) {
/* Sur les écrans moyens, 2 cartes par ligne */
.card {
width: calc(50% - 20px);
min-width: 250px;
height: auto;
min-height: 400px;
}
.card img {
height: 280px;
}
.info {
padding: 15px;
}
.name {
font-size: 18px;
}
}
@media (max-width: 576px) {
/* Sur mobile, une seule carte par ligne */
.speakers {
flex-direction: column;
align-items: center;
gap: 20px;
}
.card {
width: 100%;
max-width: 320px;
height: auto;
min-height: 400px;
}
.card img {
height: 300px;
}
}
@media (max-width: 375px) {
/* Pour les très petits écrans */
.card {
max-width: 280px;
min-height: 380px;
}
.card img {
height: 260px;
}
.name {
font-size: 16px;
}
.role {
font-size: 11px;
}
}
/* Pour les écrans très larges */
@media (min-width: 1400px) {
.speakers {
max-width: 1400px;
}
}</style><main>
{% endblock %}