Button

appearance

size

icon

isDisabled

isLoading

<Button
  text={t('i18nButtonLable')}
  callback={callbackFunction}
  appearance="undefined"
  size="undefined"
  isDisabled={false}
  isLoading={false}
  marginTop={marginTop}
  variants={FramerMotionVariants}
  initial={FramerMotionInitial}
  animate={FramerMotionAnimate}
/>
interface ButtonInterface {
    text: string;
    callback: Function;
    appearance: 'primary' | 'line' | 'secondary';
    size:
      | 'maxWidthLarge'
      | ['fixedWidthLarge', string] 
      | ['fixedWidthMedium', string] 
      | ['fixedWidthSmall', string] 
      | 'large'
      | 'medium'
      | 'small';
    icon?: JSX.Element;
    isDisabled?: boolean;
    isLoading?: boolean;
    marginTop?: string;
    variants?: any;
    initial?: string;
    animate?: string;
  }