Skip to content
Site volume
Colourway

Comic kit

Sound effects (SFX)

Comic sound-effect lettering on Anybody's width axis: POW wide, BOOM extended, ZAP condensed, KRAK compressed.

  • Beta
  • Expressive layer
  • Server component
  • Since 0.1.0
  • Press check
Import from@maxgrits/overprint-react/comic
On this page

SFX are art, not words. Each voice has a burst shape and a width: POW on a starburst, BOOM on a halftone cloud, ZAP on an electric burst with bolts and a second ink, KRAK on a cracked plate. The burst is sized from the estimated word width, so nothing is measured. SfxBurst is the bare shape for behind blocks and hits.

Example#

Look of this example
Live render of examples/sfx/basic.tsx

Usage#

Use an SFX for a sound effect a visitor causes: a press, a hit, an arrival. POW!, BOOM!, ZAP! and KRAK! are presets with their own width, slant, burst and extrusion; custom SFX set those by hand.

  • Caused, decorative, hidden. An SFX is always aria-hidden, never focusable and never the only label of anything (D-F5). If a moment carries a message, the message is reading-layer text and the SFX decorates it.
  • cause dispatches mk:sfx so the sound engine can play the matching voice when sound is on.
  • Sizes. s, m, l and xl; on phones they scale down and never overlap the text column.

Layer and volume#

Art: per view Quiet 0 (hidden), Studio 1, Press 2, Rave 4. It pops in once (700 ms) and tilts at most the volume's cap. Line inks only at Press and up.

Anatomy#

The parts of examples/sfx/basic.tsx, numbered:
  1. BurstThe shape behind the word, sized from its width.data-mk-part="burst"
  2. LetteringAnybody, extruded, in the support ink.data-mk-part="lettering"

Volume#

  • Quiet

    Hidden.

  • Studio

    One per view.

  • Press

    Two per view, with one width flex.

  • Rave

    Four per view.

Content#

  • One word, capitals, 2 to 8 letters, up to two "!" (checkSfx).
  • Never a brand, a number, a price or a status word ("FREE!", "ERROR!" and "SALE!" fail).
  • Never on an error, a destructive confirmation, a price, a legal line or a form field.

Do and don't#

Do

Sent. It is in my inbox now.

Decorates a happy, caused moment.

Don't

An SFX reading "ERROR!" over a failed payment.

A joke over a failure.

SFX are celebration. On an error they mock the reader at the worst moment; errors stay literal and calm.

Accessibility#

  • Always aria-hidden, never focusable, never the only label of anything; a message lives in reading text beside it ("Sent. It is in my inbox now.").
  • Words pass checkSfx: one word in capitals, 2 to 8 letters, no prices, status or error words.
  • Reduced motion: static at rest.

Props#

PropTypeDefaultDescription
word requiredstringnoneOne word that passes `checkSfx` ("POW!").
voiceSfxVoicenone
sizeSfxSizenone
wdthnumbernoneCustom voice:
italicbooleannone
weightnumbernone
shapeSfxShapenone
extrude[number, number]none
trackingnumbernone
fillInkRefnone
burstInkInkRefnone
lineInkRefnone
extrudeInkInkRefnone
secondInkRefnone
rotatenumberper voiceDegrees (default per voice); clamped to ±`--mk-v-tilt-max`.
causeSfxCausenoneWhat caused it (the motion runtime dispatches `mk:sfx` with this kind).
delaynumbernonems before the pop.
seednumbernone
childrenundefinednone

Plus 279 React and DOM attributes passed through to the root element (className, ref, aria-*, event handlers and the rest). Generated from SfxProps in packages/overprint-react/src/comic/sfx.tsx.

Tokens#

System tokens (16)

Its own properties (8)

  • --mk-key-pop-size
  • --mk-key-pop-wdth
  • --mk-sfx-burst
  • --mk-sfx-extrude
  • --mk-sfx-fill
  • --mk-sfx-k
  • --mk-sfx-rot
  • --mk-sfx-w

Scanned from its CSS at build and checked against its registry entry; 7 read but not declared there.

Changelog#

Arrived in 0.1.0.

0.9.024 October 2026

  • Minorfonts, reactPageWipe (link activation at Press and Rave, the flip voice) and FlexWord (the width axis on a view timeline), and the SFX width flex at Press and Rave. Type: the server advance table (anybodyWidthEm, fitEm, estimateFit, FIT_CUTS in ./art), which sizes SFX bursts within 1.5 % of the browser and gives FittedLine an estimate for its first paint. Read the whole entry

0.1.024 October 2026

  • MinorreactThe print and comic kits, P0 (21 P2-T11 to P2-T15): the art core (seeded halftone, bursts, balloons, lines, krackle, printer's marks, SFX layers, the texture tiles and gen-print-tiles), the print kit (Halftone, Overprint, PrinterMarks, Sticker, Stamp, Seal, useStampLand, Tape, Grain, Misregistration and the .mk-ov second ink, GiantGlyph, ShapeGlyph), the data Cover (grid and score, coverAlt, CoverLegend), the comic registers and kit (Panel, PanelGrid, Balloon, Caption, CornerBox, EditorsNote, ContinuedIn, SFX, SfxBurst, SpeedLines, FocusLines, ImpactStar, KeyPop).