EDS turned an Elanco brand system into a product design system. Tokens-first, Tailwind-aligned utilities, breakpoint-aware components, governed by a shared decision log. Shipped as the substrate for EKS surfaces first; adopted by six adjacent product teams without mandate within the first year.
The journey shows where EDS friction lived before it shipped, and where the redesign moved the friction — out of designer hands, into governance tooling.
Elanco had a brand palette but no product palette. The 38 swatches were named after pigments (Cerulean, Sienna), not roles. Engineers hard-coded values; designers picked from PDFs.
Background, ink, ink-2, ink-3, ink-muted, accent, accent-deep, accent-soft, rule, surface, sink. Role-based naming. Hex codes hidden behind tokens.
RegulatoryCard, VetBrief, CommercialThread, CustomerInquiry — and the supporting primitives (Button, Field, Banner, Toast). The naming convention came from research, not from the visual shape.
EDS shipped as the substrate for EKS surfaces. Six other product teams adopted within 12 months — pulled in, not pushed. Organic adoption is the only metric that matters for an internal system's long-term viability.
RFC template, async review, biweekly sync. Two designers + one engineer review every proposal. The hardest decisions were what NOT to accept — accepting everything would have turned EDS into the union of everyone's preferences.
Rendered from the live token set — toggle the mode and the sheet re-themes itself. Paper-and-ink as ground; brand hues reserved for product surfaces. The swatches aren't a picture of the system; they are the system.
The discovery role taxonomy gave EDS its information architecture. VetBrief is more useful than InfoCard because it carries semantic intent into every spec review.
Adjacent-team adoption out-ran the contribution model. By month 9 there were 23 PRs waiting on review with no SLA. Contribution tooling should ship with v1, not v1.3.