What problem does it solve? Writing client-side UI in Jac requires translating React habits into Jac syntax, and mistakes like in-place state mutation, stale closures, or misplaced hooks cause silent runtime bugs with no compile errors. This Skill provides the exact rules, patterns, and pitfalls for authoring correct client components in .jac files. ## Core Features & Use Cases - Component authoring rules: Defines component shape (def:pub returning JsxElement), reactive has state, mount effects via can with entry, and typed event handlers (MouseEvent, ChangeEvent, FormEvent). - Props and callbacks: Covers typed props, Callable callback signatures, children defaults, props bundles, and shorthand/spread attribute syntax. - JSX statement slots and pitfalls: Documents expression vs statement slots, skip; semantics, key warnings, and silent-failure bugs like in-place mutation, stale async snapshots, and hook ordering. - Use Case: When building a multi-page Jac web app, use this Skill to write a BookCard component with typed props, a delete callback, and reactive list state that re-renders correctly without React-style useState calls. ## Quick Start Write a Jac client component with a counter button, an input field, and a mount effect following the jac-cl-components conventions.