/
UX Spec: Channel Settings Modal

UX Spec: Channel Settings Modal

Ready for implementation

Important Links


Description

Because we are reducing the edit functions to one menu item in the Channel Header, we will put all the editing into one Channel Settings modal. This modal will also allow us to offer other Channel Settings that are currently only available in the System Console. This will open it up to other settings as well as plugins in the future.

 

The Channel Settings modal allows channel administrators and other authorized users to update key details about a channel. The modal is organized into three tabs for this phase of the project:

  1. Info

  2. Configuration

  3. Archive channel

 

Note: Channel Settings is only available to channel admins and above by default.

image-20250224-130856.png

Navigation & Entry Points

  1. Channel header menu: Users with the appropriate permissions can open the modal via the channel’s header menu.

    image-20250224-131739.png

     

  2. Channel info RHS: Users with the appropriate permissions can click on the pencil icon on the Channel Purpose or Channel Header field in the Channel Info RHS to open the channel settings modal with the appropriate field in-focus.

    image-20250224-131339.png
  3. Channel header text blank state: Users with the appropriate permissions can click on the Add a channel header link to open the channel settings modal with the Channel Header field in-focus.

    image-20250224-131719.png

Upon accessing Channel Settings, the modal opens on the Info tab by default.


Modal tabs

Channel Info

This section provides access to change the channel name, URL, access (public/private), purpose and header.

image-20250224-131815.png

Channel Name

  • Text field labeled Channel name.

  • Accepts alphanumeric characters and spaces (maximum length: 64 characters).

  • If a user exceeds the maximum character length, an inline error message is displayed, and there is a negative character counter in the field.

    image-20250224-132008.png

     

     

Channel URL

  • Initially, the channel’s URL is displayed below the channel name along with an ‘Edit’ button.

  • The URL should be truncated as needed placing the ... in the middle of the url

    • Hovering over a truncated URL displays a tooltip with the full URL

  • The displayed URL auto-updates as the channel name is updated (unless the user has previously customized it).

  • When users click ‘Edit’, the URL slug input field is revealed (see below).

  • Spaces and special characters (~, #, etc) are converted to dashes as you type to prevent errors. Uppercase letters are auto-converted to lowercase. Only lowercase letters, numbers, dashes, and underscores are allowed.

image-20250224-134429.png

Channel Access

  • Public channel vs. Private channel radio buttons.

  • Users with the correct permissions can convert from public to private channel. Currently channel admins cannot change from private to public and that has to be done by a system admin in the system console.

  • When the user saves after switching the selector from Public to Private channel, there should be a confirmation modal displayed, identical to what we have currently for converting from a Public to Private channel.

  • In case of private channels, the public channel radio button card should be disabled.

    image-20250224-134504.png

Channel Purpose

  • Text field labeled Channel purpose.

  • Placeholder text: “Enter a purpose for this channel.”

  • When the purpose field contains a value, there is a new icon button in the top-right of the input that allows users to toggle the preview to show how their markdown will render.

image-20250224-134707.png

Channel Header Preview

  • Text field labeled Channel header.

  • Placeholder text: “Enter a header description or important links.”

  • When the header field contains a value, there is a new icon button in the top-right of the header input that allows users to toggle the preview to show how their markdown will render.

image-20250224-134824.png

Configuration Tab

Channel Banner

https://mattermost.atlassian.net/wiki/x/BYDTxQ


Archive Channel

Archiving a channel can be done directly from the channel menu or from the channel settings modal, and triggers a confirmation dialog before archiving.

image-20250224-134856.png
image-20250224-134912.png

Note: The channel settings modal will not be available for an archived channel since none of the edit options are available. The channel will first need to be Unarchived from the channel header menu to access the channel settings modal again.


Behaviour for Saving Settings

As soon as a change is made to the settings, a floating footer animates from the bottom within the active content area. Users can continue making changes while this footer is displayed, but they cannot change sections until they either save or cancel the changes they’ve made.

image-20250224-134931.png

Changing Tabs while there are unsaved changes

If users attempt to change sections while there are unsaved changes, the footer animates with a shake to highlight that they have unsaved changes. They cannot change tabs until changes are saved or canceled

image-20250224-134956.png

 

 

Closing the modal while there are unsaved changes

Using the close button

If a user presses the close button or clicks anywhere outside the modal while there are unsaved changes they are prevented and warned about the unsaved changes once. If they try to close again, the modal closes without saving.

Pressing the ESC key

If a user presses the ESC key while there are unsaved changes they are not warned and the modal closes without saving immediately.

Displaying errors with unsaved changes

When ‘Save’ is clicked and errors are detected, the floating footer displays in an error state, and relevant fields are marked in errors state with messages proximal to them. In addition, the Save button is disabled until it’s resolved or the user resets.

image-20250224-135024.png
image-20250224-135033.png

Mobile Webview

Because of the sections in this modal, it will need to be treated as a two-level flow. More details in the Figma design file.

 

 


Accessibility

  1. Keyboard Navigation

    • Users should be able to tab through all form fields and buttons.

    • Enter on a focused button triggers its action; Esc closes the dialog.

  2. Screen Reader Labels

    • All fields (Channel Name, Purpose, Header, etc.) must have accessible labels.

    •  


For Direct Messages and Group Messages

Since the only settings that can be changed on a DM or GM is the header, ‘Channel Settings’ changes to ‘Edit Header’ in the menu. This will open an updated Edit Header modal that only provides the field to edit the conversation header.

DM Menu
GM menu

 

 

 

Channel Permissions

This section provides the ability to change:

  • Channel Access. Users with the correct permissions can convert from public to private channel. Currently channel admins cannot change from private to public and that has to be done by a system admin in the system console. We should consider allowing the channel admin to do this in the chat UI.

  • Permissions for guests and members. This is borrowed from the current system console ‘Channel Moderation’ functionality.

Related content