@primer/view-components 0.3.0-rc.d9da539f → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (66) hide show
  1. package/app/assets/javascripts/primer_view_components.js +1 -1
  2. package/app/assets/javascripts/primer_view_components.js.map +1 -1
  3. package/app/assets/styles/primer_view_components.css +4999 -1
  4. package/app/assets/styles/primer_view_components.css.map +1 -1
  5. package/app/components/primer/alpha/action_list.css +710 -1
  6. package/app/components/primer/alpha/action_list.css.json +77 -77
  7. package/app/components/primer/alpha/auto_complete.css +130 -1
  8. package/app/components/primer/alpha/auto_complete.css.json +4 -4
  9. package/app/components/primer/alpha/banner.css +131 -1
  10. package/app/components/primer/alpha/banner.css.json +2 -2
  11. package/app/components/primer/alpha/button_marketing.css +204 -1
  12. package/app/components/primer/alpha/button_marketing.css.json +9 -9
  13. package/app/components/primer/alpha/dialog.css +607 -1
  14. package/app/components/primer/alpha/dialog.css.json +10 -10
  15. package/app/components/primer/alpha/dropdown.css +265 -1
  16. package/app/components/primer/alpha/dropdown.css.json +19 -19
  17. package/app/components/primer/alpha/layout.css +398 -1
  18. package/app/components/primer/alpha/layout.css.json +16 -16
  19. package/app/components/primer/alpha/menu.css +117 -1
  20. package/app/components/primer/alpha/menu.css.json +7 -7
  21. package/app/components/primer/alpha/overlay.css +32 -1
  22. package/app/components/primer/alpha/overlay.css.json +3 -2
  23. package/app/components/primer/alpha/segmented_control.css +175 -1
  24. package/app/components/primer/alpha/segmented_control.css.json +7 -7
  25. package/app/components/primer/alpha/tab_nav.css +106 -1
  26. package/app/components/primer/alpha/tab_nav.css.json +6 -6
  27. package/app/components/primer/alpha/text_field.css +849 -1
  28. package/app/components/primer/alpha/text_field.css.json +45 -45
  29. package/app/components/primer/alpha/toggle_switch.css +228 -1
  30. package/app/components/primer/alpha/toggle_switch.css.json +10 -10
  31. package/app/components/primer/alpha/underline_nav.css +149 -1
  32. package/app/components/primer/alpha/underline_nav.css.json +8 -8
  33. package/app/components/primer/anchored_position.js +1 -3
  34. package/app/components/primer/beta/avatar.css +74 -1
  35. package/app/components/primer/beta/avatar_stack.css +138 -1
  36. package/app/components/primer/beta/avatar_stack.css.json +6 -6
  37. package/app/components/primer/beta/blankslate.css +90 -1
  38. package/app/components/primer/beta/border_box.css +279 -1
  39. package/app/components/primer/beta/border_box.css.json +4 -4
  40. package/app/components/primer/beta/breadcrumbs.css +27 -1
  41. package/app/components/primer/beta/breadcrumbs.css.json +3 -3
  42. package/app/components/primer/beta/button.css +385 -1
  43. package/app/components/primer/beta/button.css.json +16 -16
  44. package/app/components/primer/beta/button_group.css +23 -1
  45. package/app/components/primer/beta/button_group.css.json +5 -5
  46. package/app/components/primer/beta/counter.css +36 -1
  47. package/app/components/primer/beta/flash.css +150 -1
  48. package/app/components/primer/beta/label.css +105 -1
  49. package/app/components/primer/beta/label.css.json +4 -4
  50. package/app/components/primer/beta/link.css +62 -1
  51. package/app/components/primer/beta/link.css.json +3 -3
  52. package/app/components/primer/beta/popover.css +235 -1
  53. package/app/components/primer/beta/popover.css.json +29 -29
  54. package/app/components/primer/beta/progress_bar.css +26 -1
  55. package/app/components/primer/beta/progress_bar.css.json +1 -1
  56. package/app/components/primer/beta/state.css +50 -1
  57. package/app/components/primer/beta/state.css.json +1 -1
  58. package/app/components/primer/beta/subhead.css +54 -1
  59. package/app/components/primer/beta/subhead.css.json +1 -1
  60. package/app/components/primer/beta/timeline_item.css +95 -1
  61. package/app/components/primer/beta/timeline_item.css.json +1 -1
  62. package/app/components/primer/beta/truncate.css +37 -1
  63. package/app/components/primer/beta/truncate.css.json +6 -6
  64. package/app/components/primer/truncate.css +30 -1
  65. package/app/components/primer/truncate.css.json +4 -4
  66. package/package.json +1 -1
@@ -1 +1,849 @@
1
- .FormControl{display:inline-flex;flex-direction:column;gap:var(--base-size-4,.25rem)}.FormControl--fullWidth{display:flex}.FormControl-label{color:var(--fgColor-default,var(--color-fg-default));font-size:var(--text-body-size-medium,.875rem);font-weight:var(--base-text-weight-semibold,600);line-height:var(--text-body-lineHeight-medium,1.42857);-webkit-user-select:none;user-select:none}.FormControl-caption{color:var(--fgColor-muted,var(--color-fg-muted));font-weight:var(--text-caption-weight,400);margin-bottom:0}.FormControl-caption,.FormControl-inlineValidation{font-size:var(--text-caption-size,.75rem);line-height:var(--text-caption-lineHeight,1.33333)}.FormControl-inlineValidation{fill:var(--control-borderColor-danger,var(--color-danger-emphasis));align-items:flex-start;color:var(--control-borderColor-danger,var(--color-danger-emphasis));display:flex;flex-direction:row;font-weight:var(--base-text-weight-semibold,600);gap:var(--base-size-4,.25rem)}.FormControl-inlineValidation p{margin-bottom:0}.FormControl-inlineValidation--visual{align-items:center;display:flex;min-height:var(--base-size-16,1rem)}.FormControl-spacingWrapper{display:flex;flex-direction:column;row-gap:.5rem}.FormControl-horizontalGroup{column-gap:.5rem;display:flex}.FormControl-input,.FormControl-select,.FormControl-textarea{background-color:var(--bgColor-default,var(--color-canvas-default));border:var(--borderWidth-thin,max(1px,.0625rem)) solid var(--control-borderColor-rest,var(--color-btn-border));color:var(--fgColor-default,var(--color-fg-default))}.FormControl-input[disabled],.FormControl-select[disabled],.FormControl-textarea[disabled]{-webkit-text-fill-color:var(--control-fgColor-disabled,var(--color-primer-fg-disabled));background-color:var(--control-bgColor-disabled,var(--color-btn-bg));border-color:var(--control-borderColor-disabled,var(--color-btn-border));color:var(--control-fgColor-disabled,var(--color-primer-fg-disabled));cursor:not-allowed;opacity:1}.FormControl-input[invalid]:not(:focus),.FormControl-select[invalid]:not(:focus),.FormControl-textarea[invalid]:not(:focus){border-color:var(--control-borderColor-danger,var(--color-danger-emphasis))}.FormControl-input:not([type=checkbox],[type=radio]):focus,.FormControl-select:not([type=checkbox],[type=radio]):focus,.FormControl-textarea:not([type=checkbox],[type=radio]):focus{border-color:var(--focus-outlineColor,var(--color-accent-fg));box-shadow:inset 0 0 0 1px var(--focus-outlineColor,var(--color-accent-fg));outline:none}.FormControl-input:not([type=checkbox],[type=radio]):focus:not(:focus-visible),.FormControl-select:not([type=checkbox],[type=radio]):focus:not(:focus-visible),.FormControl-textarea:not([type=checkbox],[type=radio]):focus:not(:focus-visible){border-color:#0000;border-color:var(--focus-outlineColor,var(--color-accent-fg));box-shadow:inset 0 0 0 1px #0000 var(--focus-outlineColor,var(--color-accent-fg));outline:none}.FormControl-input:not([type=checkbox],[type=radio]):focus-visible,.FormControl-select:not([type=checkbox],[type=radio]):focus-visible,.FormControl-textarea:not([type=checkbox],[type=radio]):focus-visible{border-color:var(--focus-outlineColor,var(--color-accent-fg));box-shadow:inset 0 0 0 1px var(--focus-outlineColor,var(--color-accent-fg));outline:none}.FormControl-input,.FormControl-select,.FormControl-textarea{border-radius:var(--borderRadius-medium,6px);font-size:var(--text-body-size-medium,.875rem);line-height:var(--text-body-lineHeight-medium,1.42857);padding-block:calc(var(--control-medium-paddingBlock, 6px) - var(--borderWidth-thin, 1px));padding-inline:var(--control-medium-paddingInline-condensed,.5rem);transition:80ms cubic-bezier(.33,1,.68,1);transition-property:color,background-color,box-shadow,border-color;width:100%}.FormControl-input[disabled]::placeholder,.FormControl-select[disabled]::placeholder,.FormControl-textarea[disabled]::placeholder{color:var(--fgColor-disabled,var(--color-primer-fg-disabled))}.FormControl-input[readonly],.FormControl-select[readonly],.FormControl-textarea[readonly]{background-color:var(--control-bgColor-disabled,var(--color-btn-bg))}.FormControl-input::placeholder,.FormControl-select::placeholder,.FormControl-textarea::placeholder{color:var(--fgColor-muted,var(--color-fg-muted));opacity:1}.FormControl-input.FormControl-small,.FormControl-select.FormControl-small,.FormControl-textarea.FormControl-small{font-size:var(--text-body-size-small,.75rem);height:var(--control-small-size,1.75rem);padding-block:var(--control-small-paddingBlock,.25rem);padding-inline:var(--control-small-paddingInline-normal,.75rem)}.FormControl-input.FormControl-medium,.FormControl-select.FormControl-medium,.FormControl-textarea.FormControl-medium{height:var(--control-medium-size,2rem)}.FormControl-input.FormControl-large,.FormControl-select.FormControl-large,.FormControl-textarea.FormControl-large{height:var(--control-large-size,2.5rem);padding-block:var(--control-large-paddingBlock,.625rem);padding-inline:var(--control-large-paddingInline-normal,.75rem)}.FormControl-input.FormControl-inset,.FormControl-select.FormControl-inset,.FormControl-textarea.FormControl-inset{background-color:var(--bgColor-muted,var(--color-canvas-inset))}.FormControl-input.FormControl-inset:focus,.FormControl-input.FormControl-inset:focus-visible,.FormControl-select.FormControl-inset:focus,.FormControl-select.FormControl-inset:focus-visible,.FormControl-textarea.FormControl-inset:focus,.FormControl-textarea.FormControl-inset:focus-visible{background-color:var(--bgColor-default,var(--color-canvas-default))}.FormControl-input.FormControl-monospace,.FormControl-select.FormControl-monospace,.FormControl-textarea.FormControl-monospace{font-family:var(--fontStack-monospace,ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace)}.FormControl-input.FormControl-error,.FormControl-select.FormControl-error,.FormControl-textarea.FormControl-error{border-color:var(--control-borderColor-danger,var(--color-danger-emphasis))}.FormControl-input.FormControl-success,.FormControl-select.FormControl-success,.FormControl-textarea.FormControl-success{border-color:var(--control-borderColor-success,var(--color-success-emphasis))}.FormControl-input.FormControl-warning,.FormControl-select.FormControl-warning,.FormControl-textarea.FormControl-warning{border-color:var(--control-borderColor-warning,var(--color-attention-emphasis))}.FormControl-toggleSwitchInput{align-items:flex-start;display:flex;gap:var(--base-size-16,1rem)}.FormControl-input-wrap{display:grid;position:relative}.FormControl-input-wrap .FormControl-input-leadingVisualWrap{color:var(--fgColor-muted,var(--color-fg-muted));display:block;height:var(--base-size-16,1rem);left:var(--base-size-8,.5rem);pointer-events:none;position:absolute;top:var(--base-size-8,.5rem);width:var(--base-size-16,1rem)}.FormControl-input-wrap .FormControl-input-leadingVisualWrap .FormControl-input-leadingVisual{display:block;-webkit-user-select:none;user-select:none}.FormControl-input-wrap .FormControl-input-trailingAction{align-items:center;background:#0000;border:0;border-radius:var(--borderRadius-small,3px);color:var(--fgColor-muted,var(--color-fg-muted));cursor:pointer;display:grid;height:var(--control-xsmall-size,1.5rem);justify-content:center;padding:0;position:absolute;right:var(--base-size-4,.25rem);top:var(--base-size-4,.25rem);transition:.2s cubic-bezier(.3,0,.5,1);transition-property:color,background-color,border-color;width:var(--control-xsmall-size,1.5rem);z-index:4}.FormControl-input-wrap .FormControl-input-trailingAction svg{-webkit-user-select:none;user-select:none}.FormControl-input-wrap .FormControl-input-trailingAction[disabled]{color:var(--fgColor-disabled,var(--color-primer-fg-disabled));pointer-events:none}.FormControl-input-wrap .FormControl-input-trailingAction:hover{background:var(--control-transparent-bgColor-hover,var(--color-action-list-item-default-hover-bg))}.FormControl-input-wrap .FormControl-input-trailingAction:active{background:var(--control-transparent-bgColor-active,var(--color-action-list-item-default-active-bg))}.FormControl-input-wrap .FormControl-input-trailingAction.FormControl-input-trailingAction--divider:before{background:var(--borderColor-default,var(--color-border-default));content:"";display:block;height:var(--base-size-16,1rem);left:calc(var(--base-size-4,.25rem)*-1);position:absolute;top:calc((var(--control-xsmall-size,1.5rem) - var(--base-size-16,1rem))/2);width:var(--borderWidth-thin,max(1px,.0625rem))}.FormControl-input-wrap .FormControl-input-trailingAction:after{content:"";height:100%;left:50%;min-height:var(--control-medium-size,2rem) var(--control-medium-size,2rem);position:absolute;top:50%;transform:translateX(-50%) translateY(-50%);width:100%}@media (pointer:coarse){.FormControl-input-wrap .FormControl-input-trailingAction:after{min-height:var(--control-minTarget-coarse,2.75rem);min-width:var(--control-minTarget-coarse,2.75rem)}}.FormControl-input-wrap.FormControl-input-wrap--leadingVisual .FormControl-input{padding-inline-start:calc(var(--control-medium-paddingInline-condensed,.5rem) + var(--base-size-16,1rem) + var(--control-medium-gap,.5rem))}.FormControl-input-wrap.FormControl-input-wrap--trailingAction .FormControl-input{padding-inline-end:calc(var(--control-medium-paddingInline-condensed,.5rem) + var(--base-size-16,1rem) + var(--control-medium-gap,.5rem))}.FormControl-input-wrap.FormControl-input-wrap--trailingAction.FormControl-input-wrap-trailingAction--divider .FormControl-input{padding-inline-end:calc(var(--control-medium-paddingInline-condensed,.5rem) + var(--base-size-16,1rem) + var(--control-medium-gap,.5rem) + var(--borderWidth-thin,max(1px, .0625rem)))}.FormControl-input-wrap.FormControl-input-wrap--small .FormControl-input-leadingVisualWrap{left:calc(var(--control-medium-paddingInline-condensed,.5rem) - .125rem);top:calc(var(--control-medium-paddingInline-condensed,.5rem) - .125rem)}.FormControl-input-wrap.FormControl-input-wrap--small.FormControl-input-wrap--trailingAction .FormControl-input.FormControl-small{padding-inline-end:calc(var(--control-small-paddingInline-condensed,.5rem) + var(--base-size-16,1rem) + var(--control-small-gap,.25rem))}.FormControl-input-wrap.FormControl-input-wrap--small.FormControl-input-wrap--trailingAction.FormControl-input-wrap-trailingAction--divider .FormControl-input.FormControl-small{padding-inline-end:calc(var(--control-small-paddingInline-condensed,.5rem) + var(--base-size-16,1rem) + var(--control-small-gap,.25rem) + var(--borderWidth-thin,max(1px, .0625rem)))}.FormControl-input-wrap.FormControl-input-wrap--small .FormControl-input-trailingAction{height:calc(var(--control-small-size,1.75rem) - var(--base-size-8,.5rem));width:calc(var(--control-small-size,1.75rem) - var(--base-size-8,.5rem))}.FormControl-input-wrap.FormControl-input-wrap--small .FormControl-input-trailingAction:before{top:calc((var(--control-xsmall-size,1.5rem) - var(--base-size-16,1rem))/4)}.FormControl-input-wrap.FormControl-input-wrap--large .FormControl-input-leadingVisualWrap{left:var(--control-medium-paddingInline-normal,.75rem);top:var(--control-medium-paddingInline-normal,.75rem)}.FormControl-input-wrap.FormControl-input-wrap--large.FormControl-input-wrap--leadingVisual .FormControl-input.FormControl-large{padding-inline-start:calc(var(--control-large-paddingInline-normal,.75rem) + var(--base-size-16,1rem) + var(--control-large-gap,.5rem))}.FormControl-input-wrap.FormControl-input-wrap--large.FormControl-input-wrap--trailingAction .FormControl-input.FormControl-large{padding-inline-end:calc(var(--control-large-paddingInline-normal,.75rem) + var(--base-size-16,1rem) + var(--control-large-gap,.5rem))}.FormControl-input-wrap.FormControl-input-wrap--large.FormControl-input-wrap--trailingAction.FormControl-input-wrap-trailingAction--divider .FormControl-input.FormControl-large{padding-inline-end:calc(var(--control-large-paddingInline-normal,.75rem) + var(--base-size-16,1rem) + var(--control-large-gap,.5rem) + var(--borderWidth-thin,max(1px, .0625rem)))}.FormControl-input-wrap.FormControl-input-wrap--large .FormControl-input-trailingAction{height:var(--control-small-size,1.75rem);right:calc(var(--control-medium-paddingInline-condensed,.5rem) - .125rem);top:calc(var(--control-medium-paddingInline-condensed,.5rem) - .125rem);width:var(--control-small-size,1.75rem)}.FormControl-input-wrap.FormControl-input-wrap--large .FormControl-input-trailingAction:before{height:var(--base-size-20,1.25rem);top:unset}.FormControl-select-wrap{display:grid;grid-template-columns:minmax(0,auto) var(--base-size-16,1rem)}.FormControl-select-wrap:after{background-color:var(--bgColor-neutral-emphasis,var(--color-fg-subtle));content:"";grid-column:2;grid-row:1;height:var(--base-size-16,1rem);-webkit-mask:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9IiM1ODYwNjkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0ibTQuNDI3IDkuNDI3IDMuMzk2IDMuMzk2YS4yNTEuMjUxIDAgMCAwIC4zNTQgMGwzLjM5Ni0zLjM5NkEuMjUuMjUgMCAwIDAgMTEuMzk2IDlINC42MDRhLjI1LjI1IDAgMCAwLS4xNzcuNDI3ek00LjQyMyA2LjQ3IDcuODIgMy4wNzJhLjI1LjI1IDAgMCAxIC4zNTQgMEwxMS41NyA2LjQ3YS4yNS4yNSAwIDAgMS0uMTc3LjQyN0g0LjZhLjI1LjI1IDAgMCAxLS4xNzctLjQyN3oiLz48L3N2Zz4=");mask:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIGZpbGw9IiM1ODYwNjkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0ibTQuNDI3IDkuNDI3IDMuMzk2IDMuMzk2YS4yNTEuMjUxIDAgMCAwIC4zNTQgMGwzLjM5Ni0zLjM5NkEuMjUuMjUgMCAwIDAgMTEuMzk2IDlINC42MDRhLjI1LjI1IDAgMCAwLS4xNzcuNDI3ek00LjQyMyA2LjQ3IDcuODIgMy4wNzJhLjI1LjI1IDAgMCAxIC4zNTQgMEwxMS41NyA2LjQ3YS4yNS4yNSAwIDAgMS0uMTc3LjQyN0g0LjZhLjI1LjI1IDAgMCAxLS4xNzctLjQyN3oiLz48L3N2Zz4=");-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;padding-right:var(--base-size-4,.25rem);place-self:center end;pointer-events:none;width:var(--base-size-16,1rem)}.FormControl-select-wrap .FormControl-select{-webkit-appearance:none;appearance:none;grid-column:1/-1;grid-row:1;padding-right:var(--base-size-20,1.25rem)}.FormControl-checkbox-wrap,.FormControl-radio-wrap{display:inline-grid;gap:var(--base-size-8,.5rem);grid-template-columns:min-content auto}.FormControl-checkbox-wrap .FormControl-checkbox-labelWrap,.FormControl-checkbox-wrap .FormControl-radio-labelWrap,.FormControl-radio-wrap .FormControl-checkbox-labelWrap,.FormControl-radio-wrap .FormControl-radio-labelWrap{display:flex;flex-direction:column;gap:var(--base-size-4,.25rem)}.FormControl-checkbox-wrap .FormControl-label,.FormControl-radio-wrap .FormControl-label{cursor:pointer}.FormControl-check-group-wrap fieldset,.FormControl-radio-group-wrap fieldset{border:0;margin:0;padding:0}input[type=checkbox].FormControl-checkbox{background-color:var(--bgColor-default,var(--color-canvas-default));border:var(--borderWidth-thin,max(1px,.0625rem)) solid var(--control-borderColor-rest,var(--color-btn-border));color:var(--fgColor-default,var(--color-fg-default))}input.FormControl-checkbox[type=checkbox][disabled]{-webkit-text-fill-color:var(--control-fgColor-disabled,var(--color-primer-fg-disabled));background-color:var(--control-bgColor-disabled,var(--color-btn-bg));border-color:var(--control-borderColor-disabled,var(--color-btn-border));color:var(--control-fgColor-disabled,var(--color-primer-fg-disabled));cursor:not-allowed;opacity:1}input.FormControl-checkbox[type=checkbox][invalid]:not(:focus){border-color:var(--control-borderColor-danger,var(--color-danger-emphasis))}input.FormControl-checkbox[type=checkbox]:not([type=checkbox],[type=radio]):focus{border-color:var(--focus-outlineColor,var(--color-accent-fg));box-shadow:inset 0 0 0 1px var(--focus-outlineColor,var(--color-accent-fg));outline:none}input.FormControl-checkbox[type=checkbox]:not([type=checkbox],[type=radio]):focus:not(:focus-visible){border-color:#0000;border-color:var(--focus-outlineColor,var(--color-accent-fg));box-shadow:inset 0 0 0 1px #0000 var(--focus-outlineColor,var(--color-accent-fg));outline:none}input.FormControl-checkbox[type=checkbox]:not([type=checkbox],[type=radio]):focus-visible{border-color:var(--focus-outlineColor,var(--color-accent-fg));box-shadow:inset 0 0 0 1px var(--focus-outlineColor,var(--color-accent-fg));outline:none}input[type=checkbox].FormControl-checkbox{-webkit-appearance:none;appearance:none;border-color:var(--control-borderColor-emphasis,var(--color-switch-knob-border));border-radius:var(--borderRadius-small,3px);cursor:pointer;display:grid;height:var(--base-size-16,1rem);margin:.125rem 0 0;place-content:center;position:relative;transition:background-color,border-color 80ms cubic-bezier(.33,1,.68,1);width:var(--base-size-16,1rem)}input.FormControl-checkbox[type=checkbox]:before{background-color:var(--fgColor-onEmphasis,var(--color-fg-on-emphasis));clip-path:inset(var(--base-size-16,1rem) 0 0 0);content:"";height:var(--base-size-16,1rem);-webkit-mask-image:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iOSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTExLjc4LjIyYS43NS43NSAwIDAgMSAwIDEuMDYxTDQuNTIgOC41NDFhLjc1Mi43NTIgMCAwIDEtMS4wNjIgMEwuMjAyIDUuMjg1YS43NS43NSAwIDAgMSAxLjA2MS0xLjA2MWwyLjcyNSAyLjcyM0wxMC43MTguMjJhLjc1MS43NTEgMCAwIDEgMS4wNjIgMFoiIGZpbGw9IiNmZmYiLz48L3N2Zz4=");mask-image:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iOSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTExLjc4LjIyYS43NS43NSAwIDAgMSAwIDEuMDYxTDQuNTIgOC41NDFhLjc1Mi43NTIgMCAwIDEtMS4wNjIgMEwuMjAyIDUuMjg1YS43NS43NSAwIDAgMSAxLjA2MS0xLjA2MWwyLjcyNSAyLjcyM0wxMC43MTguMjJhLjc1MS43NTEgMCAwIDEgMS4wNjIgMFoiIGZpbGw9IiNmZmYiLz48L3N2Zz4=");-webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:75%;mask-size:75%;transition:visibility 0s linear .23s;visibility:hidden;width:var(--base-size-16,1rem)}@media screen and (prefers-reduced-motion:no-preference){input.FormControl-checkbox[type=checkbox]:before{animation:checkmarkOut 80ms cubic-bezier(.65,0,.35,1) forwards}}input.FormControl-checkbox[type=checkbox]:after{content:"";height:100%;left:50%;min-height:var(--control-medium-size,2rem) var(--control-medium-size,2rem);position:absolute;top:50%;transform:translateX(-50%) translateY(-50%);width:100%}input.FormControl-checkbox[type=checkbox][disabled]~.FormControl-checkbox-labelWrap .FormControl-label,input.FormControl-checkbox[type=checkbox][disabled]~.FormControl-radio-labelWrap .FormControl-label{color:var(--control-fgColor-disabled,var(--color-primer-fg-disabled));cursor:not-allowed}input.FormControl-checkbox[type=checkbox]:checked{background:var(--control-checked-bgColor-rest,var(--color-switch-track-checked-bg));border-color:var(--control-checked-borderColor-rest,var(--color-switch-track-checked-bg));transition:background-color,border-color 80ms cubic-bezier(.32,0,.67,0) 0ms}input.FormControl-checkbox[type=checkbox]:checked:before{transition:visibility 0s linear 0s;visibility:visible}@media screen and (prefers-reduced-motion:no-preference){input.FormControl-checkbox[type=checkbox]:checked:before{animation:checkmarkIn 80ms cubic-bezier(.65,0,.35,1) 80ms forwards}}input.FormControl-checkbox[type=checkbox]:checked:disabled{background-color:var(--control-fgColor-disabled,var(--color-primer-fg-disabled));border-color:var(--control-fgColor-disabled,var(--color-primer-fg-disabled));cursor:not-allowed;opacity:1}input.FormControl-checkbox[type=checkbox]:checked:disabled:before{background-color:var(--fgColor-onEmphasis,var(--color-fg-on-emphasis))}@media (forced-colors:active){input.FormControl-checkbox[type=checkbox]:checked{background-color:canvastext;border-color:canvastext}}input.FormControl-checkbox[type=checkbox]:focus-visible{box-shadow:none;outline:2px solid var(--focus-outlineColor,var(--color-accent-fg));outline-offset:2px}input.FormControl-checkbox[type=checkbox]:indeterminate:before{-webkit-mask-image:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAiIGhlaWdodD0iMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTAgMWExIDEgMCAwIDEgMS0xaDhhMSAxIDAgMSAxIDAgMkgxYTEgMSAwIDAgMS0xLTFaIiBmaWxsPSIjZmZmIi8+PC9zdmc+");mask-image:url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAiIGhlaWdodD0iMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTAgMWExIDEgMCAwIDEgMS0xaDhhMSAxIDAgMSAxIDAgMkgxYTEgMSAwIDAgMS0xLTFaIiBmaWxsPSIjZmZmIi8+PC9zdmc+");visibility:visible}input[type=radio].FormControl-radio{background-color:var(--bgColor-default,var(--color-canvas-default));border:var(--borderWidth-thin,max(1px,.0625rem)) solid var(--control-borderColor-rest,var(--color-btn-border));color:var(--fgColor-default,var(--color-fg-default))}input.FormControl-radio[type=radio][disabled]{-webkit-text-fill-color:var(--control-fgColor-disabled,var(--color-primer-fg-disabled));background-color:var(--control-bgColor-disabled,var(--color-btn-bg));border-color:var(--control-borderColor-disabled,var(--color-btn-border));color:var(--control-fgColor-disabled,var(--color-primer-fg-disabled));cursor:not-allowed;opacity:1}input.FormControl-radio[type=radio][invalid]:not(:focus){border-color:var(--control-borderColor-danger,var(--color-danger-emphasis))}input.FormControl-radio[type=radio]:not([type=checkbox],[type=radio]):focus{border-color:var(--focus-outlineColor,var(--color-accent-fg));box-shadow:inset 0 0 0 1px var(--focus-outlineColor,var(--color-accent-fg));outline:none}input.FormControl-radio[type=radio]:not([type=checkbox],[type=radio]):focus:not(:focus-visible){border-color:#0000;border-color:var(--focus-outlineColor,var(--color-accent-fg));box-shadow:inset 0 0 0 1px #0000 var(--focus-outlineColor,var(--color-accent-fg));outline:none}input.FormControl-radio[type=radio]:not([type=checkbox],[type=radio]):focus-visible{border-color:var(--focus-outlineColor,var(--color-accent-fg));box-shadow:inset 0 0 0 1px var(--focus-outlineColor,var(--color-accent-fg));outline:none}input[type=radio].FormControl-radio{-webkit-appearance:none;appearance:none;border-color:var(--control-borderColor-emphasis,var(--color-switch-knob-border));border-radius:var(--borderRadius-full,100vh);cursor:pointer;height:var(--base-size-16,1rem);margin:.125rem 0 0;position:relative;transition:background-color,border-color 80ms cubic-bezier(.33,1,.68,1);width:var(--base-size-16,1rem)}input.FormControl-radio[type=radio]:after{content:"";height:100%;left:50%;min-height:var(--control-medium-size,2rem) var(--control-medium-size,2rem);position:absolute;top:50%;transform:translateX(-50%) translateY(-50%);width:100%}input.FormControl-radio[type=radio]:checked{border-color:var(--control-checked-borderColor-rest,var(--color-switch-track-checked-bg));border-width:var(--base-size-4,.25rem)}input.FormControl-radio[type=radio]:checked:disabled{border-color:var(--control-fgColor-disabled,var(--color-primer-fg-disabled));cursor:not-allowed}input.FormControl-radio[type=radio]:focus-visible{box-shadow:none;outline:2px solid var(--focus-outlineColor,var(--color-accent-fg));outline-offset:2px}@media (forced-colors:active){input[type=radio].FormControl-radio{background-color:canvastext;border-color:canvastext}}@keyframes checkmarkIn{0%{clip-path:inset(var(--base-size-16,1rem) 0 0 0)}to{clip-path:inset(0 0 0 0)}}@keyframes checkmarkOut{0%{clip-path:inset(0 0 0 0)}to{clip-path:inset(var(--base-size-16,1rem) 0 0 0)}}
1
+ /* FormControl */
2
+
3
+ /* groups label, field, caption and inline error message */
4
+
5
+ .FormControl {
6
+ display: inline-flex;
7
+ flex-direction: column;
8
+ gap: var(--base-size-4,0.25rem);
9
+ }
10
+
11
+ /* fill container */
12
+
13
+ .FormControl--fullWidth {
14
+ display: flex;
15
+ }
16
+
17
+ /* <label> */
18
+
19
+ .FormControl-label {
20
+ font-size: var(--text-body-size-medium,0.875rem);
21
+ font-weight: var(--base-text-weight-semibold,600);
22
+ line-height: var(--text-body-lineHeight-medium,calc(20/14));
23
+ color: var(--fgColor-default,var(--color-fg-default));
24
+ -webkit-user-select: none;
25
+ user-select: none;
26
+ }
27
+
28
+ /* optional caption */
29
+
30
+ .FormControl-caption {
31
+ margin-bottom: 0;
32
+ font-size: var(--text-caption-size,0.75rem);
33
+ font-weight: var(--text-caption-weight,400);
34
+ line-height: var(--text-caption-lineHeight,calc(16/12));
35
+ color: var(--fgColor-muted,var(--color-fg-muted));
36
+ }
37
+
38
+ /* inline validation message */
39
+
40
+ .FormControl-inlineValidation {
41
+ display: flex;
42
+ font-size: var(--text-caption-size,0.75rem);
43
+ line-height: var(--text-caption-lineHeight,calc(16/12));
44
+ font-weight: var(--base-text-weight-semibold,600);
45
+ color: var(--control-borderColor-danger,var(--color-danger-emphasis));
46
+ fill: var(--control-borderColor-danger,var(--color-danger-emphasis));
47
+ flex-direction: row;
48
+ align-items: flex-start;
49
+ gap: var(--base-size-4,0.25rem);
50
+ }
51
+
52
+ .FormControl-inlineValidation p {
53
+ margin-bottom: 0;
54
+ }
55
+
56
+ .FormControl-inlineValidation--visual {
57
+ align-items: center;
58
+ display: flex;
59
+ min-height: var(--base-size-16,1rem);
60
+ }
61
+
62
+ .FormControl-spacingWrapper {
63
+ display: flex;
64
+ flex-direction: column;
65
+ row-gap: 0.5rem;
66
+ }
67
+
68
+ .FormControl-horizontalGroup {
69
+ display: flex;
70
+ column-gap: 0.5rem;
71
+ }
72
+
73
+ /* shared among all form control components (input, select, textarea, checkbox, radio) */
74
+
75
+ /* TextInput structure
76
+ ** ===================
77
+ **
78
+ ** .FormControl
79
+ ** ├─ .FormControl-label
80
+ ** │ ├─ .FormControl-input-wrap
81
+ ** │ │ ├─ .FormControl-input-leadingVisualWrap
82
+ ** │ │ │ ├─ .FormControl-input-leadingVisual
83
+ ** │ │ ├─ .FormControl-input
84
+ ** │ │ ├─ .FormControl-input-trailingAction
85
+ ** ├─ .FormControl-inlineValidation
86
+ ** ├─ .FormControl-caption */
87
+
88
+ /* // Select structure
89
+ ** ===================
90
+ **
91
+ ** .FormControl
92
+ ** ├─ .FormControl-label
93
+ ** │ ├─ .FormControl-select-wrap
94
+ ** │ │ ├─ .FormControl-select
95
+ ** ├─ .FormControl-inlineValidation
96
+ ** ├─ .FormControl-caption */
97
+
98
+ /* // Textarea structure
99
+ ** ===================
100
+ **
101
+ ** .FormControl
102
+ ** ├─ .FormControl-label
103
+ ** ├─ .FormControl-textarea
104
+ ** ├─ .FormControl-inlineValidation
105
+ ** ├─ .FormControl-caption */
106
+
107
+ .FormControl-input,
108
+ .FormControl-select,
109
+ .FormControl-textarea {
110
+ color: var(--fgColor-default,var(--color-fg-default));
111
+ background-color: var(--bgColor-default,var(--color-canvas-default));
112
+ border: var(--borderWidth-thin,max(1px, 0.0625rem)) solid var(--control-borderColor-rest,var(--color-btn-border));
113
+ }
114
+
115
+ .FormControl-input[disabled], .FormControl-select[disabled], .FormControl-textarea[disabled] {
116
+ color: var(--control-fgColor-disabled,var(--color-primer-fg-disabled));
117
+ cursor: not-allowed;
118
+ background-color: var(--control-bgColor-disabled,var(--color-btn-bg));
119
+ border-color: var(--control-borderColor-disabled,var(--color-btn-border));
120
+ opacity: 1;
121
+ -webkit-text-fill-color: var(--control-fgColor-disabled,var(--color-primer-fg-disabled));
122
+ }
123
+
124
+ .FormControl-input[invalid]:not(:focus), .FormControl-select[invalid]:not(:focus), .FormControl-textarea[invalid]:not(:focus) {
125
+ border-color: var(--control-borderColor-danger,var(--color-danger-emphasis));
126
+ }
127
+
128
+ .FormControl-input:not([type='checkbox'], [type='radio']):focus, .FormControl-select:not([type='checkbox'], [type='radio']):focus, .FormControl-textarea:not([type='checkbox'], [type='radio']):focus {
129
+ border-color: var(--focus-outlineColor,var(--color-accent-fg));
130
+ outline: none;
131
+ box-shadow: inset 0 0 0 1px var(--focus-outlineColor,var(--color-accent-fg));
132
+
133
+ /* remove fallback :focus if :focus-visible is supported */
134
+ }
135
+
136
+ .FormControl-input:not([type='checkbox'], [type='radio']):focus:not(:focus-visible), .FormControl-select:not([type='checkbox'], [type='radio']):focus:not(:focus-visible), .FormControl-textarea:not([type='checkbox'], [type='radio']):focus:not(:focus-visible) {
137
+ border-color: transparent;
138
+
139
+ border-color: var(--focus-outlineColor,var(--color-accent-fg));
140
+
141
+ outline: none;
142
+
143
+ box-shadow: inset 0 0 0 1px transparent var(--focus-outlineColor,var(--color-accent-fg));
144
+ }
145
+
146
+ /* default focus state */
147
+
148
+ .FormControl-input:not([type='checkbox'], [type='radio']):focus-visible, .FormControl-select:not([type='checkbox'], [type='radio']):focus-visible, .FormControl-textarea:not([type='checkbox'], [type='radio']):focus-visible {
149
+ border-color: var(--focus-outlineColor,var(--color-accent-fg));
150
+ outline: none;
151
+ box-shadow: inset 0 0 0 1px var(--focus-outlineColor,var(--color-accent-fg));
152
+ }
153
+
154
+ .FormControl-input,
155
+ .FormControl-select,
156
+ .FormControl-textarea {
157
+
158
+ width: 100%;
159
+ font-size: var(--text-body-size-medium,0.875rem);
160
+ line-height: var(--text-body-lineHeight-medium,calc(20/14));
161
+ border-radius: var(--borderRadius-medium,6px);
162
+ transition: 80ms cubic-bezier(0.33, 1, 0.68, 1);
163
+ transition-property: color, background-color, box-shadow, border-color;
164
+ padding-inline: var(--control-medium-paddingInline-condensed,0.5rem);
165
+ padding-block: calc(var(--control-medium-paddingBlock, 6px) - var(--borderWidth-thin, 1px));
166
+ }
167
+
168
+ .FormControl-input[disabled]::placeholder, .FormControl-select[disabled]::placeholder, .FormControl-textarea[disabled]::placeholder {
169
+ color: var(--fgColor-disabled,var(--color-primer-fg-disabled));
170
+ }
171
+
172
+ .FormControl-input[readonly], .FormControl-select[readonly], .FormControl-textarea[readonly] {
173
+ background-color: var(--control-bgColor-disabled,var(--color-btn-bg));
174
+ }
175
+
176
+ .FormControl-input::placeholder, .FormControl-select::placeholder, .FormControl-textarea::placeholder {
177
+ color: var(--fgColor-muted,var(--color-fg-muted));
178
+ opacity: 1;
179
+ }
180
+
181
+ /* sizes */
182
+
183
+ .FormControl-input.FormControl-small, .FormControl-select.FormControl-small, .FormControl-textarea.FormControl-small {
184
+ height: var(--control-small-size,1.75rem);
185
+ padding-inline: var(--control-small-paddingInline-normal,0.75rem);
186
+ padding-block: var(--control-small-paddingBlock,calc((1.75rem - 1.25rem) / 2));
187
+ font-size: var(--text-body-size-small,0.75rem);
188
+ }
189
+
190
+ .FormControl-input.FormControl-medium, .FormControl-select.FormControl-medium, .FormControl-textarea.FormControl-medium {
191
+ height: var(--control-medium-size,2rem);
192
+ }
193
+
194
+ .FormControl-input.FormControl-large, .FormControl-select.FormControl-large, .FormControl-textarea.FormControl-large {
195
+ height: var(--control-large-size,2.5rem);
196
+ padding-inline: var(--control-large-paddingInline-normal,0.75rem);
197
+ padding-block: var(--control-large-paddingBlock,calc((2.5rem - 1.25rem) / 2));
198
+ }
199
+
200
+ /* variants */
201
+
202
+ .FormControl-input.FormControl-inset, .FormControl-select.FormControl-inset, .FormControl-textarea.FormControl-inset {
203
+ background-color: var(--bgColor-muted,var(--color-canvas-inset));
204
+ }
205
+
206
+ .FormControl-input.FormControl-inset:focus-visible,
207
+ .FormControl-select.FormControl-inset:focus-visible,
208
+ .FormControl-textarea.FormControl-inset:focus-visible,
209
+ .FormControl-input.FormControl-inset:focus,
210
+ .FormControl-select.FormControl-inset:focus,
211
+ .FormControl-textarea.FormControl-inset:focus {
212
+ background-color: var(--bgColor-default,var(--color-canvas-default));
213
+ }
214
+
215
+ .FormControl-input.FormControl-monospace, .FormControl-select.FormControl-monospace, .FormControl-textarea.FormControl-monospace {
216
+ font-family: var(--fontStack-monospace,ui-monospace , SFMono-Regular , SF Mono , Menlo , Consolas , Liberation Mono , monospace);
217
+ }
218
+
219
+ /* validation states */
220
+
221
+ .FormControl-input.FormControl-error, .FormControl-select.FormControl-error, .FormControl-textarea.FormControl-error {
222
+ border-color: var(--control-borderColor-danger,var(--color-danger-emphasis));
223
+ }
224
+
225
+ .FormControl-input.FormControl-success, .FormControl-select.FormControl-success, .FormControl-textarea.FormControl-success {
226
+ border-color: var(--control-borderColor-success,var(--color-success-emphasis));
227
+ }
228
+
229
+ .FormControl-input.FormControl-warning, .FormControl-select.FormControl-warning, .FormControl-textarea.FormControl-warning {
230
+ border-color: var(--control-borderColor-warning,var(--color-attention-emphasis));
231
+ }
232
+
233
+ .FormControl-toggleSwitchInput {
234
+ display: flex;
235
+ align-items: flex-start;
236
+ gap: var(--base-size-16,1rem);
237
+ }
238
+
239
+ /* positioning for leading/trailing items for TextInput */
240
+
241
+ .FormControl-input-wrap {
242
+ position: relative;
243
+ display: grid;
244
+ }
245
+
246
+ .FormControl-input-wrap .FormControl-input-leadingVisualWrap {
247
+ position: absolute;
248
+ top: var(--base-size-8,0.5rem);
249
+ left: var(--base-size-8,0.5rem);
250
+ display: block;
251
+ width: var(--base-size-16,1rem);
252
+ height: var(--base-size-16,1rem);
253
+ color: var(--fgColor-muted,var(--color-fg-muted));
254
+ pointer-events: none;
255
+
256
+ /* octicon */
257
+ }
258
+
259
+ .FormControl-input-wrap .FormControl-input-leadingVisualWrap .FormControl-input-leadingVisual {
260
+ display: block;
261
+ -webkit-user-select: none;
262
+ user-select: none;
263
+ }
264
+
265
+ /* TODO: replace with new Button component */
266
+
267
+ .FormControl-input-wrap .FormControl-input-trailingAction {
268
+ position: absolute;
269
+ top: var(--base-size-4,0.25rem);
270
+ right: var(--base-size-4,0.25rem);
271
+ z-index: 4;
272
+ display: grid;
273
+ width: var(--control-xsmall-size,1.5rem);
274
+ height: var(--control-xsmall-size,1.5rem);
275
+ padding: 0;
276
+ color: var(--fgColor-muted,var(--color-fg-muted));
277
+ cursor: pointer;
278
+ background: transparent;
279
+ border: 0;
280
+ border-radius: var(--borderRadius-small,3px);
281
+ transition: 0.2s cubic-bezier(0.3, 0, 0.5, 1);
282
+ transition-property: color, background-color, border-color;
283
+ align-items: center;
284
+ justify-content: center;
285
+ }
286
+
287
+ .FormControl-input-wrap .FormControl-input-trailingAction svg {
288
+ -webkit-user-select: none;
289
+ user-select: none;
290
+ }
291
+
292
+ .FormControl-input-wrap .FormControl-input-trailingAction[disabled] {
293
+ color: var(--fgColor-disabled,var(--color-primer-fg-disabled));
294
+ pointer-events: none;
295
+ }
296
+
297
+ .FormControl-input-wrap .FormControl-input-trailingAction:hover {
298
+ background: var(--control-transparent-bgColor-hover,var(--color-action-list-item-default-hover-bg));
299
+ }
300
+
301
+ .FormControl-input-wrap .FormControl-input-trailingAction:active {
302
+ background: var(--control-transparent-bgColor-active,var(--color-action-list-item-default-active-bg));
303
+ }
304
+
305
+ /* show vertical divider line between field and button */
306
+
307
+ .FormControl-input-wrap .FormControl-input-trailingAction.FormControl-input-trailingAction--divider::before {
308
+ position: absolute;
309
+ top: calc((var(--control-xsmall-size,1.5rem) - var(--base-size-16,1rem)) / 2);
310
+ left: calc(var(--base-size-4,0.25rem) * -1);
311
+ display: block;
312
+ width: var(--borderWidth-thin,max(1px, 0.0625rem));
313
+ height: var(--base-size-16,1rem);
314
+ content: '';
315
+ background: var(--borderColor-default,var(--color-border-default));
316
+ }
317
+
318
+ .FormControl-input-wrap .FormControl-input-trailingAction::after {
319
+ position: absolute;
320
+ top: 50%;
321
+ left: 50%;
322
+ width: 100%;
323
+ height: 100%;
324
+ min-height: var(--control-medium-size,2rem) var(--control-medium-size,2rem);
325
+ content: "";
326
+ transform: translateX(-50%) translateY(-50%);
327
+ }
328
+
329
+ @media (pointer: coarse) {
330
+
331
+ .FormControl-input-wrap .FormControl-input-trailingAction::after {
332
+ min-width: var(--control-minTarget-coarse,2.75rem);
333
+ min-height: var(--control-minTarget-coarse,2.75rem);
334
+ }
335
+ }
336
+
337
+ /* if leadingVisual is present */
338
+
339
+ /*
340
+ ┌──32px──┬────────────────────┐
341
+ ╎ ┌───┐ ┌────────────────┐ ╎
342
+ ╎ 16px 16px ╎
343
+ ╎ └───┘ └────────────────┘ ╎
344
+ └───────8px───────────────────┘
345
+ */
346
+
347
+ .FormControl-input-wrap.FormControl-input-wrap--leadingVisual .FormControl-input {
348
+ padding-inline-start: calc(
349
+ var(--control-medium-paddingInline-condensed,0.5rem) + var(--base-size-16,1rem) + var(--control-medium-gap,0.5rem)
350
+ ); /* 32px */
351
+ }
352
+
353
+ /*
354
+ ┌──────────────────┬──32px──┐
355
+ ╎ ┌──────────────┐ ┌────┐ ╎
356
+ ╎ 24px 24px ╎
357
+ ╎ └──────────────┘ └────┘ ╎
358
+ └──────────────────┴────────┘
359
+ */
360
+
361
+ /* if trailingAction is present */
362
+
363
+ .FormControl-input-wrap.FormControl-input-wrap--trailingAction .FormControl-input {
364
+ padding-inline-end: calc(
365
+ var(--control-medium-paddingInline-condensed,0.5rem) + var(--base-size-16,1rem) + var(--control-medium-gap,0.5rem)
366
+ ); /* 32px */
367
+ }
368
+
369
+ /*
370
+ 32px + 1px border
371
+ ┌──────────────────┬──33px──┐
372
+ ╎ ┌──────────────┐ ┌────┐ ╎
373
+ ╎ 24px 24px ╎
374
+ ╎ └──────────────┘ └────┘ ╎
375
+ └──────────────────┴────────┘
376
+ */
377
+
378
+ /* if trailingAction divider is present, add 1px padding to accomodate input field text
379
+ ** can be refactored to has(.FormControl-input-trailingAction--divider) */
380
+
381
+ .FormControl-input-wrap.FormControl-input-wrap--trailingAction.FormControl-input-wrap-trailingAction--divider .FormControl-input {
382
+ padding-inline-end: calc(
383
+ var(--control-medium-paddingInline-condensed,0.5rem) + var(--base-size-16,1rem) + var(--control-medium-gap,0.5rem) +
384
+ var(--borderWidth-thin,max(1px, 0.0625rem))
385
+ ); /* 33px */
386
+ }
387
+
388
+ /* size modifications can be refactored with :has() - FormControl-input-wrap:has(.FormControl-large)
389
+ // sizes */
390
+
391
+ .FormControl-input-wrap.FormControl-input-wrap--small .FormControl-input-leadingVisualWrap {
392
+ top: calc(var(--control-medium-paddingInline-condensed,0.5rem) - 0.125rem); /* 6px */
393
+ left: calc(var(--control-medium-paddingInline-condensed,0.5rem) - 0.125rem); /* 6px */
394
+ }
395
+
396
+ /*
397
+ ┌──────────────────┬──28px──┐
398
+ ╎ ┌──────────────┐ ┌────┐ ╎
399
+ ╎ 20px 20px ╎
400
+ ╎ └──────────────┘ └────┘ ╎
401
+ └──────────────────┴────────┘
402
+ */
403
+
404
+ .FormControl-input-wrap.FormControl-input-wrap--small.FormControl-input-wrap--trailingAction .FormControl-input.FormControl-small {
405
+ padding-inline-end: calc(
406
+ var(--control-small-paddingInline-condensed,0.5rem) + var(--base-size-16,1rem) + var(--control-small-gap,0.25rem)
407
+ ); /* 28px */
408
+ }
409
+
410
+ /*
411
+ 28px + 1px border
412
+ ┌──────────────────┬──29px──┐
413
+ ╎ ┌──────────────┐ ┌────┐ ╎
414
+ ╎ 20px 20px ╎
415
+ ╎ └──────────────┘ └────┘ ╎
416
+ └──────────────────┴────────┘
417
+ */
418
+
419
+ .FormControl-input-wrap.FormControl-input-wrap--small.FormControl-input-wrap--trailingAction.FormControl-input-wrap-trailingAction--divider .FormControl-input.FormControl-small {
420
+ padding-inline-end: calc(
421
+ var(--control-small-paddingInline-condensed,0.5rem) + var(--base-size-16,1rem) + var(--control-small-gap,0.25rem) +
422
+ var(--borderWidth-thin,max(1px, 0.0625rem))
423
+ ); /* 29px */
424
+ }
425
+
426
+ .FormControl-input-wrap.FormControl-input-wrap--small .FormControl-input-trailingAction {
427
+ width: calc(var(--control-small-size,1.75rem) - var(--base-size-8,0.5rem));
428
+ height: calc(var(--control-small-size,1.75rem) - var(--base-size-8,0.5rem));
429
+ }
430
+
431
+ .FormControl-input-wrap.FormControl-input-wrap--small .FormControl-input-trailingAction::before {
432
+ top: calc((var(--control-xsmall-size,1.5rem) - var(--base-size-16,1rem)) / 4); /* 2px */
433
+ }
434
+
435
+ .FormControl-input-wrap.FormControl-input-wrap--large .FormControl-input-leadingVisualWrap {
436
+ top: var(--control-medium-paddingInline-normal,0.75rem);
437
+ left: var(--control-medium-paddingInline-normal,0.75rem);
438
+ }
439
+
440
+ /*
441
+ ┌──36px──┬───12px padding──────┐
442
+ ╎ ┌───┐ ┌────────────────┐ ╎
443
+ ╎ 16px 16px ╎
444
+ ╎ └───┘ └────────────────┘ ╎
445
+ └12px───8px───────────────────┘
446
+ */
447
+
448
+ .FormControl-input-wrap.FormControl-input-wrap--large.FormControl-input-wrap--leadingVisual .FormControl-input.FormControl-large {
449
+ padding-inline-start: calc(
450
+ var(--control-large-paddingInline-normal,0.75rem) + var(--base-size-16,1rem) + var(--control-large-gap,0.5rem)
451
+ ); /* 36px */
452
+ }
453
+
454
+ /*
455
+ ┌──────────────────┬──36px──┐
456
+ ╎ ┌──────────────┐ ┌────┐ ╎
457
+ ╎ 28px 28px ╎
458
+ ╎ └──────────────┘ └────┘ ╎
459
+ └──────────────────┴────────┘
460
+ */
461
+
462
+ .FormControl-input-wrap.FormControl-input-wrap--large.FormControl-input-wrap--trailingAction .FormControl-input.FormControl-large {
463
+ padding-inline-end: calc(
464
+ var(--control-large-paddingInline-normal,0.75rem) + var(--base-size-16,1rem) + var(--control-large-gap,0.5rem)
465
+ ); /* 36px */
466
+ }
467
+
468
+ /*
469
+ ┌──────────────────┬──37px──┐
470
+ ╎ ┌──────────────┐ ┌────┐ ╎
471
+ ╎ 28px 28px ╎
472
+ ╎ └──────────────┘ └────┘ ╎
473
+ └──────────────────┴────────┘
474
+ */
475
+
476
+ .FormControl-input-wrap.FormControl-input-wrap--large.FormControl-input-wrap--trailingAction.FormControl-input-wrap-trailingAction--divider .FormControl-input.FormControl-large {
477
+ padding-inline-end: calc(
478
+ var(--control-large-paddingInline-normal,0.75rem) + var(--base-size-16,1rem) + var(--control-large-gap,0.5rem) +
479
+ var(--borderWidth-thin,max(1px, 0.0625rem))
480
+ ); /* 37px */
481
+ }
482
+
483
+ .FormControl-input-wrap.FormControl-input-wrap--large .FormControl-input-trailingAction {
484
+ top: calc(var(--control-medium-paddingInline-condensed,0.5rem) - 0.125rem); /* 6px */
485
+ right: calc(var(--control-medium-paddingInline-condensed,0.5rem) - 0.125rem); /* 6px */
486
+ width: var(--control-small-size,1.75rem);
487
+ height: var(--control-small-size,1.75rem);
488
+ }
489
+
490
+ .FormControl-input-wrap.FormControl-input-wrap--large .FormControl-input-trailingAction::before {
491
+ top: unset;
492
+ height: var(--base-size-20,1.25rem);
493
+ }
494
+
495
+ .FormControl-select-wrap {
496
+ display: grid;
497
+ grid-template-columns: minmax(0, auto) var(--base-size-16,1rem);
498
+
499
+ /* mask allows for background-color to respect themes */
500
+ }
501
+
502
+ .FormControl-select-wrap::after {
503
+ width: var(--base-size-16,1rem);
504
+ height: var(--base-size-16,1rem);
505
+ padding-right: var(--base-size-4,0.25rem);
506
+ pointer-events: none;
507
+ content: '';
508
+ background-color: var(--bgColor-neutral-emphasis,var(--color-fg-subtle));
509
+ -webkit-mask: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0iIzU4NjA2OSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNC40MjcgOS40MjdsMy4zOTYgMy4zOTZhLjI1MS4yNTEgMCAwMC4zNTQgMGwzLjM5Ni0zLjM5NkEuMjUuMjUgMCAwMDExLjM5NiA5SDQuNjA0YS4yNS4yNSAwIDAwLS4xNzcuNDI3ek00LjQyMyA2LjQ3TDcuODIgMy4wNzJhLjI1LjI1IDAgMDEuMzU0IDBMMTEuNTcgNi40N2EuMjUuMjUgMCAwMS0uMTc3LjQyN0g0LjZhLjI1LjI1IDAgMDEtLjE3Ny0uNDI3eiIgLz48L3N2Zz4=');
510
+ mask: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0iIzU4NjA2OSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNC40MjcgOS40MjdsMy4zOTYgMy4zOTZhLjI1MS4yNTEgMCAwMC4zNTQgMGwzLjM5Ni0zLjM5NkEuMjUuMjUgMCAwMDExLjM5NiA5SDQuNjA0YS4yNS4yNSAwIDAwLS4xNzcuNDI3ek00LjQyMyA2LjQ3TDcuODIgMy4wNzJhLjI1LjI1IDAgMDEuMzU0IDBMMTEuNTcgNi40N2EuMjUuMjUgMCAwMS0uMTc3LjQyN0g0LjZhLjI1LjI1IDAgMDEtLjE3Ny0uNDI3eiIgLz48L3N2Zz4=');
511
+ -webkit-mask-size: contain;
512
+ mask-size: contain;
513
+ -webkit-mask-repeat: no-repeat;
514
+ mask-repeat: no-repeat;
515
+ grid-column: 2;
516
+ grid-row: 1;
517
+ place-self: center end;
518
+ }
519
+
520
+ /* spans entire grid below mask */
521
+
522
+ .FormControl-select-wrap .FormControl-select {
523
+ grid-column: 1/-1;
524
+ grid-row: 1;
525
+ -webkit-appearance: none;
526
+ appearance: none;
527
+ padding-right: var(--base-size-20,1.25rem);
528
+ }
529
+
530
+ /* checkbox + radio specific styles */
531
+
532
+ /* // Checkbox + Radio structure
533
+ ** ===================
534
+ **
535
+ ** .FormControl-radio-wrap
536
+ ** ├─ .FormControl-radio
537
+ ** ├─ .FormControl-radio-labelWrap
538
+ ** │ ├─ .FormControl-label
539
+ ** │ ├─ .FormControl-caption */
540
+
541
+ .FormControl-checkbox-wrap,
542
+ .FormControl-radio-wrap {
543
+ display: inline-grid;
544
+ grid-template-columns: min-content auto;
545
+ gap: var(--base-size-8,0.5rem);
546
+ }
547
+
548
+ .FormControl-checkbox-wrap .FormControl-checkbox-labelWrap,
549
+ .FormControl-radio-wrap .FormControl-checkbox-labelWrap,
550
+ .FormControl-checkbox-wrap .FormControl-radio-labelWrap,
551
+ .FormControl-radio-wrap .FormControl-radio-labelWrap {
552
+ display: flex;
553
+ flex-direction: column;
554
+ gap: var(--base-size-4,0.25rem);
555
+ }
556
+
557
+ .FormControl-checkbox-wrap .FormControl-label, .FormControl-radio-wrap .FormControl-label {
558
+ cursor: pointer;
559
+ }
560
+
561
+ .FormControl-radio-group-wrap fieldset {
562
+ padding: 0;
563
+ margin: 0;
564
+ border: 0;
565
+ }
566
+
567
+ .FormControl-check-group-wrap fieldset {
568
+ padding: 0;
569
+ margin: 0;
570
+ border: 0;
571
+ }
572
+
573
+ /* these selectors are temporary to override base.scss
574
+ ** once Field styles are widely adopted, we can adjust this and the global base styles */
575
+
576
+ input[type='checkbox'].FormControl-checkbox {
577
+ color: var(--fgColor-default,var(--color-fg-default));
578
+ background-color: var(--bgColor-default,var(--color-canvas-default));
579
+ border: var(--borderWidth-thin,max(1px, 0.0625rem)) solid var(--control-borderColor-rest,var(--color-btn-border));
580
+ }
581
+
582
+ input.FormControl-checkbox[type='checkbox'][disabled] {
583
+ color: var(--control-fgColor-disabled,var(--color-primer-fg-disabled));
584
+ cursor: not-allowed;
585
+ background-color: var(--control-bgColor-disabled,var(--color-btn-bg));
586
+ border-color: var(--control-borderColor-disabled,var(--color-btn-border));
587
+ opacity: 1;
588
+ -webkit-text-fill-color: var(--control-fgColor-disabled,var(--color-primer-fg-disabled));
589
+ }
590
+
591
+ input.FormControl-checkbox[type='checkbox'][invalid]:not(:focus) {
592
+ border-color: var(--control-borderColor-danger,var(--color-danger-emphasis));
593
+ }
594
+
595
+ input.FormControl-checkbox[type='checkbox']:not([type='checkbox'], [type='radio']):focus {
596
+ border-color: var(--focus-outlineColor,var(--color-accent-fg));
597
+ outline: none;
598
+ box-shadow: inset 0 0 0 1px var(--focus-outlineColor,var(--color-accent-fg));
599
+
600
+ /* remove fallback :focus if :focus-visible is supported */
601
+ }
602
+
603
+ input.FormControl-checkbox[type='checkbox']:not([type='checkbox'], [type='radio']):focus:not(:focus-visible) {
604
+ border-color: transparent;
605
+
606
+ border-color: var(--focus-outlineColor,var(--color-accent-fg));
607
+
608
+ outline: none;
609
+
610
+ box-shadow: inset 0 0 0 1px transparent var(--focus-outlineColor,var(--color-accent-fg));
611
+ }
612
+
613
+ /* default focus state */
614
+
615
+ input.FormControl-checkbox[type='checkbox']:not([type='checkbox'], [type='radio']):focus-visible {
616
+ border-color: var(--focus-outlineColor,var(--color-accent-fg));
617
+ outline: none;
618
+ box-shadow: inset 0 0 0 1px var(--focus-outlineColor,var(--color-accent-fg));
619
+ }
620
+
621
+ input[type='checkbox'].FormControl-checkbox {
622
+
623
+ position: relative;
624
+ display: grid;
625
+ width: var(--base-size-16,1rem);
626
+ height: var(--base-size-16,1rem);
627
+ margin: 0;
628
+ margin-top: 0.125rem; /* 2px to center align with label (20px line-height) */
629
+ cursor: pointer;
630
+ border-color: var(--control-borderColor-emphasis,var(--color-switch-knob-border));
631
+ border-radius: var(--borderRadius-small,3px);
632
+ transition: background-color, border-color 80ms cubic-bezier(0.33, 1, 0.68, 1); /* checked -> unchecked - add 120ms delay to fully see animation-out */
633
+ -webkit-appearance: none;
634
+ appearance: none;
635
+ place-content: center;
636
+ }
637
+
638
+ input.FormControl-checkbox[type='checkbox']::before {
639
+ width: var(--base-size-16,1rem);
640
+ height: var(--base-size-16,1rem);
641
+ visibility: hidden;
642
+ content: '';
643
+ background-color: var(--fgColor-onEmphasis,var(--color-fg-on-emphasis));
644
+ transition: visibility 0s linear 230ms;
645
+ clip-path: inset(var(--base-size-16,1rem) 0 0 0);
646
+
647
+ /* octicon checkmark image */
648
+ -webkit-mask-image: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iOSIgdmlld0JveD0iMCAwIDEyIDkiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTEuNzgwMyAwLjIxOTYyNUMxMS45MjEgMC4zNjA0MjcgMTIgMC41NTEzMDUgMTIgMC43NTAzMTNDMTIgMC45NDkzMjEgMTEuOTIxIDEuMTQwMTkgMTEuNzgwMyAxLjI4MUw0LjUxODYgOC41NDA0MkM0LjM3Nzc1IDguNjgxIDQuMTg2ODIgOC43NiAzLjk4Nzc0IDguNzZDMy43ODg2NyA4Ljc2IDMuNTk3NzMgOC42ODEgMy40NTY4OSA4LjU0MDQyTDAuMjAxNjIyIDUuMjg2MkMwLjA2ODkyNzcgNS4xNDM4MyAtMC4wMDMzMDkwNSA0Ljk1NTU1IDAuMDAwMTE2NDkzIDQuNzYwOThDMC4wMDM1NTIwNSA0LjU2NjQzIDAuMDgyMzg5NCA0LjM4MDgxIDAuMjIwMDMyIDQuMjQzMjFDMC4zNTc2NjUgNC4xMDU2MiAwLjU0MzM1NSA0LjAyNjgxIDAuNzM3OTcgNC4wMjMzOEMwLjkzMjU4NCA0LjAxOTk0IDEuMTIwOTMgNC4wOTIxNyAxLjI2MzM0IDQuMjI0ODJMMy45ODc3NCA2Ljk0ODM1TDEwLjcxODYgMC4yMTk2MjVDMTAuODU5NSAwLjA3ODk5MjMgMTEuMDUwNCAwIDExLjI0OTUgMEMxMS40NDg1IDAgMTEuNjM5NSAwLjA3ODk5MjMgMTEuNzgwMyAwLjIxOTYyNVoiIGZpbGw9IndoaXRlIi8+Cjwvc3ZnPgo=');
649
+ mask-image: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iOSIgdmlld0JveD0iMCAwIDEyIDkiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTEuNzgwMyAwLjIxOTYyNUMxMS45MjEgMC4zNjA0MjcgMTIgMC41NTEzMDUgMTIgMC43NTAzMTNDMTIgMC45NDkzMjEgMTEuOTIxIDEuMTQwMTkgMTEuNzgwMyAxLjI4MUw0LjUxODYgOC41NDA0MkM0LjM3Nzc1IDguNjgxIDQuMTg2ODIgOC43NiAzLjk4Nzc0IDguNzZDMy43ODg2NyA4Ljc2IDMuNTk3NzMgOC42ODEgMy40NTY4OSA4LjU0MDQyTDAuMjAxNjIyIDUuMjg2MkMwLjA2ODkyNzcgNS4xNDM4MyAtMC4wMDMzMDkwNSA0Ljk1NTU1IDAuMDAwMTE2NDkzIDQuNzYwOThDMC4wMDM1NTIwNSA0LjU2NjQzIDAuMDgyMzg5NCA0LjM4MDgxIDAuMjIwMDMyIDQuMjQzMjFDMC4zNTc2NjUgNC4xMDU2MiAwLjU0MzM1NSA0LjAyNjgxIDAuNzM3OTcgNC4wMjMzOEMwLjkzMjU4NCA0LjAxOTk0IDEuMTIwOTMgNC4wOTIxNyAxLjI2MzM0IDQuMjI0ODJMMy45ODc3NCA2Ljk0ODM1TDEwLjcxODYgMC4yMTk2MjVDMTAuODU5NSAwLjA3ODk5MjMgMTEuMDUwNCAwIDExLjI0OTUgMEMxMS40NDg1IDAgMTEuNjM5NSAwLjA3ODk5MjMgMTEuNzgwMyAwLjIxOTYyNVoiIGZpbGw9IndoaXRlIi8+Cjwvc3ZnPgo=');
650
+ -webkit-mask-size: 75%;
651
+ mask-size: 75%;
652
+ -webkit-mask-repeat: no-repeat;
653
+ mask-repeat: no-repeat;
654
+ -webkit-mask-position: center;
655
+ mask-position: center;
656
+ }
657
+
658
+ @media screen and (prefers-reduced-motion: no-preference) {
659
+
660
+ input.FormControl-checkbox[type='checkbox']::before {
661
+ animation: checkmarkOut 80ms cubic-bezier(0.65, 0, 0.35, 1) forwards; /* slightly snappier animation out */
662
+ }
663
+ }
664
+
665
+ /* extend touch target */
666
+
667
+ input.FormControl-checkbox[type='checkbox']::after {
668
+ position: absolute;
669
+ top: 50%;
670
+ left: 50%;
671
+ width: 100%;
672
+ height: 100%;
673
+ min-height: var(--control-medium-size,2rem) var(--control-medium-size,2rem);
674
+ content: "";
675
+ transform: translateX(-50%) translateY(-50%);
676
+ }
677
+
678
+ input.FormControl-checkbox[type='checkbox'][disabled] ~ .FormControl-checkbox-labelWrap .FormControl-label, input.FormControl-checkbox[type='checkbox'][disabled] ~ .FormControl-radio-labelWrap .FormControl-label {
679
+ color: var(--control-fgColor-disabled,var(--color-primer-fg-disabled));
680
+ cursor: not-allowed;
681
+ }
682
+
683
+ input.FormControl-checkbox[type='checkbox']:checked {
684
+ background: var(--control-checked-bgColor-rest,var(--color-switch-track-checked-bg));
685
+ border-color: var(--control-checked-borderColor-rest,var(--color-switch-track-checked-bg));
686
+ transition: background-color, border-color 80ms cubic-bezier(0.32, 0, 0.67, 0) 0ms; /* unchecked -> checked */
687
+ }
688
+
689
+ input.FormControl-checkbox[type='checkbox']:checked::before {
690
+ visibility: visible;
691
+ transition: visibility 0s linear 0s;
692
+ }
693
+
694
+ @media screen and (prefers-reduced-motion: no-preference) {
695
+
696
+ input.FormControl-checkbox[type='checkbox']:checked::before {
697
+ animation: checkmarkIn 80ms cubic-bezier(0.65, 0, 0.35, 1) forwards 80ms;
698
+ }
699
+ }
700
+
701
+ input.FormControl-checkbox[type='checkbox']:checked:disabled {
702
+ cursor: not-allowed;
703
+ background-color: var(--control-fgColor-disabled,var(--color-primer-fg-disabled));
704
+ border-color: var(--control-fgColor-disabled,var(--color-primer-fg-disabled));
705
+ opacity: 1;
706
+ }
707
+
708
+ input.FormControl-checkbox[type='checkbox']:checked:disabled::before {
709
+ background-color: var(--fgColor-onEmphasis,var(--color-fg-on-emphasis));
710
+ }
711
+
712
+ /* Windows High Contrast mode */
713
+
714
+ @media (forced-colors: active) {
715
+
716
+ input.FormControl-checkbox[type='checkbox']:checked {
717
+ background-color: canvastext;
718
+ border-color: canvastext;
719
+ }
720
+ }
721
+
722
+ input.FormControl-checkbox[type='checkbox']:focus-visible {
723
+ outline: 2px solid var(--focus-outlineColor,var(--color-accent-fg));
724
+ outline-offset: 2px;
725
+ box-shadow: none;
726
+ }
727
+
728
+ input.FormControl-checkbox[type='checkbox']:indeterminate::before {
729
+ -webkit-mask-image: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAiIGhlaWdodD0iMiIgdmlld0JveD0iMCAwIDEwIDIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMCAxQzAgMC40NDc3MTUgMC40NDc3MTUgMCAxIDBIOUM5LjU1MjI5IDAgMTAgMC40NDc3MTUgMTAgMUMxMCAxLjU1MjI4IDkuNTUyMjkgMiA5IDJIMUMwLjQ0NzcxNSAyIDAgMS41NTIyOCAwIDFaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K');
730
+ mask-image: url('data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTAiIGhlaWdodD0iMiIgdmlld0JveD0iMCAwIDEwIDIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMCAxQzAgMC40NDc3MTUgMC40NDc3MTUgMCAxIDBIOUM5LjU1MjI5IDAgMTAgMC40NDc3MTUgMTAgMUMxMCAxLjU1MjI4IDkuNTUyMjkgMiA5IDJIMUMwLjQ0NzcxNSAyIDAgMS41NTIyOCAwIDFaIiBmaWxsPSJ3aGl0ZSIvPgo8L3N2Zz4K');
731
+ visibility: visible;
732
+ }
733
+
734
+ input[type='radio'].FormControl-radio {
735
+ color: var(--fgColor-default,var(--color-fg-default));
736
+ background-color: var(--bgColor-default,var(--color-canvas-default));
737
+ border: var(--borderWidth-thin,max(1px, 0.0625rem)) solid var(--control-borderColor-rest,var(--color-btn-border));
738
+ }
739
+
740
+ input.FormControl-radio[type='radio'][disabled] {
741
+ color: var(--control-fgColor-disabled,var(--color-primer-fg-disabled));
742
+ cursor: not-allowed;
743
+ background-color: var(--control-bgColor-disabled,var(--color-btn-bg));
744
+ border-color: var(--control-borderColor-disabled,var(--color-btn-border));
745
+ opacity: 1;
746
+ -webkit-text-fill-color: var(--control-fgColor-disabled,var(--color-primer-fg-disabled));
747
+ }
748
+
749
+ input.FormControl-radio[type='radio'][invalid]:not(:focus) {
750
+ border-color: var(--control-borderColor-danger,var(--color-danger-emphasis));
751
+ }
752
+
753
+ input.FormControl-radio[type='radio']:not([type='checkbox'], [type='radio']):focus {
754
+ border-color: var(--focus-outlineColor,var(--color-accent-fg));
755
+ outline: none;
756
+ box-shadow: inset 0 0 0 1px var(--focus-outlineColor,var(--color-accent-fg));
757
+
758
+ /* remove fallback :focus if :focus-visible is supported */
759
+ }
760
+
761
+ input.FormControl-radio[type='radio']:not([type='checkbox'], [type='radio']):focus:not(:focus-visible) {
762
+ border-color: transparent;
763
+
764
+ border-color: var(--focus-outlineColor,var(--color-accent-fg));
765
+
766
+ outline: none;
767
+
768
+ box-shadow: inset 0 0 0 1px transparent var(--focus-outlineColor,var(--color-accent-fg));
769
+ }
770
+
771
+ /* default focus state */
772
+
773
+ input.FormControl-radio[type='radio']:not([type='checkbox'], [type='radio']):focus-visible {
774
+ border-color: var(--focus-outlineColor,var(--color-accent-fg));
775
+ outline: none;
776
+ box-shadow: inset 0 0 0 1px var(--focus-outlineColor,var(--color-accent-fg));
777
+ }
778
+
779
+ input[type='radio'].FormControl-radio {
780
+
781
+ position: relative;
782
+ width: var(--base-size-16,1rem);
783
+ height: var(--base-size-16,1rem);
784
+ margin: 0;
785
+ margin-top: 0.125rem; /* 2px to center align with label (20px line-height) */
786
+ cursor: pointer;
787
+ border-color: var(--control-borderColor-emphasis,var(--color-switch-knob-border));
788
+ border-radius: var(--borderRadius-full,100vh);
789
+ transition: background-color, border-color 80ms cubic-bezier(0.33, 1, 0.68, 1); /* checked -> unchecked - add 120ms delay to fully see animation-out */
790
+ -webkit-appearance: none;
791
+ appearance: none;
792
+ }
793
+
794
+ input.FormControl-radio[type='radio']::after {
795
+ position: absolute;
796
+ top: 50%;
797
+ left: 50%;
798
+ width: 100%;
799
+ height: 100%;
800
+ min-height: var(--control-medium-size,2rem) var(--control-medium-size,2rem);
801
+ content: "";
802
+ transform: translateX(-50%) translateY(-50%);
803
+ }
804
+
805
+ input.FormControl-radio[type='radio']:checked {
806
+ border-color: var(--control-checked-borderColor-rest,var(--color-switch-track-checked-bg));
807
+ border-width: var(--base-size-4,0.25rem);
808
+ }
809
+
810
+ input.FormControl-radio[type='radio']:checked:disabled {
811
+ cursor: not-allowed;
812
+ border-color: var(--control-fgColor-disabled,var(--color-primer-fg-disabled));
813
+ }
814
+
815
+ input.FormControl-radio[type='radio']:focus-visible {
816
+ outline: 2px solid var(--focus-outlineColor,var(--color-accent-fg));
817
+ outline-offset: 2px;
818
+ box-shadow: none;
819
+ }
820
+
821
+ /* Windows High Contrast mode */
822
+
823
+ @media (forced-colors: active) {
824
+
825
+ input[type='radio'].FormControl-radio {
826
+ background-color: canvastext;
827
+ border-color: canvastext;
828
+ }
829
+ }
830
+
831
+ @keyframes checkmarkIn {
832
+ from {
833
+ clip-path: inset(var(--base-size-16,1rem) 0 0 0);
834
+ }
835
+
836
+ to {
837
+ clip-path: inset(0 0 0 0);
838
+ }
839
+ }
840
+
841
+ @keyframes checkmarkOut {
842
+ from {
843
+ clip-path: inset(0 0 0 0);
844
+ }
845
+
846
+ to {
847
+ clip-path: inset(var(--base-size-16,1rem) 0 0 0);
848
+ }
849
+ }