CMS UI Patterns / Case Study

03

Presence CMS Framework

I designed a set of reusable CMS tools to make creating, reviewing, and publishing content easier to follow.
01 / Objective

What I wanted to solve

School and civic content teams manage pages, alerts, documents, and calendars alongside their other work. I wanted the CMS to make those tasks easier to follow, with clear actions and enough context to understand what a change will do.

I organized the framework around repeated decisions: what am I editing, what state is it in, who owns it, and what happens next? Buttons, forms, tables, messages, and tabs give those decisions a consistent structure that can be reused across admin screens.

02 / My role

My contribution

Experience design

I designed the CMS editing experience, organizing how content owners create, review, publish, and maintain their pages.

UI design

I designed the forms, tables, buttons, and messages so everyday admin tasks look and feel consistent.

Prototype development

I built the underlying front-end prototypes, turning the UI patterns into reusable components and example admin screens.

03 / Interface review

What I focused on

Familiar actions across screens
I wanted save, preview, approve, cancel, and delete to feel familiar wherever they appear. Editors should not have to learn a different set of controls for every task.
More than a page title
I included ownership, location, status, and timing alongside the content. Those details help an editor decide whether a page is ready to publish.
A clear next step
I gave success, warning, and error messages different roles. Each should tell the editor what happened and whether they need to do anything next.
The design question

How can a CMS make everyday editing decisions clear while giving teams a consistent starting point for new admin screens?

04 / Workflow

How the flow works

  1. 01

    Create and configure

    Add content, then set its location, ownership, metadata, and visibility.

  2. 02

    Review

    Check the preview, resolve errors, and understand any approval requirements.

  3. 03

    Publish

    Confirm the intended timing and visibility before making the content available.

  4. 04

    Maintain

    Use status, ownership, and row actions to find and update existing content.

05 / Design decisions

Why I designed it this way

Give each action a clear job

I used different button styles to make the main action stand out from supporting choices. Smaller icon buttons save space in tables, with labels and visible keyboard focus to keep them understandable.

Buttons and action hierarchy

Keep feedback close to the task

I paired color with clear messages for success, warnings, and errors. If a required field stops someone from saving, the message should explain what needs fixing, not just say something went wrong.

Feedback states

Keep related fields together

I grouped the title, page type, owner, publishing date, summary, and visibility in one form. Editors can check the important details together. Tabs keep larger groups of settings organized without taking them away from the page they are editing.

Page editor form

Make content easy to scan

I kept the page name, section, status, and owner in consistent columns. Actions sit beside the page they affect, making it easier to compare records and see what each button applies to.

Content table
06 / The work

A closer look at the designs

Presence CMS Framework
Reusable UI design framework

This guide breaks the CMS framework into reusable interface components. Each section explains the purpose of the component, where it fits in an admin workflow, and how the existing class names can be reused consistently across pages.

6Button states
3Message types
12Grid columns
Buttons

I used button styles to separate everyday actions, saving, warnings, and destructive choices. Supporting actions have a quieter style so the main choice stays clear.

Icon-only controls
Messages

I kept messages short and close to the task, with different treatments for success, warnings, and errors.

Success: Your page was saved and queued for publishing.
Warning: This template has unpublished layout changes.
Error: Required fields must be completed before saving.
Page editor form

I grouped related settings and used labels, spacing, and helper text to make it clear what someone is editing.

Detail list

I used compact detail lists to keep status, ownership, and template information close to the main task.

  • StatusDraft
  • TemplateSubpage
  • UpdatedApr 26
  • Version2.0
Portlet Preview
A compact card pattern for dashboard summaries, content blocks, or page preview states.
Content table

I kept columns and status labels consistent so editors can scan pages, alerts, documents, and users. Row actions sit beside the item they affect.

PageSectionStatusOwnerActions
HomepageDistrictPublishedWeb Team
Emergency AlertGlobalReviewAdmin
School CalendarDepartmentsDraftCalendar Manager
Admin pattern with tabs

I used tabs to organize related settings without taking editors away from the item they are working on.

Properties

Use tabs for related configuration panels inside a single CMS task flow.

Color tokens

I reused a small set of colors to keep actions, alerts, and panels consistent across the CMS.

Action
Go
Warn
Cancel
Preview
Admin
Example markup

I built a repeatable component structure with a container, title, input, and action group as a starting point for new screens.

<div class="CMS_element">
  <div class="CMS_title CMS_T4">Page editor form</div>
  <input class="CMS_input" value="District News">
  <div class="CMS_buttonGroup CMS_bg-Mt CMS_bg-R">
    <a href="#noop" data-no-scroll="true" class="CMS_button CMS_bGo">Save changes</a>
  </div>
</div>
07 / Reflection

Looking back

I wanted this framework to make the small, repeated parts of CMS work feel consistent. The forms, tables, buttons, and messages give me a starting point for new screens without having to redesign the basics each time. The prototypes also make those decisions easier to share with developers.

Available for thoughtful product work

Let’s make complex products easier to use.