]> git.ipfire.org Git - thirdparty/bootstrap.git/commitdiff
v6: Animate accordion details content (#42047)
authorChristian Oliff <christian_oliff@trimble.com>
Fri, 22 May 2026 19:28:27 +0000 (04:28 +0900)
committerGitHub <noreply@github.com>
Fri, 22 May 2026 19:28:27 +0000 (12:28 -0700)
Use interpolate-size and ::details-content transitions so accordions
open and close smoothly when motion is not reduced.

Co-authored-by: Cursor <cursoragent@cursor.com>
scss/_accordion.scss

index 0f8fec4e39ced5c03ce8d8d6ae5391bc89d785e3..6a9d7d56e378a4261a29b36463ecd8613525b9cd 100644 (file)
@@ -80,6 +80,16 @@ $accordion-tokens: defaults(
     background-color: var(--accordion-bg);
     border: var(--accordion-border-width) solid var(--accordion-border-color);
 
+    @media (prefers-reduced-motion: no-preference) {
+      interpolate-size: allow-keywords;
+    }
+
+    &::details-content {
+      block-size: 0;
+      overflow-y: clip;
+      @include transition(content-visibility .2s allow-discrete, block-size .2s);
+    }
+
     &:first-of-type {
       @include border-top-radius(var(--accordion-border-radius));
 
@@ -107,7 +117,11 @@ $accordion-tokens: defaults(
 
     // Open state - details[open] applies these styles
     &[open] {
+
       border-color: var(--theme-border, var(--accordion-border-color));
+      &::details-content {
+        block-size: auto;
+      }
 
       > .accordion-header {
         color: var(--theme-fg, var(--accordion-active-color));