Sakuga Back to Sakuga
Theme
Sound
Jump to a component

AniCanonKit · Maki

MakiCard

MakiCard is something Maki proposes or reports inside a turn: an issue, a story edit, a section to add, a reason to keep.

@anicanon/sakuga/anicanonkitv1.0Used onWeb · iOS · AndroidFrom AniCanon™

Live, from @anicanon/sakuga 2.0.0

Sakuga for iOS and Android is coming

iOS

Coming soon

MakiCard for iOS is in the roughs. The tokens it will read are the ones on this page, the same on every platform.

Android

Coming soon

MakiCard for Android is in the roughs. The tokens it will read are the ones on this page, the same on every platform.

Use it for
Something Maki proposes or reports inside a turn: an issue, a story edit, a section to add, with what was checked and Accept as the primary.
Not for
  • Maki's words around itMakiTurn
  • Something found in writing, beside the words it came fromProposalCard
  • A proposed change shown in place in the wordsRevision
  • A correction pinned to work on a sheetSlip

Guidelines

  • Eyebrow says what kind ("Maki · Story edit"); badge marks an issue's severity.
  • check states what was verified ("The story stays consistent with this edit"). Actions go in slot="actions"; Accept is the primary.
  • Maki proposes; only the person's Accept writes. muted for a card already decided: its pictures and icons fade, and its words drop only to the faintest text that reads.
MakiCardExample.jsxReact
import { Button } from '@anicanon/sakuga/ui';
import { MakiCard } from '@anicanon/sakuga/anicanonkit';

export default function MakiCardExample() {
  return (
    <MakiCard
      eyebrow="Maki · Story edit"
      title="Move it earlier in the story"
      check="The story stays consistent with this edit"
    >
      <span slot="actions">
        <Button variant="ghost" size="sm">
          Reject
        </Button>
        <Button variant="primary" size="sm">
          Accept
        </Button>
      </span>
    </MakiCard>
  );
}

PropsMakiCardProps

eyebrow
string
title
string
badge
{ label: string; variant?: 'new' | 'alert'; icon?: IconName; }
check
string
muted
boolean
actions
ReactNode
The actions (as slot="actions").
children
ReactNode
className
string

An IconName is any of the names Icon lists.

MakiCardExample.swiftiOS · coming soon
MakiCardExample.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.

Colour

maki-card-bgMakiCard: surface.
bg-canvasneutral-50#f6f6f8
bg-canvasneutral-950#07070a
maki-card-borderMakiCard: outline.
border-dividershade-a12rgba(11,10,16,0.12)
border-dividerwhite-a12rgba(255,255,255,0.12)
maki-card-eyebrowMakiCard: eyebrow.
text-mutedneutral-600#5c5b67
text-mutedneutral-400#a3a3a7
maki-check-fgMakiCard: the check line.
text-secondaryneutral-800#2e2d36
text-secondaryneutral-200#dcdcde
maki-check-iconMakiCard: the check mark.
text-accentcamellia-700#b42354
text-accentcamellia-400#f4779f

Space and shape

maki-card-gap
gap-md
8px
maki-card-padding
inset-md
12px
maki-card-radius
radius-md
12px
maki-card-inset-ring-width
line-hairline
1px
maki-card-muted-opacity
opacity-muted
0.6
maki-card-title-gap
gap-md
8px
maki-card-check-gap
gap-sm
6px
maki-card-actions-gap
gap-md
8px

Type

maki-card-small-font
text-eyebrow
700 11px/14px "Funnel Sans", system-ui, -apple-system, "Segoe UI", sans-serif
maki-card-small-letter-spacing
tracking-caps
.06em
maki-card-title-b-font
text-label
600 14px/20px "Funnel Sans", system-ui, -apple-system, "Segoe UI", sans-serif
maki-card-check-font
text-small-strong
600 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 itself; "Already answered" when muted, then the eyebrow, badge, title, body and check read as text in order, the check's icon is hidden, and the actions take focus.
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.