@chakra-ui/react
Version:
Responsive and accessible React UI components built with React and Emotion
142 lines (138 loc) • 3.08 kB
JavaScript
"use strict";
'use strict';
var config = require('../../styled-system/config.cjs');
var avatar = require('@ark-ui/react/avatar');
const avatarSlotRecipe = config.defineSlotRecipe({
slots: avatar.avatarAnatomy.keys(),
className: "chakra-avatar",
base: {
root: {
display: "inline-flex",
alignItems: "center",
justifyContent: "center",
fontWeight: "medium",
position: "relative",
verticalAlign: "top",
flexShrink: "0",
userSelect: "none",
width: "var(--avatar-size)",
height: "var(--avatar-size)",
fontSize: "var(--avatar-font-size)",
borderRadius: "var(--avatar-radius)",
"&[data-group-item]": {
borderWidth: "2px",
borderColor: "bg"
}
},
image: {
width: "100%",
height: "100%",
objectFit: "cover",
borderRadius: "var(--avatar-radius)"
},
fallback: {
lineHeight: "1",
textTransform: "uppercase",
fontWeight: "medium",
fontSize: "var(--avatar-font-size)",
borderRadius: "var(--avatar-radius)"
}
},
variants: {
size: {
full: {
root: {
"--avatar-size": "100%",
"--avatar-font-size": "100%"
}
},
"2xs": {
root: {
"--avatar-font-size": "fontSizes.2xs",
"--avatar-size": "sizes.6"
}
},
xs: {
root: {
"--avatar-font-size": "fontSizes.xs",
"--avatar-size": "sizes.8"
}
},
sm: {
root: {
"--avatar-font-size": "fontSizes.sm",
"--avatar-size": "sizes.9"
}
},
md: {
root: {
"--avatar-font-size": "fontSizes.md",
"--avatar-size": "sizes.10"
}
},
lg: {
root: {
"--avatar-font-size": "fontSizes.md",
"--avatar-size": "sizes.11"
}
},
xl: {
root: {
"--avatar-font-size": "fontSizes.lg",
"--avatar-size": "sizes.12"
}
},
"2xl": {
root: {
"--avatar-font-size": "fontSizes.xl",
"--avatar-size": "sizes.16"
}
}
},
variant: {
solid: {
root: {
bg: "colorPalette.solid",
color: "colorPalette.contrast"
}
},
subtle: {
root: {
bg: "colorPalette.muted",
color: "colorPalette.fg"
}
},
outline: {
root: {
color: "colorPalette.fg",
borderWidth: "1px",
borderColor: "colorPalette.muted"
}
}
},
shape: {
square: {},
rounded: {
root: { "--avatar-radius": "radii.l3" }
},
full: {
root: { "--avatar-radius": "radii.full" }
}
},
borderless: {
true: {
root: {
"&[data-group-item]": {
borderWidth: "0px"
}
}
}
}
},
defaultVariants: {
size: "md",
shape: "full",
variant: "subtle"
}
});
exports.avatarSlotRecipe = avatarSlotRecipe;