UNPKG

@spark-web/button

Version:

--- title: Button storybookPath: forms-buttons-button--default isExperimentalPackage: true ---

44 lines (43 loc) 1.68 kB
import type { BoxProps } from '@spark-web/box'; import type { ForegroundTone } from '@spark-web/text'; import type { BrighteTheme } from '@spark-web/theme'; import type { ButtonProminence, ButtonTone } from './types'; declare type BaseButtonStyles = { background: BoxProps['background']; border?: BoxProps['border']; borderWidth?: BoxProps['borderWidth']; textTone?: ForegroundTone; }; declare type HoverButtonStyles = { backgroundHover: keyof BrighteTheme['backgroundInteractions']; borderHover?: keyof BrighteTheme['border']['color']; textToneHover?: keyof BrighteTheme['color']['foreground']; }; declare type ActiveButtonStyles = { backgroundActive: keyof BrighteTheme['backgroundInteractions']; borderActive?: keyof BrighteTheme['border']['color']; textToneActive?: keyof BrighteTheme['color']['foreground']; }; declare type DisabledButtonStyles = { backgroundDisabled: keyof BrighteTheme['color']['background']; borderDisabled?: keyof BrighteTheme['border']['color']; textToneDisabled: keyof BrighteTheme['color']['foreground']; }; declare type ButtonStyles = BaseButtonStyles & HoverButtonStyles & ActiveButtonStyles & DisabledButtonStyles; declare type Variants = Record<ButtonProminence, Record<ButtonTone, ButtonStyles | undefined>>; export declare const variants: Variants; export declare const mapTokens: { readonly fontSize: { readonly medium: "small"; readonly large: "standard"; }; readonly size: { readonly medium: "medium"; readonly large: "large"; }; readonly spacing: { readonly medium: "medium"; readonly large: "xlarge"; }; }; export {};