Skip to content
Folio

Website

Timeline

Career records, profile narratives and chronological lists.

Usage

When to reach for it

Present dated work, education and personal background using supplied content.

Ships from@misoto22/design/website

TSX
import { Timeline } from '@misoto22/design/website'

Notes

An ordered collection frame. No sorting or business data is owned here.

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

dated records

A chronological record retains its supplied dates, organization and supporting details. The host decides ordering and date formatting before rendering the timeline.

Experience

1 role
Period
2023 — present
Location
Remote
Current

Product designer

  • Designing practical tools for research and publishing.
  • Working with small teams from prototype to delivery.
  • Research
  • Design systems

Parts

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

RecordSection

A named ledger section. The host supplies its chronology without reordering.

RecordSection props
PropTypeDefaultDescription
childrenrequiredReactNode
headingIdrequiredstring
titlerequiredstring
countstring

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

CareerRecord

One dated record, reusable for a role, qualification or other chronology.

CareerRecord props
PropTypeDefaultDescription
descriptionrequiredstring[]
locationrequiredstring
locationLabelrequiredstring
organizationrequiredReactNode
periodrequiredstring
periodLabelrequiredstring
tagsrequiredstring[]
tagsLabelrequiredstring
titlerequiredstring
currentLabelstring
markReactNode

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

ProfileSection

A profile section follows the same heading and spacing contract as its neighbors.

ProfileSection props
PropTypeDefaultDescription
childrenrequiredReactNode
headingIdrequiredstring
titlerequiredstring
descriptionstring

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

ProfileNarrative

A short introduction with a pull quote and a longer account alongside it.

ProfileNarrative props
PropTypeDefaultDescription
headingIdrequiredstring
paragraphsrequiredstring[]
pullrequiredstring
titlerequiredstring
actionReactNode

ProfileSkills

Skill labels and theme-aware artwork, supplied by the host's content adapter.

ProfileSkills props
PropTypeDefaultDescription
groupsrequired{ id: string; title: string; items: ProfileSkill[] }[]

ProfileInterests

A small set of interests or areas of practice.

ProfileInterests props
PropTypeDefaultDescription
itemsrequired{ id: string; title: string; description: string }[]

ProfileFigure

Source-faithful profile photography: retain the supplied image's aspect ratio.

ProfileFigure props
PropTypeDefaultDescription
childrenrequiredReactNode
captionstring

TimelineItem

A record mount, isolated so motion can follow the shared data-motion axis.

Takes no props of its own.