@navinc/base-react-components
Version:
Nav's Pattern Library
55 lines (51 loc) • 1.57 kB
JavaScript
import { styled, css } from 'styled-components';
const neutralStyles = css `
background: ${({ theme }) => theme.navNeutral100};
`;
const positiveStyles = css `
background: ${({ theme }) => theme.navStatusPositive200};
`;
const informationStyles = css `
background: ${({ theme }) => theme.navStatusPositive200};
`;
const improvementStyles = css `
background: ${({ theme }) => theme.navSecondary300};
`;
const negativeStyles = css `
background: ${({ theme }) => theme.navStatusNegative200};
`;
const variantStylesMap = {
neutral: neutralStyles,
positive: positiveStyles,
information: informationStyles,
improvement: improvementStyles,
negative: negativeStyles,
};
// eslint-disable-next-line @typescript-eslint/no-unused-expressions -- ensure consistent map typing
variantStylesMap;
const variantStyles = ({ variant }) => {
if (!variant) {
return '';
}
return variantStylesMap[variant];
};
/**
The `<Pill />` can be used to display information or status.
#### Usage:
```
<Pill variant='positive'>Active</Pill>
```
#### Props:
`variant` is a required props. All html native attributes and event handlers are optional, such as `id`, `onClick`, etc.
*/
export const Pill = styled.span.withConfig({ displayName: "brc-sc-Pill", componentId: "brc-sc-1vfaqnm" }) `
font-family: ${({ theme }) => theme.fontPrimary};
color: ${({ theme }) => theme.scuttleGray600};
font-size: 0.75em;
font-weight: bold;
padding: 0.7em 1em;
text-align: center;
border-radius: 50vh;
${variantStyles}
`;
//# sourceMappingURL=pill.js.map