Как на JS/CSS сделать анимацию раскрывающегося аккордеона (например,
impreza.us-themes.com/elements/accordion/)? В jQuery встроены эффекты slideIn/slideOut, которые раскрывают/скрывают любое содержимое. Попытался сделать такое на обычном CSS упёрся в то, что transition на height "криво" работает, если есть внутри маржины/паддинги (при height: 0 и не пустых отступах высота контента будет не нулевой, а если трансформация сразу и на отступы и на высоту - эффект работает "криво", box-sizing border-box не помогает). Плюс проблема с тем, что высота контента может быть разной и если она не задана точно, то анимация вообще работать не будет.
Как такое сделать на ванильном JS? К какому свойству привязаться, чтобы эффект слопывания/раскрытия работал на элементе в не зависимости от того, какой контент лежит внутри? Ну или, возможно, порекомендуете библиотеку для анимации (не сильно тяжёлую), с помощью которой это легко реализовать.