UNPKG

@workday/canvas-kit-react

Version:

The parent module that contains all Workday Canvas Kit React components

47 lines (46 loc) 6.42 kB
import { jsx as _jsx } from "react/jsx-runtime"; import { createComponent } from '@workday/canvas-kit-react/common'; import { createStencil, cssVar, handleCsProp, px2rem } from '@workday/canvas-kit-styling'; import { base, system } from '@workday/canvas-tokens-web'; import { AvatarImage } from './AvatarImage'; import { AvatarName } from './AvatarName'; export const baseAvatarStencil = createStencil({ vars: { backgroundColor: '', color: '', size: '', }, base: { name: "a3kxo", styles: "box-sizing:border-box;border-radius:var(--cnvs-sys-shape-full, var(--cnvs-sys-shape-round, 65rem));width:var(--size-base-avatar-bfdfb4, var(--cnvs-sys-size-lg, 3rem));height:var(--size-base-avatar-bfdfb4, var(--cnvs-sys-size-lg, 3rem));min-width:var(--size-base-avatar-bfdfb4, var(--cnvs-sys-size-lg, 3rem));min-height:var(--size-base-avatar-bfdfb4, var(--cnvs-sys-size-lg, 3rem));background-color:var(--backgroundColor-base-avatar-bfdfb4, var(--cnvs-base-palette-blue-600, oklch(0.5198 0.1782 256.11 / 1)));color:var(--color-base-avatar-bfdfb4, var(--cnvs-sys-color-fg-inverse));display:flex;align-items:center;justify-content:center;overflow:hidden;border:none;outline:0.0625rem solid transparent;button &, a &, &:is(button, a){outline:none;}&:is(button, a):focus-visible, &:is(button, a).focus{outline:0.125rem solid transparent;outline-offset:0.125rem;}font-family:var(--cnvs-sys-font-family-default);font-weight:var(--cnvs-sys-font-weight-normal);line-height:var(--cnvs-sys-line-height-body-md, var(--cnvs-sys-line-height-body-medium, 1.75rem));font-size:var(--cnvs-sys-font-size-body-md, var(--cnvs-sys-font-size-body-medium, 1.125rem));" }, modifiers: { variant: { blue: { name: "2rcgr4", styles: "background-color:var(--backgroundColor-base-avatar-bfdfb4, var(--cnvs-base-palette-blue-600, oklch(0.5198 0.1782 256.11 / 1)));color:var(--color-base-avatar-bfdfb4, var(--cnvs-sys-color-fg-inverse));" }, amber: { name: "3nm7we", styles: "background-color:var(--backgroundColor-base-avatar-bfdfb4, var(--cnvs-base-palette-amber-300, oklch(0.8432 0.1713 85.24 / 1)));color:var(--color-base-avatar-bfdfb4, var(--cnvs-base-palette-amber-800, oklch(0.4143 0.1245 42.21 / 1)));" }, teal: { name: "46rbix", styles: "background-color:var(--backgroundColor-base-avatar-bfdfb4, var(--cnvs-base-palette-teal-300, oklch(0.7836 0.0874 204.93 / 1)));color:var(--color-base-avatar-bfdfb4, var(--cnvs-base-palette-teal-800, oklch(0.3982 0.0687 209.08 / 1)));" }, purple: { name: "1cu09s", styles: "background-color:var(--backgroundColor-base-avatar-bfdfb4, var(--cnvs-base-palette-purple-600, oklch(0.5177 0.162 313.92 / 1)));color:var(--color-base-avatar-bfdfb4, var(--cnvs-sys-color-fg-inverse));" }, magenta: { name: "48de5y", styles: "background-color:var(--backgroundColor-base-avatar-bfdfb4, var(--cnvs-base-palette-magenta-600, oklch(0.534 0.183 344.19 / 1)));color:var(--color-base-avatar-bfdfb4, var(--cnvs-sys-color-fg-inverse));" }, green: { name: "34i2b0", styles: "background-color:var(--backgroundColor-base-avatar-bfdfb4, var(--cnvs-base-palette-green-600, oklch(0.5069 0.1569 145.56 / 1)));color:var(--color-base-avatar-bfdfb4, var(--cnvs-sys-color-fg-inverse));" } }, size: { extraExtraSmall: { name: "cr5l1", styles: "--size-base-avatar-bfdfb4:var(--cnvs-sys-size-xs, var(--cnvs-sys-space-x6, 1.5rem));line-height:var(--cnvs-sys-line-height-subtext-sm, var(--cnvs-sys-line-height-subtext-small, 1rem));font-size:var(--cnvs-sys-font-size-subtext-sm, var(--cnvs-sys-font-size-subtext-small, 0.625rem));letter-spacing:var(--cnvs-sys-letter-spacing-subtext-sm, var(--cnvs-sys-type-letter-spacing-subtext-small));" }, extraSmall: { name: "2p3lnj", styles: "--size-base-avatar-bfdfb4:var(--cnvs-sys-size-sm, var(--cnvs-sys-space-x8, 2rem));line-height:var(--cnvs-sys-line-height-subtext-md, var(--cnvs-sys-line-height-subtext-medium, 1rem));font-size:var(--cnvs-sys-font-size-subtext-md, var(--cnvs-sys-font-size-subtext-medium, 0.75rem));letter-spacing:var(--cnvs-sys-letter-spacing-subtext-md, var(--cnvs-sys-type-letter-spacing-subtext-medium));" }, small: { name: "17e5ps", styles: "--size-base-avatar-bfdfb4:var(--cnvs-sys-size-md, var(--cnvs-sys-space-x10, 2.5rem));line-height:var(--cnvs-sys-line-height-body-sm, var(--cnvs-sys-line-height-body-small, 1.5rem));font-size:var(--cnvs-sys-font-size-body-sm, var(--cnvs-sys-font-size-body-small, 1rem));letter-spacing:var(--cnvs-sys-letter-spacing-body-sm, var(--cnvs-sys-type-letter-spacing-body-small));" }, medium: { name: "lx9p3", styles: "--size-base-avatar-bfdfb4:var(--cnvs-base-size-600, 3rem);line-height:var(--cnvs-sys-line-height-body-md, var(--cnvs-sys-line-height-body-medium, 1.75rem));font-size:var(--cnvs-sys-font-size-body-md, var(--cnvs-sys-font-size-body-medium, 1.125rem));" }, large: { name: "2qsqfk", styles: "--size-base-avatar-bfdfb4:var(--cnvs-base-size-900, 4.5rem);font-weight:var(--cnvs-sys-font-weight-bold);line-height:var(--cnvs-sys-line-height-heading-md, var(--cnvs-sys-line-height-heading-medium, 2.25rem));font-size:var(--cnvs-sys-font-size-heading-md, var(--cnvs-sys-font-size-heading-medium, 1.75rem));" }, extraLarge: { name: "3d68s0", styles: "--size-base-avatar-bfdfb4:var(--cnvs-base-size-1200, 6rem);font-weight:var(--cnvs-sys-font-weight-bold);line-height:var(--cnvs-sys-line-height-title-sm, var(--cnvs-sys-line-height-title-small, 3rem));font-size:var(--cnvs-sys-font-size-title-sm, var(--cnvs-sys-font-size-title-small, 2.5rem));" }, extraExtraLarge: { name: "3j162g", styles: "--size-base-avatar-bfdfb4:7.5rem;font-weight:var(--cnvs-sys-font-weight-bold);line-height:var(--cnvs-sys-line-height-title-md, var(--cnvs-sys-line-height-title-medium, 3.5rem));font-size:var(--cnvs-sys-font-size-title-md, var(--cnvs-sys-font-size-title-medium, 3rem));" } } } }, "base-avatar-bfdfb4"); /** * JSDoc for Avatar. Will be part of the Component API docs */ export const BaseAvatar = createComponent('div')({ displayName: 'BaseAvatar', subComponents: { Image: AvatarImage, Name: AvatarName, }, Component: ({ variant, size, ...elemProps }, ref, Element) => { return _jsx(Element, { ref: ref, ...handleCsProp(elemProps, baseAvatarStencil({ variant, size })) }); }, });