shadcn Standard
Delta over shadcn. Read that skill this turn (CLI, FieldGroup, cn(), Base vs Radix). This file = extra rules only. Conflict → this skill wins. Do not edit gitignored skills/shadcn/ — pnpx skills update owns it.
nativeButton (Base UI)
Set nativeButton={false} only when render / the host is not a <button> (<a>, Link, <span>, InputGroupAddon, …).
Do not set it when the host is still a button (render={<Button />}, PopoverTrigger + Button). That nests buttons or trips “expected a non-button”.
Need a native <button> without composing Button? render={<button className={buttonVariants()} type="button" />}.
Incorrect — flag on a button host:
<PopoverTrigger render={<Button />} nativeButton={false}>
Incorrect — missing on a link host:
<Button render={<a href="/docs" />}>Docs</Button>
Correct:
<Button render={<a href="/docs" />} nativeButton={false}>
Docs
</Button>
<PopoverTrigger render={<Button />}>Open</PopoverTrigger>
Radix uses asChild, not nativeButton.