Lily Design System and Ant Design

Ant Design is a finished enterprise design language with an official React library, a large set of ready-made components and community ports to other frameworks, whereas Lily is an unstyled, accessible catalog kept in one repository for eight framework libraries, with themes (one of them modelled on Ant Design) supplied separately. This matters because the two answer different questions: Ant Design gives you a look, a token system and enterprise widgets on React, while Lily gives you the same markup contract in whichever framework you use and leaves every visual decision to you. Choose Ant Design if you are on React (or accept a community port) and want its enterprise appearance and components; choose Lily if you span frameworks, need to own the visuals, or want accessibility behaviour that is documented per component.

One official implementation and community ports, versus one catalog in one repository

Ant Design's introduction page calls React the official implementation, "Ant Design of React", and lists community implementations for Angular (NG-ZORRO), Vue (Ant Design of Vue), Blazor, and several others, adding that it welcomes the community to implement the system in other frameworks. The README of the main repository describes the project as a "React UI library" and says nothing about the other frameworks. The ports are separate projects with their own maintainers: NG-ZORRO says it "synchronizes design specification with Ant Design", Ant Design Blazor says it regularly synchronises with the official specification and, before its 1.0, tracks only antd 4.x styles. Ant Design Vue's page does not say whether it is officially affiliated with the Ant Design team.

Lily keeps the catalog in a single monorepo: 583 lines in components.tsv (607 rows, one per component), implemented by eight headless framework libraries (HTML, Svelte, React, Vue, Angular, Blazor, Nunjucks and Web Components, the last with 572 of the 607) plus Alpine.js snippets. Slugs, base class names and keyboard contracts are the same in each. The cost is that the project is new and has one maintainer, so the breadth is wider than the number of people checking it.

For a team, the practical difference is the risk profile. With Ant Design on React you use the reference implementation. With the Angular, Vue or Blazor ports you depend on a separate community project to stay in step with upstream, and the Blazor page says its styles lag at antd 4.x. With Lily you depend on one maintainer, but on one set of decisions across frameworks.

A design language with values versus no visual opinion

Ant Design was built by the Ant User-Experience Design Team, for Ant Financial's enterprise products, to "uniform the user interface specs". It states four design values (Natural, Certain, Meaningful, Growing) and lists ten principles such as Proximity, Alignment, Contrast and Make it Direct; the values page quotes, for example, "high certainty and low cooperative entropy". The principles page lists their names without descriptions in what I could read.

Lily's headless layer has no visual stance: semantic HTML, ARIA, keyboard behaviour and class hooks, with no colours, spacing or fonts. Visual opinions live in the 63 reference themes in the themes/ directory. One of these, ant-design.css, says it credits Ant Design and tracks the Ant Design 5.x default theme tokens, so you can get an Ant-like look on Lily markup. It is a reference theme and not an endorsement, and it is not Ant Design's own code.

If you want a house style decided for you, Ant Design provides one and Lily deliberately does not. If you already have a brand, Lily has nothing to fight against, though you must write or adapt the CSS.

Theming: design tokens in CSS-in-JS versus plain stylesheets

Ant Design's theme documentation describes design tokens in three layers: seed tokens, map tokens derived from them, and alias tokens derived from map tokens. Setting a seed such as colorPrimary makes an algorithm generate a matching palette. Built-in dark and compact algorithms can be combined, a theme object is passed to ConfigProvider, nested providers can theme part of a page, and component tokens customise one component. The same page says that since v5 theming runs through CSS-in-JS rather than the Less and CSS variables of v4.

Lily themes are ordinary CSS files that declare custom properties and target Lily's class names, using :where() selectors so your overrides win. The theme-picker helper swaps the stylesheet at run time. There is no JavaScript theme engine and no colour-derivation algorithm, so a theme in Lily is more manual to produce, but it needs no runtime and works the same in every framework.

Ant Design's token system is the more sophisticated of the two, in particular for generating palettes and dark or compact variants from a few values. Lily's approach is simpler and framework-neutral.

Internationalisation

Ant Design stores its interface text in locale packs imported from antd/locale and passed to ConfigProvider; English is the default. The i18n page lists 72 locale entries, some of them regional variants. The page does not say anything about right-to-left layout, even though Arabic, Hebrew, Persian and Urdu are on the list, so I cannot say from these pages how RTL is handled.

Lily takes the opposite route for most components: it ships no user-facing English at all, so every label is a prop supplied by the consumer, and direction is inherited from the consumer's dir attribute. For the grid-like helpers it offers 64 label packs, 63 of which are unreviewed machine drafts and say so. That makes Lily stricter about hardcoded strings but means you supply text yourself; Ant Design gives you reviewed-by-the-community text out of the box in many languages.

Accessibility claims

The Ant Design pages I read, the introduction, the values page, the README and the theming page, make no accessibility claims, and the README mentions no standard or conformance level. That is not evidence that the components are inaccessible, only that I found no statement either way, and I did not test the library.

Lily states a WCAG 2.2 AAA target and follows WAI-ARIA Authoring Practices patterns, with a documented keyboard contract per component and automated axe-core checks. It has never been independently audited, and its COMPARE.md says plainly that automated baselines are not an audit. If you need a conformance statement from someone else, neither source gives one in the pages cited here.

Component scope and enterprise widgets

Ant Design's component overview lists about 73 core components in seven groups (General, Layout, Navigation, Data Entry, Data Display, Feedback, Other), plus six ProComponents: ProLayout, ProForm, ProTable, ProDescriptions, ProList and EditableProTable. Notable pieces include Transfer, Cascader, TreeSelect, Tour and Watermark. The overview did not list a chart component, though the README links a separate Ant Design Charts project.

Lily's catalog is much larger in count (607 components) because it splits compound parts into separate entries (a table has head, body, row and cell components) and includes national identifier inputs, charts, calendars and a Gantt chart. Lily's own survey (compare/compare.tsv, 429 rows, which is Lily at 429 by construction because the rows are built from Lily's catalog) finds 187 rows with a matching Ant Design component. Counts compare badly: Ant Design's 73 are finished, styled components, and Lily's are headless parts you assemble. The ProComponents have no direct counterpart as a packaged, styled, data-bound table or form.

Licence and who maintains it

The Ant Design LICENSE file is the MIT licence, with the line "Copyright (c) 2015-present Ant UED". The three community ports I checked (NG-ZORRO, Ant Design Vue, Ant Design Blazor) all state MIT as well. The README names no individual maintainers, and points to a contribution guide and a collaborators page. The introduction page ties the project to the Ant User-Experience Design Team and Ant Financial, and says Alibaba, Tencent and others use it.

Lily is offered under a choice of licences (an SPDX expression listing MIT, Apache-2.0, GPL-2.0-only, GPL-3.0-only and BSD-3-Clause, recorded in LICENSE.md). It was first committed in August 2025 and has one maintainer. Ant Design has an organisation, a decade-long history and a large user base behind it; Lily has none of those, and the sensible reading is that Ant Design is the lower-risk choice on longevity and support, and Lily the lower-risk choice on lock-in to a look or a framework.

Sources

All comparisons