shadcn.io is not affiliated with official shadcn/ui
Skill Filter Team Block for React
Seven engineers of a build-cache company in hairline rows with their skills as chips, under six skill chips that float the people who know a skill to the top, fill the matching chips and count how many know it.
Installation
Overview
A skills directory for React with Base UI, for Spruceby, a build cache for monorepos. A compact header sits over a ruled band of six skill chips (Rust, Go, TypeScript, Kubernetes, Postgres and Bazel), each counting the people who know it, with a polite line that says what is shown. Under it seven engineers sit in hairline rows that run from rail to rail: an initials avatar, a name, a specific role and their skills as wrapped chips. Press a skill and the people who know it float to the top, in their usual order, with the matching chips filled in; everyone else stays below, dimmed, so the list keeps its height. Press the chip again and everyone goes back. On a phone the chips scroll sideways and each row's skills wrap under the role. It's built from Toggle Group, Badge, Avatar and Guides, with CSS transitions and your theme's tokens for every colour. The people are fictional example data. For agency and studio pages, "who could staff this" lists and any team page where the question is "who knows X".
FAQ
How do I change the people and the skills?
Edit PEOPLE and SKILLS at the top of the file. A person is a name, a role and a skills list. A skill is filterable when it is in SKILLS; any other skill on a person (like "Linux kernels") shows as a plain chip. The counts on the chips and the line above the list are counted from the same data, so adding someone needs no other change. Keep at least two people per filterable skill, or the line reads "1 person knows" for a skill that is hardly a team strength.
How does the filter work with a keyboard and a screen reader?
It's a group named Skills. Tab moves into it, the arrow keys move between the chips, and Space or Enter presses one; pressing the pressed chip again clears it. Each chip is read with its count ("Rust, 3 people"), a polite line says the result ("3 people know Rust") without moving focus, and a matching chip in a row is read with "(matches)". The matching people also come first in the list itself, so a screen reader meets them first.
Why do people move to the top instead of the others being hidden?
Hiding leaves a list with holes and a block that shrinks, which moves everything below it. Here the people who know the skill move to the front in their usual order, and everyone else follows, dimmed in place: a light tint on the row, an outline avatar and a muted name, all at AA contrast in light and dark themes. The list always has the same height. Tools that watch for layout shifts report the re-sort as one; it is the feature.
How does it fit on a phone?
The chips scroll sideways from rail to rail, with the next chip peeking in, and the polite line sits under them. Each row stacks: the avatar, name and role first, then the skills wrapped under the role, in a few short lines. All seven people are shown, since a pick should never hide behind a button.
Can I use photos instead of initials?
Yes: put an AvatarImage in each Avatar, before the fallback. The avatar is decorative (the name is in the heading beside it), so the picture needs no alternative text. A filled initials avatar marks the matches while a skill is picked; with photos you may want a ring on the matching rows instead.
Related
- Pro
Highlight Filter Team
Grids and wallsEighteen people of an event-ticketing company on a dense wall of hairline cells, with department chips that dim everyone outside the selection in place, so nobody moves and the wall keeps its height.
- Pro
Tech Stack Bands Team
Skills and expertiseFour domain bands (frontend, backend, infrastructure, data) in a data-pipeline company, each with its tools as chips at the start and its engineers at the end, a filled or hollow dot marking expert or proficient.
- Pro
Expertise Matrix Team
Skills and expertiseEight CI-platform engineers down a table, four skills across with five-level dots, pill tabs to switch the skill group and a last row for the team average, running rail to rail and scrolling sideways on a phone.
- Pro
Expertise Tags Team
Skills and expertiseOne engineer's expertise in a split: a person and an endorsements stack on the start, three columns (Strong, Working, Learning) on the end, with the level carried by the chip's weight: solid, outlined or muted.
- Pro
Searchable Directory Team
Lists and directoriesA field-service company's eighteen people in one table, under a ruled band with a search field, department and city selects, a live count and a clear button, with an empty state when nobody matches.
- Pro
Badge Counter Wall Features
Metrics and chartsA wall of eight channel counters for a unified inbox, with a two-button toggle that switches between every channel and only those with unread messages.