shadcn.io is not affiliated with official shadcn/ui
Company Size Tab-Filtered Logos Block for React
A boxed three-way size control (1-50, 51-500, 500+) over a split panel: a summary with two figures at the start, six customer wordmarks in hairline cells at the end.
Installation
Overview
A tab-filtered logo block for React with Base UI. A header, "Logged on Fathomly by 2,600 dive teams" and one sentence, carries a boxed three-way control at its end: 1-50, 51-500 and 500+, the chosen size inverted. Under it a split panel changes with the size. At the start a summary: a title ("Small crews"), a sentence on what a team of that size looks like, and two figures in a list of terms, the median team and the dives it logs a month. At the end the size's six customer wordmarks in cells that share their hairlines, rail to rail, with a split divider between the two parts and + marks where it meets the rules. The panels share one grid cell, so the block keeps its height whichever size is open. On a phone the summary sits above the logos, two across. Built from Tabs and Guides, with CSS for the entrance and the hover and your theme's tokens for every colour. For products whose customers differ most by how big they are.
FAQ
How do I change the sizes, the summaries and the customers?
Edit SIZES and CUSTOMERS at the top of the file. A size has an id, the range shown on the control, the spoken form ("Teams of 1-50"), a title, a line, and its two figures, team and dives. A customer names its size in group, with an icon, a name and a style (an index into STYLES). Keep six customers per size so the wall is full. The figures are made-up placeholders for your own numbers.
How does it work with a keyboard and a screen reader?
The control is a real tab list named "Team size": the arrow keys move between sizes (mirrored in a right-to-left layout), Home and End jump to the first and last, and Tab moves on into the open panel. Each panel has an h3 for its title, the figures are a description list, and the logos are a list named "Customers". Ranges and figures sit in bdi elements so a right-to-left layout keeps them in order.
Focusing a tab selects it, as on the other libraries, so an arrow key both moves and switches.
Why doesn't the page move when I switch sizes?
Every size's panel is also rendered once more, unseen, stacked in the same grid cell as the real panel, hidden from assistive technology and the keyboard (aria-hidden and inert). The cell is as tall as the tallest of them, so switching only swaps what shows and nothing below it moves. Panels that aren't open are not in the page's accessibility tree twice.
How is the split drawn?
The logos' column has a start border (lg:border-s) and a Guides layer with + marks, so the divider runs from the band's top rule to the foot of the block. Below lg the divider is replaced by a rule between the summary and the logos. The block ends on the wall, with no bottom rule: the next section's top rule closes it.
Related
- Pro
Use Case Tab-Filtered Logos
Tabs and filtersThree large trigger cells by genre, then a row of five customer wordmarks and a band that says how those studios use a photo proofing tool, in three steps.
- Pro
Category Grid Tab-Filtered Logos
Tabs and filtersFour pill tabs (All, Growers, Co-ops, Advisers) over a wall of eight customer wordmarks in shared hairline cells, for a farm planning tool.
- Pro
Sidebar Nav Tab-Filtered Logos
Tabs and filtersA vertical list of four trades at the start and, past a split divider, the open trade's six customer wordmarks in an open grid, for a construction takeoff tool.
- Pro
Metric Split Logos
MetricsAn oversized figure and two buttons at the start, a column of six customer wordmarks at the end past a divider, for a dependency-graph product.
- Pro
A bento for an on-call alert router: one tall customer story with a big result, a quote and a link, beside four customers that each carry an industry pill and a retention figure, in cells that share their hairlines.
- Pro
A wall of eighteen customer wordmarks for a month-end close tool, under a compact header with the customer count, in cells that share their hairlines from rail to rail.