Action Sheet is a slide-up pane for presenting the user with a set of alternatives for how to proceed with a given task.
You can also use action sheets to prompt the user to confirm a potentially dangerous action.
The action sheet contains an optional title and one or more buttons, each of which corresponds to an action to take.
There are following components included:
Actions
ActionsButton
ActionsLabel
ActionsGroup
Name | Type | Default | Description |
---|---|---|---|
backdrop | boolean | true | Enables Action Sheet backdrop (dark semi transparent layer behind) |
component | string | 'div' | Component's HTML Element |
opened | boolean | false | Allows to open/close Action Sheet and set its initial state |
onBackdropClick | function(e) | Click handler on backdrop element |
Name | Type | Default | Description |
---|---|---|---|
bold | boolean | undefined | Makes button text bold. Overwrites |
boldIos | boolean | false | Makes button text bold in iOS theme |
boldMaterial | boolean | false | Makes button text bold in Material theme |
colors | object | Object with Tailwind CSS colors classes | |
colors.activeBgIos | string | 'active:bg-neutral-200 dark:active:bg-neutral-700' | |
colors.activeBgMaterial | string | '' | |
colors.bgIos | string | 'bg-white dark:bg-neutral-800' | |
colors.bgMaterial | string | 'bg-md-light-surface-3 dark:bg-md-dark-surface-3' | |
colors.textIos | string | 'text-primary' | |
colors.textMaterial | string | 'text-md-light-on-surface dark:text-md-dark-on-surface' | |
component | string | 'button' | Component's HTML Element |
dividers | boolean | undefined | Renders button outer hairlines (borders). If not specified, will be enabled for iOS theme |
fontSizeIos | string | 'text-xl' | Button text font size in iOS theme |
fontSizeMaterial | string | 'text-base' | Button text font size in Material theme |
href | string | Link's | |
touchRipple | boolean | true | Enables touch ripple effect in Material theme |
Name | Type | Default | Description |
---|---|---|---|
colors | object | Object with Tailwind CSS colors classes | |
colors.bgIos | string | 'bg-white dark:bg-neutral-800' | |
colors.bgMaterial | string | 'bg-md-light-surface-3 dark:bg-md-dark-surface-3' | |
colors.textIos | string | 'text-black text-opacity-55 dark:text-white dark:text-opacity-55' | |
colors.textMaterial | string | 'text-md-light-primary dark:text-md-dark-primary' | |
component | string | 'div' | Component's HTML Element |
dividers | boolean | undefined | Renders button outer hairlines (borders). If not specified, will be enabled in iOS theme |
fontSizeIos | string | 'text-sm' | Button text font size in iOS theme |
fontSizeMaterial | string | 'text-sm' | Button text font size in Material theme |
Name | Type | Default | Description |
---|---|---|---|
component | string | 'div' | Component's HTML Element |
dividers | boolean | true | Renders group outer hairlines (borders). (in Material theme only) |
import React, { useState } from 'react';import {Page,Navbar,NavbarBackLink,Button,Block,BlockTitle,Actions,ActionsGroup,ActionsLabel,ActionsButton,} from 'konsta/react';export default function ActionSheetPage() {const isPreview = document.location.href.includes('examplePreview');const [actionsOneOpened, setActionsOneOpened] = useState(false);const [actionsTwoOpened, setActionsTwoOpened] = useState(false);return (<Page><Navbartitle="Action Sheet"/><Block strong inset className="space-y-4"><p>Action Sheet is a slide-up pane for presenting the user with a set ofalternatives for how to proceed with a given task.</p></Block><BlockTitle>Open Action Sheet</BlockTitle><Block strong inset className="flex space-x-4 rtl:space-x-reverse"><Button onClick={() => setActionsOneOpened(true)}>One group</Button><Button onClick={() => setActionsTwoOpened(true)}>Two groups</Button></Block><Actionsopened={actionsOneOpened}onBackdropClick={() => setActionsOneOpened(false)}><ActionsGroup><ActionsLabel>Do something</ActionsLabel><ActionsButton onClick={() => setActionsOneOpened(false)} bold>Button 1</ActionsButton><ActionsButton onClick={() => setActionsOneOpened(false)}>Button 2</ActionsButton><ActionsButton onClick={() => setActionsOneOpened(false)}>Cancel</ActionsButton></ActionsGroup></Actions><Actionsopened={actionsTwoOpened}onBackdropClick={() => setActionsTwoOpened(false)}><ActionsGroup><ActionsLabel>Do something</ActionsLabel><ActionsButton onClick={() => setActionsTwoOpened(false)} bold>Button 1</ActionsButton><ActionsButton onClick={() => setActionsTwoOpened(false)}>Button 2</ActionsButton></ActionsGroup><ActionsGroup><ActionsButton onClick={() => setActionsTwoOpened(false)}>Cancel</ActionsButton></ActionsGroup></Actions></Page>);}