Skip to content

Two-Column FAQ

Bootstrap 5 FAQ section with questions split into two accordion columns, plus/minus icons and a dark contact support prompt.

Live preview

Open in new tab

Code

A Bootstrap 5 FAQ section that splits questions into two side-by-side accordion columns and ends with a dark contact prompt card. Use it on pricing pages, product landing pages and help pages where visitors need quick answers before they reach out.

How it works

The root is section.fq-faq. A header row places the .fq-kicker, the #fq-title heading and the .fq-intro text side by side on large screens. Below it, two col-lg-6 columns each hold a .fq-group label and an independent Bootstrap accordion (#fq-acc-1 and #fq-acc-2). Every collapse panel uses data-bs-parent pointing to its own column, so opening a question closes the others in the same column only. Under the lg breakpoint the columns stack into a single list.

The look comes from overriding Bootstrap's accordion custom properties inside .fq-accordion: borders are removed, items become separate rounded cards with a gap, and the chevron is replaced by an amber plus icon that switches to a minus when open (--bs-accordion-btn-icon and --bs-accordion-btn-active-icon). An open item gets an amber left bar through :has(.accordion-button:not(.collapsed)). The aside.fq-contact card closes the section with an icon, a short message and two buttons.

No custom JavaScript is needed; the Bootstrap bundle handles the collapse behavior.

Customization

  • --fq-accent and --fq-accent-soft in .fq-faq: change the kicker, group bar, open-item bar and contact buttons. Update the hex colors inside the two icon data URIs to match.
  • --fq-bg and --fq-dark in .fq-faq: set the section background and the contact card color.
  • --fq-item-radius in .fq-faq: make the question cards rounder or square.
  • data-bs-parent on each .accordion-collapse: remove it to let several answers stay open at once.
  • Add show to an .accordion-collapse, remove collapsed from its button and set aria-expanded="true" to open a different question on load.
  • col-lg-6 on both columns: change to col-xl-6 to keep a single column until wider screens.
  • The href values on .fq-btn--primary and .fq-btn--ghost: point them to your contact form and help center.

Accessibility

Each question is a real button inside a heading, with aria-expanded and aria-controls kept in sync by Bootstrap, and each answer panel is labelled by its question. Headings follow a clear order: the section title, the column groups, then the questions. Buttons show an amber focus ring, and the contact links use a light focus-visible outline on the dark card. The contact card is an aside labelled by its own heading. Bootstrap disables the collapse animation for users who prefer reduced motion, and the shadow transition is turned off as well.

Usage notes

Requires Bootstrap 5 and Bootstrap Icons. The :has() highlight works in all current browsers; older browsers simply skip the left bar. Keep ids unique if you reuse the section on one page.

Requirements

Add these to your page (already included in the download):

  • <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css">
  • <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"></script>
  • <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css">
Two-Column FAQ – Bootstrap 5 faq sections component screenshot
Two-Column FAQ · Bootstrap 5 FAQ Sections

More FAQ Sections

FAQ Accordion Section – Tailwind CSS faq sections preview

FAQ Accordion Section

Dark Tailwind CSS FAQ section with an accessible accordion, smooth expand animation, keyboard navigation and a support contact card.