Design + Design Engineering

Penn Labs Design System

Building a design system for Penn's largest technology club, providing software to 80% of the university's population.

Process Highlights

Overview

Overview

Penn Labs is the organization which runs Penn Mobile, an application that 80% of Penn students use. Products are built by students for students.


Due to the massive inconsistencies between the different products Penn Labs offers, the design team set out to unify all branding and aesthetics of the products through a new design system.


This new design system is currently in being integrated into our products for Spring 2025.

Timeline

Fall 2024 to Spring 2025

Team

6 Penn Lab Product Designers

Penn Labs Products

Penn Labs offers 9 products to students and faculty

Research

Analysis

Penn Lab’s Current Designs

We knew that most of these products could not be rebuilt from the ground up. We therefore had to conform with some of the design decisions already made.


However, we knew our goal was to unify the product offerings under the same branding and aesthetic appeal.


Most of Penn Labs is also built on Shadcn, which meant we had to consider developer goals and preferences.

Designer Debt

Different components were not only looking different across products, but even across screens!


This was limiting our scalability and maintenance of our products long-term. We are a club, so students join and leave, meaning a well-maintained design system was absolutely essential for consistency.

Build scalable components

Unify design components across products

Clear documentation for developers

A designs system communicates the “what”, the “why”, and the “how”

The single source of trust, truth, and accessibility in a product.

Design Audit Across Penn Labs

Penn Course Review

Penn Clubs

Penn Course Planner

Office Hours Queue

Clear lack of design principles

Components varied across products

No consistency in aesthetic choices

Diving into the details

As we did a closer design audit, we saw some embarrassing inconsistencies across our offerings.

Lack of consistency and accessibility

Across screens in the same product, we noticed variations of the same component, which were completely different.

We had scaled too fast without a true design system

Penn Labs is a school club so people pass through every year - we needed a change to our design system such that these products could be maintained.

Too many designers, not enough of a framework

Components which represented the same meaning were different across screens and products.

Development

Building the Design System

The Audit

Penn Labs has accessibility and inclusivity at its heart, so we designed with these guidelines in mind.

This meant considering the small things, such as a system font, to the larger aesthetic choices of an inclusive design that is timeless.

We emphasized the atomic design philosophy system which allowed us to structure information hierarchies in an understandable fashion.

Building a design system alongside other teams

While building the design system, many other products were undergoing redevelopments.

Penn Course Review and Penn Portal were both in development. This meant iterating the design system while these two products were being built.

I loved the feedback loop as it made me consider the real world cases of our design choices in the guidelines.

Penn Portal

Penn Course Review

New Penn Labs Design System

Penn Course Planner

Define

The strategic planning, business needs, impacts, what Penn Labs “feels like” and “looks like”

Develop

Building the components in Figma, checking their feasibility with engineers, defining usage frequency and structure

Deploy

Launching the first version in Penn Portal and Penn Course Review, iterating upon the design system based on changes

We needed to know our goal when we set out to build the design system.

“Building products that Penn students can use to improve their daily life at the university”

Development

Documentation

Format

Our documentation was built for designers and developers, with an emphasis on clear delivery of information.

We want it to be easy to navigate such that we could make changes as a design team together.

Penn Labs Design System

Component Title

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus vehicula, metus ut facilisis fermentum, arcu sapien tincidunt nunc, et posuere est erat sed turpis. Nullam vitae justo ac nunc interdum tincidunt.

Tip

Context for this component and what developers should know

Design Token Naming

Component / Sub-Component / State

Development

Color

Moving to only one primary color

Choosing a unified color palette versus maintaining distinct schemes for each of our nine products sparked significant debate within our team. Initially, each product had its own unique color identity, which users strongly associated with its distinct functionality and personality.

Consolidating into a single palette raised concerns that users might struggle to differentiate between products, potentially diluting each product’s unique brand equity. Yet, maintaining separate color schemes created a fragmented and less cohesive brand experience, making scalability challenging as the design system expanded.

The Penn Labs logo and primary brand color.

Penn Labs Design System

Colors

The Penn Blue is your go-to-color. Other accent colors should only be used sparingly for conveying state meaning and small accents in the product. A cohesive color palette across products builds trust.

Penn Blue

Accent Colors

Neutral

Black / White

Tip

Try to meet WCAG 2.0 accessibility standards for your text color choices.

Some of Penn Labs Product Brand Colors

4788F2

Office Hours Queue

2175CB

Penn Portal

4954F4

Penn Clubs

1E9CED

Penn Course Alert

858DD7

Penn Course Planner

84B8BA

Penn Course Review

Preserving Consistency

To preserve brand consistency while still supporting product differentiation, we strategically retained our full color palette but significantly constrained their application.


By clearly defining primary brand colors for interface-wide usage, and thoughtfully limiting accent colors to specific UI elements like data visualization or status indicators, we maintained visual cohesion across Penn’s products without t essential functionality or clarity.

Using Penn Blue for All Products, Instead of Specific Colors for Each

We carefully incorporated a diverse set of accent colors, purple, green, orange, and blue, to clearly communicate essential metrics like course difficulty, quality, and availability across our products.


For Penn Scheduling specifically, these colors were vital for distinguishing between various course offerings, enhancing usability and helping users quickly grasp key information at a glance.

Experimenting and Iterating using Penn Course Review

As part of refining our color system, we conducted an experiment to evaluate whether relying solely on our brand’s primary colors could effectively communicate essential information like course difficulty and quality. 


However, we quickly noticed that restricting ourselves to brand colors diminished the intuitive meaning previously conveyed through our varied accent colors. Users struggled to immediately understand critical metrics at a glance.

Overview

Selected Item

Average

5 Sections

Course Difficulty

3.1

Difficulty

1.2

Workload

Course Quality

2.8

Course Quality

3.1

Instructor

Course Description

Course Information

Penn Course Review using just brand colors

Overview

Recent

404 Sections

2.4

Course

2.4

Course

3.0

Course

2.4

Course

Average

404 Sections

2.4

Course

2.4

Course

3.0

Course

2.4

Course

Course Description

Course Information

Using a broader color scheme

Penn Labs Design System

Component Colors

The Penn Blue is your go-to-color. Other accent colors should only be used sparingly for conveying state meaning and small accents in the product. A cohesive color palette across products builds trust.

Backgrounds

Alerts

Development

Typography

Typography

Our team approached typography with careful consideration, knowing it would significantly shape the user experience and brand identity across our entire product ecosystem. One of our earliest challenges was selecting a system font that ensured broad accessibility. 

This required extensive research into readability, visual clarity, and support for various languages and screen sizes. After exploring several options, we collectively decided on Inter, a highly versatile system font that satisfied our stringent accessibility standards.

Penn Labs is a product for everyone.

Inter

1% spacing

Typography

Heading 1

Family: Inter

Weight: Semibold/Regular

Size: 48px

Letter Spacing: 0%

Line Height: 120%

Heading 1

Heading 2

Family: Inter

Weight: Semibold/Regular

Size: 40px

Letter Spacing: 0.1%

Line Height: 120%

Heading 2

Heading 3

Family: Inter

Weight: Semibold/Regular

Size: 32px

Letter Spacing: 0.1%

Line Height: 120%

Heading 3

Heading 4

Family: Inter

Weight: Semibold/Regular

Size: 28px

Letter Spacing: 0.1%

Line Height: 120%

Heading 4

Subheading 1

Family: Inter

Weight: Semibold/Regular

Size: 24px

Letter Spacing: 0.25%

Line Height: 125%

Subheading 1

Subheading 1

Family: Inter

Weight: Semibold/Regular

Size: 24px

Letter Spacing: 0.25%

Line Height: 125%

Subheading 1

Subheading 2

Family: Inter

Weight: Semibold/Regular

Size: 20px

Letter Spacing: 0.25%

Line Height: 125%

Subheading 2

Body 1

Family: Inter

Weight: Bold/Semibold/Regular

Size: 16px

Letter Spacing: 0.5%

Line Height: 150%

Body 1

Body 2

Family: Inter

Weight: Semibold/Regular

Size: 14px

Letter Spacing: 0.5%

Line Height: 150%

Body 2

Caption

Family: Inter

Weight: Semibold/Regular

Size: 12px

Letter Spacing: 1.5%

Line Height: 150%

Caption

Iterations and Discussions

Equally critical was our goal to identify a typeface that could comfortably accommodate the diverse needs of multiple products within our system, from highly technical interfaces to playful marketing content.


Throughout multiple discussions, we realized the importance of a flexible font that harmonized effectively across diverse use cases, product teams, and emotional contexts. We conducted frequent team critiques and user tests to assess both aesthetic fit and practical usability, finally settling on a typeface that felt professional yet approachable, adaptable yet consistent.

Removing Bold and Constraining Letter Spacing

We tried using bold for our headers but after redesigning the banner for Penn Clubs, we found that semi-bold used throughout had better accessibility.


We also thought using a smaller letter spacing looked better, however its effect on accessibility weighed more important so we reduce our letter spacing again.

Development

Materials, Breakpoints

Shadows

Shadows should be used subtly and sparingly, reserved for highlighting elevation or interactive states, to gently guide users without overwhelming the interface or detracting from the design’s overall clarity and simplicity.

Grids

A disciplined, systematic grid ensures rhythm, alignment, and visual harmony, empowering designers to create seamless, scalable experiences that feel intuitive and polished across every screen.

Breakpoint

Class infix

Dimensions

Small

sm

< 768px

Medium

md

< 1200px

Large

lg

< 1400px

Extra Large

xl

> 1400px

Penn Labs Design System

Layout

For larger size screens, increase the gutter size but maintain the over grid placement.

Tip

Try to incorporate fluid dynamics into your designs for better layouts.

sm

Margin: 16px

Gutter: 16px

md

Margin: 32px

Gutter: 16px

lg

Margin: 40px

Gutter: 16px

Grids & breakpoints

Great interfaces rely on precision and consistency across devices - this is where intentional breakpoint selection and robust grid layouts come into play. Breakpoints shouldn’t simply respond to device sizes, but thoughtfully anticipate user context, fluidly preserving content hierarchy and readability.

Consistency across screens

A disciplined, systematic grid ensures rhythm, alignment, and visual harmony, empowering designers to create seamless, scalable experiences that feel intuitive and polished across every screen.

Development

Buttons, Dropdowns, and Segments

Scalability vs. Customization

In our design system, we balanced scalability and customization by using a base button component with predefined variants (primary, secondary, ghost). While this ensured consistency, we allowed controlled overrides for edge cases, preventing unnecessary deviations that could fragment the system’s visual identity.

Accessibility vs. Aesthetic Flexibility

We prioritized WCAG-compliant contrast ratios and focus indicators, even when aesthetics favored subtler styles. This meant carefully crafting color palettes and interaction states that were visually appealing but still met accessibility standards, ensuring an inclusive experience without sacrificing Penn Labs’ design language.

Penn Labs Design System

Buttons

Use predefined button variants to ensure consistency. Customize only when necessary to maintain accessibility, scalability, and design system integrity.

Tip

Maintain contrast, focus states, and consistency.

Button

Button

Button

Button

Stateless

Hover

Selected

Disabled

Stateless

Stateless

Hover

Hover

Selected

Selected

Disabled

Disabled

Stateless

Hover

Selected

Disabled

Stateless

Stateless

Hover

Hover

Selected

Selected

Disabled

Stateless

Stateless

Hover

Hover

Selected

Selected

Disabled

Disabled

Stateless

Hover

Selected

Disabled

Disabled

Stateless

Hover

Selected

Disabled

Filled

Outline

Icon

Text Icon

Text

Button

Button

Button

Button

Button

Button

Button

Button

Button

Button

Button

Button

Button

Button

Button

Button

Button

Button

Button

Button

Button

Button

Button

Button

Button

Button

Button

Button

Button

Button

Button

Button

Button

Button

Button

Button

Icons with buttons should be used sparingly

Consistency in roundness of corners is critical

Penn Labs Design System

Inputs, Dropdowns, Segmented Control

Dynamically resize based on breakpoint sizes

Tip

Ensure that active states aways have Penn Blue stroke.

Icon

Placeholder

Placeholder

Default

Selected

Disabled

Text

Default

Text

Selected

Text

Disabled

Default

Placeholder

Placeholder

Default

Selected

Disabled

Special

Placeholder

Placeholder

Default

Selected

Disabled

Dropdown

Segmented

Segmented

Right Selected

Selected

Selected Item

Item

Selected Item

Left Selected

Unselected

Item

Selected Item

Item

Development

Headers, Menus, Cards

Consistency vs. Flexibility in Headers

With nine products and multiple device types, our headers needed a unified structure while accommodating different functionalities like search, cart, and navigation. We established a core layout with modular elements, ensuring visual consistency while allowing conditional rendering for features that varied across products.

Scalability vs. Clarity in Cards

Cards served diverse functions - course planning, reviews, and scheduling, requiring a flexible yet clear structure. We designed adaptive layouts with dynamic content slots, ensuring scalability without overwhelming users. Careful use of hierarchy, spacing, and typography kept complex data readable while maintaining a cohesive UI.

Menus should be intuitive, scalable, and accessible, adapting seamlessly to different navigation needs across products and screen sizes.

Development

Tables, Tags, Toggles

Tables: Balancing Density and Readability

Tables in our system needed to handle large datasets while remaining scannable across devices. We used striped rows, responsive stacking, and inline filters to enhance clarity. 

Tabs: Organizing Content Without Overloading Users

Tabs helped segment complex workflows into digestible sections while maintaining quick access to key features. We designed them with clear labels, adaptive widths, and persistent states for usability. On mobile, swipe gestures and dropdown alternatives ensured seamless navigation in space-constrained layouts.

Conclusion

Takeways

Takeaways

Through this project, I learned that a strong design system is built on thoughtful trade-offs between brand cohesion and functional clarity. Navigating team debates around typography, color scalability, and interface consistency deepened my appreciation for designing with intentionality and systems thinking. 

Importance of Iteration

This project also taught me the importance of iterative experimentation and cross-functional communication. By conducting tests- such as evaluating the effectiveness of color as a functional tool - and incorporating feedback from engineering and design peers, I developed stronger skills in collaboration and decision-making.

Prioritize system scalability

Simplify color choices

Typography drives consistency

Experiment, then iterate