Foundation
01A concise starting configuration.
- Core layout
- Theme tokens
- Responsive states
Component registry
Each block below is a real, working component from the Derby system — not a mockup. Inspect the data-hook contract under each one to see how it is wired.
The sticky shared header uses a compact brand mark, active navigation state, optional registry action, and an accessible off-canvas mobile menu.
A subpage banner with eyebrow, title, lede, and breadcrumb. The hero above is a live example.
Reference section
A subpage hero with breadcrumb, eyebrow, and lede that works across any information architecture.
<section class="page-hero"> with a .breadcrumb, .eyebrow, h1, and .lede.The generic card grid — one renderer, many card classes. Used for features, resources, profiles, links, summaries, and more.
Combine a visual cue, heading, description, and optional action.
Use the same card pattern in features, resources, profiles, or links.
Spacing, focus, contrast, and responsive rules remain predictable.
<div class="card-grid" data-cards="demoCards"></div>. The renderer reads an array from the content object and builds each card.A dark highlight band for concise numeric values. Count-up is an optional behavior of this component rather than a duplicate component.
<div class="stats-grid" data-stats="demoStats"></div>. Each item is <strong>value</strong><span>label</span>.Numbered steps for a process, timeline, or how-it-works.
Clarify the information, audience, and desired outcome.
Select and order the components that support the content.
Apply theme tokens, responsive rules, and interaction states.
Test semantics, keyboard behavior, layout, and visual output.
<div class="process-list" data-process="demoProcess"></div>. Numbers auto-increment via CSS counter-reset.Attributed statements with optional ratings or metadata.
A concise statement can reinforce a key idea without tying the layout to one industry.
The same structure supports ratings, quotations, or short editorial highlights.
Attribution and optional metadata stay consistent across every visual theme.
<div class="reviews-grid" data-reviews="demoReviews"></div>.Expandable content groups with aria-expanded and smooth height animation.
<div class="faq-list" data-faq="demoFaq"></div>. Each item toggles aria-expanded and animates max-height.Tabbed content for related views, specifications, categories, or supporting details.
Summarize the primary idea without changing pages or opening another interface.
Reveal supporting information while preserving the surrounding context.
Present structured facts, requirements, or metadata in a compact panel.
<div class="tabs" data-tabs="demoTabs"></div>. Uses role="tablist", aria-selected, and hidden panels.Controlled slider with previous/next, 44px pagination targets, and a visible pause/play control. Inactive slides leave the accessibility tree.
<div class="carousel" data-carousel="demoCarousel"></div>. Rotation pauses on demand or keyboard focus and is disabled by prefers-reduced-motion.A scrolling strip for labels, categories, partner names, status terms, or repeated phrases.
<div class="marquee"><div class="marquee-track">…</div></div>. Duplicate the content once for a seamless loop.Mixed-size card layout — one big, several small. Breaks the uniform-grid monotony.
The big one.
Small.
Small.
Tall.
Small.
<div class="bento" data-bento="demoBento"></div>. Items can be wide, tall, or dark.A vertical timeline for history, milestones, or a longer process.
Establish the initial structure, tokens, and content contract.
Add variants only when they provide a distinct layout or behavior.
Exercise responsive, keyboard, and reduced-motion states.
Publish a versioned and documented reference implementation.
<div class="timeline" data-timeline="demoTimeline"></div>.Draggable image comparison for any visual state change, revision, transformation, or side-by-side inspection.
<div class="ba"><img><div class="ba-after"><img></div><div class="ba-handle"></div></div>. Drag the handle to compare.Fade-in on scroll. Add data-reveal to any element. Disabled under reduced-motion.
This card fades in when scrolled into view.
Add data-reveal to opt in.
Works on any element, any section.
<div data-reveal>…</div>. Uses IntersectionObserver; fully disabled under prefers-reduced-motion.Labeled meters for completion, allocation, readiness, or comparative values. Based on Elementor's Progress Bar category, with semantic progressbar roles.
aria-valuemin, aria-valuemax, and aria-valuenow.Comparable tiers with one optional featured state. Numeric labels are intentionally generic so the component can represent plans, packages, levels, or editions.
Foundation
01A concise starting configuration.
Expanded
02A broader component composition.
Custom
03A tailored system extension.
Two-state cards reveal supporting detail on hover, focus, or tap. Click a card to hold its revealed state.
This dismissible message can communicate information, success, caution, or a temporary update.
role="status" for polite information; reserve role="alert" for urgent messages.A neutral time-to-milestone display. This demo starts from a fixed duration instead of implying a promotion or event.
Generate a compact list of links from the headings in long-form content.
The current section receives aria-current as the reader moves through the page.
Use it when the content is long enough that direct section navigation saves effort.
<div class="card-grid" data-cards="items"></div>
Pair one focused message with one primary action and keep the surrounding context intact.