@chakra-ui/react
Version:
Responsive and accessible React UI components built with React and Emotion
184 lines (180 loc) • 3.68 kB
JavaScript
"use strict";
'use strict';
var config = require('../../styled-system/config.cjs');
const buttonRecipe = config.defineRecipe({
className: "chakra-button",
base: {
display: "inline-flex",
appearance: "none",
alignItems: "center",
justifyContent: "center",
userSelect: "none",
position: "relative",
borderRadius: "l2",
whiteSpace: "nowrap",
verticalAlign: "middle",
borderWidth: "1px",
borderColor: "transparent",
cursor: "button",
flexShrink: "0",
outline: "0",
lineHeight: "1.2",
isolation: "isolate",
fontWeight: "medium",
transitionProperty: "common",
transitionDuration: "moderate",
focusVisibleRing: "outside",
_disabled: {
layerStyle: "disabled"
},
_icon: {
flexShrink: "0"
}
},
variants: {
size: {
"2xs": {
h: "6",
minW: "6",
textStyle: "xs",
px: "2",
gap: "1",
_icon: {
width: "3.5",
height: "3.5"
}
},
xs: {
h: "8",
minW: "8",
textStyle: "xs",
px: "2.5",
gap: "1",
_icon: {
width: "4",
height: "4"
}
},
sm: {
h: "9",
minW: "9",
px: "3.5",
textStyle: "sm",
gap: "2",
_icon: {
width: "4",
height: "4"
}
},
md: {
h: "10",
minW: "10",
textStyle: "sm",
px: "4",
gap: "2",
_icon: {
width: "5",
height: "5"
}
},
lg: {
h: "11",
minW: "11",
textStyle: "md",
px: "5",
gap: "3",
_icon: {
width: "5",
height: "5"
}
},
xl: {
h: "12",
minW: "12",
textStyle: "md",
px: "5",
gap: "2.5",
_icon: {
width: "5",
height: "5"
}
},
"2xl": {
h: "16",
minW: "16",
textStyle: "lg",
px: "7",
gap: "3",
_icon: {
width: "6",
height: "6"
}
}
},
variant: {
solid: {
bg: "colorPalette.solid",
color: "colorPalette.contrast",
borderColor: "transparent",
_hover: {
bg: "colorPalette.solid/90"
},
_expanded: {
bg: "colorPalette.solid/90"
}
},
subtle: {
bg: "colorPalette.subtle",
color: "colorPalette.fg",
borderColor: "transparent",
_hover: {
bg: "colorPalette.muted"
},
_expanded: {
bg: "colorPalette.muted"
}
},
surface: {
bg: "colorPalette.subtle",
color: "colorPalette.fg",
shadow: "0 0 0px 1px var(--shadow-color)",
shadowColor: "colorPalette.muted",
_hover: {
bg: "colorPalette.muted"
},
_expanded: {
bg: "colorPalette.muted"
}
},
outline: {
borderWidth: "1px",
borderColor: "colorPalette.muted",
color: "colorPalette.fg",
_hover: {
bg: "colorPalette.subtle"
},
_expanded: {
bg: "colorPalette.subtle"
}
},
ghost: {
bg: "transparent",
color: "colorPalette.fg",
_hover: {
bg: "colorPalette.subtle"
},
_expanded: {
bg: "colorPalette.subtle"
}
},
plain: {
color: "colorPalette.fg"
}
}
},
defaultVariants: {
size: "md",
variant: "solid"
}
});
exports.buttonRecipe = buttonRecipe;