App

Shortcuts

Six outlined link items in a grid, each with a Phosphor icon, title, full description and an arrow, for quick actions such as requesting a planet visit. It steps to two columns by container width.

Free, MIT licenseOpen in Browse
import {
  AirplaneTiltIcon,
  AlienIcon,
  ArrowUpRightIcon,
  FootprintsIcon,
  PlanetIcon,
  RadioactiveIcon,
  RocketLaunchIcon,
} from "@phosphor-icons/react/dist/ssr"

import { Grid } from "@/components/editorial/grid"
import {
  Section,
  SectionContent,
} from "@/components/editorial/section"
import {
  Item,
  ItemActions,
  ItemContent,
  ItemDescription,
  ItemMedia,
  ItemTitle,
} from "@/components/ui/item"

const ACTIONS = [
  {
    name: "Request a planet visit",
    description:
      "Pick the planet and the window. Flight dynamics replies with a launch date and the delta-v it costs.",
    href: "#",
    icon: PlanetIcon,
  },
  {
    name: "Submit an alien sighting report",
    description:
      "Time, bearing and what you saw. Anything brighter than Venus goes to the duty astronomer.",
    href: "#",
    icon: AlienIcon,
  },
  {
    name: "Moonwalking training",
    description:
      "Book the pool. Six hours underwater for every hour you will spend on the surface.",
    href: "#",
    icon: FootprintsIcon,
  },
  {
    name: "Launch pass",
    description:
      "Your badge for the pad, the firing room and the crawlerway, with the next closure dates.",
    href: "#",
    icon: RocketLaunchIcon,
  },
  {
    name: "Radiation dose",
    description:
      "Your dosimeter readings for the year, and how much of the career limit is left.",
    href: "#",
    icon: RadioactiveIcon,
  },
  {
    name: "Zero-g flight",
    description:
      "Seats on the next parabolic flight: thirty arcs, twenty-five seconds of weightlessness each.",
    href: "#",
    icon: AirplaneTiltIcon,
  },
] as const

export default function Shortcuts() {
  return (
    <Section>
      <SectionContent className="@container/shortcuts">
        <Grid
          render={<ul role="list" />}
          cols={1}
          gap="sm"
          className="@2xl/shortcuts:grid-cols-2"
        >
          {ACTIONS.map((action) => (
            <li key={action.name}>
              <Item variant="outline" render={<a href={action.href} />}>
                <ItemMedia variant="icon">
                  <action.icon weight="light" aria-hidden="true" />
                </ItemMedia>
                <ItemContent>
                  <ItemTitle>{action.name}</ItemTitle>
                  <ItemDescription className="line-clamp-none">
                    {action.description}
                  </ItemDescription>
                </ItemContent>
                <ItemActions>
                  <ArrowUpRightIcon weight="light" aria-hidden="true" />
                </ItemActions>
              </Item>
            </li>
          ))}
        </Grid>
      </SectionContent>
    </Section>
  )
}

Installation

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

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

It lands at components/blocks/app/shortcuts/index.tsx, as source you own and edit.

Usage

import Shortcuts from "@/components/blocks/app/shortcuts"

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

Dependencies

npm: @phosphor-icons/react. The CLI installs them for you.

Registry pieces it installs with it: