Website
Collection
Collection headings, search controls, featured records and empty states.
Usage
When to reach for it
Ships from@misoto22/design/website
import { ContentBand } from '@misoto22/design/website'Best practices
Do
- Supply localized labels, descriptive links and meaningful image alternatives.
Don’t
- Do not put service credentials, routing logic or backend models inside presentation components.
Examples
searchable records
Search and category state stay with the host, which supplies the filtered records. The controls provide named inputs, clear actions and pressed filter states.
Library
Essays and projects from the studio.
A practice of attention
Noticing what a familiar place reveals.
The shared library
A small tool for a growing collection.
Parts
Composed at the call site rather than configured through props, so a layout this component did not anticipate is still expressible.
CollectionIntro
| Prop | Type | Default | Description |
|---|---|---|---|
| titlerequired | ReactNode | — | |
| actions | ReactNode | — | |
| compact | boolean | false | — |
| context | ReactNode | — | |
| description | ReactNode | — | |
| media | ReactNode | — |
CollectionMetadata
| Prop | Type | Default | Description |
|---|---|---|---|
| itemsrequired | CollectionMetadataItem[] | — |
CollectionGroup
| Prop | Type | Default | Description |
|---|---|---|---|
| caption | ReactNode | — | |
| compact | boolean | — | |
| headingId | string | — | |
| title | ReactNode | — |
Also accepts everything in Omit<HTMLAttributes<HTMLElement>, 'title'>. Those are forwarded to the underlying element and are not listed row by row.
CollectionSearch
| Prop | Type | Default | Description |
|---|---|---|---|
| clearLabelrequired | string | — | |
| labelrequired | string | — | |
| onChangerequired | (value: string) => void | — | |
| valuerequired | string | — | |
| focusShortcut | boolean | false | — |
| placeholder | string | — |
CollectionControls
| Prop | Type | Default | Description |
|---|---|---|---|
| itemsrequired | CollectionFilter[] | — | |
| onSelectrequired | (value: string | null) => void | — | |
| selectedrequired | string | null | — | |
| filterLabel | string | — | |
| quiet | boolean | — | |
| search | CollectionSearchProps | — | |
| showCounts | boolean | true | — |
HighlightedText
| Prop | Type | Default | Description |
|---|---|---|---|
| queryrequired | string | — | |
| textrequired | string | — | |
| className | string | — |
RecordRow
| Prop | Type | Default | Description |
|---|---|---|---|
| titlerequired | ReactNode | — | |
| context | ReactNode | — | |
| headingLevel | 2 | 3 | 2 | — |
| index | ReactNode | — | |
| link | CollectionLink | — | |
| media | ReactNode | — | |
| metadata | ReactNode | — | |
| subtitle | ReactNode | — | |
| summary | ReactNode | — | |
| trailing | ReactNode | — | |
| variant | 'editorial' | 'media' | 'compact' | 'editorial' | — |
FeaturedRecord
| Prop | Type | Default | Description |
|---|---|---|---|
| mediarequired | ReactNode | — | |
| titlerequired | ReactNode | — | |
| action | ReactNode | — | |
| context | ReactNode | — | |
| summary | ReactNode | — |
CollectionEmpty
| Prop | Type | Default | Description |
|---|---|---|---|
| messagerequired | string | — | |
| action | ReactNode | — | |
| hint | string | — |
CollectionFooter
| Prop | Type | Default | Description |
|---|---|---|---|
| children | ReactNode | — | |
| feedback | ReactNode | — |
TaxonomyLinks
| Prop | Type | Default | Description |
|---|---|---|---|
| childrenrequired | ReactNode | — | |
| label | string | — |
ReferenceLink
A quiet resource link for references, separate from action buttons.
Takes no props of its own.
ReferenceRows
| Prop | Type | Default | Description |
|---|---|---|---|
| itemsrequired | { id?: string; label: ReactNode; hint?: ReactNode; content: ReactNode }[] | — |
CollectionTally
| Prop | Type | Default | Description |
|---|---|---|---|
| childrenrequired | ReactNode | — |
CollectionList
| Prop | Type | Default | Description |
|---|---|---|---|
| childrenrequired | ReactNode | — |
Also accepts everything in HTMLAttributes<HTMLUListElement>. Those are forwarded to the underlying element and are not listed row by row.
Types
export type CollectionLink = ReactElement<{ children?: ReactNode }>