About this set
Chevrons that turn with the state of the control they belong to, the arrows behind accordions, FAQs, dropdowns and selects. The details and summary FAQ draws a border chevron with summary::after and turns it when the details element has the open attribute, so it works with no script. The accordion with a custom arrow puts the chevron in a tinted circle that rotates and fills when its button has aria-expanded=”true”. In the Bootstrap file this is a real Bootstrap .accordion, with the arrow swapped through –bs-accordion-btn-icon and –bs-accordion-btn-active-icon, which is the usual way to give a Bootstrap accordion a custom arrow. The dropdown chevron flips when its sort menu opens; in Bootstrap it is a .dropdown with the default caret hidden. The select keeps the native element and replaces only its arrow with an inline SVG background. Because every rotation is keyed to [open] or aria-expanded rather than a separate class, the arrow cannot disagree with what assistive technology announces. The plain and Tailwind accordion and dropdown use a few lines of JavaScript that flip aria-expanded and the hidden attribute; Escape closes the dropdown.
What’s included
- details and summary FAQ with no JavaScript
- Accordion arrow driven by aria-expanded
- Bootstrap .accordion with a custom arrow through --bs-accordion-btn-icon
- Dropdown chevron that flips, with Escape to close
- Native select with a custom SVG arrow
Accessibility
The FAQ uses native details and summary. The accordion and dropdown buttons carry aria-expanded and aria-controls, and the chevron rotation is driven by that attribute, so the visual state and the announced state always match. The dropdown closes on Escape and returns focus to its button, and the current sort option has aria-current. The select has a visible label. Every control shows a 2px indigo focus outline, and rotations are instant under prefers-reduced-motion.
Customise it
Set --accent, --tint, --line, --ink and --muted on .faq, .acc, .dd and .sel-field. In Bootstrap edit the --bs-accordion-*, --bs-dropdown-* and --bs-form-select-bg-img variables; in Tailwind edit the @theme colours and the sel-arrow utility.






