SearchCtrlK

  • ↑↓navigate
  • ↵open
  • escclose

Can’t find it? Contact us

ContributorWall

A project's contributors as a dense mosaic of square tiles.

View code
tsx
<ContributorWall aria-label="Contributors">
	{people.map((person) => (
		<ContributorWall.Person href={person.url} name={person.name} />
	))}
	<ContributorWall.More href={contributorsUrl} count="+179" aria-label="All 214 contributors" />
</ContributorWall>

Demo landings

Whole pages built only from @sdxc/ui, each for an invented product with its own palette and type. They open in a new tab.

Every demo, landings and docs sites alike, is listed in the demo gallery.

Installation

An ordinary dependency: install it, import the theme once, and import the component where it is used.

Terminal
npm add @sdxc/ui remix
typescript
import "@sdxc/ui/theme.css";

Usage

typescript
import { ContributorWall } from "@sdxc/ui/landing";

Renders the mosaic. Every tile is square and the grid's columns step with its own width, so the wall keeps its texture from a phone column to a wide split. Server markup and CSS alone; tiles round to --ui-landing-card-radius-inner and outline in --ui-landing-hairline.

Composition

The parts the component publishes, each a static property of the host.

  • ContributorWall
  • ContributorWall.PersonOne contributor: a linked tile with their picture or their initials, named by name.
  • ContributorWall.MoreThe closing tile: the count of contributors the wall leaves out, linking to all of them, drawn as a hairline outline so it reads as a way out of the mosaic.

Props

Read from the component's own types, so every prop, every default and every allowed value is listed.

PropTypeRequiredDescription
"aria-label"stringYesAccessible name for the list, such as "Contributors to plumb".
columnsColumnsNoColumns at each container step. A tile count that divides every step, the ContributorWall.More tile included, fills every row.
childrenRemixNodeYesContributorWall.Person tiles, then an optional ContributorWall.More.

Also accepts everything in TagProps<"ul">.

ContributorWall.Person

PropTypeRequiredDescription
hrefstringYesTheir profile or commit history.
namestringYesTheir name, read by assistive technology and shown as a tooltip.
srcstringNoTheir picture; the tile shows their initials when omitted.

Also accepts everything in Omit<TagProps<"a">, "children" | "href" | "role">.

ContributorWall.More

PropTypeRequiredDescription
hrefstringYesThe full contributor list.
countRemixNodeYesThe short count the tile shows, such as "+190".
"aria-label"stringYesWhat the link opens, read in full by assistive technology.

Also accepts everything in Omit<TagProps<"a">, "children" | "href" | "role">.

@sdxc/ui

Can’t find it? Contact us