A complete Bootstrap 6 accounting firm homepage for a fictional CPA practice, Tallyfield & Co, in forest green and lime. It includes a live savings estimator, services, onboarding steps, testimonials and a consultation booking form.
How it works
.ac-page is light, while the header, consultation panel and footer use data-bs-theme="dark". style.css maps the Bootstrap 6 primary role to green in light areas and lime in dark areas, so btn-solid theme-primary keeps its contrast.
- Navbar:
navbar lg:navbar-expandwith a<dialog class="drawer drawer-end">on small screens. "Services" opens a.menu. - Hero: headline, pill buttons and a photo with the
.ac-calcestimator. Its two Bootstrap 6 Range sliders fireinputevents that update the<output>labels and[data-ac-total]. - Stats and services: a
<dl>stat row and a bento grid (.ac-bento). - How it works: four numbered
.ac-stepsrows. - Clients: a large lime quote and two cards with portraits.
- Consultation:
<form data-bs-validate novalidate>with: - a
<select class="form-control"> btn-checkservice chips- a Datepicker in a
form-adornfield - a radio
btn-group
At load, the script sets data-bs-date-min (tomorrow) and data-bs-date-max (60 days ahead), so no date goes stale. On submit it flags invalid fields and requires a service and a date. It then simulates sending and opens #ac-toast.
- FAQ and footer: an exclusive
accordion accordion-gapand a dark footer with a final call to action.
Customization
- To rebrand, change
--ac-forest,--ac-greenand--ac-limeon.ac-pageinstyle.css, plus the--bs-primary-*blocks. - Adjust
AC_HOURLY_RATE,AC_WORK_WEEKSandAC_TAX_SAVINGinscript.jsto tune the estimator. - Change the
max.setDate(max.getDate() + 60)offset inscript.jsto widen the booking window. - Replace the
setTimeoutin the.ac-formsubmit handler withfetch()to your booking or CRM endpoint. - Add or remove
.ac-chiplabels to match the services you sell. - Remove
.ac-service-featurefrom the first card to give all services the same size. - The photos come from Unsplash. Replace them with your own team and office images.
Accessibility
A skip link targets #ac-main. Sliders have labels and <output> values, the total is in an aria-live region, and chip groups use fieldset/legend. A failed submit moves focus to the first invalid field, and the toast uses role="status". Focus rings are visible in light and dark areas, and transitions stop under prefers-reduced-motion.
Bootstrap 6 notes
Built on Bootstrap 6.0.0-alpha.1 (alpha APIs can still change). Coming from Bootstrap 5:
- Range uses a wrapper plus
form-range-input. - The Datepicker is built in.
form-selectis gone: useform-controlon<select>.- Toggle chips put
btn-checkon the label. - Drawer and Menu replace Offcanvas and Dropdown.
data-bs-validatereplacesneeds-validation.