Skip to content
15 changes: 13 additions & 2 deletions elements/pfe-accordion/src/pfe-accordion-header.scss
Original file line number Diff line number Diff line change
Expand Up @@ -30,19 +30,24 @@ $LOCAL: accordion;
:host(:first-child) {
button {
@include pfe-trigger-button-first($theme: light);
}
}
}


// Add border bottom to the last button in an accordion set.
:host(:last-of-type) {
button[aria-expanded="false"] {
@include pfe-trigger-button-last;
}
}
}

:host(.animating) {
transition: transform 0.3s #{pfe-var(animation-timing)};

button {
@include pfe-trigger-expanded;
@include pfe-trigger-color-expanded($theme: light, $component-name: accordion);
}
}

/// ===========================================================================
Expand All @@ -58,3 +63,9 @@ $LOCAL: accordion;
}
}
}

:host([on="dark"].animating){
button {
@include pfe-trigger-color-expanded($theme: dark, $component-name: accordion);
}
}
9 changes: 5 additions & 4 deletions elements/pfe-accordion/src/pfe-accordion-panel.scss
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,14 @@ $LOCAL: accordion;
@include pfe-accordion-panel;
}

:host([expanded]) {
:host([expanded]),
:host(.animating) {
@include pfe-accordion-panel-expanded;
@include pfe-accordion-panel-expanded-style;
}

:host([on="dark"][expanded]) {

:host([on="dark"][expanded]),
:host([on="dark"].animating){
@include pfe-theme($theme: "dark");
@include pfe-accordion-panel-expanded-style($theme: dark);
}
Expand All @@ -32,4 +34,3 @@ $LOCAL: accordion;
:host(:last-of-type[expanded]) {
margin-bottom: 0;
}

5 changes: 4 additions & 1 deletion elements/pfe-accordion/src/pfe-accordion.js
Original file line number Diff line number Diff line change
Expand Up @@ -258,13 +258,14 @@ class PfeAccordion extends PFElement {
}

_animate(panel, start, end) {
const header = panel.previousElementSibling;
panel.classList.add("animating");
header.classList.add("animating");
panel.style.height = `${start}px`;

requestAnimationFrame(() => {
requestAnimationFrame(() => {
panel.style.height = `${end}px`;
panel.classList.add("animating");
panel.addEventListener("transitionend", this._transitionEndHandler);
});
});
Expand Down Expand Up @@ -306,6 +307,8 @@ class PfeAccordion extends PFElement {
}

_transitionEndHandler(evt) {
const header = evt.target.previousElementSibling;
header.classList.remove("animating");
evt.target.style.height = "";
evt.target.classList.remove("animating");
evt.target.removeEventListener("transitionend", this._transitionEndHandler);
Expand Down