--- title: LightButton description: Present lightweight actions with standard or subtle emphasis. --- import { StoryEmbed } from '/snippets/ui/StoryEmbed.mdx'; import LightButtonReference from '/snippets/ui/generated/input/light-button.mdx'; Use the shared `LightButton` component for a lightweight action. It composes [Button](/ui/primitives/input/button) with a ghost surface, small size, regular font weight, and no elevation. ## State ownership `LightButton` uses Button's state model and adds no state of its own. Your application supplies `loading`, `disabled`, and `soon`; `emphasis` only changes appearance. See [Button's state ownership example](/ui/primitives/input/button#state-ownership) for managing an asynchronous action. There are no controlled and uncontrolled selection modes. ## Usage ```tsx import { LightButton } from 'twenty-ui/components'; import { IconPlus } from 'twenty-ui/icon'; export const FilterActions = () => ( }> Add filter ); ``` The default `emphasis="standard"` uses secondary neutral text. `emphasis="subtle"` uses tertiary neutral text on ghost, outline, and soft surfaces. Semantic colors and solid surfaces retain their contrast treatment. Override `variant`, `color`, `size`, or `elevated` when needed. [ButtonGroup](/ui/primitives/input/button-group) can set a shared size, surface, and color; subtle emphasis does not replace the group's semantic color. ## Interaction `LightButton` accepts Button's native attributes, refs, event handlers, icon slots, loading and disabled states, and render composition. Its native default is `type="button"`. Set `type="submit"` for submission or use `href` for a link. Supply `render` to choose a custom root, including an application-owned router link. The root must preserve a native button, or an anchor when `href` is set. Button derives the interaction behavior from `href`. ## Props