Skip to content

Changelog

MeowLynxSea edited this page Jun 18, 2026 · 9 revisions

Changelog

v0.3.0

The first build with the headless core + swappable renderer split.

[dependencies]
yororen-ui = "0.3"        # meta-crate — re-exports core + default renderer + 3 locales

Highlights

  • Workspace splityororen-ui-core (headless), yororen-ui-default-renderer (55 TokenXxxRenderer impls), yororen-ui-brutalism-renderer (feature-gated, 55 BrutalXxxRenderer impls), yororen-ui (meta-crate), three locale crates (en, zh-CN, ar), and an XML DSL crate pair (yororen-ui-xml + yororen-ui-xml-macro).

  • JSON-backed ThemeTheme is a thin wrapper over serde_json::Value. No Rust schema. Renderers read paths like action.primary.bg and tokens.control.button.min_height at render time. Missing paths fall back to renderer defaults.

  • 55 component markers — defined in yororen-ui-core/src/renderer/markers.rs. Each marker is the key into the global RendererRegistry; the default and brutalism renderers each implement all 55 trait slots.

  • Two renderers, same headlessrenderer::install(cx, appearance) picks the modern rounded look; brutalism_renderer::install(cx) picks sharp corners, hard shadows, monospace. Same headless code; different pixels.

  • 8 demoscounter, gallery_demo, inputs_demo, layers_demo, theme_showcase, variant_showcase, plus the XML-DSL pair gallery_xml and showcase_xml. See Demos.

  • Three locales ship in the meta-crate; ar flips layout to RTL via cx.i18n().text_direction(). Application strings layer on top via I18n::merge_translations.

Headless API

use yororen_ui::headless::button::button;

button("save", cx)
    .caption("Save")
    .on_click(|_, _, _| { /* ... */ })
    .render(cx)

The .apply(div) pathway still does a11y only (focus handle, click handler, id); the visual is the renderer's job.

Not in v0.3.0

  • Screen-reader / ARIA bridge. gpui-ce 0.3.x lacks public AccessKit integration. Focus + keyboard nav + visual indicators work; semantic announcement does not.
  • Designer surface. Theme customisation is editing a JSON file and cargo run.
  • Cross-platform support beyond what gpui already supports.

Clone this wiki locally