Skip to content
Folio

Website

Portfolio

An editorial introduction, featured images, records and a question card.

Usage

When to reach for it

Build a personal or studio index from supplied text, images and actions.

Ships from@misoto22/folio/website

TSX
import { Portfolio } from '@misoto22/folio/website'

Notes

An introduction and a chosen photograph, with content supplied by the host.

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

editorial introduction

A short biography and a supporting index share one introductory composition. Text, facts and category totals are supplied by the application.

Designer and writer exploring the everyday tools that help people think.

Independent practice
Working across places
Start by paying attention.

Selected work

Essays
12
Projects
4

Parts

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

PortfolioImage

PortfolioImage props
PropTypeDefaultDescription
childrenrequiredReactElement—
indexstring—
metadataReactNode—
naturalbooleanfalsePreserve the supplied image's intrinsic dimensions instead of cropping.
size'feature' | 'tile' | 'thumbnail''tile'—
titleReactNode—

PortfolioRecord

PortfolioRecord props
PropTypeDefaultDescription
titlerequiredReactNode—
actionReactNode—
contextReactNode—
descriptionReactNode—
imageReactNode—
metadataReactNode—

PortfolioList

PortfolioList props
PropTypeDefaultDescription
childrenrequiredReactNode—
labelstring—
variant'records' | 'frames' | 'thumbnails''records'—

PortfolioCategories

PortfolioCategories props
PropTypeDefaultDescription
itemsrequired{ id: string; label: ReactNode; count: number }[]—
labelrequiredstring—

QuestionCard

A compact invitation to an application-owned conversation.

QuestionCard props
PropTypeDefaultDescription
descriptionrequiredstring—
examplesrequiredstring[]—
examplesLabelrequiredstring—
labelrequiredstring—
onChangerequired(value: string) => void—
onSubmitrequired(value: string) => void—
placeholderrequiredstring—
submitLabelrequiredstring—
titlerequiredReactNode—
valuerequiredstring—
disabledboolean—
inputIdstring—
maxLengthnumber—