Remix remix-ui

Build the UI of a Remix app. Use when creating pages, layouts, client entries, interactions, stateful UI, navigation, hydration, styling, animations, reusable mixins, or UI tests.

install
source · Clone the upstream repo
git clone https://github.com/remix-run/remix
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/remix-run/remix "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/remix-ui" ~/.claude/skills/remix-run-remix-remix-ui && rm -rf "$T"
manifest: skills/remix-ui/SKILL.md
source content

Build UI

Use this skill when building the UI of a Remix app.

This skill uses Remix Component as the UI model behind the app's pages, layouts, interactions, and client behavior.

When to Use

  • Creating or updating pages, layouts, and presentational components
  • Adding interactivity, state, event handling, or reactive DOM work
  • Styling with
    css(...)
    ,
    style
    , refs, keyboard helpers, or press helpers
  • Adding or refactoring
    clientEntry(...)
    ,
    run(...)
    , frames, or UI navigation
  • Implementing enter/exit/layout animations
  • Authoring reusable mixins with
    createMixin(...)
  • Writing or updating UI-focused component tests

Procedure

  1. Follow the two-phase component shape:
    • setup runs once
    • returned render function runs on every update
  2. Keep state in setup scope as plain JavaScript variables and call
    handle.update()
    explicitly.
  3. Prefer host-element mixins over legacy host props:
    • mix={[on(...)]}
    • mix={[css(...)]}
    • mix={[ref(...)]}
    • mix={[keysEvents()]}
    • mix={[pressEvents()]}
    • mix={[link(href, options)]}
  4. Use
    addEventListeners(target, handle.signal, listeners)
    for global listeners.
  5. Use
    queueTask(...)
    for post-render DOM work, reactive effects, or hydration-sensitive setup.
  6. Keep
    <head>
    explicit in document or layout code.
  7. Test with real interactions and
    root.flush()
    when unit tests need synchronous assertions.

Load These References As Needed