Utilitaires✨ Premium

Dynamic Aspect Ratio

Zone média qui choisit son format selon la largeur disponible — carré, 4:3, 16:9 puis 21:9 — avec un badge qui affiche le format réellement appliqué.

CSS@containerAspect Ratio

Mis à jour le

Cet effet fait partie d'Effect.Labs — 840 effets vanilla, une partie gratuite, une partie premium. Utilitaires comprend 43 effets, dont 3 gratuits. Découvrir la catégorie →

3 exemples d'usage

Film « Les Vergers de Tallanche » — lecteur 21:9 en tête de page, extraits en carré — Dynamic Aspect Ratio exemple 1

① Film « Les Vergers de Tallanche » — lecteur 21:9 en tête de page, extraits en carré

QuandSur la page du film, la bande-annonce occupe le haut en 21:9 ; dessous, trois extraits reprennent le même composant dans des cases de 84 px et se mettent en carré. Rien à faire : chaque zone lit sa largeur.
PourquoiUne seule zone média pour l'en-tête et pour les vignettes : pas de recadrage à prévoir pour chaque emplacement.
RéglagesLe lecteur est une racine de 600 px affichée à 80 % (transform: scale(.8) sur son parent) pour tenir dans la scène ; extraits en racines de 84 px. Dégradés différents en style="background-image:…" ; l'animation de position continue.
Outil de programmation Cadrevelle — l'aperçu d'une publication qu'on élargit — Dynamic Aspect Ratio exemple 2

② Outil de programmation Cadrevelle — l'aperçu d'une publication qu'on élargit

QuandDans l'aperçu d'un message programmé, on tire la poignée (ou on utilise les flèches) : l'image passe de carré à 4:3, 16:9 puis 21:9, et le badge affiche le format à chaque palier. Au chargement, l'aperçu fait un aller-retour de 230 à 640 px.
PourquoiOn vérifie d'un geste comment le visuel sera recadré selon la largeur de l'emplacement.
RéglagesZone de travail affichée à 72 % pour que tous les paliers tiennent ; poignée réglant la largeur du cadre entre 200 et 640 px.
Visioconférence Visorne — le partage d'écran passe de 16:9 à 4:3 quand on ouvre les participants — Dynamic Aspect Ratio exemple 3

③ Visioconférence Visorne — le partage d'écran passe de 16:9 à 4:3 quand on ouvre les participants

QuandJade partage son écran en 16:9 sur toute la largeur. Un clic sur « Participants (4) » ouvre la liste à droite : la zone de partage se rétrécit sous 450 px et passe en 4:3, badge compris.
PourquoiLe partage reste entier et dans un format cohérent avec la place qui lui reste, sans bande noire calculée à la main.
RéglagesBouton (aria-expanded) qui ouvre une colonne de 178 px dans la grille de la scène ; barre d'outils de l'appel posée par-dessus la zone.

Comment ça marche

.fx-0764-root est un conteneur transparent (container: dar-media / inline-size) qui prend toute la largeur. La zone .dar-media a des coins de 10 px, un libellé centré et un dégradé cyan → bleu → violet deux fois plus grand qu'elle, dont la position glisse en boucle sur 6 s (@keyframes dar-shift). Sa hauteur découle uniquement de aspect-ratio, qui vaut 1 / 1 au départ.

Trois paliers @container dar-media changent le format : 4 / 3 dès 300 px, 16 / 9 dès 450 px, 21 / 9 dès 600 px. Le libellé grossit en même temps (de 0,85 à 1,4 rem). Le changement de format est animé en 0,5 s : mesuré, la zone passe progressivement de la hauteur carrée à la hauteur 16:9 dans les trois moteurs testés.

Le badge .dar-badge est vide dans le HTML ; son texte vient de ::before, redéfini dans chaque palier (content: "16:9"…). Il est donc toujours juste, quelle que soit la façon dont la largeur change, et sans script. Pour un vrai média, posez votre image ou vidéo en fond de .dar-media, ou placez un <img> / <video> dedans en object-fit: cover.

Accessibilité

  • Badge lu : le texte généré par ::before fait partie du nom lu par les lecteurs d'écran récents (« 16:9 »). S'il n'apporte rien à votre public, ajoutez aria-hidden="true" sur le badge.
  • Mouvement réduit : sous prefers-reduced-motion: reduce, le dégradé ne défile plus (il reste affiché, immobile) et les changements de format et de libellé se font sans transition.
  • Contraste : libellé blanc ombré sur le dégradé par défaut : 4,6:1 au moins sur ses trois couleurs, mesuré dans Chromium, Firefox et WebKit à plusieurs instants de l'animation ; badge blanc sur voile noir à 45 %. Avec une photo claire derrière, foncez-la ou renforcez le voile du badge.
  • Média à décrire : la zone est une div ; si vous y mettez une image porteuse de sens, utilisez un <img alt="…"> plutôt qu'un fond CSS.

Compatibilité navigateur

Requêtes de conteneur, aspect-ratio (Chrome 88, Firefox 89, Safari 15) et animation CSS. Mesuré dans Chromium 151, Firefox 153 et WebKit 26.5 : 1:1 jusqu'à 260 px, 4:3 de 300 à 430, 16:9 à 520, 21:9 à 620 et 800 px, badge identique au format affiché à chaque fois.

Chrome 105+✓ Complet (mesuré)
Firefox 110+✓ Complet (mesuré)
Safari 16+✓ Complet (mesuré sous WebKit)
Edge 105+✓ Complet
Mobile iOS 16+✓ Complet
Android Chrome 105+✓ Complet

Sans @container, la zone reste carrée et le badge affiche « 1:1 », ce qui reste exact.

Le code

Structure HTML à coller dans votre page (le CSS + JS sont inclus avec votre achat) :

index.html — structure
<div class="fx-0764-root">
  <div class="dar-media">
    <span class="dar-label">Dynamic Ratio</span>
    <span class="dar-badge"></span>
  </div>
</div>

Paiement unique, sans abonnement — le code est à toi pour toujours

Personnaliser

Options passées à l'API ou attributs data-* :

Option / propriétéDéfautEffet
Paliers et formats (CSS — @container dar-media (min-width: …) et aspect-ratio) 1:1, 4:3 dès 300, 16:9 dès 450, 21:9 dès 600 px Changez chaque aspect-ratio et le content du badge dans la même règle pour qu'ils restent d'accord (ex. 3:2 au lieu de 4:3).
Visuel (CSS ou HTML — .dar-media) Dégradé #048096 → #1b6df5 → #8453f5, animé Pour une photo, remplacez le fond par url(…) center / cover et retirez animation.
Vitesse du dégradé (CSS — animation: dar-shift 6s) 6 s, en boucle 12 s pour un mouvement à peine perceptible, none pour un fond fixe.
Badge (HTML/CSS — .dar-badge) Visible, en haut à droite Supprimez la balise pour un média sans indication, ou déplacez-le avec top/left.
Libellé (HTML — .dar-label) « Dynamic Ratio » Mettez le titre de la vidéo, ou retirez-le pour une image seule.
Durée de la transition de format (CSS — transition: aspect-ratio .5s) 0,5 s none si la zone est dans une liste qui se redimensionne souvent.

FAQ

Oui. Son texte est défini en CSS dans la même règle que le format : quand la zone passe en 16:9, le badge passe à « 16:9 » au même instant, que la largeur change à cause de la fenêtre, d'une colonne ou d'un panneau.
Placez une <video> dans .dar-media avec position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover. La zone garde le format calculé et la vidéo est recadrée dedans.
Sous 300 px de large, le format carré est le premier palier. Abaissez le palier 4:3 (par exemple à 220 px) si vous préférez une image plus basse dans les colonnes étroites.