UNPKG

@primer/react

Version:

An implementation of GitHub's Primer Design System using React

2,057 lines (1,678 loc) • 149 kB
/* stylelint-disable selector-max-specificity */ /* stylelint-disable selector-type-no-unknown */ /* -------------------------------- * Global Styles *--------------------------------- */ * { box-sizing: border-box; } body { margin: 0; } table { /* stylelint-disable-next-line primer/borders */ border-collapse: collapse; } [data-color-mode='light'] input { color-scheme: light; } [data-color-mode='dark'] input { color-scheme: dark; } @media (prefers-color-scheme: light) { [data-color-mode='auto'][data-light-theme*='light'] { color-scheme: light; } } @media (prefers-color-scheme: dark) { [data-color-mode='auto'][data-dark-theme*='dark'] { color-scheme: dark; } } [role='button']:focus:not(:focus-visible):not(.prc_focus-visible_vqyE9), [role='tabpanel'][tabindex='0']:focus:not(:focus-visible):not(.prc_focus-visible_vqyE9), button:focus:not(:focus-visible):not(.prc_focus-visible_vqyE9), summary:focus:not(:focus-visible):not(.prc_focus-visible_vqyE9), a:focus:not(:focus-visible):not(.prc_focus-visible_vqyE9) { outline: none; box-shadow: none; } [tabindex='0']:focus:not(:focus-visible):not(.prc_focus-visible_vqyE9), details-dialog:focus:not(:focus-visible):not(.prc_focus-visible_vqyE9) { outline: none; } /* -------------------------------------------------------------------------- */ .prc_BaseStyles_dl-St { font-family: var(--BaseStyles-fontFamily, var(--fontStack-system)); /* stylelint-disable-next-line primer/typography */ line-height: var(--BaseStyles-lineHeight, 1.5); /* stylelint-disable-next-line primer/colors */ color: var(--BaseStyles-fgColor, var(--fgColor-default)); /* Global styles for light mode */ &:has([data-color-mode='light']) { input & { color-scheme: light; } } /* Global styles for dark mode */ &:has([data-color-mode='dark']) { input & { color-scheme: dark; } } } .prc_VisuallyHidden_UNWQp { &:not(:focus):not(:active):not(:focus-within) { position: absolute; width: 1px; height: 1px; overflow: hidden; white-space: nowrap; clip-path: inset(50%); } } .prc_Box_qNUI9 { display: inline-flex; } @keyframes prc_rotate-keyframes_XyFIG { 100% { transform: rotate(360deg); } } .prc_SpinnerAnimation_e7Gf- { animation: prc_rotate-keyframes_XyFIG var(--base-duration-1000) var(--base-easing-linear) infinite; } .prc_CounterLabel_ZwXPe { display: inline-block; padding: var(--base-size-2) var(--base-size-6); font-size: var(--text-body-size-small); font-weight: var(--base-text-weight-semibold); /* stylelint-disable-next-line primer/typography */ line-height: 1; border: var(--borderWidth-thin) solid var(--counter-borderColor); /* stylelint-disable-next-line primer/borders */ border-radius: 20px; &:where([data-scheme='primary']) { color: var(--fgColor-onEmphasis); background-color: var(--bgColor-neutral-emphasis); } &:where([data-scheme='secondary']) { color: var(--fgColor-default); background-color: var(--bgColor-neutral-muted); } &:where(:empty) { display: none; } } /* Base styles */ .prc_ButtonBase_c50BI { display: flex; min-width: max-content; height: var(--control-medium-size); /* stylelint-disable-next-line primer/spacing */ padding: 0 var(--control-medium-paddingInline-normal); font-family: inherit; font-size: var(--text-body-size-medium); font-weight: var(--base-text-weight-medium); color: var(--button-default-fgColor-rest); text-align: center; text-decoration: none; cursor: pointer; user-select: none; background-color: transparent; border: var(--borderWidth-thin) solid; border-color: var(--button-default-borderColor-rest); border-radius: var(--borderRadius-medium); transition: 80ms cubic-bezier(0.65, 0, 0.35, 1); transition-property: color, fill, background-color, border-color; appearance: none; align-items: center; justify-content: space-between; gap: var(--base-size-8); &:hover { transition-duration: 80ms; } &:focus-visible { @mixin focusOutline; } &:active { transition: none; } &:disabled, &[aria-disabled='true']:not([data-loading='true']) { cursor: not-allowed; box-shadow: none; & .prc_Visual_2epfX, & .prc_CounterLabel_f5-4u { color: inherit; } } @media (forced-colors: active) { &:focus { outline: solid 1px transparent; } } /* Visuals */ & :where(.prc_Visual_2epfX) { display: flex; color: var(--fgColor-muted); pointer-events: none; } /* mostly for CounterLabel */ & :where(.prc_VisualWrap_Db-eB) { display: flex; pointer-events: none; } /* IconButton */ &:where(.prc_IconButton_szpyj) { display: inline-grid; width: var(--control-medium-size); min-width: unset; /* stylelint-disable-next-line primer/spacing */ padding: unset; place-content: center; flex-shrink: 0; &:where([data-size='small']) { width: var(--control-small-size); } &:where([data-size='large']) { width: var(--control-large-size); } } /* LinkButton */ &:where([href]) { display: inline-flex; &:hover { text-decoration: none; } } /* Button layout */ & :where(.prc_ButtonContent_HKbr-) { flex: 1 0 auto; display: grid; grid-template-areas: 'leadingVisual text trailingVisual'; grid-template-columns: min-content minmax(0, auto) min-content; align-items: center; align-content: center; & > :not(:last-child) { margin-right: var(--base-size-8); } /* Content alignment */ &:where([data-align='center']) { justify-content: center; } &:where([data-align='start']) { justify-content: flex-start; } } & :where([data-component='leadingVisual']) { grid-area: leadingVisual; } & :where(.prc_Label_pTQ3x) { /* stylelint-disable-next-line primer/typography */ line-height: 1.4285714; /* temporary until we use Text component with --text-body-lineHeight-medium */ white-space: nowrap; grid-area: text; } & :where([data-component='trailingVisual']) { grid-area: trailingVisual; } & :where([data-component='trailingAction']) { margin-right: calc(var(--base-size-4) * -1); } /* Size */ &:where([data-size='small']) { height: var(--control-small-size); /* stylelint-disable-next-line primer/spacing */ padding: 0 var(--control-small-paddingInline-condensed); gap: var(--control-small-gap); font-size: var(--text-body-size-small); & .prc_ButtonContent_HKbr- > :not(:last-child) { /* stylelint-disable-next-line primer/spacing */ margin-right: var(--control-small-gap); } & .prc_Label_pTQ3x { /* stylelint-disable-next-line primer/typography */ line-height: 1.6666667; /* temporary until we use Text component with --text-body-lineHeight-small */ } } &:where([data-size='large']) { height: var(--control-large-size); /* stylelint-disable-next-line primer/spacing */ padding: 0 var(--control-large-paddingInline-spacious); gap: var(--control-large-gap); & .prc_ButtonContent_HKbr- > :not(:last-child) { /* stylelint-disable-next-line primer/spacing */ margin-right: var(--control-large-gap); } } /* Full width */ &:where([data-block='block']) { width: 100%; } /* Wrap label text */ &:where([data-label-wrap='true']) { min-width: fit-content; height: unset; min-height: var(--control-medium-size); & .prc_ButtonContent_HKbr- { flex: 1 1 auto; align-self: stretch; /* stylelint-disable-next-line primer/spacing */ padding-block: calc(var(--control-medium-paddingBlock) - var(--base-size-2)); } & .prc_Label_pTQ3x { word-break: break-word; white-space: unset; } &:where([data-size='small']) { height: unset; min-height: var(--control-small-size); & .prc_ButtonContent_HKbr- { /* stylelint-disable-next-line primer/spacing */ padding-block: calc(var(--control-small-paddingBlock) - var(--base-size-2)); } } &:where([data-size='large']) { height: unset; min-height: var(--control-large-size); /* stylelint-disable-next-line primer/spacing */ padding-inline: var(--control-large-paddingInline-spacious); & .prc_ButtonContent_HKbr- { /* stylelint-disable-next-line primer/spacing */ padding-block: calc(var(--control-large-paddingBlock) - var(--base-size-2)); } } } /* Loading */ /* only hide label if there's no leading/trailing visuals * move spinner to label spot if not leading/trailing visuals */ &:where([data-loading='true']) { & .prc_LoadingSpinner_hLV6o:not( [data-component='leadingVisual'], [data-component='trailingVisual'], [data-component='trailingAction'] ) { grid-area: text; margin-right: 0 !important; place-self: center; & + .prc_Label_pTQ3x { visibility: hidden; } } } /* Default Variant */ &:where([data-variant='default']) { color: var(--button-default-fgColor-rest); background-color: var(--button-default-bgColor-rest); box-shadow: var(--button-default-shadow-resting); &[aria-expanded='true'] { background-color: var(--button-default-bgColor-active); border-color: var(--button-default-borderColor-active); } &:hover { background-color: var(--button-default-bgColor-hover); border-color: var(--button-default-borderColor-hover); } &:active { background-color: var(--button-default-bgColor-active); border-color: var(--button-default-borderColor-active); } &:disabled, &[aria-disabled='true']:not([data-loading='true']) { color: var(--control-fgColor-disabled); background-color: var(--button-default-bgColor-disabled); border-color: var(--button-default-borderColor-disabled); box-shadow: none; } & .prc_CounterLabel_f5-4u { background-color: var(--buttonCounter-default-bgColor-rest) !important; /* temporarily override our own sx prop */ } &:where(.prc_IconButton_szpyj) { color: var(--fgColor-muted); } } /* Primary variant */ &:where([data-variant='primary']) { color: var(--button-primary-fgColor-rest); background-color: var(--button-primary-bgColor-rest); border-color: var(--button-primary-borderColor-rest); box-shadow: var(--shadow-resting-small); &[aria-expanded='true'] { background-color: var(--button-primary-bgColor-active); box-shadow: var(--button-primary-shadow-selected); } &:hover { background-color: var(--button-primary-bgColor-hover); border-color: var(--button-primary-borderColor-hover); } &:focus-visible { @mixin focusOutlineOnEmphasis; } &:active { background-color: var(--button-primary-bgColor-active); box-shadow: var(--button-primary-shadow-selected); } &:disabled, &[aria-disabled='true']:not([data-loading='true']) { color: var(--button-primary-fgColor-disabled); background-color: var(--button-primary-bgColor-disabled); border-color: var(--button-primary-borderColor-disabled); box-shadow: none; } & .prc_CounterLabel_f5-4u { color: var(--button-primary-fgColor-rest) !important; /* temporarily override our own sx prop */ background-color: var(--buttonCounter-primary-bgColor-rest) !important; /* temporarily override our own sx prop */ } /* temporarily using the fgColor to match legacy and reduce visual changes- will eventually be iconColor */ & .prc_Visual_2epfX { color: var(--button-primary-fgColor-rest); } } /* Danger variant */ &:where([data-variant='danger']) { color: var(--button-danger-fgColor-rest); background-color: var(--button-danger-bgColor-rest); box-shadow: var(--button-default-shadow-resting); &[aria-expanded='true'] { color: var(--button-danger-fgColor-active); background-color: var(--button-danger-bgColor-active); border-color: var(--button-danger-borderColor-active); box-shadow: var(--button-danger-shadow-selected); & .prc_Visual_2epfX { color: var(--button-danger-iconColor-hover); } } &:hover { color: var(--button-danger-fgColor-hover); background-color: var(--button-danger-bgColor-hover); border-color: var(--button-danger-borderColor-hover); box-shadow: var(--shadow-resting-small); & .prc_CounterLabel_f5-4u { color: var(--buttonCounter-danger-fgColor-hover) !important; /* temporarily override our own sx prop */ background-color: var(--buttonCounter-danger-bgColor-hover) !important; } & .prc_Visual_2epfX { color: var(--button-danger-iconColor-hover); } } &:active { color: var(--button-danger-fgColor-active); background-color: var(--button-danger-bgColor-active); border-color: var(--button-danger-borderColor-active); box-shadow: var(--button-danger-shadow-selected); & .prc_CounterLabel_f5-4u { color: var(--buttonCounter-danger-fgColor-hover) !important; /* temporarily override our own sx prop */ background-color: var(--buttonCounter-danger-bgColor-hover) !important; } & .prc_Visual_2epfX { color: var(--button-danger-iconColor-hover); } } &:disabled, &[aria-disabled='true']:not([data-loading='true']) { color: var(--button-danger-fgColor-disabled); background-color: var(--button-danger-bgColor-disabled); border-color: var(--button-default-borderColor-disabled); box-shadow: none; & .prc_CounterLabel_f5-4u { color: var(--buttonCounter-danger-fgColor-disabled) !important; /* temporarily override our own sx prop */ background-color: var(--buttonCounter-danger-bgColor-disabled) !important; } } & .prc_CounterLabel_f5-4u { color: var(--buttonCounter-danger-fgColor-rest) !important; /* temporarily override our own sx prop */ background-color: var(--buttonCounter-danger-bgColor-rest) !important; } & .prc_Visual_2epfX { color: var(--button-danger-iconColor-rest); } } /* Invisible variant */ &:where([data-variant='invisible']) { color: var(--button-default-fgColor-rest); border-color: transparent; box-shadow: none; &[aria-expanded='true'] { background-color: var(--button-invisible-bgColor-active); } &:hover { background-color: var(--button-invisible-bgColor-hover); & .prc_Visual_2epfX { color: var(--button-invisible-iconColor-hover); } } &:active { background-color: var(--button-invisible-bgColor-active); & .prc_Visual_2epfX { color: var(--button-invisible-iconColor-hover); } } &:disabled, &[aria-disabled='true']:not([data-loading='true']) { color: var(--button-invisible-fgColor-disabled); background-color: var(--button-invisible-bgColor-disabled); border-color: var(--button-invisible-borderColor-disabled); box-shadow: none; } & .prc_Visual_2epfX { color: var(--button-invisible-iconColor-rest); } & .prc_CounterLabel_f5-4u { background-color: var(--buttonCounter-invisible-bgColor-rest) !important; } &:where(.prc_IconButton_szpyj) { color: var(--button-invisible-iconColor-rest); } } /* Link variant */ &:where([data-variant='link']) { display: inline-flex; min-width: fit-content; height: unset; padding: 0; font-size: inherit; color: var(--fgColor-link); text-align: left; border: unset; &:hover:not(:disabled, [data-inactive]) { text-decoration: underline; } &:focus-visible, &:focus { outline-offset: 2px; } &:disabled, &[aria-disabled='true']:not([data-loading='true']) { color: var(--control-fgColor-disabled); background-color: transparent; border-color: transparent; } & .prc_Label_pTQ3x { white-space: unset; } &:where([data-inactive]) { color: var(--button-inactive-fgColor); background: transparent !important; } & .prc_Visual_2epfX { color: var(--fgColor-link); } } /* Inactive */ &:where([data-inactive]), &:where([data-inactive]):hover { color: var(--button-inactive-fgColor); cursor: auto; background-color: var(--button-inactive-bgColor); /* stylelint-disable-next-line primer/colors */ border-color: var(--button-inactive-bgColor); & .prc_Visual_2epfX, & .prc_CounterLabel_f5-4u { color: inherit !important; } } /* Icon-only + Counter */ &:where([data-has-count]):has([data-component='leadingVisual']):not(:has([data-component='text'])) { /* stylelint-disable-next-line primer/spacing */ padding-inline: var(--control-medium-paddingInline-condensed); &:where([data-size='small']) { /* stylelint-disable-next-line primer/spacing */ padding-inline: var(--control-xsmall-paddingInline-condensed); } &:where([data-size='large']) { /* stylelint-disable-next-line primer/spacing */ padding-inline: var(--control-large-paddingInline-normal); } } } .prc_ConditionalWrapper_WLT4Z { display: block; } /* Animation definition */ @keyframes prc_tooltip-appear_hLf77 { from { opacity: 0; } to { opacity: 1; } } .prc_Tooltip_cYMVY { /* Overriding the default popover styles */ display: none; &[popover] { position: absolute; width: max-content; max-width: 250px; /* stylelint-disable-next-line primer/spacing */ padding: 0.5em 0.75em; margin: auto; /* for scrollbar */ overflow: visible; clip: auto; /* stylelint-disable-next-line primer/typography */ font: normal normal 11px/1.5 var(--fontStack-system); color: var(--tooltip-fgColor); text-align: center; word-wrap: break-word; white-space: normal; background: var(--tooltip-bgColor); border: 0; border-radius: var(--borderRadius-medium); opacity: 0; -webkit-font-smoothing: subpixel-antialiased; inset: auto; } /* class name in chrome is :popover-open */ &[popover]:popover-open { display: block; } /* class name in firefox and safari is \:popover-open */ &[popover].prc_--_ketfx:popover-open { display: block; } @media (forced-colors: active) { outline: 1px solid transparent; } /* This is needed to keep the tooltip open when the user leaves the trigger element to hover tooltip */ &::after { position: absolute; right: 0; left: 0; display: block; height: var(--overlay-offset); content: ''; } /* South, East, Southeast, Southwest after */ &[data-direction='n']::after, &[data-direction='ne']::after, &[data-direction='nw']::after { top: 100%; } &[data-direction='s']::after, &[data-direction='se']::after, &[data-direction='sw']::after { bottom: 100%; } &[data-direction='w']::after { position: absolute; bottom: 0; left: 100%; display: block; width: 8px; height: 100%; content: ''; } /* East before and after */ &[data-direction='e']::after { position: absolute; right: 100%; bottom: 0; display: block; width: 8px; height: 100%; /* stylelint-disable-next-line primer/spacing */ margin-left: -8px; content: ''; } /* Animation styles */ &:popover-open, &:popover-open::before { animation-name: prc_tooltip-appear_hLf77; animation-duration: 0.1s; animation-fill-mode: forwards; animation-timing-function: ease-in; animation-delay: 0s; } /* Animation styles */ &.prc_--_ketfx:popover-open, &.prc_--_ketfx:popover-open::before { animation-name: prc_tooltip-appear_hLf77; animation-duration: 0.1s; animation-fill-mode: forwards; animation-timing-function: ease-in; animation-delay: 0s; } } .prc_keybindingHintContainer_tv-0S.prc_hasTextBefore_ot22R { /* Offset negative on the right right to make right spacing look like top and bottom spacing, only for keybinding hints and only when there is text */ /* stylelint-disable-next-line primer/spacing */ margin-right: -0.125em; margin-left: var(--base-size-6); } .prc_Text_0ima0 { &:where([data-size='small']) { font-size: var(--text-body-size-small); line-height: var(--text-body-lineHeight-small); } &:where([data-size='medium']) { font-size: var(--text-body-size-medium); line-height: var(--text-body-lineHeight-medium); } &:where([data-size='large']) { font-size: var(--text-body-size-large); line-height: var(--text-body-lineHeight-large); } &:where([data-weight='light']) { font-weight: var(--base-text-weight-light); } &:where([data-weight='normal']) { font-weight: var(--base-text-weight-normal); } &:where([data-weight='medium']) { font-weight: var(--base-text-weight-medium); } &:where([data-weight='semibold']) { font-weight: var(--base-text-weight-semibold); } } .prc_KeybindingHint_0pyit { position: relative; padding: 0; overflow: visible; font-family: inherit; font-size: inherit; /* stylelint-disable-next-line primer/typography */ line-height: unset; color: inherit; white-space: nowrap; vertical-align: baseline; background: none; border: none; box-shadow: none; } /* Maintain resize cursor while dragging */ /* stylelint-disable-next-line selector-no-qualifying-type */ body[data-page-layout-dragging='true'] { cursor: col-resize; } /* Disable text selection while dragging */ /* stylelint-disable-next-line selector-no-qualifying-type */ body[data-page-layout-dragging='true'] * { user-select: none; } .prc_PageLayoutRoot_1zlEO { /* Region Order */ --region-order-header: 0; --region-order-pane-start: 1; --region-order-content: 2; --region-order-pane-end: 3; --region-order-footer: 4; /* Spacing Values */ --spacing-none: 0; --spacing-condensed: var(--base-size-16); --spacing-normal: var(--base-size-16); @media screen and (min-width: 1012px) { --spacing-normal: var(--base-size-24); } /* Pane Width Values */ --pane-width-small: 100%; --pane-width-medium: 100%; --pane-width-large: 100%; --pane-max-width-diff: 511px; @media screen and (min-width: 768px) { --pane-width-small: 240px; --pane-width-medium: 256px; --pane-width-large: 256px; } @media screen and (min-width: 1012px) { --pane-width-small: 256px; --pane-width-medium: 296px; --pane-width-large: 320px; } @media screen and (min-width: 1280px) { --pane-max-width-diff: 959px; } /* These following CSS variables are dynamic values that get overridden by styles passed in via props. */ --spacing: 0; --spacing-row: 0; --spacing-column: 0; --spacing-divider: 0; --offset-header: 0; --sticky-pane-height: 0; --pane-width: 0; --pane-min-width: 0; --pane-max-width: 0; --pane-width-custom: 0; --pane-width-size: 0; /* stylelint-disable-next-line primer/spacing */ padding: var(--spacing); } .prc_PageLayoutWrapper_s2ao4 { display: flex; margin-right: auto; margin-left: auto; flex-wrap: wrap; &:where([data-width='medium']) { max-width: 768px; } &:where([data-width='large']) { max-width: 1012px; } &:where([data-width='full']) { max-width: 100%; } &:where([data-width='xlarge']) { max-width: 1280px; } } .prc_PageLayoutContent_jzDMn { display: flex; flex: 1 1 100%; flex-wrap: wrap; max-width: 100%; } .prc_HorizontalDivider_CYLp5 { /* stylelint-disable-next-line primer/spacing */ margin-right: calc(-1 * var(--spacing-divider)); /* stylelint-disable-next-line primer/spacing */ margin-left: calc(-1 * var(--spacing-divider)); &:where([data-variant='none']) { display: none; } &:where([data-variant='line']) { display: block; height: 1px; /* stylelint-disable-next-line primer/colors */ background-color: var(--borderColor-default); } &:where([data-variant='filled']) { display: block; height: var(--base-size-8); background-color: var(--bgColor-inset); box-shadow: /* stylelint-disable-next-line primer/box-shadow */ inset 0 -1px 0 0 var(--borderColor-default), inset 0 1px 0 0 var(--borderColor-default); } @media screen and (min-width: 768px) { margin-right: 0 !important; margin-left: 0 !important; } } .prc_VerticalDivider_4A4Qm { position: relative; height: 100%; &:where([data-variant='none']) { display: none; } &:where([data-variant='line']) { display: block; width: 1px; /* stylelint-disable-next-line primer/colors */ background-color: var(--borderColor-default); } &:where([data-variant='filled']) { display: block; width: var(--base-size-8); background-color: var(--bgColor-inset); box-shadow: /* stylelint-disable-next-line primer/box-shadow */ inset -1px 0 0 0 var(--borderColor-default), inset 1px 0 0 0 var(--borderColor-default); } } .prc_Header_mQXK1 { width: 100%; /* stylelint-disable-next-line primer/spacing */ margin-bottom: var(--spacing); } .prc_HeaderContent_dVIQb { /* stylelint-disable-next-line primer/spacing */ padding: var(--spacing); } .prc_HeaderHorizontalDivider_bofyb { /* stylelint-disable-next-line primer/spacing */ margin-top: var(--spacing); } .prc_ContentWrapper_b-QRo { display: flex; /* Hack to prevent overflowing content from pushing the pane region to the next line */ min-width: 1px; flex-direction: column; order: var(--region-order-content); /* Set flex-basis to 0% to allow flex-grow to control the width of the content region. Without this, the content region could wrap onto a different line than the pane region on wide viewports if its contents are too wide. */ flex-basis: 0; flex-grow: 1; flex-shrink: 1; &:where([data-is-hidden='true']) { display: none; } } .prc_Content_-F7-I { width: 100%; /* stylelint-disable-next-line primer/spacing */ padding: var(--spacing); margin-right: auto; margin-left: auto; flex-grow: 1; &:where([data-width='medium']) { max-width: 768px; } &:where([data-width='large']) { max-width: 1012px; } &:where([data-width='full']) { max-width: 100%; } &:where([data-width='xlarge']) { max-width: 1280px; } } .prc_PaneWrapper_nGO0U { display: flex; width: 100%; margin-right: 0; margin-left: 0; &:where([data-is-hidden='true']) { display: none; } &:where([data-position='end']) { /* stylelint-disable-next-line primer/spacing */ margin-top: var(--spacing-row); flex-direction: column; order: var(--region-order-pane-end); } &:where([data-position='start']) { /* stylelint-disable-next-line primer/spacing */ margin-bottom: var(--spacing-row); flex-direction: column-reverse; order: var(--region-order-pane-start); } @media screen and (min-width: 768px) { width: auto; margin-top: 0 !important; margin-bottom: 0 !important; &:where([data-sticky]) { position: sticky; /* stylelint-disable-next-line primer/spacing */ top: var(--offset-header); max-height: var(--sticky-pane-height); } &:where([data-position='end']) { /* stylelint-disable-next-line primer/spacing */ margin-left: var(--spacing-column); flex-direction: row-reverse; } &:where([data-position='start']) { /* stylelint-disable-next-line primer/spacing */ margin-right: var(--spacing-column); flex-direction: row; } } } .prc_PaneVerticalDivider_1c9vy { &:where([data-position='start']) { /* stylelint-disable-next-line primer/spacing */ margin-left: var(--spacing); } &:where([data-position='end']) { /* stylelint-disable-next-line primer/spacing */ margin-right: var(--spacing); } } .prc_Pane_Vl5LI { width: var(--pane-width-size); /* stylelint-disable-next-line primer/spacing */ padding: var(--spacing); @media screen and (min-width: 768px) { overflow: auto; } &:where([data-resizable]) { width: 100%; @media screen and (min-width: 768px) { width: clamp(var(--pane-min-width), var(--pane-width), var(--pane-max-width)); } } } .prc_PaneHorizontalDivider_4exOb { &:where([data-position='start']) { /* stylelint-disable-next-line primer/spacing */ margin-top: var(--spacing); } &:where([data-position='end']) { /* stylelint-disable-next-line primer/spacing */ margin-bottom: var(--spacing); } } .prc_FooterWrapper_WZwgZ { width: 100%; order: var(--region-order-footer); /* stylelint-disable-next-line primer/spacing */ margin-top: var(--spacing); } .prc_FooterHorizontalDivider_sNLmj { /* stylelint-disable-next-line primer/spacing */ margin-bottom: var(--spacing); } .prc_FooterContent_UFWGW { /* stylelint-disable-next-line primer/spacing */ padding: var(--spacing); } @keyframes prc_dialog-backdrop-appear_FwQst { 0% { opacity: 0; } 100% { opacity: 1; } } @keyframes prc_Overlay--motion-scaleFade_ctSnM { 0% { opacity: 0; transform: scale(0.5); } 100% { opacity: 1; transform: scale(1); } } @keyframes prc_Overlay--motion-slideUp_PtiP3 { from { transform: translateY(100%); } } @keyframes prc_Overlay--motion-slideInRight_dOTaT { from { transform: translateX(-100%); } } @keyframes prc_Overlay--motion-slideInLeft_Lfaz8 { from { transform: translateX(100%); } } .prc_Backdrop_ugYqZ { position: fixed; top: 0; right: 0; bottom: 0; left: 0; display: flex; background-color: var(--overlay-backdrop-bgColor); animation: prc_dialog-backdrop-appear_FwQst 200ms cubic-bezier(0.33, 1, 0.68, 1); align-items: center; justify-content: center; &[data-position-regular='center'] { align-items: center; justify-content: center; } &[data-position-regular='left'] { align-items: center; justify-content: flex-start; } &[data-position-regular='right'] { align-items: center; justify-content: flex-end; } .prc_DialogOverflowWrapper_oDYJo { flex-grow: 1; } @media (max-width: 767px) { &[data-position-narrow='center'] { align-items: center; justify-content: center; } &[data-position-narrow='bottom'] { align-items: end; justify-content: center; } } } .prc_Dialog_luvDS { display: flex; /* stylelint-disable-next-line primer/responsive-widths */ width: 640px; min-width: 296px; max-width: calc(100dvw - 64px); height: auto; max-height: calc(100dvh - 64px); flex-direction: column; background-color: var(--overlay-bgColor); border-radius: var(--borderRadius-large); border-radius: var(--borderRadius-large, var(--borderRadius-large)); box-shadow: var(--shadow-floating-small); opacity: 1; &:where([data-width='small']) { width: 296px; } &:where([data-width='medium']) { width: 320px; } &:where([data-width='large']) { /* stylelint-disable-next-line primer/responsive-widths */ width: 480px; } &:where([data-height='small']) { height: 480px; } &:where([data-height='large']) { height: 640px; } @media screen and (prefers-reduced-motion: no-preference) { animation: prc_Overlay--motion-scaleFade_ctSnM 0.2s cubic-bezier(0.33, 1, 0.68, 1) 0s 1 normal none running; } &[data-position-regular='center'] { border-radius: var(--borderRadius-large, var(--borderRadius-large)); @media screen and (prefers-reduced-motion: no-preference) { animation: prc_Overlay--motion-scaleFade_ctSnM 0.2s cubic-bezier(0.33, 1, 0.68, 1) 0s 1 normal none running; } } &[data-position-regular='left'] { height: 100dvh; max-height: unset; border-radius: var(--borderRadius-large, var(--borderRadius-large)); border-top-left-radius: 0; border-bottom-left-radius: 0; @media screen and (prefers-reduced-motion: no-preference) { animation: prc_Overlay--motion-slideInRight_dOTaT 0.25s cubic-bezier(0.33, 1, 0.68, 1) 0s 1 normal none running; } } &[data-position-regular='right'] { height: 100dvh; max-height: unset; border-radius: var(--borderRadius-large, var(--borderRadius-large)); border-top-right-radius: 0; border-bottom-right-radius: 0; @media screen and (prefers-reduced-motion: no-preference) { animation: prc_Overlay--motion-slideInLeft_Lfaz8 0.25s cubic-bezier(0.33, 1, 0.68, 1) 0s 1 normal none running; } } @media (max-width: 767px) { &[data-position-narrow='center'] { /* stylelint-disable-next-line primer/responsive-widths */ width: 640px; height: auto; border-radius: var(--borderRadius-large, var(--borderRadius-large)); &:where([data-width='small']) { width: 296px; } &:where([data-width='medium']) { width: 320px; } &:where([data-width='large']) { /* stylelint-disable-next-line primer/responsive-widths */ width: 480px; } &:where([data-height='small']) { height: 480px; } &:where([data-height='large']) { height: 640px; } } &[data-position-narrow='bottom'] { width: 100dvw; max-width: 100dvw; height: auto; max-height: calc(100dvh - 64px); border-radius: var(--borderRadius-large, var(--borderRadius-large)); border-bottom-right-radius: 0; border-bottom-left-radius: 0; @media screen and (prefers-reduced-motion: no-preference) { animation: prc_Overlay--motion-slideUp_PtiP3 0.25s cubic-bezier(0.33, 1, 0.68, 1) 0s 1 normal none running; } } &[data-position-narrow='fullscreen'] { width: 100%; max-width: 100dvw; height: 100%; max-height: 100dvh; border-radius: unset !important; flex-grow: 1; @media screen and (prefers-reduced-motion: no-preference) { animation: prc_Overlay--motion-scaleFade_ctSnM 0.2s cubic-bezier(0.33, 1, 0.68, 1) 0s 1 normal none running; } } } } .prc_Header_cjbcl { z-index: 1; padding: var(--base-size-8); /* stylelint-disable-next-line primer/box-shadow */ box-shadow: 0 1px 0 var(--borderColor-default); flex-shrink: 0; } .prc_Title_oQ-W6 { margin: 0; /* override default margin */ font-size: var(--text-body-size-medium); font-weight: var(--text-title-weight-large); } .prc_Subtitle_sITpo { margin: 0; /* override default margin */ margin-top: var(--base-size-4); font-size: var(--text-body-size-small); font-weight: var(--base-text-weight-normal); color: var(--fgColor-muted); } .prc_Body_LCvER { padding: var(--base-size-16); overflow: auto; flex-grow: 1; } .prc_Footer_jQfN4 { z-index: 1; display: flex; padding: var(--base-size-16); /* stylelint-disable-next-line primer/box-shadow */ box-shadow: 0 -1px 0 var(--borderColor-default); flex-flow: wrap; justify-content: flex-end; gap: var(--base-size-8); flex-shrink: 0; } .prc_ConfirmationHeader_yiLEc { display: flex; padding: var(--base-size-8); flex-direction: row; > h1 { padding: var(--base-size-6) var(--base-size-8); /* override default margin */ margin: 0; font-size: var(--text-title-size-medium); font-weight: var(--text-title-weight-medium); flex-grow: 1; } } .prc_ConfirmationBody_ht9P- { padding: 0 var(--base-size-16) var(--base-size-16) var(--base-size-16); font-size: var(--text-body-size-medium); flex-grow: 1; } .prc_ConfirmationFooter_AqKBI { display: grid; grid-auto-flow: column; grid-auto-columns: max-content; grid-gap: var(--base-size-8); align-items: end; justify-content: end; padding: var(--base-size-4) var(--base-size-16) var(--base-size-16); } .prc_Body_cNQoa { display: flex; padding: 0; margin: 0; list-style: none; flex-direction: column; & > * + * { margin-top: var(--base-size-8); } } .prc_GroupFieldset_0NZzG { padding: 0; margin: 0; border: none; &:where([data-validation]) { margin-bottom: var(--base-size-8); } } .prc_GroupLegend_HW4-c { padding: 0; &:where([data-legend-visible]) { margin-bottom: var(--base-size-8); } } .prc_CheckboxOrRadioGroupCaption_9GgyY { font-size: var(--text-body-size-medium); color: var(--fgColor-muted); } .prc_RadioGroupLabel_anQ3U { display: block; font-size: var(--text-body-size-medium); font-weight: var(--base-text-weight-semibold); &:where([data-label-disabled]) { color: var(--fgColor-muted); } } .prc_GroupLabelChildren_j5sBI { margin-right: var(--base-size-8); } .prc_Stack_WJVsK { display: flex; flex-flow: column; align-items: stretch; align-content: flex-start; gap: var(--stack-gap, var(--stack-gap-normal)); &[data-padding='none'], &[data-padding-narrow='none'] { padding: 0; } &[data-padding='condensed'], &[data-padding-narrow='condensed'] { /* stylelint-disable-next-line primer/spacing */ padding: var(--stack-padding-condensed); } &[data-padding='normal'], &[data-padding-narrow='normal'] { /* stylelint-disable-next-line primer/spacing */ padding: var(--stack-padding-normal); } &[data-padding='spacious'], &[data-padding-narrow='spacious'] { /* stylelint-disable-next-line primer/spacing */ padding: var(--stack-padding-spacious); } &[data-direction='horizontal'], &[data-direction-narrow='horizontal'] { flex-flow: row; } &[data-direction='vertical'], &[data-direction-narrow='vertical'] { flex-flow: column; } &[data-gap='none'], &[data-gap-narrow='none'] { --stack-gap: 0; } &[data-gap='condensed'], &[data-gap-narrow='condensed'] { --stack-gap: var(--stack-gap-condensed); } &[data-gap='normal'], &[data-gap-narrow='normal'] { --stack-gap: var(--stack-gap-normal); } &[data-gap='spacious'], &[data-gap-narrow='spacious'] { --stack-gap: var(--stack-gap-spacious); } &[data-align='start'], &[data-align-narrow='start'] { align-items: flex-start; } &[data-align='center'], &[data-align-narrow='center'] { align-items: center; } &[data-align='end'], &[data-align-narrow='end'] { align-items: flex-end; } &[data-align='baseline'], &[data-align-narrow='baseline'] { align-items: baseline; } &[data-justify='start'], &[data-justify-narrow='start'] { justify-content: flex-start; } &[data-justify='center'], &[data-justify-narrow='center'] { justify-content: center; } &[data-justify='end'], &[data-justify-narrow='end'] { justify-content: flex-end; } &[data-justify='space-between'], &[data-justify-narrow='space-between'] { justify-content: space-between; } &[data-justify='space-evenly'], &[data-justify-narrow='space-evenly'] { justify-content: space-evenly; } &[data-wrap='wrap'], &[data-wrap-narrow='wrap'] { flex-wrap: wrap; } &[data-wrap='nowrap'], &[data-wrap-narrow='nowrap'] { flex-wrap: nowrap; } @media (--viewportRange-regular) { &[data-padding-regular='none'] { padding: 0; } &[data-padding-regular='condensed'] { /* stylelint-disable-next-line primer/spacing */ padding: var(--stack-padding-condensed); } &[data-padding-regular='normal'] { /* stylelint-disable-next-line primer/spacing */ padding: var(--stack-padding-normal); } &[data-padding-regular='spacious'] { /* stylelint-disable-next-line primer/spacing */ padding: var(--stack-padding-spacious); } &[data-direction-regular='horizontal'] { flex-flow: row; } &[data-direction-regular='vertical'] { flex-flow: column; } &[data-gap-regular='none'] { --stack-gap: 0; } &[data-gap-regular='condensed'] { --stack-gap: var(--stack-gap-condensed); } &[data-gap-regular='normal'] { --stack-gap: var(--stack-gap-normal); } &[data-gap-regular='spacious'] { --stack-gap: var(--stack-gap-spacious); } &[data-align-regular='start'] { align-items: flex-start; } &[data-align-regular='center'] { align-items: center; } &[data-align-regular='end'] { align-items: flex-end; } &[data-align-regular='baseline'] { align-items: baseline; } &[data-justify-regular='start'] { justify-content: flex-start; } &[data-justify-regular='center'] { justify-content: center; } &[data-justify-regular='end'] { justify-content: flex-end; } &[data-justify-regular='space-between'] { justify-content: space-between; } &[data-justify-regular='space-evenly'] { justify-content: space-evenly; } &[data-wrap-regular='wrap'] { flex-wrap: wrap; } &[data-wrap-regular='nowrap'] { flex-wrap: nowrap; } } @media (--viewportRange-wide) { &[data-padding-wide='none'] { padding: 0; } &[data-padding-wide='condensed'] { /* stylelint-disable-next-line primer/spacing */ padding: var(--stack-padding-condensed); } &[data-padding-wide='normal'] { /* stylelint-disable-next-line primer/spacing */ padding: var(--stack-padding-normal); } &[data-padding-wide='spacious'] { /* stylelint-disable-next-line primer/spacing */ padding: var(--stack-padding-spacious); } &[data-direction-wide='horizontal'] { flex-flow: row; } &[data-direction-wide='vertical'] { flex-flow: column; } &[data-gap-wide='none'] { --stack-gap: 0; } &[data-gap-wide='condensed'] { --stack-gap: var(--stack-gap-condensed); } &[data-gap-wide='normal'] { --stack-gap: var(--stack-gap-normal); } &[data-gap-wide='spacious'] { --stack-gap: var(--stack-gap-spacious); } &[data-align-wide='start'] { align-items: flex-start; } &[data-align-wide='center'] { align-items: center; } &[data-align-wide='end'] { align-items: flex-end; } &[data-align-wide='baseline'] { align-items: baseline; } &[data-justify-wide='start'] { justify-content: flex-start; } &[data-justify-wide='center'] { justify-content: center; } &[data-justify-wide='end'] { justify-content: flex-end; } &[data-justify-wide='space-between'] { justify-content: space-between; } &[data-justify-wide='space-evenly'] { justify-content: space-evenly; } &[data-wrap-wide='wrap'] { flex-wrap: wrap; } &[data-wrap-wide='nowrap'] { flex-wrap: nowrap; } } } .prc_StackItem_CweWT { flex: 0 1 auto; min-inline-size: 0; &[data-grow='true'], &[data-grow-narrow='true'] { flex-grow: 1; } @media (--viewportRange-regular) { &[data-grow-regular='true'] { flex-grow: 1; } &[data-grow-regular='false'] { flex-grow: 0; } } @media (--viewportRange-wide) { &[data-grow-wide='true'] { flex-grow: 1; } &[data-grow-wide='false'] { flex-grow: 0; } } } .prc_InputValidation_GjS0D { display: flex; font-size: var(--text-body-size-small); font-weight: var(--base-text-weight-semibold); /* stylelint-disable-next-line primer/colors */ color: var(--inputValidation-fgColor); & :where(a) { color: currentColor; text-decoration: underline; } &:where([data-validation-status='success']) { --inputValidation-fgColor: var(--fgColor-success); } &:where([data-validation-status='error']) { --inputValidation-fgColor: var(--fgColor-danger); } } .prc_ValidationIcon_Kdbbr { align-items: center; display: flex; margin-inline-end: var(--base-size-4); min-height: var(--inputValidation-iconSize); } .prc_ValidationText_jjsBp { /* stylelint-disable-next-line primer/typography */ line-height: var(--inputValidation-lineHeight); } .prc_Radio_Ly4MR { border-radius: var(--borderRadius-full, 100vh); transition: background-color, border-color 80ms cubic-bezier(0.33, 1, 0.68, 1); /* checked -> unchecked - add 120ms delay to fully see animation-out */ &:where(:checked) { /* stylelint-disable-next-line primer/colors */ background-color: var(--control-checked-fgColor-rest); /* using bgColor here to avoid a border change in dark high contrast */ /* stylelint-disable-next-line primer/colors */ border-color: var(--control-checked-bgColor-rest); border-width: var(--borderWidth-thicker); &:disabled { cursor: not-allowed; /* stylelint-disable-next-line primer/colors */ background-color: var(--fgColor-muted); /* stylelint-disable-next-line primer/colors */ border-color: var(--fgColor-muted); } } &:focus, &:focus-within { @mixin focusOutline 2px; } @media (forced-colors: active) { background-color: canvastext; border-color: canvastext; } } .prc_Input_mxggT { position: relative; display: grid; width: var(--base-size-16); height: var(--base-size-16); margin: 0; /* 2px to center align with label (20px line-height) */ margin-top: var(--base-size-2); cursor: pointer; background-color: var(--bgColor-default); border-color: var(--control-borderColor-emphasis); border-style: solid; border-width: var(--borderWidth-thin); appearance: none; place-content: center; &:disabled { background-color: var(--control-bgColor-disabled); border-color: var(--control-borderColor-disabled); } } :where(.prc_Heading_6CmGO) { margin: 0; font-size: var(--text-title-size-large); font-weight: var(--base-text-weight-semibold); &:where([data-variant='large']) { font: var(--text-title-shorthand-large); } &:where([data-variant='medium']) { font: var(--text-title-shorthand-medium); } &:where([data-variant='small']) { font: var(--text-title-shorthand-small); } } .prc_ActionListHeader_lEr8v { margin-block-end: var(--base-size-8); &:where([data-list-variant='full']) { margin-inline-start: var(--base-size-8); } &:where([data-list-variant='inset']) { /* stylelint-disable-next-line primer/spacing */ margin-inline-start: calc(var(--control-medium-paddingInline-condensed) + var(--base-size-8)); } } /* stylelint-disable max-nesting-depth, selector-max-specificity, selector-max-compound-selectors */ .prc_ActionList_X4RiC { padding: 0; margin: 0; list-style: none; ul { padding: 0; margin: 0; list-style: none; } &:where([data-variant='inset']) { padding-block: var(--base-size-8); /* this is only to match default experience */ & .prc_ActionListItem_uq6I7 { margin-inline: var(--base-size-8); } } &:where([data-dividers='true']) { /* place dividers on the wrapper that excludes leading visuals/actions */ & .prc_ActionListSubContent_lP9xj::before { position: absolute; /* use this top size after FF removed */ /* top: calc(-1 * var(--control-medium-paddingBlock)); */ /* stylelint-disable-next-line primer/spacing */ top: -7px; display: block; width: 100%; height: 1px; content: ''; /* stylelint-disable-next-line primer/colors */ background: var(--borderColor-muted); } /* if inline description, move pseudo divider to description wrapper */ & [data-description-variant='inline'] { &::before { position: absolute; /* use this top size after FF removed */ /* top: calc(-1 * var(--control-medium-paddingBlock)); */ /* stylelint-disable-next-line primer/spacing */ top: -7px; display: block; width: 100%; height: var(--borderWidth-thin); content: ''; /* stylelint-disable-next-line primer/colors */ background: var(--borderColor-muted); } /* remove the default divider */ & .prc_ActionListSubContent_lP9xj::before { content: unset; } } /* hide if item is first of type with label::before, or is the first item after a sectionDivider */ .prc_ActionListItem_uq6I7:first-of-type .prc_ActionListSubContent_lP9xj::before, .prc_Divider_rsZFG + .prc_ActionListItem_uq6I7 .prc_ActionListSubContent_lP9xj::before { visibility: hidden; } /* hide if item is first of type with label::before, or is the first item after a sectionDivider */ .prc_ActionListItem_uq6I7:first-of-type [data-description-variant='inline']::before, .prc_Divider_rsZFG + .prc_ActionListItem_uq6I7 [data-description-variant='inline']::before { visibility: hidden; } } /* Make sure that the first visible item isn't a divider */ & .prc_Divider_rsZFG:first-child { display: none; } } /* ActionListItem is a li that handles visual state, while ActionListItemContent controls actual state via button or link */ .prc_ActionListItem_uq6I7 { position: relative; list-style: none; background-color: var(--control-transparent-bgColor-rest); border-radius: var(--borderRadius-medium); /* apply flex if trailing action exists as an immediate child */ &:has(> .prc_TrailingAction_RmUk1) { display: flex; flex-wrap: nowrap; } /* state */ &:not(:has([aria-disabled], [disabled]), [aria-disabled='true'], [data-has-subitem='true']) { @media (hover: hover) { &:hover, &:active { cursor: pointer; } &:hover { background-color: var(--control-transparent-bgColor-hover); &:not([data-active], :focus-visible) { /* Support for "Windows high contrast mode" https:sarahmhigley.com/writing/whcm-quick-tips/