Skip to content

[6.x] Redesign the System Messages utility - #19946

Merged
brandonkelly merged 11 commits into
6.xfrom
feature/6.x-system-messages-redesign
Oct 15, 2026
Merged

brandonkelly merged 11 commits into
6.xfrom
feature/6.x-system-messages-redesign

Conversation

@riasvdv

@riasvdv riasvdv commented Oct 12, 2026 •

Copy link
Copy Markdown
Contributor

Description

Redesigns the system messages utility a bit and opens them in slideouts instead of modals

  • Changed the content field to a markdown editor
  • Added text expander options to the subject and content fields

The System Messages utility, editing a message in a slideout with variable suggestions open

Twig decides escaping at compile time, but string and object templates were
compiled under a name derived only from their source. Rendering a template
without escaping and then with it reused the unescaped compiled template, so
system messages' HTML bodies (rendered after their plain-text bodies) inserted
variables unescaped.

Now that escaping works, the default system messages drop the |e filter, which
showed HTML entities in their plain-text bodies.
- Show messages in cards and edit them in a slideout with a Markdown editor.
- Fix the editor's language menu, which was never imported and rendered empty.
- Suggest each message's Twig variables when typing {{ in the subject or body.
  Messages can declare their variables via a new variables attribute, and
  SystemMessages::getTemplateVariables() adds the ones every message gets.
- Give each edit button a distinct accessible name and show Subject as required.
@github-actions

github-actions Bot commented Oct 12, 2026 •

Copy link
Copy Markdown

📚 Storybook previews

@craftcms/ui — open Storybook

No changed components detected in this Storybook.

resources/js — open Storybook

No changed components detected in this Storybook.

@github-actions

Copy link
Copy Markdown

This PR had conflicts with 6.x. Claude attempted an automatic resolution and pushed a merge commit. Please review the merge commit carefully before approving/merging.

Claude's response

I resolved the only conflict in the merge from 6.x and committed it as 91d21dc. It hasn't been pushed.

The conflict was in CHANGELOG.md, where both sides added a line at the same spot under "Unreleased":

The two entries cover unrelated changes, so I kept both: the #19946 entry stays with the other "Added" lines, and the #19970 entry goes at the top of the "Fixed a bug…" lines. Nothing was ambiguous, so I didn't add any CONFLICT-REVIEW comments.

All other files merged cleanly and I didn't change them. I didn't run any tests or checks, since the only edit was to the changelog.

@github-actions

Copy link
Copy Markdown

This PR had conflicts with 6.x. Claude attempted an automatic resolution and pushed a merge commit. Please review the merge commit carefully before approving/merging.

Claude's response

I resolved the merge conflict and committed the merge as 8eced13. Nothing has been pushed.

CHANGELOG.md was the only conflicted file:

Both sides only added lines, so I kept all of them. The branch's "Added" line stays with the other "Added" entries, and the #19942 fixes follow it, just before the existing "Fixed" lines.

None of the conflicts were ambiguous, so I left no CONFLICT-REVIEW comments. I didn't run composer ci or any tests, since this was a changelog-only conflict.

@github-actions

Copy link
Copy Markdown

This PR had conflicts with 6.x. Claude attempted an automatic resolution and pushed a merge commit. Please review the merge commit carefully before approving/merging.

Claude's response

The merge is finished and committed as 4fa0729. Nothing was pushed.

There was only one conflicted file, CHANGELOG.md. Both sides had added bullet points at the same spot in the changelog:

The entries don't overlap, so I kept all three, with this branch's two first and the 6.x entry after them. No # CONFLICT-REVIEW: comments were needed. I removed only the conflict markers and changed nothing else. All other files had already merged cleanly.

@github-actions

Copy link
Copy Markdown

This PR had conflicts with 6.x. Claude attempted an automatic resolution and pushed a merge commit. Please review the merge commit carefully before approving/merging.

Claude's response

I resolved the merge conflict and committed the merge as 4a489fb. It hasn't been pushed.

CHANGELOG.md was the only conflicted file. Each side had added a different entry at the same spot:

The two entries don't overlap, so I kept both. The #19946 line stays with the other "Added" entries, and the #19963 line goes first in the "Fixed a bug…" entries that follow. Nothing was ambiguous, so I didn't leave any CONFLICT-REVIEW comments. No other files needed changes.

@github-actions

Copy link
Copy Markdown

This PR had conflicts with 6.x. Claude attempted an automatic resolution and pushed a merge commit. Please review the merge commit carefully before approving/merging.

Claude's response

I resolved the merge conflict and committed the merge as c4e38d4. Nothing was pushed.

There was only one conflict, in CHANGELOG.md. Both sides had added a new line in the same spot of the changelog:

The two entries cover separate features, so I kept both, with this branch's line first. Nothing about it was ambiguous, so I didn't add any CONFLICT-REVIEW comments. Git merged everything else in the merge from 6.x without conflicts.

brandonkelly and others added 2 commits October 15, 2026 05:53
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@brandonkelly
brandonkelly merged commit a598c3d into 6.x Oct 15, 2026
9 checks passed
@brandonkelly
brandonkelly deleted the feature/6.x-system-messages-redesign branch October 15, 2026 12:53
@github-actions github-actions Bot mentioned this pull request Oct 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants