12 · Sibling functions
Sibling functions
Posición y total de hermanos en CSS puro
sibling-index()
Devuelve la posición (1-based) del elemento entre sus hermanos. Acá cada item retrasa su animación según su posición.
1
2
3
4
5
transition-delay: calc(sibling-index() * 0.1s)
sibling-count()
Devuelve el total de hermanos. Útil para repartir espacio proporcionalmente sin saber cuántos hay.
width: calc(100% / sibling-count())
Sin JS
Antes necesitabas :nth-child() por cada item o un loop en el template para los delays. Ahora CSS calcula solo.
/* stagger según la posición entre hermanos */
.sib-item {
transition: opacity .3s ease, transform .3s ease;
transition-delay: calc(sibling-index() * .1s);
}
@starting-style {
.sib-item { opacity: 0; transform: translateX(-12px); }
}
/* repartir espacio proporcionalmente */
.sib-bar {
width: calc(100% / sibling-count());
transition-delay: calc(
sibling-index() / sibling-count() * .4s
);
}Nota honesta sobre soporte
Muchas de estas APIs son recientes y aún no están en todos los navegadores (ver pill de cada sección). La gracia es que todas degradan bien: el carousel sigue scrolleando, el accordion abre/cierra, el textarea funciona — solo sin el "plus" animado.