The PlainButton is a foundational component with minimal styling used to build other button components in Pluma.
display, alignItems, px, py, cursor) or custom styles.<button> element. Use for actions that don't navigate away from the current page. Pair with onClick.href) — renders an anchor element. Use for navigation. Set isExternal so external URLs receive safe attributes automatically.isLoading) — communicates that a background task is in progress and blocks interaction.isDisabled) — blocks interaction. Styling stays close to the base state because PlainButton is unstyled.autoLoading, default true) — enters the loading state automatically while a promise returned from onClick is pending. Set false to drive loading from isLoading alone.plainButtonIsLoading class (pluma-c-plain-button-is-loading) and blocks clicks; style that class — exported from plain-button.style-exports.ts as classNames.plainButtonIsLoading — to draw a loading indicator.children accepts a render function receiving { isLoading, isDisabled }. Ember: the default block yields { isLoading, isDisabled }.aria-disabled, not the native disabled attribute. When as is a custom component, isDisabled is also forwarded to it so it can suppress its own interactions.href is ignored while isDisabled is set — the component renders a <button> instead of a link. Otherwise href renders through PlainLink.<button type="button">. Override with as; the component is polymorphic and retains PlainButton behavior.withSafeExternalAttributes={false} suppresses the automatic target="_blank" rel="noopener noreferrer" for protocols like mailto: and tel:.replace is passed to the provider's link component to trigger replaceState instead of pushState.<PlumaPlainButton @onClick={{this.handleClick}} @isLoading={{this.isLoading}}> with @-prefixed args.