fix(webkit): align a toast's leading icon to its title, not to the whole row - #892

Merged
isaque-bock-azion merged 3 commits into
mainfrom
fix/toast-item-alignment
Aug 21, 2026
Merged

fix(webkit): align a toast's leading icon to its title, not to the whole row#892
isaque-bock-azion merged 3 commits into
mainfrom
fix/toast-item-alignment

Conversation

@gabriel-lisboa-azion

Copy link
Copy Markdown
Collaborator

Summary

  • The leading severity icon aligned to the outer row, which a 28px trailing action/close control stretched — so on a one-line toast the glyph sat below the title. Icon + content column now sit in an inner items-start group; the loadingSpinner keeps self-center.
  • The trailing region takes -my-(--spacing-xxs) so that 28px control no longer inflates a one-line card, and -mr-(--spacing-xs) so a text action's label ends optically flush with the card padding instead of inset by the button's own.
  • .specs/toast.md updated to describe the two-group anatomy (checksum + last_updated refreshed).

How to test

  1. cd packages/webkit && npx vitest run src/components/feedback/toast → 23 passed.
  2. pnpm storybook:dev → Components/Feedback/Toast. On a one-line toast with an action, the icon, title and action all sit on one centred line and the card height is unchanged by the action. On a multi-line toast, the icon aligns to the title's first line, not the middle of the block. The text action's label ends flush with the card's right padding.

Notes

  • Visual-only; no prop, event, or slot change.

…ole row
The icon and the content column now sit in an inner items-start group, so the
typed glyph aligns to the title's line — its only line on a one-line toast, the
first line on a multi-line one — instead of to the outer row, which the 28px
action/close control stretched. The trailing region takes a negative block margin
so that control no longer inflates a one-line card, and a negative inline-end
margin so a text action's label ends optically flush with the card's padding
instead of inset by the button's own.
@isaque-bock-azion
isaque-bock-azion requested a review from a teamAugust 19, 2026 23:04
@isaque-bock-azion
isaque-bock-azion merged commit 2a8a8db into mainAug 21, 2026
23 checks passed
@isaque-bock-azion
isaque-bock-azion deleted the fix/toast-item-alignment branch August 21, 2026 14:27
gabriel-lisboa-azion added a commit that referenced this pull request Aug 26, 2026
Brings in the 17 commits main has since 2026-08-17 — the webkit
documentation category (#919), the shared leading column for Select /
MultiSelect / Dropdown (#935), resizable-panel (#902), the copy-button
tooltip and card-box header inset (#936), --container-site (#923), the
page-enter / content-enter arrivals (#896), the colored-icon currentColor
fix (#930) and the skills that landed with them.
Conflict resolution, all fifteen:
Demo wins where it already carries work that is still an OPEN PR on main
and main's side is the older shape that PR rewrote — toast-item (#900's
`h-[1lh]` line box over #892's `self-center`), use-placement and
popover.test (#932's translate anchoring over #891's prose), and the
theme animation tokens, where the entry-count canary confirms every
main entry survived alongside demo's.
Main wins where its side is a superset or the corrected form — DESIGN.md
(gains `text-body-prose-md` and `.layout-column-docs`), package.json
(keeping demo's footer block would have duplicated the four keys main
already merged in above it), and resizable-panel.test, whose named
imports are the form that keeps CodeQL from reading a compiler-generated
`.vue` default export as undefined.
Both sides where each added something: .size-limit.json keeps demo's
ratcheted 1.1 KB footer-root budget and takes main's fourteen doc-*
entries; the ui-craft skill and the CLI plan keep demo's microcopy
routing without duplicating main's entry.
Generated artifacts were rebuilt rather than hand-resolved — theme dist
via build:tokens, catalog.json via catalog:build — and both carry each
side's tokens and all 258 exports.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@gabriel-lisboa-azion@guilherme-santana-azion@isaque-bock-azion
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

fix(webkit): align a toast's leading icon to its title, not to the whole row - #892

Merged
isaque-bock-azion merged 3 commits into
mainfrom
fix/toast-item-alignment
Aug 21, 2026
Merged

fix(webkit): align a toast's leading icon to its title, not to the whole row#892
isaque-bock-azion merged 3 commits into
mainfrom
fix/toast-item-alignment

Conversation

@gabriel-lisboa-azion

Copy link
Copy Markdown
Collaborator

Summary

  • The leading severity icon aligned to the outer row, which a 28px trailing action/close control stretched — so on a one-line toast the glyph sat below the title. Icon + content column now sit in an inner items-start group; the loadingSpinner keeps self-center.
  • The trailing region takes -my-(--spacing-xxs) so that 28px control no longer inflates a one-line card, and -mr-(--spacing-xs) so a text action's label ends optically flush with the card padding instead of inset by the button's own.
  • .specs/toast.md updated to describe the two-group anatomy (checksum + last_updated refreshed).

How to test

  1. cd packages/webkit && npx vitest run src/components/feedback/toast → 23 passed.
  2. pnpm storybook:dev → Components/Feedback/Toast. On a one-line toast with an action, the icon, title and action all sit on one centred line and the card height is unchanged by the action. On a multi-line toast, the icon aligns to the title's first line, not the middle of the block. The text action's label ends flush with the card's right padding.

Notes

  • Visual-only; no prop, event, or slot change.

…ole row
The icon and the content column now sit in an inner items-start group, so the
typed glyph aligns to the title's line — its only line on a one-line toast, the
first line on a multi-line one — instead of to the outer row, which the 28px
action/close control stretched. The trailing region takes a negative block margin
so that control no longer inflates a one-line card, and a negative inline-end
margin so a text action's label ends optically flush with the card's padding
instead of inset by the button's own.
@isaque-bock-azion
isaque-bock-azion requested a review from a teamAugust 19, 2026 23:04
@isaque-bock-azion
isaque-bock-azion merged commit 2a8a8db into mainAug 21, 2026
23 checks passed
@isaque-bock-azion
isaque-bock-azion deleted the fix/toast-item-alignment branch August 21, 2026 14:27
gabriel-lisboa-azion added a commit that referenced this pull request Aug 26, 2026
Brings in the 17 commits main has since 2026-08-17 — the webkit
documentation category (#919), the shared leading column for Select /
MultiSelect / Dropdown (#935), resizable-panel (#902), the copy-button
tooltip and card-box header inset (#936), --container-site (#923), the
page-enter / content-enter arrivals (#896), the colored-icon currentColor
fix (#930) and the skills that landed with them.
Conflict resolution, all fifteen:
Demo wins where it already carries work that is still an OPEN PR on main
and main's side is the older shape that PR rewrote — toast-item (#900's
`h-[1lh]` line box over #892's `self-center`), use-placement and
popover.test (#932's translate anchoring over #891's prose), and the
theme animation tokens, where the entry-count canary confirms every
main entry survived alongside demo's.
Main wins where its side is a superset or the corrected form — DESIGN.md
(gains `text-body-prose-md` and `.layout-column-docs`), package.json
(keeping demo's footer block would have duplicated the four keys main
already merged in above it), and resizable-panel.test, whose named
imports are the form that keeps CodeQL from reading a compiler-generated
`.vue` default export as undefined.
Both sides where each added something: .size-limit.json keeps demo's
ratcheted 1.1 KB footer-root budget and takes main's fourteen doc-*
entries; the ui-craft skill and the CLI plan keep demo's microcopy
routing without duplicating main's entry.
Generated artifacts were rebuilt rather than hand-resolved — theme dist
via build:tokens, catalog.json via catalog:build — and both carry each
side's tokens and all 258 exports.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@gabriel-lisboa-azion@guilherme-santana-azion@isaque-bock-azion
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(webkit): align a toast's leading icon to its title, not to the whole row - #892

Merged
isaque-bock-azion merged 3 commits into
mainfrom
fix/toast-item-alignment
Aug 21, 2026
Merged

fix(webkit): align a toast's leading icon to its title, not to the whole row#892
isaque-bock-azion merged 3 commits into
mainfrom
fix/toast-item-alignment

Conversation

@gabriel-lisboa-azion

Copy link
Copy Markdown
Collaborator

Summary

  • The leading severity icon aligned to the outer row, which a 28px trailing action/close control stretched — so on a one-line toast the glyph sat below the title. Icon + content column now sit in an inner items-start group; the loadingSpinner keeps self-center.
  • The trailing region takes -my-(--spacing-xxs) so that 28px control no longer inflates a one-line card, and -mr-(--spacing-xs) so a text action's label ends optically flush with the card padding instead of inset by the button's own.
  • .specs/toast.md updated to describe the two-group anatomy (checksum + last_updated refreshed).

How to test

  1. cd packages/webkit && npx vitest run src/components/feedback/toast → 23 passed.
  2. pnpm storybook:dev → Components/Feedback/Toast. On a one-line toast with an action, the icon, title and action all sit on one centred line and the card height is unchanged by the action. On a multi-line toast, the icon aligns to the title's first line, not the middle of the block. The text action's label ends flush with the card's right padding.

Notes

  • Visual-only; no prop, event, or slot change.

…ole row
The icon and the content column now sit in an inner items-start group, so the
typed glyph aligns to the title's line — its only line on a one-line toast, the
first line on a multi-line one — instead of to the outer row, which the 28px
action/close control stretched. The trailing region takes a negative block margin
so that control no longer inflates a one-line card, and a negative inline-end
margin so a text action's label ends optically flush with the card's padding
instead of inset by the button's own.
@isaque-bock-azion
isaque-bock-azion requested a review from a teamAugust 19, 2026 23:04
@isaque-bock-azion
isaque-bock-azion merged commit 2a8a8db into mainAug 21, 2026
23 checks passed
@isaque-bock-azion
isaque-bock-azion deleted the fix/toast-item-alignment branch August 21, 2026 14:27
gabriel-lisboa-azion added a commit that referenced this pull request Aug 26, 2026
Brings in the 17 commits main has since 2026-08-17 — the webkit
documentation category (#919), the shared leading column for Select /
MultiSelect / Dropdown (#935), resizable-panel (#902), the copy-button
tooltip and card-box header inset (#936), --container-site (#923), the
page-enter / content-enter arrivals (#896), the colored-icon currentColor
fix (#930) and the skills that landed with them.
Conflict resolution, all fifteen:
Demo wins where it already carries work that is still an OPEN PR on main
and main's side is the older shape that PR rewrote — toast-item (#900's
`h-[1lh]` line box over #892's `self-center`), use-placement and
popover.test (#932's translate anchoring over #891's prose), and the
theme animation tokens, where the entry-count canary confirms every
main entry survived alongside demo's.
Main wins where its side is a superset or the corrected form — DESIGN.md
(gains `text-body-prose-md` and `.layout-column-docs`), package.json
(keeping demo's footer block would have duplicated the four keys main
already merged in above it), and resizable-panel.test, whose named
imports are the form that keeps CodeQL from reading a compiler-generated
`.vue` default export as undefined.
Both sides where each added something: .size-limit.json keeps demo's
ratcheted 1.1 KB footer-root budget and takes main's fourteen doc-*
entries; the ui-craft skill and the CLI plan keep demo's microcopy
routing without duplicating main's entry.
Generated artifacts were rebuilt rather than hand-resolved — theme dist
via build:tokens, catalog.json via catalog:build — and both carry each
side's tokens and all 258 exports.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@gabriel-lisboa-azion@guilherme-santana-azion@isaque-bock-azion
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(webkit): align a toast's leading icon to its title, not to the whole row - #892

Merged
isaque-bock-azion merged 3 commits into
mainfrom
fix/toast-item-alignment
Aug 21, 2026
Merged

fix(webkit): align a toast's leading icon to its title, not to the whole row#892
isaque-bock-azion merged 3 commits into
mainfrom
fix/toast-item-alignment

Conversation

@gabriel-lisboa-azion

Copy link
Copy Markdown
Collaborator

Summary

  • The leading severity icon aligned to the outer row, which a 28px trailing action/close control stretched — so on a one-line toast the glyph sat below the title. Icon + content column now sit in an inner items-start group; the loadingSpinner keeps self-center.
  • The trailing region takes -my-(--spacing-xxs) so that 28px control no longer inflates a one-line card, and -mr-(--spacing-xs) so a text action's label ends optically flush with the card padding instead of inset by the button's own.
  • .specs/toast.md updated to describe the two-group anatomy (checksum + last_updated refreshed).

How to test

  1. cd packages/webkit && npx vitest run src/components/feedback/toast → 23 passed.
  2. pnpm storybook:dev → Components/Feedback/Toast. On a one-line toast with an action, the icon, title and action all sit on one centred line and the card height is unchanged by the action. On a multi-line toast, the icon aligns to the title's first line, not the middle of the block. The text action's label ends flush with the card's right padding.

Notes

  • Visual-only; no prop, event, or slot change.

…ole row
The icon and the content column now sit in an inner items-start group, so the
typed glyph aligns to the title's line — its only line on a one-line toast, the
first line on a multi-line one — instead of to the outer row, which the 28px
action/close control stretched. The trailing region takes a negative block margin
so that control no longer inflates a one-line card, and a negative inline-end
margin so a text action's label ends optically flush with the card's padding
instead of inset by the button's own.
@isaque-bock-azion
isaque-bock-azion requested a review from a teamAugust 19, 2026 23:04
@isaque-bock-azion
isaque-bock-azion merged commit 2a8a8db into mainAug 21, 2026
23 checks passed
@isaque-bock-azion
isaque-bock-azion deleted the fix/toast-item-alignment branch August 21, 2026 14:27
gabriel-lisboa-azion added a commit that referenced this pull request Aug 26, 2026
Brings in the 17 commits main has since 2026-08-17 — the webkit
documentation category (#919), the shared leading column for Select /
MultiSelect / Dropdown (#935), resizable-panel (#902), the copy-button
tooltip and card-box header inset (#936), --container-site (#923), the
page-enter / content-enter arrivals (#896), the colored-icon currentColor
fix (#930) and the skills that landed with them.
Conflict resolution, all fifteen:
Demo wins where it already carries work that is still an OPEN PR on main
and main's side is the older shape that PR rewrote — toast-item (#900's
`h-[1lh]` line box over #892's `self-center`), use-placement and
popover.test (#932's translate anchoring over #891's prose), and the
theme animation tokens, where the entry-count canary confirms every
main entry survived alongside demo's.
Main wins where its side is a superset or the corrected form — DESIGN.md
(gains `text-body-prose-md` and `.layout-column-docs`), package.json
(keeping demo's footer block would have duplicated the four keys main
already merged in above it), and resizable-panel.test, whose named
imports are the form that keeps CodeQL from reading a compiler-generated
`.vue` default export as undefined.
Both sides where each added something: .size-limit.json keeps demo's
ratcheted 1.1 KB footer-root budget and takes main's fourteen doc-*
entries; the ui-craft skill and the CLI plan keep demo's microcopy
routing without duplicating main's entry.
Generated artifacts were rebuilt rather than hand-resolved — theme dist
via build:tokens, catalog.json via catalog:build — and both carry each
side's tokens and all 258 exports.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@gabriel-lisboa-azion@guilherme-santana-azion@isaque-bock-azion
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

fix(webkit): align a toast's leading icon to its title, not to the whole row - #892

Merged
isaque-bock-azion merged 3 commits into
mainfrom
fix/toast-item-alignment
Aug 21, 2026
Merged

fix(webkit): align a toast's leading icon to its title, not to the whole row#892
isaque-bock-azion merged 3 commits into
mainfrom
fix/toast-item-alignment

Conversation

@gabriel-lisboa-azion

Copy link
Copy Markdown
Collaborator

Summary

  • The leading severity icon aligned to the outer row, which a 28px trailing action/close control stretched — so on a one-line toast the glyph sat below the title. Icon + content column now sit in an inner items-start group; the loadingSpinner keeps self-center.
  • The trailing region takes -my-(--spacing-xxs) so that 28px control no longer inflates a one-line card, and -mr-(--spacing-xs) so a text action's label ends optically flush with the card padding instead of inset by the button's own.
  • .specs/toast.md updated to describe the two-group anatomy (checksum + last_updated refreshed).

How to test

  1. cd packages/webkit && npx vitest run src/components/feedback/toast → 23 passed.
  2. pnpm storybook:dev → Components/Feedback/Toast. On a one-line toast with an action, the icon, title and action all sit on one centred line and the card height is unchanged by the action. On a multi-line toast, the icon aligns to the title's first line, not the middle of the block. The text action's label ends flush with the card's right padding.

Notes

  • Visual-only; no prop, event, or slot change.

…ole row
The icon and the content column now sit in an inner items-start group, so the
typed glyph aligns to the title's line — its only line on a one-line toast, the
first line on a multi-line one — instead of to the outer row, which the 28px
action/close control stretched. The trailing region takes a negative block margin
so that control no longer inflates a one-line card, and a negative inline-end
margin so a text action's label ends optically flush with the card's padding
instead of inset by the button's own.
@isaque-bock-azion
isaque-bock-azion requested a review from a teamAugust 19, 2026 23:04
@isaque-bock-azion
isaque-bock-azion merged commit 2a8a8db into mainAug 21, 2026
23 checks passed
@isaque-bock-azion
isaque-bock-azion deleted the fix/toast-item-alignment branch August 21, 2026 14:27
gabriel-lisboa-azion added a commit that referenced this pull request Aug 26, 2026
Brings in the 17 commits main has since 2026-08-17 — the webkit
documentation category (#919), the shared leading column for Select /
MultiSelect / Dropdown (#935), resizable-panel (#902), the copy-button
tooltip and card-box header inset (#936), --container-site (#923), the
page-enter / content-enter arrivals (#896), the colored-icon currentColor
fix (#930) and the skills that landed with them.
Conflict resolution, all fifteen:
Demo wins where it already carries work that is still an OPEN PR on main
and main's side is the older shape that PR rewrote — toast-item (#900's
`h-[1lh]` line box over #892's `self-center`), use-placement and
popover.test (#932's translate anchoring over #891's prose), and the
theme animation tokens, where the entry-count canary confirms every
main entry survived alongside demo's.
Main wins where its side is a superset or the corrected form — DESIGN.md
(gains `text-body-prose-md` and `.layout-column-docs`), package.json
(keeping demo's footer block would have duplicated the four keys main
already merged in above it), and resizable-panel.test, whose named
imports are the form that keeps CodeQL from reading a compiler-generated
`.vue` default export as undefined.
Both sides where each added something: .size-limit.json keeps demo's
ratcheted 1.1 KB footer-root budget and takes main's fourteen doc-*
entries; the ui-craft skill and the CLI plan keep demo's microcopy
routing without duplicating main's entry.
Generated artifacts were rebuilt rather than hand-resolved — theme dist
via build:tokens, catalog.json via catalog:build — and both carry each
side's tokens and all 258 exports.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@gabriel-lisboa-azion@guilherme-santana-azion@isaque-bock-azion
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(webkit): align a toast's leading icon to its title, not to the whole row - #892

Merged
isaque-bock-azion merged 3 commits into
mainfrom
fix/toast-item-alignment
Aug 21, 2026
Merged

fix(webkit): align a toast's leading icon to its title, not to the whole row#892
isaque-bock-azion merged 3 commits into
mainfrom
fix/toast-item-alignment

Conversation

@gabriel-lisboa-azion

Copy link
Copy Markdown
Collaborator

Summary

  • The leading severity icon aligned to the outer row, which a 28px trailing action/close control stretched — so on a one-line toast the glyph sat below the title. Icon + content column now sit in an inner items-start group; the loadingSpinner keeps self-center.
  • The trailing region takes -my-(--spacing-xxs) so that 28px control no longer inflates a one-line card, and -mr-(--spacing-xs) so a text action's label ends optically flush with the card padding instead of inset by the button's own.
  • .specs/toast.md updated to describe the two-group anatomy (checksum + last_updated refreshed).

How to test

  1. cd packages/webkit && npx vitest run src/components/feedback/toast → 23 passed.
  2. pnpm storybook:dev → Components/Feedback/Toast. On a one-line toast with an action, the icon, title and action all sit on one centred line and the card height is unchanged by the action. On a multi-line toast, the icon aligns to the title's first line, not the middle of the block. The text action's label ends flush with the card's right padding.

Notes

  • Visual-only; no prop, event, or slot change.

…ole row
The icon and the content column now sit in an inner items-start group, so the
typed glyph aligns to the title's line — its only line on a one-line toast, the
first line on a multi-line one — instead of to the outer row, which the 28px
action/close control stretched. The trailing region takes a negative block margin
so that control no longer inflates a one-line card, and a negative inline-end
margin so a text action's label ends optically flush with the card's padding
instead of inset by the button's own.
@isaque-bock-azion
isaque-bock-azion requested a review from a teamAugust 19, 2026 23:04
@isaque-bock-azion
isaque-bock-azion merged commit 2a8a8db into mainAug 21, 2026
23 checks passed
@isaque-bock-azion
isaque-bock-azion deleted the fix/toast-item-alignment branch August 21, 2026 14:27
gabriel-lisboa-azion added a commit that referenced this pull request Aug 26, 2026
Brings in the 17 commits main has since 2026-08-17 — the webkit
documentation category (#919), the shared leading column for Select /
MultiSelect / Dropdown (#935), resizable-panel (#902), the copy-button
tooltip and card-box header inset (#936), --container-site (#923), the
page-enter / content-enter arrivals (#896), the colored-icon currentColor
fix (#930) and the skills that landed with them.
Conflict resolution, all fifteen:
Demo wins where it already carries work that is still an OPEN PR on main
and main's side is the older shape that PR rewrote — toast-item (#900's
`h-[1lh]` line box over #892's `self-center`), use-placement and
popover.test (#932's translate anchoring over #891's prose), and the
theme animation tokens, where the entry-count canary confirms every
main entry survived alongside demo's.
Main wins where its side is a superset or the corrected form — DESIGN.md
(gains `text-body-prose-md` and `.layout-column-docs`), package.json
(keeping demo's footer block would have duplicated the four keys main
already merged in above it), and resizable-panel.test, whose named
imports are the form that keeps CodeQL from reading a compiler-generated
`.vue` default export as undefined.
Both sides where each added something: .size-limit.json keeps demo's
ratcheted 1.1 KB footer-root budget and takes main's fourteen doc-*
entries; the ui-craft skill and the CLI plan keep demo's microcopy
routing without duplicating main's entry.
Generated artifacts were rebuilt rather than hand-resolved — theme dist
via build:tokens, catalog.json via catalog:build — and both carry each
side's tokens and all 258 exports.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@gabriel-lisboa-azion@guilherme-santana-azion@isaque-bock-azion
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(webkit): align a toast's leading icon to its title, not to the whole row - #892

Merged
isaque-bock-azion merged 3 commits into
mainfrom
fix/toast-item-alignment
Aug 21, 2026
Merged

fix(webkit): align a toast's leading icon to its title, not to the whole row#892
isaque-bock-azion merged 3 commits into
mainfrom
fix/toast-item-alignment

Conversation

@gabriel-lisboa-azion

Copy link
Copy Markdown
Collaborator

Summary

  • The leading severity icon aligned to the outer row, which a 28px trailing action/close control stretched — so on a one-line toast the glyph sat below the title. Icon + content column now sit in an inner items-start group; the loadingSpinner keeps self-center.
  • The trailing region takes -my-(--spacing-xxs) so that 28px control no longer inflates a one-line card, and -mr-(--spacing-xs) so a text action's label ends optically flush with the card padding instead of inset by the button's own.
  • .specs/toast.md updated to describe the two-group anatomy (checksum + last_updated refreshed).

How to test

  1. cd packages/webkit && npx vitest run src/components/feedback/toast → 23 passed.
  2. pnpm storybook:dev → Components/Feedback/Toast. On a one-line toast with an action, the icon, title and action all sit on one centred line and the card height is unchanged by the action. On a multi-line toast, the icon aligns to the title's first line, not the middle of the block. The text action's label ends flush with the card's right padding.

Notes

  • Visual-only; no prop, event, or slot change.

…ole row
The icon and the content column now sit in an inner items-start group, so the
typed glyph aligns to the title's line — its only line on a one-line toast, the
first line on a multi-line one — instead of to the outer row, which the 28px
action/close control stretched. The trailing region takes a negative block margin
so that control no longer inflates a one-line card, and a negative inline-end
margin so a text action's label ends optically flush with the card's padding
instead of inset by the button's own.
@isaque-bock-azion
isaque-bock-azion requested a review from a teamAugust 19, 2026 23:04
@isaque-bock-azion
isaque-bock-azion merged commit 2a8a8db into mainAug 21, 2026
23 checks passed
@isaque-bock-azion
isaque-bock-azion deleted the fix/toast-item-alignment branch August 21, 2026 14:27
gabriel-lisboa-azion added a commit that referenced this pull request Aug 26, 2026
Brings in the 17 commits main has since 2026-08-17 — the webkit
documentation category (#919), the shared leading column for Select /
MultiSelect / Dropdown (#935), resizable-panel (#902), the copy-button
tooltip and card-box header inset (#936), --container-site (#923), the
page-enter / content-enter arrivals (#896), the colored-icon currentColor
fix (#930) and the skills that landed with them.
Conflict resolution, all fifteen:
Demo wins where it already carries work that is still an OPEN PR on main
and main's side is the older shape that PR rewrote — toast-item (#900's
`h-[1lh]` line box over #892's `self-center`), use-placement and
popover.test (#932's translate anchoring over #891's prose), and the
theme animation tokens, where the entry-count canary confirms every
main entry survived alongside demo's.
Main wins where its side is a superset or the corrected form — DESIGN.md
(gains `text-body-prose-md` and `.layout-column-docs`), package.json
(keeping demo's footer block would have duplicated the four keys main
already merged in above it), and resizable-panel.test, whose named
imports are the form that keeps CodeQL from reading a compiler-generated
`.vue` default export as undefined.
Both sides where each added something: .size-limit.json keeps demo's
ratcheted 1.1 KB footer-root budget and takes main's fourteen doc-*
entries; the ui-craft skill and the CLI plan keep demo's microcopy
routing without duplicating main's entry.
Generated artifacts were rebuilt rather than hand-resolved — theme dist
via build:tokens, catalog.json via catalog:build — and both carry each
side's tokens and all 258 exports.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@gabriel-lisboa-azion@guilherme-santana-azion@isaque-bock-azion
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

fix(webkit): align a toast's leading icon to its title, not to the whole row - #892

Merged
isaque-bock-azion merged 3 commits into
mainfrom
fix/toast-item-alignment
Aug 21, 2026
Merged

fix(webkit): align a toast's leading icon to its title, not to the whole row#892
isaque-bock-azion merged 3 commits into
mainfrom
fix/toast-item-alignment

Conversation

@gabriel-lisboa-azion

Copy link
Copy Markdown
Collaborator

Summary

  • The leading severity icon aligned to the outer row, which a 28px trailing action/close control stretched — so on a one-line toast the glyph sat below the title. Icon + content column now sit in an inner items-start group; the loadingSpinner keeps self-center.
  • The trailing region takes -my-(--spacing-xxs) so that 28px control no longer inflates a one-line card, and -mr-(--spacing-xs) so a text action's label ends optically flush with the card padding instead of inset by the button's own.
  • .specs/toast.md updated to describe the two-group anatomy (checksum + last_updated refreshed).

How to test

  1. cd packages/webkit && npx vitest run src/components/feedback/toast → 23 passed.
  2. pnpm storybook:dev → Components/Feedback/Toast. On a one-line toast with an action, the icon, title and action all sit on one centred line and the card height is unchanged by the action. On a multi-line toast, the icon aligns to the title's first line, not the middle of the block. The text action's label ends flush with the card's right padding.

Notes

  • Visual-only; no prop, event, or slot change.

…ole row
The icon and the content column now sit in an inner items-start group, so the
typed glyph aligns to the title's line — its only line on a one-line toast, the
first line on a multi-line one — instead of to the outer row, which the 28px
action/close control stretched. The trailing region takes a negative block margin
so that control no longer inflates a one-line card, and a negative inline-end
margin so a text action's label ends optically flush with the card's padding
instead of inset by the button's own.
@isaque-bock-azion
isaque-bock-azion requested a review from a teamAugust 19, 2026 23:04
@isaque-bock-azion
isaque-bock-azion merged commit 2a8a8db into mainAug 21, 2026
23 checks passed
@isaque-bock-azion
isaque-bock-azion deleted the fix/toast-item-alignment branch August 21, 2026 14:27
gabriel-lisboa-azion added a commit that referenced this pull request Aug 26, 2026
Brings in the 17 commits main has since 2026-08-17 — the webkit
documentation category (#919), the shared leading column for Select /
MultiSelect / Dropdown (#935), resizable-panel (#902), the copy-button
tooltip and card-box header inset (#936), --container-site (#923), the
page-enter / content-enter arrivals (#896), the colored-icon currentColor
fix (#930) and the skills that landed with them.
Conflict resolution, all fifteen:
Demo wins where it already carries work that is still an OPEN PR on main
and main's side is the older shape that PR rewrote — toast-item (#900's
`h-[1lh]` line box over #892's `self-center`), use-placement and
popover.test (#932's translate anchoring over #891's prose), and the
theme animation tokens, where the entry-count canary confirms every
main entry survived alongside demo's.
Main wins where its side is a superset or the corrected form — DESIGN.md
(gains `text-body-prose-md` and `.layout-column-docs`), package.json
(keeping demo's footer block would have duplicated the four keys main
already merged in above it), and resizable-panel.test, whose named
imports are the form that keeps CodeQL from reading a compiler-generated
`.vue` default export as undefined.
Both sides where each added something: .size-limit.json keeps demo's
ratcheted 1.1 KB footer-root budget and takes main's fourteen doc-*
entries; the ui-craft skill and the CLI plan keep demo's microcopy
routing without duplicating main's entry.
Generated artifacts were rebuilt rather than hand-resolved — theme dist
via build:tokens, catalog.json via catalog:build — and both carry each
side's tokens and all 258 exports.
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@gabriel-lisboa-azion@guilherme-santana-azion@isaque-bock-azion