Skip to content
Corex

DLS gap analysis

The Corex Design Language System is built native-first: a custom block exists only where Corex needs reusable server-rendered data, accessibility behavior, or a repeated agency pattern that WordPress core cannot express. Everything else is a documented core block, a Corex block style, a design token, or the runtime. This page is the evidence — every candidate UI element with its single decision (spec 054, US1).

  • exists-good — already a corex/* block, good as is.
  • document-core — WordPress core already provides it; document the usage (don’t rebuild).
  • block-style — appearance only on a core/Corex block via register_block_style(); no new block.
  • new-block — a justified custom corex/* block.
  • runtime — provided by the window.Corex runtime (spec 043), not a placed block.
  • deferred — out of the current scope, with a reason.

radius and grid/layout tokens already exist in theme.json; the genuinely missing groups — motion, focus, and z-index — were added in 054. All groups are documented under Foundations.

CandidateDecisionDelivered as
Alert, Badge, Breadcrumbs, Copyrightexists-goodcorex/* blocks
Accordion, Tabsexists-goodcorex/accordion (native <details>), corex/tabs (CSS-only)
Card, Section, Empty stateblock-styleis-style-corex-card / -section / -empty on core/group
Skeleton / loadingblock-styletoken-only .corex-skeleton on the public site; in the admin CorexLoadable and CorexSkeleton (every screen but the Submissions inbox and the export dialog), with Spinner from @wordpress/components left on Submissions
Striped tableblock-styleis-style-corex-striped on core/table
Button (secondary / ghost)block-stylestyles on core/button (primary is theme.json default)
Button, Link, Search, Dropdown/menu, Pagination, Table, List, Imagedocument-corecore blocks (core/button, core/search, core/navigation, core/query-pagination, core/table, …)
Form controls, Uploadexists-goodcorex-forms FieldRenderer (documented, referenced)
Toast / notificationruntimewindow.Corex.notices (spec 043)
Modal / dialognew-blockcorex/modal — native <dialog>, focus-trap + ESC, degrades without JS
Drawer, Popover, Tooltip (JS), Stepper, Validation summarydeferrednamed follow-ups (see below)

Net new build: one block (corex/modal) + a handful of block styles + a skeleton utility. The rest is documentation of what WordPress already gives you — by design.

  • Patterns (compositions of real blocks): existing — hero, features, CTA, testimonial, contact; added — section-header, content-split, stats, FAQ, posts/news.
  • Templates (FSE page types): existing — front-page (homepage), page (inner), single (detail), archive (listing), search, 404; added — landing, contact, form.
  • Drawer — builds on the modal pattern; lower priority.
  • Popover — core’s Interactivity popover is complex and not agency-critical yet.
  • Custom dropdown/select — the native <select> (forms) covers it; a styled custom control is a forms concern.
  • Stepper — niche; revisit with a multi-step form/checkout need.
  • Validation summary — corex-forms already shows per-field errors; a summary region is a corex-forms polish.