Placeholders in the Spectra Design System

Placeholders in the Spectra Design System

BRIEF

I created a scalable placeholder system that standardized 70+ inconsistent components across CNN teams, increasing Figma library adoption by 8x and helping platform designers build pages with speed and clarity.

SCOPE

Design Systems

CMS Platforms

DURATION

3 months

TEAM

Spriggs (Design)
Laura Schoenheit (UX Writer)

IMPACT

8x increase in insertions;

7x decrease in detaches

Placeholder label

Placeholder label

Placeholder label

Placeholder label

Placeholder label

Placeholder label

Component

Component

Component

AI Component

AI Component

AI Component

Dynamic Content Wrapper

Dynamic Logic Component

US

World

Politics

Business

Opinion

Health

Entertainment

Style

Travel

Sports

Video

OVERVIEW

Designing for Designers

Designing for Designers

During the second half of my CNN internship, my work shifted from newsroom-facing tools to the internal infrastructure designers and engineers rely on every day.​ I focused on refining core components for Spectra, the design system for CNN's CMS (Stellar).


After an audit of 70+ placeholder patterns in Stellar, I found overlapping behaviors, inconsistent visuals, and vague labels that made it harder for platform designers to move quickly and stay aligned with production. Partnering with product designers, content designers, and engineers, I refactored placeholders into a reusable component set with clear variants, sharper labels, and stronger guidance for when to use each.​

This past summer, I joined CNN's Platforms and Foundations team to design tools for Stellar, the internal CMS where editorial teams draft and edit articles before going live. My focus was on improving efficiency across the newsroom.


Through conversations with journalists and editors, I identified a common pain point: converting paragraphs to subheads required manual creation, which introduced friction in time-sensitive areas like breaking news. Working with my team, I designed and shipped a one-click conversion feature directly in the Quill bubble editor, while also refining the visual design of the component.


This case study is currently in progress. In the meantime, I've prepared a slide deck documenting my complete design process and impact metrics.

DISCOVERY

What is a placeholder?

What is a placeholder?

A placeholder is a temporary visual element used to indicate where content will eventually be placed within a layout, so users can plan the structure of a page without needing the final content.

Stellar

Stellar

Stellar

WordPress

WordPress

WordPress

Notion

Notion

Notion

They all look different

I started by auditing all the placeholder components in Stellar, surfacing 72 different components across editorial, commerce, embeds, and politics teams. This revealed two major friction points:

01

Inconsistent styling

For example, these two politics components have the same UX pattern and functionality. Both can be configured using an overlay, but their visual styles are completely different.

02

Limited documentation and usage guidelines

There has also been very limited resources on how to build and use placeholders, which caused a lot of confusion.

GOALS

01

Build placeholder components that align with Stellar production today

Build placeholder components that align with Stellar production today

Efficiency

Scalability

02

Create clear guidance so designers know which placeholders to use

Create clear guidance so designers know which placeholders to use

Consistency

PROCESS

Grouping + Pattern Finding

Grouping + Pattern Finding

Following my audit, I organized all the placeholders into categories, first creating big groups by visual style, then smaller groups by functionality to clarify when to use each variation. This led me to three main categories:

Placeholders

Placeholders

Placeholders

A Placeholder for Placeholders

A Placeholder for Placeholders

A Placeholder for Placeholders

Text Placeholders

Text Placeholders

Text Placeholders

DESIGN DECISIONS

Flexibility vs. Intention

01

Building flexible base components

Instead of making every single placeholder into a unique component, I wanted to give designers flexible building blocks they could adapt, rather than locking them into one specific use case per component.

02

Prioritizing text placeholders

To increase efficiency, I prioritized the most-used text placeholder styles into dedicated components, allowing designers to drop them in instead of styling from scratch.


Since these components use Vossi styles (CNN's consumer-facing design system), I wrapped Vossi components directly into my build. This ensures any style updates in Vossi automatically flow through to Spectra, creating a scalable and synchronized system.

03

Content design feedback session

I brought in Laura from content design to help refine the labeling and naming system. Together we cut unnecessary words, changed icons match functionality, and clarified language for better accessibility.


We also landed on 'defined placeholders' and 'undefined placeholders' for the two main variants to align with the existing framework and code terminology.

FINAL DESIGN

01

Defined Placeholders

Defined Placeholders

Used when the component type is known.

Default

Default

Apply to almost all cases when the component type is known.

AI

AI

Apply to known AI component types.

Permanent

Permanent

Locked placeholders that cannot be moved or removed without layout permissions, maintaining consistency per business requirements.

Dynamic Content Wrapper

Dynamic Content Wrapper

Components that adapts its content based on page context (e.g. CNN World vs. CNN Style).

02

Undefined Placeholders

Undefined Placeholders

Flexible zones where users select which components to add from available options, then manually configure them.

03

Text Placeholders

Text Placeholders

I created components for paragraph, subheader, pull quote, block quote, and source, refined and documented with clear usage guidance.

IMPACT

On Placeholders

On Placeholders

This was my first time doing design systems work for a large corporation. Beyond being amazed by how vast yet granular the component libraries were, this project really pushed my systems thinking. I realized that even a small component has so many dependencies across the organization, and that unblocking it could eliminate significant confusion across workflows and create substantial impact.


Comparing before and after the refactor, the number of insertions increased by 8x and the number of detaches decreased by 7x.

14 insertions

14 insertions

Before

Before

105 insertions

105 insertions

After

After

7 detaches

7 detaches

Before

Before

1 detach

1 detach

After

After

On Spectra

On Spectra

Behind the scenes, Spectra now tracks placeholder usage more cleanly across teams, from CNN Stellar and CNN Underscored to Newsgathering & Planning. This visibility is driving better conversations about what to optimize next. I'm so grateful to have contributed to this larger design systems initiative during my three months at CNN. In the spirit of all those year-end recaps we've been seeing everywhere, I created a little Spectra recap for myself.

Number of Spectra components contributed:

Number of Spectra components contributed:

6

6

Number of component variants created in Figma:

Number of component variants created in Figma:

87

87

Number of Spectra releases contributed to:

Number of Spectra releases contributed to:

4

4

Number of screenshots taken during audit:

Number of screenshots taken during audit:

272

272

NEXT STEPS

The short-term and

the long-term

Based on engineering and team capacity, this phase of the refactor ended with alignment to Stellar production. The current Figma component libraries' metrics feature also falls short in providing real-time data. Moving forward, I'd love to:

01

Qualitative feedback

Talk to designers to understand how the new components are landing in real workflows and where friction still exists

02

Simplify visual styles

Combine defined and undefined states to reduce visual complexity while maintaining functional clarity

03

Adopt new Figma features

Implement slots and extended collections to enhance the design system and make components even more flexible

©2026 Haipei Chen

©2026 Haipei Chen

©2026 Haipei Chen

Last Update: 2026.1.8

Last Update: 2026.1.8

Last Update: 2026.1.8