OCI Design System Toolkit & Component Library: Unifying Design Across Oracle Cloud Infrastructure

A centralized toolkit and reusable component library empowering OCI teams to design and build faster, more consistently, and with stronger alignment between design and engineering.

New Redwood Components: A selection of UI components I designed as part of the Redwood design library, created to expand OCI’s component set, improve consistency, and better meet product-specific needs.

Industry

Industry

Cloud Infrastructure

Timeline

Timeline

2023 - 2025

My Role

My Role

Design Systems Lead

Introduction

Design systems can be both a superpower and a potential trap. When built without the right timing or purpose, they can quickly turn into complex artefacts that add little value.

At OCI, we already had Oracle’s HgDs design library. On the surface, it appeared that design was well managed. However, as part of the newly formed Redwood design team, I saw the gaps first-hand. This led to the creation of the OCI Redwood Design System, an evolution that replaced HgDs and scaled more effectively across our growing product ecosystem.

Three shifts made this transformation essential:

  • The current HgDs design library did not fully address OCI’s specific UI needs, and was becoming outdated.

  • Designers and engineers were working in silos, re-creating similar components and diverging in style.

  • Inconsistencies were increasing, with redundant components and unclear guidance slowing teams down.

Console Dashboard Redesign: Before-and-after comparison showing the transformation of the OCI Console dashboard following the Redwood design system implementation, improving visual clarity, consistency, and overall user experience.

The problem

Here are key pain points we found after an audit.

Teams built components from scratch, creating multiple versions with subtle visual and functional differences.

Repetition was everywhere

Redwood lacked OCI-specific components, leading teams to improvise and cause visual drift and inconsistent experiences.

HgDs wasn’t fully meeting OCI’s needs

Without a single source of truth, design and engineering misaligned, slowing handoffs and complicating feedback.

Collaboration was slowing down

Lack of standard accessibility and localisation patterns made global readiness inconsistent and time-consuming.

Scaling and accessibility were difficult

Designing for Clarity, Not Noise

While evolving from HgDs to the OCI Redwood Design System, it was tempting to lean heavily into new visual patterns and branding. But we quickly realised that over-branding every element would create unnecessary visual noise in complex enterprise interfaces.

We agreed that the best way for the brand to permeate OCI products was through subtlety. High-frequency UI elements like inputs, buttons, labels, and tooltips were intentionally kept neutral and functional. This allowed them to blend into the background, giving prominence to more expressive elements such as data visualisations, illustrations, and key interaction states.

This decision was rooted in empathy for our users, who often work in high-stakes, high-focus environments where clarity matters more than decoration. By keeping core components understated, we ensured that the system supported user focus, while still allowing brand expression to appear in the right places where it adds value and not distraction.

Redwood Design System Toolkit – 24C: Latest 24C release, providing updated guidelines, components, and best practices to ensure design consistency and quality across OCI products.

Building guardrails that fostered creativity

With the OCI Redwood Design System structure in place, I focused on embedding documentation directly into the Figma component files so it was always accessible in context. This kept guidance current and part of the everyday design workflow. Documentation was provided at two levels:

  • Specs - Detailed breakdowns of a component’s states and behaviours

  • Guidelines - Clear advice on when to use a component, and when not to

This clarity gave designers the confidence to move quickly without having to search through external files.

At the same time, we established guardrails to keep the system unified while still allowing for creative problem-solving. The principle was simple: reuse existing components nine times out of ten. The remaining one time required strong justification, given the cost of creating and maintaining new components. Regular reviews kept the library lean, while flexible properties and variants ensured components could adapt to a variety of use cases.

Weekly design critiques and the supporting guidance (as shown in the attached Redwood Design System Toolkit Library image) helped the team stay aligned on when to follow the system and when it made sense to bend the rules. This balance of structure and flexibility kept designs consistent, scalable, and efficient to deliver.

Redwood Design System Toolkit Library: Figma component library paired with supporting guidelines, detailing how to use and implement each component to ensure consistency and quality across OCI product experiences.

A turning point for typography

One of the big decisions at the system level was whether to use a fully responsive type scale that adjusted sizes across breakpoints, or to define type size at the component level. I looked to other established design systems for guidance, but there was no clear consensus. To find the best path forward, I audited how typography was currently being applied across OCI.

The audit revealed that type sizes often changed across breakpoints, but the way they resized was inconsistent and usually tied to the component they were in. That led us to choose the flexibility of defining type size at the component level. To keep things consistent, we set a codified “base” size anchored to the most common style used for body text. Designers could then scale up or down from that base depending on the hierarchy and importance of the content.

Visually, the move from HgDs to the OCI Redwood system also meant rethinking font usage. The new system introduced two core fonts: Oracle Sans and Georgia. Oracle Sans served as the functional workhorse, highly legible, modern, and designed to fade into the background so users could focus on the task at hand. Georgia, with its more traditional and expressive character, was reserved for moments where personality and emphasis were needed. This pairing allowed the product to maintain clarity in high-focus enterprise contexts while still reflecting Oracle’s brand voice in the right places.

Details Page Typography: Highlighting the different heading styles used on the details page to establish clear hierarchy, improve readability, and maintain consistency with the Redwood design system.

Code as the single source of truth

A design system only works when components stay in sync with their coded counterparts. Since code is ultimately how customers experience the product, any disconnect between design and development risks undermining the system’s success.

To bridge this gap, we introduced core design tokens mapped directly to key primitives such as typography, colour, and container sizes. These tokens created a shared language between designers and developers, ensuring updates in one space were accurately reflected in the other. We also worked closely with the JET developer cookbook, the source library for coded components, to validate feasibility, align with technical constraints, and ensure every component we designed could be implemented at scale.

Several months after we introduced this model, Figma released design system tools that mirrored our approach, with primitives as the source layer and semantic tokens as the theme layer. This confirmed that we were moving in the right direction and helped align OCI’s design and development workflows around a unified, scalable structure.

JET Library Cookbook: Screenshot of the developer-facing JET component library we referenced to ensure our Redwood components were feasible, aligned with technical constraints, and ready for implementation.

Building for Speed and Consistency

The strength of the OCI Design Toolkit was in the everyday templates designers used most, including the List Page, Details Page, Dashboard, and Create Wizard flows. These formed the backbone of most OCI product experiences, so getting them right was essential.

The first priority was content structure. Each template had a clear, consistent layout that balanced flexibility with best practice. I documented where to place primary actions, how to structure navigation and filters, and how to display contextual help. This ensured a List Page or Dashboard from one team would feel familiar to users of another product.

Accessibility and discoverability were built in from the start. Templates included guidance on hit areas, keyboard navigation, and text hierarchy, and were tagged and categorised so designers could quickly locate and reuse them.

As part of these improvements, we also created reusable variants and components (as shown in the attached image), making it faster and more efficient for teams to design and build prototypes. By refining alignment, spacing, and component groupings, adding example data, and including progressive disclosure and error handling for Create Wizards, the toolkit became more than a static library — it became a set of ready-to-use building blocks that sped up delivery while keeping experiences consistent.

Component Simple Builder and Variants: Screenshot from the Redwood Figma library showing the simple builder for a component along with its reusable variants, enabling flexibility while maintaining consistency across OCI products.

The system needs to be self-sustaining

We knew our dedicated time to build the OCI Redwood Design System was limited. “Go far, go together” became a guiding principle, which meant involving the designers and engineers who would rely on the system from the very beginning. Their early feedback shaped what we built, and the sense of shared ownership that came from their involvement was key to ensuring the system could thrive long after the initial rollout.

Other ways I helped make the system sustainable included:

Published a public Confluence roadmap for upcoming components and contributions.

Transparent priorities

Added a design system checklist to GitHub PRs to ensure component consistency.

Sensible integrations

Created a design system Slack channel with 80+ members in the first month.

Clear communication

A healthy system starts with good hygiene

To keep the system clean and reliable over time, we introduced a design library changelog (as shown in the attached image). This log tracked every update to the Redwood design library, including new components, enhancements, and fixes. It served as a single reference point for both designers and engineers, helping maintain consistency, avoid duplication, and ensure changes were transparent across teams.

Coupled with the standardised Figma file templates, project organisation, and embedded documentation, the changelog became a key tool in sustaining design system hygiene at scale.

Design Library Changelog: Screenshot documenting updates to the Redwood design library, tracking new components, enhancements, and fixes to maintain consistency and transparency across design and engineering teams.

Learnings

Too much flexibility can backfire

Figma variables were both a blessing and a curse. They gave us the scaffolding to build a more advanced system, but that same flexibility became a trap. Our biggest challenge came from shipping all 130 core style tokens at the start. If we had started with semantic tokens, we could have reduced the choices for designers by about 80 percent. More choice meant more room for inconsistency and mismatched styles. We eventually replaced the core set with semantic tokens, but introducing them from the beginning would have prevented the issue entirely.

Start small, ship sooner

In hindsight, we should have released a smaller set of components and tokens earlier. A shorter feedback loop, working closely with one or two product teams, would have allowed us to refine and validate our approach before scaling. This would have made the rollout smoother and built stronger early adoption within the design and engineering community.

Volunteer Chatbot & Web Portal Preview: Laptop and mobile mockups showcasing the volunteer sign-up experience, enhanced with an integrated support chatbot to help guide users through barriers to employment, training, and mentorship.

Console Dashboard Redesign: Before-and-after comparison showing the transformation of the OCI Console dashboard following the Redwood design system implementation, improving visual clarity, consistency, and overall user experience.

Redwood Design System Toolkit – 24C: Latest 24C release, providing updated guidelines, components, and best practices to ensure design consistency and quality across OCI products.

Redwood Design System Toolkit Library: Figma component library paired with supporting guidelines, detailing how to use and implement each component to ensure consistency and quality across OCI product experiences.

Details Page Typography: Highlighting the different heading styles used on the details page to establish clear hierarchy, improve readability, and maintain consistency with the Redwood design system.

JET Library Cookbook: Screenshot of the developer-facing JET component library we referenced to ensure our Redwood components were feasible, aligned with technical constraints, and ready for implementation.

Component Simple Builder and Variants: Screenshot from the Redwood Figma library showing the simple builder for a component along with its reusable variants, enabling flexibility while maintaining consistency across OCI products.

Design Library Changelog: Screenshot documenting updates to the Redwood design library, tracking new components, enhancements, and fixes to maintain consistency and transparency across design and engineering teams.