Files
fitme3070.pt/site/includes/header_video.php
T
andreandClaude Sonnet 5 5cf0f14ad2 fix: correções Baixo da auditoria (escaping, dvh, transições, assets)
Fecha os itens 3.2.2, 3.3.1, 4.6, 5.2, 5.6, 5.7 e 7.4 do relatório de
auditoria de 2026-09-24: escapa saídas de site_img_url()/canonical,
valida identificadores de coluna em db_info_save(), troca 100vh por
100dvh, remove a última cor solta, encurta a transição para ~150ms,
acrescenta decoding=async/fetchpriority=high nas imagens da home, e
documenta as versões vendorizadas em ASSETS.md.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-25 12:16:33 +01:00

39 lines
1.3 KiB
PHP

<div class="clearfix"></div>
<div class="video fade-in">
<div class="overlay"></div>
<video playsinline autoplay muted loop poster="<?= base_url($header_video_img) ?>">
<source src="<?= base_url($header_video_video) ?>" type="video/mp4">
</video>
<div class="container h-100">
<div class="d-flex h-100 text-center align-items-center">
<div class="w-100 text-white">
<h1 class="display-3"><img src="<?= base_url('site/assets/img/logos/logo_crossfit_white.svg')?>" alt="CrossFit 3070 — box de CrossFit em Mira" style="opacity: .85; max-width: 320px;" decoding="async"></h1>
<p class="lead mb-0"></p>
</div>
</div>
</div>
</div>
<style>
.video {
position: relative; background-color: #000;
height: 75vh; min-height: 25rem; width: 100%;
overflow: hidden;
}
.video video {
position: absolute; top: 50%; left: 50%;
min-width: 100%; min-height: 100%;
width: auto; height: auto; z-index: 0;
transform: translate(-50%, -50%);
object-fit: cover;
}
.video .container { position: relative; z-index: 2; }
/* Fallback poster for touch devices */
@media (pointer: coarse) and (hover: none) {
.video {
background: url('<?= base_url($header_video_img) ?>') #000 center/cover no-repeat;
}
.video video { display: none; }
}
</style>