UI Shell Improvements in Carbon Labs
The Carbon UI Shell was expanded and enhanced in Carbon Labs to create a consistent, unified experience across IBM Software. Building on the existing shell, the work added new React components where gaps existed and aligned diverse business needs into shared patterns.
Summary
As development lead, expanded and enhanced Carbon's UI Shell to create a consistent platform experience across IBM Software. Built on the existing Carbon Shell by adding new React components where gaps existed and aligning diverse business needs into shared patterns. Partnered closely with Carbon designers and design leaders from across the business to balance varied requirements while working in Carbon Labs for rapid prototyping and validation.
Background
The Challenge: Carbon's UI Shell hadn't been updated much since its first release and lacked clear guidance on navigation composition. Product teams filled gaps independently, leading to fragmented and inconsistent experiences across IBM Software. Many products had needs the current Shell couldn't solve - multi-product navigation, deep nesting, or filtering capabilities.
My Role: As development lead, I facilitated working sessions with design leaders from across IBM's business units while leading hands-on development with a small team. I organized sprints, sized work, and contributed directly to building new components.
Approach
Cross-functional Collaboration: Facilitated regular working sessions with design leaders while leading development. Partnered early with IBM's accessibility team to test as we built, ensuring the Shell met accessibility requirements from the start.
Key Focus Areas:
- Rapid prototyping: Partnered with designers to explore navigation patterns and interactions, validating them with stakeholders before finalizing
- Balancing needs: Accounted for varied business requirements, from multi-product navigation to deep nesting and filtering
- Building flexibility: Developed composable React components including double-wide main navigation, mobile-friendly version with back navigation, and configurable in-product rail with pinning and auto expansion
- Ensuring compatibility: Maintained compatibility with existing Carbon React functionality while building in Labs for eventual promotion back to core
- Stakeholder alignment: Used Labs as a safe space to iterate quickly while building trust that the final design would meet broad needs
Challenges
Diverse Product Requirements: Teams had vastly different needs - some required robust multi-product navigation, others prioritized lighter single-product rails, and others needed deep nesting or filtering. Balancing these competing needs while driving toward a unified Shell experience required constant iteration and compromise.
Rebuilding Trust: Because the Shell hadn't been updated in years, many teams had built their own variations and were skeptical that a shared solution could meet their needs without heavy customization.
Balancing Speed and Stability: Had to move quickly without compromising stability. Every decision balanced the freedom to experiment in Labs with the discipline to keep code aligned with core standards for eventual promotion.
Cross-Business Alignment: Worked with Carbon designers, design leaders, and VPs from multiple business units, each with their own priorities. Building consensus at this scale required steady communication and facilitation to keep everyone moving toward the same goal.
Outcomes
Technical Deliverables:
- Delivered improved set of composable React components providing consistent and flexible foundation that can scale across IBM Software
- Enhanced existing functionality and added new components where gaps existed, giving teams a clear, unified way to build navigation patterns
Early Adoption:
- Teams that previously built custom shells are beginning to implement the new components, with product teams adding their own instrumentation to guide future iterations
- Created repeatable model for using Carbon Labs to experiment, validate with stakeholders, and promote work into core library without risking stability
Process and Collaboration:
- Strengthened cross-business collaboration and renewed trust in the Shell as a shared solution
- Established accessibility testing from the start and aligned on usage patterns for consistent experience across IBM's portfolio