A balloon is a voice. It is a reading plate: the words sit on the balloon, never on the art behind it. The shape is drawn on the server with no measuring: one body path stretched over the text box and a tail drawn in pixels from the edge, strokes first and fills after, so the seams disappear. Speech is my voice; shout is one big claim per view; thought is the question a visitor is probably asking; whisper is fine print; radio is a system reply.
Example#
Built to be tested.
Sent. It is in my inbox now.
Usage#
Use a balloon for someone speaking: a short line from Max, a client, the site itself. It is a plate (D-F3), lettered in caps by a comic letterer's hand, with a tail that points at the speaker, or off the panel when the narrator speaks.
- Kinds.
speech(default),shout(spiked, one per view at every volume),thought(a cloud with bubbles),whisper(a dashed rule) andradio(a lightning tail, for system and automated replies, such as "Sent"). - Tails. A shorthand such as
bottom-left, or a full spec withside,at,lengthandangle;"none"for no tail. - Fills.
paper,white,caption,inverseandspot, each a sanctioned pair. - Shape. Round up to twelve words, boxier above, chosen on the server with no measuring.
speakeradds a hidden "Jordan Reyes: " for screen readers;live="polite"announces radio replies.
Layer and volume#
Reading layer: text, fill and outline are identical at every volume; the register sets the line width and the shadow ink. Quiet: no arrival. One shout per view at every volume.
Anatomy#
Built to be tested.
- Body
data-mk-part="body" - TailPoints at the speaker.
.mk-balloon-tail - LetteringShantell Sans, caps by CSS, 16 px and up.
.mk-balloon-text
Volume#
Quiet
Built to be tested.
Sent. It is in my inbox now.
Studio
Built to be tested.
Sent. It is in my inbox now.
Press
Built to be tested.
Sent. It is in my inbox now.
Rave
Built to be tested.
Sent. It is in my inbox now.
Content#
- 35 words at most (D-D7); a dev warning and
checkBalloonenforce it. Shorter is better. - Write in sentence case; the caps come from CSS, so screen readers read words, not letters.
- No em dashes, no "X, not Y" tells. Jokes are welcome here; prices and instructions are not.
Do and don't#
Do
Built to be tested.
Don't
Our pricing starts at $3,200 for a five-page templated site with two rounds of revisions and launch support.
Accessibility#
- 0° always; text from the balloon pair tokens; sentence-case source, capitals through CSS.
- ≤ 35 words (a development warning and
checkBalloon); longer copy belongs on a words panel in Schibsted. speakeradds a visually hidden "Jordan Reyes: " prefix;live="polite"addsrole="status"for replies.- Arrives with a small pop from the tail, then stays still; reduced motion: present at rest.
Props#
| Prop | Type | Default | Description |
|---|---|---|---|
kind | BalloonKind | none | |
tail | "none" | TailSpec | TailShorthand | bottom-left | The tail: a side and position, a shorthand, or `none` (default `bottom-left`). |
fill | BalloonFill | none | |
shape | "auto" | "boxy" | "round" | none | `auto`: round up to 12 words, boxy above. |
shadow | boolean | none | A hard shadow in `--mk-cx-shadow-ink`. |
place | Area | none | In art panels: the area of the 3 × 3 placement grid. |
width | string | 22rem | Maximum inline size (default `22rem`). |
speaker | string | none | A visually hidden prefix naming who speaks ("Jordan Reyes: "). |
live | "polite" | none | `polite` adds `role="status"` (radio replies). |
as | "blockquote" | "div" | "p" | none | |
seed | number | none | |
children required | ReactNode | none | Sentence-case words, ≤ 35. |
Tokens#
System tokens (23)
--mk-ease-pop--mk-font-letter--mk-pair-balloon-caption-bg--mk-pair-balloon-caption-fg--mk-pair-balloon-inverse-bg--mk-pair-balloon-inverse-fg--mk-pair-balloon-paper-bg--mk-pair-balloon-paper-fg--mk-pair-balloon-spot-bg--mk-pair-balloon-spot-fg--mk-pair-balloon-white-bg--mk-pair-balloon-white-fg--mk-type-letter-balloon-leading--mk-type-letter-balloon-size--mk-type-letter-balloon-tracking--mk-type-letter-balloon-weight--mk-type-letter-shout-leading--mk-type-letter-shout-size--mk-type-letter-shout-tracking--mk-type-letter-shout-weight--mk-type-letter-whisper-tracking--mk-type-letter-whisper-weight--mk-w-quiet
Its own properties (13)
--mk-balloon-bg--mk-balloon-bleed--mk-balloon-fg--mk-balloon-max--mk-balloon-origin--mk-balloon-pad-x--mk-balloon-pad-y--mk-cx-line--mk-cx-line-ink--mk-cx-shadow--mk-cx-shadow-ink--mk-tail-k--mk-tail-length
Changelog#
Arrived in 0.1.0.
- The 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,Misregistrationand the.mk-ovsecond ink,GiantGlyph,ShapeGlyph), the dataCover(grid and score,coverAlt,CoverLegend), the comic registers and kit (Panel,PanelGrid,Balloon,Caption,CornerBox,EditorsNote,ContinuedIn,SFX,SfxBurst,SpeedLines,FocusLines,ImpactStar,KeyPop).