Sergio Hurtado

01 · Projects

Personal project

Risk OS, a design system for financial risk monitoring

2026 · Financial risk management · Design system

A showcase in a field I know well after more than six years at Murex: monitoring limits, spotting a breach and understanding where it comes from. Foundations, domain components, patterns and screens were built with Claude Cowork, connected to Figma through the MCP server.

The Risk Overview screen, embedded from the Figma file. Zoom and pan around the design; the full file gives access to variables, components and documentation.

An identity that leaves room for risk

The visual direction is called Iris & Slate: cool slate neutrals and a single accent, an iris (#5241CC). It stands apart from common financial design systems and, above all, never clashes with a risk colour. Geist is used for the interface, Geist Mono for every financial value: fixed width keeps decimals aligned from one row to the next.

Three colour families, never mixed

This is the most structural decision in the system. risk/* colours describe the business state of a limit, from Normal to Critical. feedback/* colours describe the outcome of an action in the interface: saving, input, export. dataviz/* colours encode categories without judgement, with no green, amber or red. The same red can therefore never mean both “limit breached” and “field to correct”. On top of that, each risk level pairs a shape, a label and a colour: circle for a stable state, triangle for a warning, octagon for a breach.

Risk levels and their tokens in light and dark mode, then the feedback and dataviz families.

The same red can never mean both “limit breached” and “field to correct”.

The design system, built with Claude

Claude Cowork, connected to Figma through the MCP server, laid the foundations: 251 variables split across collections (primitives, light and dark colours, dimensions, three display densities, motion with a reduced-motion mode), 17 text styles, 3 elevations and a 12-column grid. Then the library: 51 icons, 34 components with variants (225 variants in total) and the application shell, sidebar, top bar, page header, toolbar, drawer. My role: set the direction, review every page, make the domain calls.

Foundations251 variablesComponents34 components, 51 iconsDomain componentsLimits, alerts, tablesPatternsP01 to P08Screens3 working viewsPrototypeMonitoring flowEach page builds on the previous one: a screen only uses documented patterns and components.
How the Figma file is organised, from variables to prototype.

Components built for the domain

The most specific page in the file gathers the risk components: level glyph and badge, breach indicator, data freshness, delta, exposure value, limit utilisation, concentration and contribution rows, charts, alert list, history and financial table. Each one is documented with its states and usage notes. The Breach Indicator, for instance, puts duration first: a two-day breach is not as serious as a ten-minute one.

Breach Indicator, inline and detailed, from approaching threshold to resolved breach.

Patterns before screens

Eight patterns describe the key tasks before a single screen is drawn: filtering exposures, exploring a portfolio hierarchy, drilling from an aggregate to its detail, checking a limit, analysing the causes of a breach, reviewing an alert's history, creating or editing a limit with approval, showing data status. Each pattern sets out the context, the information available, the possible actions and their consequences.

P04: check a limit and qualify a breach in under a minute. Identity, status and duration, consumption, definition, then a single primary action.

Three working screens

The screens put these building blocks together in compact density: the risk overview, limit monitoring with the detail drawer open, and a counterparty's exposure page, a scrolling page that goes from summary to breach history.

Limits Monitoring: the table sorted by utilisation, and a limit's detail in a side drawer, without leaving the list.
Exposure Details: exposure breakdown, trend against the limit, what changed since the previous close and breach history.

Accessibility

Risk level is never carried by colour alone: shape, label and colour go together, and badges keep a text/background contrast of at least 6.6:1. Components have screen reader equivalents (a utilisation bar announces “104.2% of limit, breach”), and real-time data updates are only announced when the state changes, never on every refresh. The documentation separates what is verified, what is designed for WCAG 2.2 and what remains to be checked.

A prototype to walk through the flow

The prototype follows the monitoring journey: from the overview, open the active breaches or the list of limits, click a row to slide in the detail drawer, then move on to the exposure page. Five Figma Motion animations complete it: drawer entrance, updated row highlight, notification, section expand, utilisation bar update.

Interactive prototype. Click inside the frame to walk through the monitoring flow.