一键导入
huuma-ui-islands-interactivity
Adding client interactivity to a Huuma UI app with `.client.tsx` islands, on-* events, refs, and hydration boundaries.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Adding client interactivity to a Huuma UI app with `.client.tsx` islands, on-* events, refs, and hydration boundaries.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Adding server-side mutations and form handling to a Huuma UI app with type-safe .remote.ts functions.
Diagnosing and fixing Huuma UI lint violations and runtime errors after they occur.
Editing root.tsx, entry points, dev/prod workflow, environment variables, and the Huuma UI build pipeline.
Building or navigating a Huuma UI app — file conventions, server/client boundary rules, dev workflow, and where to look for authoritative answers.
Adding translations and multilingual routing to a Huuma UI app with setupI18n, useI18n middleware, and the T component.
Adding Huuma UI pages, layouts, routes, dynamic params, data loading with resolvers, metadata, and middleware.
| name | huuma-ui-islands-interactivity |
| description | Adding client interactivity to a Huuma UI app with `.client.tsx` islands, on-* events, refs, and hydration boundaries. |
Use this skill when the agent is adding client-side interactivity, creating a .client.tsx island, or debugging events/refs/hydration in a Huuma UI app.
An island is a .client.tsx component that hydrates in the browser. Everything else is server-rendered. Islands are selectively hydrated by the framework runtime (browser side is @huuma/ui/browser; the JSX/hydration glue lives in @huuma/ui/jsx-runtime).
.client.tsx.async (lint no-async-client-jsx)..server.ts/.server.tsx files.on-*Only kebab-cased on-[a-z]+ event names are recognized:
on-click, on-input, on-submit, on-change, on-keydown, etc.onClick, onSubmit, and camelCase variants silently do nothing.See @huuma/ui/jsx-runtime (inspect with deno doc jsr:@huuma/ui/jsx-runtime).
Inside an island you can use $-hooks, but only in synchronous scope:
$signal, $computed, $effect, $mount, $destroy, $ref, $url, $route, $t, etc.$-hooks inside async functions or after an await.no-async-hook-calling (enforced by jsr:@huuma/ui/lint). The hook scope is provided by @huuma/ui/hooks/scope.$ref and bind$ref() from @huuma/ui/hooks/ref.bind={ref} (or the framework's ref binding syntax).ref.get (it is a getter, not .get() like signals).@huuma/ui/ref. Inspect either with deno doc jsr:@huuma/ui/hooks/ref / deno doc jsr:@huuma/ui/ref.root.tsx must render <Scripts> and <Launch> (from @huuma/ui/server), otherwise islands never run.async.$-hooks are called in sync render scope only.on-* syntax.