templates/Home/index.html.twig line 1

Open in your IDE?
  1. {% extends "base.html.twig" %}
  2. {% block stylesheets %}
  3.     <style>
  4.         .carousel-caption {
  5.             top: 50%;
  6.             transform: translateY(-50%);
  7.             bottom: auto;
  8.         }
  9.         .btn-custom {
  10.             background-color: transparent;
  11.             border: 1px solid rgb(0, 0, 0, 0.3);
  12.             color: rgb(0, 0, 0, 0.7);
  13.             padding: 0.5rem 1rem;
  14.             text-decoration: none;
  15.         }
  16.         .card-img-overlay {
  17.             top: auto;
  18.         }
  19.         .btn-card {
  20.             background-color: #FFF;
  21.             padding: 0.5rem 1rem;
  22.             text-decoration: none;
  23.             color: rgb(0, 0, 0, 0.7);
  24.             border-radius: 0;
  25.             transition: 0.3s ease-in-out;
  26.         }
  27.         .btn-card:hover {
  28.             background-color: #FFF;
  29.             color: rgb(0, 0, 0, 0.7);
  30.             font-weight: bold;
  31.             transition: 0.3s ease-in-out;
  32.         }
  33.         .card {
  34.             border: none;
  35.         }
  36.         .card-img-top {
  37.             border-radius: 0;
  38.         }
  39.         .border-right {
  40.             border-right: 1px solid #dee2e6;
  41.         }
  42.         .carousel-indicators-custom {
  43.             position: absolute;
  44.             right: 0;
  45.             left: 0;
  46.             top: 0;
  47.             z-index: 2;
  48.             display: flex;
  49.             justify-content: space-around;
  50.             padding: 0;
  51.             margin-right: 15%;
  52.             margin-top: 4rem;
  53.             margin-left: 15%;
  54.         }
  55.         .btn-indicator {
  56.             background-color: transparent;
  57.             border: none;
  58.             color: #FFF;
  59.             padding: 0.5rem 1rem;
  60.             margin: 0 0.5rem;
  61.             border-radius: 0;
  62.             transition: 0.3s ease-in-out;
  63.         }
  64.         .btn-indicator.active {
  65.             font-weight: bold;
  66.             transition: 0.3s ease-in-out;
  67.         }
  68.         .carousel-control-prev-icon {
  69.             opacity: 1;
  70.         }
  71.         .carousel-control-next-icon {
  72.             opacity: 1;
  73.         }
  74.         .description {
  75.             text-align: justify;
  76.             padding: 1rem 3rem;
  77.             font-size: 18px;
  78.         }
  79.         .flex-center {
  80.             display: flex;
  81.             justify-content: center;
  82.             align-items: center;
  83.             flex-direction: column;
  84.             gap: 0.5rem;
  85.         }
  86.         .title-header {
  87.             font-weight: bold;
  88.             text-transform: uppercase;
  89.             font-size: 50px;
  90.         }
  91.     </style>
  92. {% endblock %}
  93. {% block body %}
  94.     {# ------------------------------------------ Carousel ------------------------------------------ #}
  95.     <div id="newsCarousel" class="carousel slide carousel-fade" data-bs-ride="carousel">
  96.         <div class="carousel-indicators">
  97.             <button type="button" data-bs-target="#newsCarousel" data-bs-slide-to="0" class="active" aria-current="true" aria-label="Slide 1"></button>
  98.             <button type="button" data-bs-target="#newsCarousel" data-bs-slide-to="1" aria-label="Slide 2"></button>
  99.             <button type="button" data-bs-target="#newsCarousel" data-bs-slide-to="2" aria-label="Slide 3"></button>
  100.           </div>
  101.         <div class="carousel-inner bg-black">
  102.             {% if carouselImages|length > 0 %}
  103.                 {% for carousel in carouselImages %}
  104.                     <div {% if loop.first %}class="carousel-item active"{% else %}class="carousel-item"{% endif %}>
  105.                         <img src="{{ carousel.file.path }}" class="d-block w-100 opacity-50" alt="{{ carousel.description }}">
  106.                         <div class="carousel-caption d-none d-md-block">
  107.                             <h1 class="title-header">Crea el hogar de tus sueños, comenzando por el piso</h1>
  108.                         </div>
  109.                     </div>
  110.                 {% endfor %}
  111.             {% endif %}
  112.             {# <div class="carousel-item active">
  113.                 <img src="{{ asset('assets/img/Carousel/News/img1.png')}}" class="d-block w-100" alt="img1">
  114.                 <div class="carousel-caption d-none d-md-block">
  115.                     <h1 class="title-header">Crea el hogar de tus sueños, comenzando por el piso.</h1>
  116.                 </div>
  117.             </div>
  118.             <div class="carousel-item">
  119.                 <img src="{{ asset('assets/img/Carousel/News/img2.png')}}" class="d-block w-100" alt="img2">
  120.                 <div class="carousel-caption d-none d-md-block">
  121.                     <h1 class="title-header">Crea el hogar de tus sueños, comenzando por el piso.</h1>
  122.                 </div>
  123.             </div>
  124.             <div class="carousel-item">
  125.                 <img src="{{ asset('assets/img/Carousel/News/img3.png')}}" class="d-block w-100" alt="img3">
  126.                 <div class="carousel-caption d-none d-md-block">
  127.                     <h1 class="title-header">Crea el hogar de tus sueños, comenzando por el piso.</h1>
  128.                 </div>
  129.             </div> #}
  130.         </div>
  131.         <button class="carousel-control-prev" type="button" data-bs-target="#newsCarousel" data-bs-slide="prev">
  132.             <span class="carousel-control-prev-icon" aria-hidden="true"></span>
  133.             <span class="visually-hidden">Previous</span>
  134.           </button>
  135.           <button class="carousel-control-next" type="button" data-bs-target="#newsCarousel" data-bs-slide="next">
  136.             <span class="carousel-control-next-icon" aria-hidden="true"></span>
  137.             <span class="visually-hidden">Next</span>
  138.           </button>
  139.     </div>
  140.     {# ------------------------------------------ Carousel ------------------------------------------ #}
  141.     {# ------------------------------------------ Cards ------------------------------------------ #}
  142.     <section class="container mt-5">
  143.         <div class="row">
  144.             <div class="d-flex justify-content-between align-items-center">
  145.                 <h4 class="fw-normal">Estilos Únicos</h4>
  146.                 <a href="{{ path('catalog') }}" class="btn-custom">Catálogo <i class="fa-solid fa-arrow-right"></i></a>
  147.             </div>
  148.         </div>
  149.         <hr class="mt-3">
  150.         <div class="row row-cols-1 row-cols-lg-3 mt-3 gy-4">
  151.             <div class="col">
  152.                 <div class="card">
  153.                     <img src="{{ asset('assets/img/Card/img1.png')}}" class="card-img-top" alt="...">
  154.                     <div class="card-img-overlay d-grid gap-2">
  155.                         <a href="#" type="button" class="btn btn-card">Shakhir gray</a>
  156.                     </div>
  157.                 </div>
  158.             </div>
  159.             <div class="col">
  160.                 <div class="card">
  161.                     <img src="{{ asset('assets/img/Card/img2.png')}}" class="card-img-top" alt="...">
  162.                     <div class="card-img-overlay d-grid gap-2">
  163.                         <a href="#" type="button" class="btn btn-card">Pulse Antique</a>
  164.                     </div>
  165.                 </div>
  166.             </div>
  167.             <div class="col">
  168.                 <div class="card">
  169.                     <img src="{{ asset('assets/img/Card/img3.png')}}" class="card-img-top" alt="...">
  170.                     <div class="card-img-overlay d-grid gap-2">
  171.                         <a href="#" type="button" class="btn btn-card">Arenite Natural</a>
  172.                     </div>
  173.                 </div>
  174.             </div>
  175.         </div>
  176.     </section>
  177.     {# ------------------------------------------ Cards ------------------------------------------ #}
  178.     {# ------------------------------------------ Main Description ------------------------------------------ #}
  179.     <section class="container">
  180.         <hr class="mt-3 mb-5">
  181.         <div class="row">
  182.             <div class="col-md-8 border-right description">
  183.                 Los azulejos dan calidez y un sentimiento más hogareño. A su vez, 
  184.                 aportan más profundidad a la estancia donde se puede revestir las 
  185.                 paredes, dando un acabado mucho más elegante, haciendo que todo el 
  186.                 hogar tenga un sentido y un estilo compacto de pertenencia. Cada 
  187.                 vez son más y más las personas que se suman a decorar sus hogares 
  188.                 con los azulejos de salón, permitiendo renovar y dar algo de frescura 
  189.                 a la habitación más concurrida.
  190.             </div>
  191.             <div class="col-md-4 flex-center">
  192.                 <h3>10, 000+</h3>
  193.                 <h4>Clientes felices</h4>
  194.                 <a href="{{ path('contact') }}" class="btn-custom">Contacto</a>
  195.             </div>
  196.         </div>
  197.         <hr class="mt-5">
  198.     </section>
  199.     {# ------------------------------------------ Main Description ------------------------------------------ #}
  200.     {# ------------------------------------------ Second Carousel ------------------------------------------ #}
  201.     {# <div id="designsCarousel" class="carousel slide carousel-fade">
  202.         <div class="carousel-indicators-custom">
  203.             <button type="button" class="btn-indicator fs-5 active" data-bs-target="#designsCarousel" data-bs-slide-to="0" aria-current="true" aria-label="Slide 1">Naunces</button>
  204.             <button type="button" class="btn-indicator fs-5" data-bs-target="#designsCarousel" data-bs-slide-to="1" aria-label="Slide 2">Verity</button>
  205.             <button type="button" class="btn-indicator fs-5" data-bs-target="#designsCarousel" data-bs-slide-to="2" aria-label="Slide 3">Ullise</button>
  206.         </div>
  207.         <div class="carousel-inner">
  208.             <div class="carousel-item active">
  209.                 <img src="{{ asset('assets/img/Carousel/Designs/img4.png')}}" class="d-block w-100" alt="img4">
  210.             </div>
  211.             <div class="carousel-item">
  212.                 <img src="{{ asset('assets/img/Carousel/Designs/img5.png')}}" class="d-block w-100" alt="img5">
  213.             </div>
  214.             <div class="carousel-item">
  215.                 <img src="{{ asset('assets/img/Carousel/Designs/img6.png')}}" class="d-block w-100" alt="img6">
  216.             </div>
  217.         </div>
  218.         <button class="carousel-control-prev" type="button" data-bs-target="#designsCarousel" data-bs-slide="prev">
  219.             <span class="carousel-control-prev-icon" aria-hidden="true"></span>
  220.             <span class="visually-hidden">Previous</span>
  221.         </button>
  222.         <button class="carousel-control-next" type="button" data-bs-target="#designsCarousel" data-bs-slide="next">
  223.             <span class="carousel-control-next-icon" aria-hidden="true"></span>
  224.             <span class="visually-hidden">Next</span>
  225.         </button>
  226.     </div> #}
  227.     {# ------------------------------------------ Second Carousel ------------------------------------------ #}
  228. {% endblock %}
  229. {% block javascripts %}
  230.     <script>
  231.         // Carousel btn indicators active animation
  232.         let btnIndicators = document.querySelectorAll('.btn-indicator');
  233.         btnIndicators.forEach((btn) => {
  234.             btn.addEventListener('click', () => {
  235.                 btnIndicators.forEach((btn) => {
  236.                     btn.classList.remove('active');
  237.                 });
  238.                 btn.classList.add('active');
  239.             });
  240.         });
  241.         // Corousel control prev and next on click change active indicator
  242.         let carouselControlPrev = document.querySelector('.carousel-control-prev');
  243.         let carouselControlNext = document.querySelector('.carousel-control-next');
  244.         carouselControlPrev.addEventListener('click', () => {
  245.             let activeBtn = document.querySelector('.btn-indicator.active');
  246.             if (activeBtn) {
  247.                 activeBtn.classList.remove('active');
  248.                 if (activeBtn.previousElementSibling) {
  249.                     activeBtn.previousElementSibling.classList.add('active');
  250.                 } else {
  251.                     btnIndicators[btnIndicators.length - 1].classList.add('active');
  252.                 }
  253.             }
  254.         });
  255.         carouselControlNext.addEventListener('click', () => {
  256.             let activeBtn = document.querySelector('.btn-indicator.active');
  257.             if (activeBtn.classList.contains('active')) {
  258.                 activeBtn.classList.remove('active');
  259.                 if (activeBtn.nextElementSibling) {
  260.                     activeBtn.nextElementSibling.classList.add('active');
  261.                 } else {
  262.                     btnIndicators[0].classList.add('active');
  263.                 }
  264.                 return;
  265.             }
  266.         });
  267.     </script>
  268. {% endblock %}