feat(webkit)!: reshape Message onto slot-first copy with label and size - #833
Merged
Conversation
Message presented a title/description stack, so copy carrying an inline link
had no home: the only escape was the default slot, which replaced the icon
and the entire layout along with it. The banner is now a single line of copy
in one content region that keeps the leading icon and styles anchors with the
.text-link token, and it gains a size token driving the height floor, inline
padding, and copy scale.
- title + description replaced by an optional label, with the default slot as
the primary path for copy that needs inline markup
- size ('small' | 'medium') added; root and content region expose data-size
- data-trailing tightens the end inset when an action or close control brings
its own padding
- spec, tests (33 passing in browser mode), and the Message and
DeleteDomainDialog stories moved onto the new surface, along with the
title -> label call sites in the shipped webkit-form, webkit-ui-states, and
webkit-ui-verify skills
BREAKING CHANGE: Message no longer accepts title or description. Pass the copy
as label, or in the default slot when it needs inline links: severity="warning"
title="..." becomes severity="warning" label="...". A second description line
has no replacement — fold it into the single copy line. The __title and
__description testids are replaced by one __content testid.
…ze its controls The reshaped banner left its trailing controls on fixed sizes and its copy on the body type scale, so a small banner still carried a medium action and the icon rendered at whatever font-size the host page happened to set. - the built-in action is a `secondary` Button instead of `text`, so it reads as a control rather than as body copy on the tinted surface - both trailing controls take the banner's size: `small` -> Button/IconButton `small` (28px), `medium` -> `medium` (32px) - message copy moves to the label type scale (`.text-label-sm` 12px / `.text-label-md` 14px), replacing the body steps at the same pixel sizes - the leading icon is a fixed 14px (`size-3.5` box, `.text-label-md` glyph), replacing `size-4` plus `text-[length:inherit]`, which had the glyph inheriting the host page's font-size instead of a token Spec token table records the resolved values (gap 12px, inline padding 8/12px, icon 14px) and a theme gap for the missing icon-size scale.
Generated on ubuntu-latest via the Storybook Regenerate Baseline workflow (run 30483122954) — 24 updated for the new copy scale, 14px icon, and resized trailing controls, plus 12 new for the Sizes and WithLinks stories.
robsongajunior
approved these changes
Jul 29, 2026
herbert-julio-azion
approved these changes
Jul 29, 2026
gabriel-lisboa-azion
added a commit
that referenced
this pull request
Jul 30, 2026
…prop Upstream #833 reshaped Message onto slot-first copy and removed the `title` and `description` props. Vue forwards unknown props through $attrs, so all 15 usages in this app silently stopped rendering their copy — `title` landed as a native browser tooltip instead. Rename them to `label`, collapsing the eight title+description pairs into a single string, since the reshaped banner renders one copy paragraph rather than a title/description stack. No copy was dropped.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Message presented a
title+descriptionstack, so copy carrying an inline link had no home — the only escape was the default slot, which replaced the icon and the entire layout along with it. This reshapes the banner onto a single line of copy in one content region that keeps the leading icon and styles anchors with the.text-linktoken, and adds asizetoken driving the height floor, inline padding, copy scale, and the trailing control sizes.Breaking:
title(required) anddescriptionare gone. Pass the copy aslabel, or in the default slot when it needs inline markup.A
descriptionsecond line has no replacement — fold it into the single copy line. The__title/__descriptiontestids are replaced by one__contenttestid.Notes
small— 32px floor, 8px inline padding,.text-label-sm;medium(default) — 36px, 12px,.text-label-md. Block padding is 6px in both. A trailing action or close control tightens the end edge to 8px and lets the banner grow past the floor.size. The built-in action is now asecondaryButton (wastext) so it reads as a control rather than body copy; both it and the close IconButton takesmall(28px) /medium(32px) with the banner.size-3.5box,.text-label-mdglyph). It previously usedtext-[length:inherit], which made the glyph inherit the host page's font-size rather than a token.title→labelusages in the shippedwebkit-form,webkit-ui-states, andwebkit-ui-verifyskills. Those skill edits ride along because they would otherwise document a prop that no longer exists.data-trailingflag, severity/role normalization, the action and close controls, and axe. All pass.Sizes/WithLinksstories need new ones.Known gaps, not addressed here
data-size, and.claude/rules/testing.mdforbids class-string assertions. Addingdata-sizeto those two legacy components is the real fix.size="small"the 12px gap now exceeds the 8px inline padding, so the icon sits closer to the banner edge than to the copy. Left as-is;data-[size=small]:gap-[var(--spacing-xs)]would even it out.