Leading Square's company-wide visual system evolution from blue to black, across 19 product teams
This project emerged from several converging signals. Across the company, there was an ongoing initiative to unify Square and Cash App under a shared visual language. Product designers were independently gravitating toward a black-and-white palette with rounded buttons in their vision work. And we were consistently hearing that the current design system felt stale and outdated.
Then Square's brand team announced they had a brand refresh planned to launch in October. That created the forcing function to take what was already in the air and ship it.
As lead designer, I owned the project end to end: writing the initial proposal, updating Figma libraries across both current and legacy files, documenting changes for engineers, communicating to designers what to expect and when, and overseeing QA to make sure the rollout landed cleanly.
Market
Market Monochrome
The brand team's new direction pointed toward a significantly updated visual language, including a new typeface, lighter heading styles, a shift from blue to black as the primary brand color, and rounder corners throughout. Rather than tackling all of it at once, I proposed splitting the work into two phases.
Phase 1 focused on color and border radius. These are token-level changes that are relatively contained to update and quick to validate, making them the right place to start. Phase 2 would follow with the typeface, type style updates, and additional visual changes like button backgrounds, aligned with where the brand team was heading.
Phase 1 still needed to propagate across Square's entire product ecosystem — 19 teams, 130 designers, over 1,000 engineers, multiple platforms, and several legacy design systems — all within a 6-month window.
I created a proposal outlining the scope and approach for the design system update and presented it to the head of design for alignment.
Before executing, I recreated key product flows in the new visual direction to stress-test the changes, surface edge cases, and inform decisions before full rollout. We also built a custom theme on top of Storybook so engineers and designers could interact with a working proof of concept — exploring the updated colors and border radii applied across real components before anything shipped.
Working with UX research, we ran usability testing to validate that the black system maintained the same level of usability as the blue, paying close attention to interactive affordances, focus indicators, and component states where color carried meaning. We also partnered with data science to define key metrics upfront and monitor them post-launch, ensuring the visual change didn't negatively impact task completion or error rates.
Working in a Figma branch, I updated the library to reflect the new visual direction. This included updating variables for color and border radius, and applying those changes across component styles throughout the system.
I maintained a spreadsheet documenting every design token change, organized by component, so updates were traceable and engineering had a clear implementation reference.
I QA'd all design system updates myself, then led company-wide QA sessions with designers across all 19 teams to ensure consistent adoption before launch.
After the primary system launched, I went back and updated legacy surfaces and design systems to bring them in line with the new visual direction.
The rebrand began rolling out in October 2025, on schedule, with a gradual rollout through November so we could closely track key metrics at each stage. The new visual system shipped across Square's product ecosystem with support for both current and legacy surfaces.
Solving a real usability gap on Square's point-of-sale hardware through dynamic sizing
Market at 1x
Market at 1.5x
I identified a recurring problem through designer and seller feedback: Market was looking too small on Square Register. Square Register runs Squid, Square's custom operating system. Unlike iOS and Android, it does not support text scaling through accessibility settings.
The design system had a single size and type scale for all platforms and devices. This became a blocker for product teams wanting to adopt the design system and migrate away from legacy systems.
Before proposing a solution, we ran a multi-source research effort to understand the full scope of the problem:
We evaluated four technical approaches before landing on a solution:
Not cross-platform — only solves for the X2 device. Doesn't work well for flows like checkout. Everything has to scale the same, so you lose the ability to tune things like font tracking or scale text and spacing differently (text should generally scale more than spacing). Also confusing and hacky to understand, especially for engineers.
Requires every team to have an engineer manually update the size of every component. The size jump needed from medium to large feels too big to be a set. Positioning it as a set rather than a mode also gives designers too much freedom to mix and match sizes on a single screen.
Engineers would apply a theme at an app or device level: Regular (1x) for current Market, Large (~1.3x) for X2 or iPad POS apps, and Jumbo (~1.5x) for buyer-facing screens like the checkout flow. This is harder for the systems team to maintain and more breakable. It's also less flexible for sellers who don't want the larger sizes.
Similar to Apple's dynamic type for accessibility, this approach gives Market a spectrum of sizes adjustable by the seller. POS apps and the X2 device would default to a larger size, available in Figma. Sellers could then override the size if it doesn't work for them.
The dynamic sizing system works similarly to Apple and Android dynamic type. It provides a range of size options, with the default set to a larger size for Square Register. As component sizes increase or decrease, both type and spacing scale together, ensuring things look proportional across the full range.
An added benefit: sellers can adjust their preferred size in device settings, giving them direct control over their experience at the counter.
We designed and tested a few different size ramp options, then brought in eight designers across various product areas to validate the approach in real product contexts.
Eight designers across different product areas tested the sizing system in their own work. We also conducted in-person testing with sellers on actual Register hardware.
Initially, a handful of product designers pushed back on the project. By the end, all of them were regularly asking for updates, pinging to find out when it would be ready because they wanted it for their teams.
The feature shipped in Figma and code. I was laid off before the full rollout. Seller demand remained consistently high throughout the project, and designer sentiment shifted from early skepticism to strong advocacy.