Sakuga Back to Sakuga
Theme
Sound
Jump to a component

AniCanonKit · Places

PlaceCard

The place or backdrop being made, on the left of its flow: its picture once drawn, or before that an empty frame naming what fills it (with the loader while it draws), its name, a quiet line under it, its facts and a note. Built from the core's Thumb and FactList; it lives in AniCanonKit, not the core.

@anicanon/sakuga/anicanonkitv1.0Used onWebFrom AniCanon™

Live, from @anicanon/sakuga 2.0.0

Sakuga for iOS and Android is coming

iOS

Web only

PlaceCard is made for the web, and isn’t part of Sakuga for iOS yet.

Android

Web only

PlaceCard is made for the web, and isn’t part of Sakuga for Android yet.

Use it for
The place or backdrop being made, on the left of its flow: its picture or an empty frame, its name, its facts and what happens next.
Not for

Guidelines

One per flow screen, on the left, as CharacterCard is in the character flows. Nothing sits on the picture: the flow's footer holds the action.

PlaceCardExample.jsxReact
import { PlaceCard } from '@anicanon/sakuga/anicanonkit';

const facts = [
  { label: 'District', value: 'Centro' },
  { label: 'Inside or out', value: 'Interior' },
  { label: 'Views', value: '5 planned' },
];

export default function PlaceCardExample() {
  return (
    <>
      <PlaceCard
        name="Sé station"
        caption="A place in EBA"
        placeholder="Drawing"
        drawing
        facts={facts}
        note="You can close this. We’ll tell you when the anchor is ready."
      />
      <PlaceCard
        name="Sé station"
        caption="A place in EBA"
        image="/art/eba-se-station.webp"
        lightMap="/art/eba-se-station.light.webp"
        alt="Sé station: the mezzanine over the platforms"
        facts={facts}
        note="Approve it and the other 4 views are drawn from it."
      />
    </>
  );
}

PropsPlaceCardProps

namerequired
string
The place or backdrop.
caption
string
The quiet line under the name ("A place in EBA").
image
string
The picture at 16:9 once there is one: a place's anchor, or the backdrop.
alt
string
The picture at 16:9 once there is one: a place's anchor, or the backdrop.
lightMap
string
The picture's baked light map, passed to its Thumb (light on art).
light
boolean
placeholder
string
With no picture yet: what the frame will hold ("The anchor is drawn here", "Drawing", "Not drawn").
drawing
boolean
With no picture yet: the loader beside the placeholder while it draws.
facts
{ label: string; value: string; }[]
A few facts, as a FactList: district, inside or out, views planned.
note
string
What happens next, under everything ("Nothing is drawn until you approve the plan.").
className
string
PlaceCardExample.swiftiOS · coming soon
PlaceCardExample.ktAndroid · coming soon

Each token reads a role, and the role lands on a value in each theme. Change the role and every component that reads it follows.

Space and shape

place-card-empty-loader-size
icon-size-md
20px
place-card-gap
gap-lg
12px
place-card-empty-gap
gap-md
8px
place-card-head-gap
gap-2xs
2px

Type

place-card-font-family
font-sans
Funnel Sans
place-card-empty-font
text-small-strong
600 12px/16px "Funnel Sans", system-ui, -apple-system, "Segoe UI", sans-serif
place-card-name-font
text-title-3
700 20px/26px "Funnel Display", "Funnel Sans", system-ui, -apple-system, "Segoe UI", sans-serif
place-card-caption-font
text-small
500 12px/16px "Funnel Sans", system-ui, -apple-system, "Segoe UI", sans-serif

Checked automatically with axe-core 4.11.4 against WCAG 2.2 A and AA, on the live preview above, in light and dark, on 26 October 2026.

Result
No issues found, in light or in dark.
By design
Not focusable; a region named by name, with the picture's alt from alt or the name, the name as a level-2 heading, then the caption, facts and note as text. While it draws, the empty frame reads its placeholder, and its loader stays quiet inside the card.
Not tested
The automated check doesn't test keyboard use, focus order or what a screen reader says. The lines above are the design system's own account of them.