Skip to content
Folio

Website

Collection

Collection headings, search controls, featured records and empty states.

Usage

When to reach for it

Display a searchable archive without moving filtering or data access into the package.

Ships from@misoto22/design/website

TSX
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.

Parts

Composed at the call site rather than configured through props, so a layout this component did not anticipate is still expressible.

CollectionIntro

CollectionIntro props
PropTypeDefaultDescription
titlerequiredReactNode
actionsReactNode
compactbooleanfalse
contextReactNode
descriptionReactNode
mediaReactNode

CollectionMetadata

CollectionMetadata props
PropTypeDefaultDescription
itemsrequiredCollectionMetadataItem[]

CollectionGroup

CollectionGroup props
PropTypeDefaultDescription
captionReactNode
compactboolean
headingIdstring
titleReactNode

Also accepts everything in Omit<HTMLAttributes<HTMLElement>, 'title'>. Those are forwarded to the underlying element and are not listed row by row.

CollectionSearch

CollectionSearch props
PropTypeDefaultDescription
clearLabelrequiredstring
labelrequiredstring
onChangerequired(value: string) => void
valuerequiredstring
focusShortcutbooleanfalse
placeholderstring

CollectionControls

CollectionControls props
PropTypeDefaultDescription
itemsrequiredCollectionFilter[]
onSelectrequired(value: string | null) => void
selectedrequiredstring | null
filterLabelstring
quietboolean
searchCollectionSearchProps
showCountsbooleantrue

HighlightedText

HighlightedText props
PropTypeDefaultDescription
queryrequiredstring
textrequiredstring
classNamestring

RecordRow

RecordRow props
PropTypeDefaultDescription
titlerequiredReactNode
contextReactNode
headingLevel2 | 32
indexReactNode
linkCollectionLink
mediaReactNode
metadataReactNode
subtitleReactNode
summaryReactNode
trailingReactNode
variant'editorial' | 'media' | 'compact''editorial'

FeaturedRecord

FeaturedRecord props
PropTypeDefaultDescription
mediarequiredReactNode
titlerequiredReactNode
actionReactNode
contextReactNode
summaryReactNode

CollectionEmpty

CollectionEmpty props
PropTypeDefaultDescription
messagerequiredstring
actionReactNode
hintstring

CollectionFooter

CollectionFooter props
PropTypeDefaultDescription
childrenReactNode
feedbackReactNode

TaxonomyLinks

TaxonomyLinks props
PropTypeDefaultDescription
childrenrequiredReactNode
labelstring

ReferenceLink

A quiet resource link for references, separate from action buttons.

Takes no props of its own.

ReferenceRows

ReferenceRows props
PropTypeDefaultDescription
itemsrequired{ id?: string; label: ReactNode; hint?: ReactNode; content: ReactNode }[]

CollectionTally

CollectionTally props
PropTypeDefaultDescription
childrenrequiredReactNode

CollectionList

CollectionList props
PropTypeDefaultDescription
childrenrequiredReactNode

Also accepts everything in HTMLAttributes<HTMLUListElement>. Those are forwarded to the underlying element and are not listed row by row.

Types

TSX
export type CollectionLink = ReactElement<{ children?: ReactNode }>