Pulliv0.1
8px
12 — Readiness

What this is ready for, and what it isn't.

Two questions hide inside "is it enterprise-grade", and they have opposite answers. The architecture is largely production-quality. The system is roughly a fifth of one. This page separates them, quantifies the gap, and says what it would cost to close.

The verdict

Token architecture
ReadyAt or above shipping enterprise systems
Component coverage
46 / 5879% fully shipped · 4 partial · 8 absent · inventory published
Engineering
Not startedNo package, types, or framework binding
Conformance evidence
NoneGood practice, no audit or VPAT

Is the architecture enterprise-grade?

Largely yes. The three-layer token model with a one-way dependency rule is how Carbon, Spectrum and Polaris are built, and most systems that fail do so because products reach past the semantic layer — this one lints against that. Density tiers, measured contrast, a motion ceiling, a deprecation lifecycle and decision records are all present and are the parts teams usually retrofit badly.

Is the system ready to deploy?

No. Thirteen components against the fifty-plus a real enterprise application needs. No data grid, date picker, combobox or menu. No React package, no TypeScript, no Storybook, no Figma library. No RTL. No third-party accessibility audit. Those are not hard problems — they are long ones, and they are most of the calendar time.

Coverage rose from 24% to 79%; readiness barely moved. Thirty-two components were added and the inventory is published, but four of the six remaining blockers — package, Figma, RTL, conformance evidence — are engineering and organisational rather than design. A library of forty-six components that cannot be installed is not more adoptable than a library of fourteen that cannot be installed. Component count is a weak proxy for readiness and it is worth saying so while raising it.
A correction to an earlier estimate. This documentation previously said the system was "roughly 15%" of an enterprise library. Enumerated properly — 13 shipped against a 58-component reference inventory — it is closer to 22%. Still a foundation, but the earlier figure was pessimistic and was not counted.

What is ready

Not a courtesy list. These are the parts that are genuinely hard to get right and are done.

CapabilityStateWhy it matters at scale
Three-layer token modelReadyThe one-way dependency rule is the difference between a design system and a stylesheet. Enforceable by lint, and the reason a theme or pitch change does not require touching products.
Density tiersReadyCompact / default / comfortable from a single attribute. Enterprise consoles need this and it is painful to retrofit — Carbon and Spectrum both have it, most in-house systems do not.
Dual themeReadyBoth complete, neither an afterthought. Every semantic role defined in both.
Measured contrastReadyPublished figures computed from the palette, not asserted, with the intention of CI verification. Most systems publish intentions.
Accessibility floorsReady44px targets enforced inside the token via max(), including at compact density. Focus policy, reduced-motion policy, non-text contrast on control boundaries.
Motion specificationReadyDuration ceiling measured end-to-end across sequences, an animatable-property allow-list, reduced motion as removal rather than shortening.
Governance modelReadyDeprecation lifecycle, removal ledger, decision records, derivation-proof review rule, annual breaking release. More disciplined than many funded systems.
Email and printReadyToken resolution at build time for surfaces without var(), and a print stylesheet with the lattice re-seeded in millimetres. Genuinely rare — most enterprise systems have no answer for Outlook at all.
DocumentationReadyThirteen sections including the system's own failures. An evaluator can determine fitness without a call, which shortens procurement.

Gap analysis

Blocker — cannot ship without. Major — needed by most enterprise applications. Minor — needed eventually. Effort assumes one designer and two engineers.

Components — 46 of 58

MissingSeverityNoteEffort
Data grid — virtualised, sortable, filterable, resizable, frozen columns, bulk select, column chooserPart-builtThe single largest item. Every fintech and most healthcare applications are a data grid with a shell around it. Now built for read-heavy use — virtualised, sorted, filtered, resizable, freezable, selectable, with full ARIA grid semantics. Cell editing, grouping, column virtualisation and server-side data remain absent.Read-heavy: done. Editing and grouping: adopt headless, 4–6 wks
Menu / dropdown, tooltip, popoverPart-builtShipped with focus management and dismissal, but naive viewport-flip placement — no scrolling-container or transformed-ancestor handling. Swapping in Floating UI is a contained change.1 wk to swap placement
Combobox / autocomplete, multiselectBlockerThe hardest ARIA pattern in common use. Do not hand-roll.3–4 wks on a headless base
Date picker, range picker, time pickerBlockerLocale, calendar systems, keyboard grid, screen-reader announcement of a two-dimensional widget.4–6 wks on a headless base
Drawer, accordion, breadcrumb, pagination, tag, avatar, skeleton, spinner, banner, split button, search, number input, slider, file uploadShippedAll present in the library, tokens-only, both themes, forced-colors path.Done
Tree view, command palette, notification centre, wizard, filter panel, bulk action barMajorApplication patterns rather than primitives. Toolbar now shipped.5–7 wks
ChartsMajorThe showcase draws SVG charts by hand. A real system needs a themed charting layer with accessible data tables behind every visualisation.4–6 wks on a charting base
Icon systemMajorSizing is specified; there are no icons. Adopt a set rather than draw 300.2 wks to integrate

Engineering

MissingSeverityNoteEffort
Framework package — React first, TypeScript typesBlockerRaw CSS is adoptable by nobody's component team as-is. Angular matters in banking specifically.6–8 wks
npm publishing, semver releases, changelog automationBlockerGovernance describes a release model that has no release mechanism behind it.2 wks
StorybookMajorThe documentation site is excellent for evaluation and useless as a component workbench.2–3 wks
Style Dictionary build from tokens.jsonMajorThe JSON exists and nothing consumes it. Emit CSS, JS, Swift, Kotlin, Figma.2 wks
SSR and tree-shakingMajorAssumed by every modern enterprise front end.Folded into the package work
Browser floor decisionMajorCSS custom properties are load-bearing everywhere. If a client still requires IE11 — some banks do — this system cannot be used at all without a compiled fallback build.Decision, then 3–4 wks if needed
Performance budgetMinorNo bundle-size ceiling, no render benchmarks.1 wk

Accessibility and compliance

MissingSeverityNoteEffort
Third-party audit and VPAT / ACRBlockerProcurement asks for the document, not the intention. Required for US federal (Section 508), most healthcare, and increasingly EU under the European Accessibility Act.4–8 wks plus external cost
Forced-colors / Windows High ContrastBlockerUnsupported by the base system — state carried by fills disappears entirely. Now addressed in the enterprise subset.Done
High-contrast themeMajorAAA palette for users who need it and for procurement checklists. Now addressed in the subset, measured at ≥ 8:1.Done
Screen-reader test matrixBlockerClaims are made; results are not published. NVDA/JAWS/VoiceOver × browser, per component.3–4 wks
WCAG 2.2 reviewMajorThe system targets 2.1. 2.2 adds focus-appearance and target-size criteria that mostly favour it, but the delta is unassessed.1–2 wks
Cognitive accessibility patternsMinorError recovery, plain language, timeout extension — specified nowhere.2 wks

Internationalisation

MissingSeverityNoteEffort
RTLBlockerZero support. Not a mechanical flip either — the dot rail, the travelling loop and the curl boundary all encode direction and need deliberate mirroring. Rules must move to logical properties throughout.3–6 wks
Locale typographyMajorCJK line-height and vertical rhythm are untested; German compound words will break control widths sized in ch; Devanagari and Tamil ascender/descender behaviour untested despite the system's own origins.3–4 wks
Number, date and currency formattingMajorNo tabular-figure rule, no negative-value convention, no currency alignment guidance. Fintech-critical.2 wks
Translation expansionMinorNo 30–40% expansion testing on labels and buttons.1 wk

Design tooling and organisation

MissingSeverityNoteEffort
Figma libraryBlockerDesigners cannot use this today at all. Variables for the seed, three colour modes, density as a mode, published components.4–6 wks
Code Connect / design-to-code mappingMinorNice once the Figma library and React package both exist.1–2 wks
Funded team and SLABlockerEnterprises adopt systems that will still exist in three years. A one-person side project does not clear that bar however good it is — this is an organisational fact, not a quality judgement.—
Adoption metrics and migration toolingMinorCodemods are promised in governance and do not exist.2–3 wks

Domain fit

The three verticals are not equally good matches, and healthcare is the one to be careful about.

Fintech — the strongest fit

Works in its favour

  • Compact density is genuinely well-suited to ops, reconciliation and trading surfaces, and it is derived rather than hacked.
  • Measured contrast discipline matters as consumer banking moves toward hard accessibility conformance in the EU.
  • The email and print layer — statements, confirmations, regulatory correspondence. Rare and directly useful.
  • Dark theme is native, not an inversion, which suits long-session monitoring work.

Blocks it today

  • No data grid. A styled <table> is not a grid. This alone rules out most applications.
  • No number system — tabular figures, negative-value conventions by locale, precision and rounding display rules, currency alignment.
  • No real-time value pattern — updating figures without layout shift or focus loss.
  • No audit-trail, session-timeout or step-up-authentication patterns.
  • Disclosure typography — regulated fine print has minimum-size and prominence rules the type scale does not address.

Healthcare — the hardest fit

In clinical software a novel affordance is a patient-safety question, not a branding one. If a clinician misreads a checkbox on a medication screen, that is a harm event. Usability engineering under IEC 62366 will ask you to justify every deviation from convention, and you do not want to spend that argument on the shape of a mark. Use the regulated profile, which reverts the novel controls, or do not use the interface layer at all.

Specific hazards

  • The crossing checkbox. An X reads as remove to many software users. Reverted in the regulated profile.
  • Red and green carry established clinical meanings that will collide with generic success and danger semantics.
  • The pattern layer near clinical data — the density ceiling is not enough; it should be absent entirely.
  • Compact density is questionable with gloves, styluses, shared workstations and users who are standing. The regulated profile refuses to go below default.
  • PHI masking and reveal, screen-privacy states, and alert-fatigue hierarchies are entirely unaddressed.

What could still be used

  • The token architecture and derivation discipline — domain-neutral.
  • The density model, at default and comfortable.
  • The accessibility floors and the high-contrast theme.
  • The governance model, which is arguably the most transferable artefact here.
  • Nothing from the expressive layer, and none of the redesigned controls.

Large service organisations

These hit multi-brand and localisation walls before they hit component gaps. Forking is well-specified — under twenty lines — but there is no white-label tooling, no theme-management story at scale, and no RTL, which rules out any organisation operating in the Gulf, Israel or much of South Asia's Urdu-language market. The strongest single argument for this system in a service organisation is the email and print layer, because large services send an enormous volume of both and almost no design system covers them.

Roadmap

Sequenced by what unlocks the next thing, not by what is most interesting. Durations assume one designer and two engineers; halve the team and roughly triple the calendar.

Phase 0 · 2 weeks · decide

Choose the target before building anything

  • Pick one vertical. Fintech is the strongest fit. Trying to serve all three produces a system that fits none.
  • Decide the expressive layer in or out for that vertical, using the cultural test below.
  • Decide build versus adopt per hard component. Grid, combobox, date picker and floating elements should almost certainly be headless libraries wearing these tokens.
  • Set the browser floor. If IE11 is required, stop — this system's architecture is incompatible and that must be known now.

Unlocks: everything. Getting this wrong wastes the following nine months.

Phase 1 · 8–10 weeks · make it consumable

From a website into something a team can install

  • Style Dictionary build from tokens.json → CSS, JS, Figma.
  • React package with TypeScript types, SSR-safe, tree-shakeable. npm, semver, automated changelog.
  • Storybook for the thirteen existing components.
  • Figma library: seed as number variables, three colour modes, density as a mode.

Unlocks: a designer and an engineer can both use it. Until this exists nothing else matters.

Phase 2 · 6–8 weeks · clear the accessibility floor

Turn good practice into evidence

  • RTL throughout — logical properties, and deliberate mirroring of the rail, the loop travel and the curl boundary.
  • Screen-reader test matrix published per component.
  • WCAG 2.2 delta review.
  • Third-party audit → VPAT / ACR.
  • CI: contrast recomputation, target-size assertion, duration allow-list, forced-colors smoke test.

Unlocks: procurement conversations. Without a VPAT most regulated buyers cannot proceed regardless of quality.

Phase 3 · 12–20 weeks · coverage to viable

The twenty-five components that unblock a real application

  • Floating layer: menu, tooltip, popover, drawer — on Floating UI.
  • Input layer: combobox, multiselect, date and range picker, number, search, file upload, slider.
  • Navigation layer: breadcrumb, pagination, tree, toolbar, command palette.
  • Feedback layer: skeleton, spinner, banner, notification centre.
  • Data grid, skinned onto a headless base rather than built.

Unlocks: a team can build a full product without leaving the system.

Phase 4 · ongoing · harden

The work that never finishes

  • Locale typography, number and currency systems, translation expansion.
  • Charting layer with accessible data tables behind every visualisation.
  • Multi-brand tooling; performance budget; migration codemods.
  • Vertical patterns — audit trails, session timeout, PHI masking, bulk operations.
  • LTS policy alongside the annual Margazhi break.
Realistic total to a credible v1.0 for one vertical: nine to twelve months with a designer and two engineers, assuming headless libraries are adopted for the hard components rather than built. Solo, at two or three days a week, is closer to two years — which is a legitimate choice for a portfolio and a bad one for a product.

Team and cost

Minimum viable team

  • Design systems designer1.0 FTE
  • Front-end engineers2.0 FTE
  • Accessibility specialist0.3 FTE
  • Technical writer0.2 FTE
  • External auditone-off

Below roughly 2.5 FTE sustained, enterprise design systems tend to stall at the point where maintenance load equals build capacity.

The cheaper path

Do not build a component library. Take the token architecture, the density model, the accessibility floors, the motion spec and the governance model — which is the genuinely valuable and genuinely finished part — and apply them on top of an existing headless or unstyled component library.

That is three months rather than twelve, it inherits somebody else's accessibility testing, and it loses almost nothing that this system is actually good at. The components were never the contribution.

The cultural decision

The question no gap analysis covers, and the one that should be settled first.

Should a global bank or a US hospital network use a kolam-derived visual language at all? This system's own documentation says no: for a product with no relationship to that context it reads as ornament borrowed for novelty. That is a real ceiling on generic enterprise adoption, and it is not solved by doing the borrowing more tastefully.

It is also separable. The measurement layer, the governance model, the motion specification and the accessibility floors are entirely domain-neutral. An enterprise can adopt all of that and never draw a kolam — which is exactly what the enterprise subset is for.

The better market is more specific than "enterprises". Indian fintech, insurance, health-tech and public-sector products are an enormous and fast-moving sector, and very nearly all of them are built on Material or Carbon — Western visual defaults applied without much deliberation. A rigorously built, accessibility-serious system derived from an Indian tradition is differentiating there in a way it will never be for a bank in Frankfurt. That is where this should be pointed, and it is where the cultural argument stops being a liability and becomes the product.

The three-question test

  • Does the organisation have a genuine relationship to the context? Indian market, Indian users, Indian heritage. If no, the expressive layer is off.
  • Is the surface regulated? If clinical or safety-critical, the expressive layer is off and the controls revert regardless of the answer above.
  • Can the organisation credit the source properly? Naming kolam practice and the formal-grammar research in its own documentation, not just inheriting ours. If it will not, it should not use the visual language.

Evaluate it yourself

The checklist an enterprise evaluator should run against this or any other design system. Most of these questions have a public answer here; the ones that do not are marked.

QuestionAnswer for Pulli
Can a product accidentally reach past the semantic layer?No — and it is lint-enforceable
Are contrast figures measured or asserted?Measured, published, both themes
Do target sizes hold at the densest tier?Yes — floored inside the token
Is there a forced-colors story?Yes, in the enterprise subset
Is there a VPAT?No
Is there a screen-reader test matrix?No
Does RTL work?No
Is there a data grid?Read-heavy yes, editing no
Is the component inventory published?Yes — 46 of 58, auditable
Can designers use it?No Figma library
Can engineers install it?No package
Is deprecation specified and tooled?Specified, not tooled
Will it exist in three years?Unfunded — the honest answer is unknown
Publishing this table is the point. A system that cannot say what it lacks will cost an evaluator two weeks to find out, and they will find out anyway. Six of the twelve answers here are "no". That is a fair summary of a foundation, and a more useful artefact than a feature list.