NOTE: Introduced feature in
v0.2.0.
Button is used to usually trigger an action in the Web Application, such as submitting forms or opening an Overlay.
<script>
import {Button} from "@kahi-ui/framework";
</script>
<Button palette="accent">Click Me!</Button>Imports
<script>
import {Button} from "@kahi-ui/framework";
</script>Palette
You can change the color palette of the Button via the palette property.
<script>
import {Button, Stack} from "@kahi-ui/framework";
</script>
<Stack.Container
orientation="horizontal"
spacing="medium"
variation="wrap"
>
<Button>This is a DEFAULT Button!</Button>
<Button palette="accent">
This is a ACCENT Button!
</Button>
<Button palette="neutral">
This is a NEUTRAL Button!
</Button>
<Button palette="light">
This is a LIGHT Button!
</Button>
<Button palette="dark">
This is a DARK Button!
</Button>
<Button palette="alert">
This is a ALERT Button!
</Button>
<Button palette="affirmative">
This is a AFFIRMATIVE Button!
</Button>
<Button palette="informative">
This is a INFORMATIVE Button!
</Button>
<Button palette="negative">
This is a NEGATIVE Button!
</Button>
</Stack.Container>Clear
Button components have a special variation that renders as text with no background, that lightly fills in when clicked.
<script>
import {Button, Stack} from "@kahi-ui/framework";
</script>
<Stack.Container
orientation="horizontal"
spacing="medium"
variation="wrap"
>
<Button variation="clear">
This is a DEFAULT Button!
</Button>
<Button variation="clear" palette="accent">
This is a ACCENT Button!
</Button>
<Button variation="clear" palette="neutral">
This is a NEUTRAL Button!
</Button>
<Button variation="clear" palette="light">
This is a LIGHT Button!
</Button>
<Button variation="clear" palette="dark">
This is a DARK Button!
</Button>
<Button variation="clear" palette="alert">
This is a ALERT Button!
</Button>
<Button variation="clear" palette="affirmative">
This is a AFFIRMATIVE Button!
</Button>
<Button variation="clear" palette="informative">
This is a INFORMATIVE Button!
</Button>
<Button variation="clear" palette="negative">
This is a NEGATIVE Button!
</Button>
</Stack.Container>Outline
Button components have a special variation that renders them as text with an outline, the fills in when clicked.
<script>
import {Button, Stack} from "@kahi-ui/framework";
</script>
<Stack.Container
orientation="horizontal"
spacing="medium"
variation="wrap"
>
<Button variation="outline">
This is a DEFAULT Button!
</Button>
<Button variation="outline" palette="accent">
This is a ACCENT Button!
</Button>
<Button variation="outline" palette="neutral">
This is a NEUTRAL Button!
</Button>
<Button variation="outline" palette="light">
This is a LIGHT Button!
</Button>
<Button variation="outline" palette="dark">
This is a DARK Button!
</Button>
<Button variation="outline" palette="alert">
This is a ALERT Button!
</Button>
<Button variation="outline" palette="affirmative">
This is a AFFIRMATIVE Button!
</Button>
<Button variation="outline" palette="informative">
This is a INFORMATIVE Button!
</Button>
<Button variation="outline" palette="negative">
This is a NEGATIVE Button!
</Button>
</Stack.Container>Subtle
NOTE: Introduced feature in
v0.5.1.
You can alter the Button Component to use less intense / remove "attention grabbing" animations via the variation property.
<script>
import {Button, Stack} from "@kahi-ui/framework";
</script>
<Stack.Container
orientation="horizontal"
spacing="medium"
variation="wrap"
>
<Button palette="inverse" variation="subtle">
This is a SUBTLE BLOCK Button!
</Button>
<Button
palette="inverse"
variation={["subtle", "clear"]}
>
This is a CLEAR OUTLINE Button!
</Button>
<Button
palette="inverse"
variation={["subtle", "outline"]}
>
This is a SUBTLE OUTLINE Button!
</Button>
</Stack.Container>States
You can control the state of the Button via the active and disabled properties.
<script>
import {
Button,
Stack,
Text,
} from "@kahi-ui/framework";
</script>
<Text is="strong">DEFAULT</Text>
<Stack.Container
orientation="horizontal"
spacing="medium"
variation="wrap"
>
<Button>DEFAULT</Button>
<Button disabled>DISABLED INACTIVE</Button>
<Button active>ACTIVE</Button>
<Button active disabled>DISABLED ACTIVE</Button>
</Stack.Container>
<Text is="strong">OUTLINE</Text>
<Stack.Container
orientation="horizontal"
spacing="medium"
variation="wrap"
>
<Button variation="outline">DEFAULT</Button>
<Button variation="outline" disabled>
DISABLED INACTIVE
</Button>
<Button variation="outline" active>ACTIVE</Button>
<Button variation="outline" active disabled>
DISABLED ACTIVE
</Button>
</Stack.Container>
<Text is="strong">CLEAR</Text>
<Stack.Container
orientation="horizontal"
spacing="medium"
variation="wrap"
>
<Button variation="clear">DEFAULT</Button>
<Button variation="clear" disabled>
DISABLED INACTIVE
</Button>
<Button variation="clear" active>ACTIVE</Button>
<Button variation="clear" active disabled>
DISABLED ACTIVE
</Button>
</Stack.Container>Sizing
WARNING: This feature was renamed from
sizetosizinginv0.6.0.
NOTE: By passing an array, you can set responsive values. e.g.
sizing={["tiny", "tablet:medium", "mobile:medium"]}
You can change the size of the Button via the sizing property.
<script>
import {Button, Stack} from "@kahi-ui/framework";
</script>
<Stack.Container
orientation="horizontal"
alignment_y="top"
spacing="medium"
variation="wrap"
>
<Button>This is a DEFAULT Button!</Button>
<Button sizing="nano">
This is a NANO Button!
</Button>
<Button sizing="tiny">
This is a TINY Button!
</Button>
<Button sizing="small">
This is a SMALL Button!
</Button>
<Button sizing="medium">
This is a MEDIUM Button!
</Button>
<Button sizing="large">
This is a LARGE Button!
</Button>
<Button sizing="huge">
This is a HUGE Button!
</Button>
<Button sizing="massive">
This is a MASSIVE Button!
</Button>
</Stack.Container>Radius
NOTE: Introduced feature in
v0.6.0.
NOTE: By passing an array, you can set responsive values. e.g.
radius={["tiny", "tablet:medium", "mobile:medium"]}
You can change the border radius of the Button via the radius property.
<script>
import {Button, Stack} from "@kahi-ui/framework";
</script>
<Stack.Container
orientation="horizontal"
alignment_y="top"
spacing="medium"
variation="wrap"
>
<Button>This is a DEFAULT Button!</Button>
<Button radius="none">
This is a NONE Button!
</Button>
<Button radius="nano">
This is a NANO Button!
</Button>
<Button radius="tiny">
This is a TINY Button!
</Button>
<Button radius="small">
This is a SMALL Button!
</Button>
<Button radius="medium">
This is a MEDIUM Button!
</Button>
<Button radius="large">
This is a LARGE Button!
</Button>
<Button radius="huge">
This is a HUGE Button!
</Button>
<Button radius="massive">
This is a MASSIVE Button!
</Button>
</Stack.Container>Shapes
NOTE: Introduced feature in
v0.6.0.
NOTE: By passing an array, you can set responsive values. e.g.
shape={["circle", "tablet:pill", "mobile:pill"]}
You can change the shape of the Button via the shape property.
<script>
import {Button, Stack} from "@kahi-ui/framework";
</script>
<Stack.Container
orientation="horizontal"
alignment_y="top"
spacing="medium"
variation="wrap"
>
<Button>This is a DEFAULT Button!</Button>
<Button shape="circle">
This is a CIRCLE Button!
</Button>
<Button shape="pill">
This is a PILL Button!
</Button>
</Stack.Container>Elements
WARNING: This feature was updated to require explicit
isproperty inv0.6.0.
You can alter the HTML element tag rendered to DOM via the is property to render things like links and form buttons.
<script>
import {
Button,
Check,
Stack,
} from "@kahi-ui/framework";
</script>
<Check id="button-types-label" />
<Stack.Container
alignment_y="top"
orientation="horizontal"
spacing="medium"
variation="wrap"
>
<Button>This is a DEFAULT Button!</Button>
<Button
is="a"
href="https://google.com"
target="_blank"
rel="noopener noreferrer"
>
This is an ANCHOR Button!
</Button>
<Button is="label" for="button-types-label">
This is a LABEL Button!
</Button>
<Button
is="input"
value="This is an INPUT Button!"
/>
<Button
is="input"
type="submit"
value="This is a SUBMIT Button!"
/>
<Button
is="input"
type="reset"
value="This is a RESET Button!"
/>
</Stack.Container>