Milestones

Company History Milestones

Company history in three columns under a top rule, one per year, each with a date, title and paragraph. No markers; a header and description sit above.

Free, MIT licenseOpen in Browse
import { Heading } from "@/components/editorial/heading"
import {
  Milestone,
  MilestoneContent,
  MilestoneDate,
  MilestoneDescription,
  MilestoneMeta,
  Milestones,
  MilestoneTitle,
} from "@/components/editorial/milestones"
import {
  Section,
  SectionContent,
  SectionDescription,
  SectionHeader,
  SectionTitleGroup,
} from "@/components/editorial/section"

// The copy: change text here, not in the markup.
const COPY = {
  title: "Three years of the studio",
  body: "The kit grew out of client work. These are the turns that made it a product.",
} as const

const MILESTONES = [
  {
    date: "2024",
    name: "A shared folder",
    description:
      "Components copied between client repos, each one drifting a little from the last.",
  },
  {
    date: "2025",
    name: "A registry",
    description:
      "The folder became an install command. One source, every project reading from it.",
  },
  {
    date: "2026",
    name: "A system",
    description:
      "Parts that compose, one neutral theme, and art that is ours. The product you are looking at.",
  },
] as const

export default function HistoryMilestones01() {
  return (
    <Section aria-labelledby="years-title">
      <SectionHeader>
        <SectionTitleGroup>
          <Heading id="years-title">{COPY.title}</Heading>
        </SectionTitleGroup>
        <SectionDescription>{COPY.body}</SectionDescription>
      </SectionHeader>
      <SectionContent>
        <Milestones cols={3} rule="top" className="@2xl:gap-12">
          {MILESTONES.map((m) => (
            <Milestone key={m.date} className="text-foreground">
              <MilestoneContent>
                <MilestoneMeta>
                  <MilestoneDate dateTime={m.date}>{m.date}</MilestoneDate>
                </MilestoneMeta>
                <MilestoneTitle>{m.name}</MilestoneTitle>
                <MilestoneDescription>{m.description}</MilestoneDescription>
              </MilestoneContent>
            </Milestone>
          ))}
        </Milestones>
      </SectionContent>
    </Section>
  )
}

Installation

pnpm dlx shadcn add @01orbital/history-milestones-01
npx shadcn add @01orbital/history-milestones-01
yarn shadcn add @01orbital/history-milestones-01
bunx --bun shadcn add @01orbital/history-milestones-01

Free under the MIT license. Add the @01orbital registry to components.json once (install guide), then run the command.

It lands at components/blocks/milestones/history-milestones-01/index.tsx, as source you own and edit.

Usage

import HistoryMilestones01 from "@/components/blocks/milestones/history-milestones-01"

export default function Example() {
  return <HistoryMilestones01 />
}

Dependencies

Registry pieces it installs with it: