diff --git a/.changeset/rotten-kiwis-change.md b/.changeset/rotten-kiwis-change.md
new file mode 100644
index 0000000000..430ab66288
--- /dev/null
+++ b/.changeset/rotten-kiwis-change.md
@@ -0,0 +1,6 @@
+---
+"@primer/view-components": patch
+---
+
+- Remove manual fallbacks for CSS vars
+- Update PostCSS plugin to add fallbacks at build time
diff --git a/.playwright/screenshots/snapshots.test.ts-snapshots/primer/alpha/banner/default.png b/.playwright/screenshots/snapshots.test.ts-snapshots/primer/alpha/banner/default.png
index b8239b358b..639384ef15 100644
Binary files a/.playwright/screenshots/snapshots.test.ts-snapshots/primer/alpha/banner/default.png and b/.playwright/screenshots/snapshots.test.ts-snapshots/primer/alpha/banner/default.png differ
diff --git a/.playwright/screenshots/snapshots.test.ts-snapshots/primer/alpha/banner/focused.png b/.playwright/screenshots/snapshots.test.ts-snapshots/primer/alpha/banner/focused.png
index b8239b358b..639384ef15 100644
Binary files a/.playwright/screenshots/snapshots.test.ts-snapshots/primer/alpha/banner/focused.png and b/.playwright/screenshots/snapshots.test.ts-snapshots/primer/alpha/banner/focused.png differ
diff --git a/app/components/primer/alpha/action_list.pcss b/app/components/primer/alpha/action_list.pcss
index 1daccfcfd0..f9cbf8706a 100644
--- a/app/components/primer/alpha/action_list.pcss
+++ b/app/components/primer/alpha/action_list.pcss
@@ -1,12 +1,12 @@
:root {
- --actionListContent-paddingBlock: var(--control-medium-paddingBlock, 6px);
+ --actionListContent-paddingBlock: var(--control-medium-paddingBlock);
}
/* ActionList */
.ActionListHeader {
- margin-left: var(--base-size-8, 8px);
- margin-bottom: var(--base-size-16, 16px);
+ margin-left: var(--base-size-8);
+ margin-bottom: var(--base-size-16);
}
/*
*/
@@ -15,7 +15,7 @@
}
.ActionListWrap--inset {
- padding: var(--base-size-8, 8px);
+ padding: var(--base-size-8);
}
/* list dividers */
@@ -38,7 +38,7 @@
top: calc(-1 * var(--actionListContent-paddingBlock));
display: block;
width: 100%;
- height: var(--borderWidth-thin, 1px);
+ height: var(--borderWidth-thin);
content: '';
background: var(--color-action-list-item-inline-divider);
}
@@ -76,7 +76,7 @@
position: relative;
list-style: none;
background-color: transparent;
- border-radius: var(--borderRadius-medium, 6px);
+ border-radius: var(--borderRadius-medium);
/* state */
@@ -134,9 +134,9 @@
&:not(.ActionListItem--navActive, :focus-visible) {
/* Support for "Windows high contrast mode" */
- outline: solid var(--borderWidth-thin, 1px) transparent;
- outline-offset: calc(-1 * var(--borderWidth-thin, 1px));
- box-shadow: var(--borderInset-thin, 1px) var(--color-action-list-item-default-active-border);
+ outline: solid var(--borderWidth-thin) transparent;
+ outline-offset: calc(-1 * var(--borderWidth-thin));
+ box-shadow: var(--boxShadow-thin) var(--color-action-list-item-default-active-border);
}
}
}
@@ -146,9 +146,9 @@
&:not(.ActionListItem--navActive) {
/* Support for "Windows high contrast mode" https:sarahmhigley.com/writing/whcm-quick-tips/ */
- outline: solid var(--borderWidth-thin, 1px) transparent;
- outline-offset: calc(-1 * var(--borderWidth-thin, 1px));
- box-shadow: var(--borderInset-thin, 1px) var(--color-action-list-item-default-active-border);
+ outline: solid var(--borderWidth-thin) transparent;
+ outline-offset: calc(-1 * var(--borderWidth-thin));
+ box-shadow: var(--boxShadow-thin) var(--color-action-list-item-default-active-border);
}
& .ActionListItem-label::before,
@@ -161,7 +161,7 @@
/* Autocomplete [aria-selected] items */
&[aria-selected='true'] {
- font-weight: var(--base-text-weight-normal, 400);
+ font-weight: var(--base-text-weight-normal);
background: var(--color-action-list-item-default-selected-bg);
@media (hover: hover) {
@@ -178,7 +178,7 @@
/* blue accent line */
&::after {
- @mixin activeIndicatorLine calc(-1 * var(--base-size-4, 4px));
+ @mixin activeIndicatorLine calc(-1 * var(--base-size-4));
}
}
@@ -187,7 +187,7 @@
&.ActionListItem--navActive {
&:not(.ActionListItem--subItem) {
& .ActionListItem-label {
- font-weight: var(--base-text-weight-semibold, 600);
+ font-weight: var(--base-text-weight-semibold);
}
}
@@ -277,13 +277,13 @@
display: grid;
width: 100%;
padding-block: var(--actionListContent-paddingBlock);
- padding-inline: var(--control-medium-paddingInline-condensed, 8px);
+ padding-inline: var(--control-medium-paddingInline-condensed);
color: var(--color-fg-default);
text-align: left;
user-select: none;
background-color: transparent;
border: none;
- border-radius: var(--borderRadius-medium, 6px);
+ border-radius: var(--borderRadius-medium);
transition: background 33.333ms linear;
touch-action: manipulation;
-webkit-tap-highlight-color: transparent;
@@ -294,7 +294,7 @@
/* column-gap persists with empty grid-areas, margin applies only when children exist */
& > :not(:last-child) {
- margin-right: var(--control-medium-gap, 8px);
+ margin-right: var(--control-medium-gap);
}
/* state */
@@ -333,28 +333,28 @@
}
& .ActionListContent {
- padding-left: var(--base-size-24, 24px);
+ padding-left: var(--base-size-24);
}
}
/* has 16px leading visual */
&.ActionListContent--visual16 + .ActionList--subGroup {
& .ActionListContent {
- padding-left: var(--base-size-32, 32px);
+ padding-left: var(--base-size-32);
}
}
/* has 20px leading visual */
&.ActionListContent--visual20 + .ActionList--subGroup {
& .ActionListContent {
- padding-left: var(--base-size-36, 36px);
+ padding-left: var(--base-size-36);
}
}
/* has 24px leading visual */
&.ActionListContent--visual24 + .ActionList--subGroup {
& .ActionListContent {
- padding-left: var(--base-size-40, 40px);
+ padding-left: var(--base-size-40);
}
}
}
@@ -375,7 +375,7 @@
&.ActionListContent--hasActiveSubItem {
& > .ActionListItem-label {
- font-weight: var(--base-text-weight-semibold, 600);
+ font-weight: var(--base-text-weight-semibold);
}
}
}
@@ -391,7 +391,7 @@
overflow: hidden;
visibility: hidden;
opacity: 0;
- transform: translateY(calc(-1 * var(--base-size-16, 16px)));
+ transform: translateY(calc(-1 * var(--base-size-16)));
}
/* show active indicator on parent collapse if child is active */
@@ -399,7 +399,7 @@
background: var(--color-action-list-item-default-selected-bg);
& .ActionListItem-label {
- font-weight: var(--base-text-weight-semibold, 600);
+ font-weight: var(--base-text-weight-semibold);
}
&::before,
@@ -506,16 +506,16 @@
/* sizes */
&.ActionListContent--sizeLarge {
- --actionListContent-paddingBlock: var(--control-large-paddingBlock, calc((2.5rem - 1.25rem) / 2));
+ --actionListContent-paddingBlock: var(--control-large-paddingBlock);
}
&.ActionListContent--sizeXLarge {
- --actionListContent-paddingBlock: var(--control-xlarge-paddingBlock, calc((3rem - 1.25rem) / 2));
+ --actionListContent-paddingBlock: var(--control-xlarge-paddingBlock);
}
/* On pointer:coarse (mobile), all list items are large */
@media (pointer: coarse) {
- --actionListContent-paddingBlock: var(--control-large-paddingBlock, calc((2.5rem - 1.25rem) / 2));
+ --actionListContent-paddingBlock: var(--control-large-paddingBlock);
}
&.ActionListContent--blockDescription {
@@ -550,10 +550,10 @@
grid-area: label;
display: flex;
flex-direction: column;
- gap: var(--base-size-4, 4px);
+ gap: var(--base-size-4);
& .ActionListItem-label {
- font-weight: var(--base-text-weight-semibold, 600);
+ font-weight: var(--base-text-weight-semibold);
}
}
@@ -562,14 +562,14 @@
position: relative;
flex-direction: row;
align-items: baseline;
- gap: var(--base-size-8, 8px);
+ gap: var(--base-size-8);
}
/* description */
.ActionListItem-description {
- font-size: var(--text-body-size-small, 12px);
- font-weight: var(--base-text-weight-normal, 400);
- line-height: var(--text-body-lineHeight-small, calc(20 / 12));
+ font-size: var(--text-body-size-small);
+ font-weight: var(--base-text-weight-normal);
+ line-height: var(--text-body-lineHeight-small);
color: var(--color-fg-muted);
}
@@ -578,7 +578,7 @@
.ActionListItem-visual,
.ActionListItem-action {
display: flex;
- min-height: var(--control-medium-lineBoxHeight, 20px);
+ min-height: var(--control-medium-lineBoxHeight);
color: var(--color-fg-muted);
pointer-events: none;
fill: var(--color-fg-muted);
@@ -588,9 +588,9 @@
/* text */
.ActionListItem-label {
position: relative;
- font-size: var(--text-body-size-medium, 14px);
- font-weight: var(--base-text-weight-normal, 400);
- line-height: var(--text-body-lineHeight-medium, calc(20 / 14));
+ font-size: var(--text-body-size-medium);
+ font-weight: var(--base-text-weight-normal);
+ line-height: var(--text-body-lineHeight-medium);
color: var(--color-fg-default);
grid-area: label;
}
@@ -605,8 +605,8 @@
target ActionListItem--subItem for padding-left to maintain :active :after state */
.ActionListItem--subItem > .ActionListContent > .ActionListItem-label {
- font-size: var(--text-body-size-small, 12px);
- line-height: var(--text-body-lineHeight-small, calc(20 / 12));
+ font-size: var(--text-body-size-small);
+ line-height: var(--text-body-lineHeight-small);
}
/* trailing action icon button */
@@ -644,10 +644,10 @@
&:not(:empty) {
display: flex;
padding-inline: var(--actionListContent-paddingBlock);
- padding-block: var(--base-size-8, 8px);
- font-size: var(--text-body-size-small, 12px);
- line-height: var(--text-body-lineHeight-small, calc(20 / 12));
- font-weight: var(--base-text-weight-semibold, 600);
+ padding-block: var(--base-size-8);
+ font-size: var(--text-body-size-small);
+ line-height: var(--text-body-lineHeight-small);
+ font-weight: var(--base-text-weight-semibold);
color: var(--color-fg-muted);
flex-direction: column;
}
@@ -655,34 +655,34 @@
/* no children */
&:empty {
display: block;
- height: var(--borderWidth-thin, 1px);
+ height: var(--borderWidth-thin);
padding: 0;
- margin-block-start: calc(var(--base-size-8, 8px) - var(--borderWidth-thin, 1px));
- margin-block-end: var(--base-size-8, 8px);
- margin-inline: calc(-1 * var(--base-size-8, 8px));
+ margin-block-start: calc(var(--base-size-8) - var(--borderWidth-thin));
+ margin-block-end: var(--base-size-8);
+ margin-inline: calc(-1 * var(--base-size-8));
list-style: none;
background: var(--color-action-list-item-inline-divider);
border: 0;
}
& .ActionList-sectionDivider-title {
- font-size: var(--text-body-size-small, 12px);
- font-weight: var(--base-text-weight-semibold, 600);
+ font-size: var(--text-body-size-small);
+ font-weight: var(--base-text-weight-semibold);
color: var(--color-fg-muted);
}
}
.ActionList-sectionDivider--filled {
- margin-block-start: calc(var(--base-size-8, 8px) - var(--borderWidth-thin, 1px));
- margin-block-end: var(--base-size-8, 8px);
- margin-inline: calc(-1 * var(--base-size-8, 8px));
+ margin-block-start: calc(var(--base-size-8) - var(--borderWidth-thin));
+ margin-block-end: var(--base-size-8);
+ margin-inline: calc(-1 * var(--base-size-8));
background: var(--color-canvas-subtle);
- border-top: solid var(--borderWidth-thin, 1px) var(--color-action-list-item-inline-divider);
- border-bottom: solid var(--borderWidth-thin, 1px) var(--color-action-list-item-inline-divider);
+ border-top: solid var(--borderWidth-thin) var(--color-action-list-item-inline-divider);
+ border-bottom: solid var(--borderWidth-thin) var(--color-action-list-item-inline-divider);
/* if no children, treat as divider */
&:empty {
- height: var(--base-size-8, 8px);
+ height: var(--base-size-8);
box-sizing: border-box;
}
diff --git a/app/components/primer/alpha/auto_complete.pcss b/app/components/primer/alpha/auto_complete.pcss
index 52808ab45b..82cd0b1236 100644
--- a/app/components/primer/alpha/auto_complete.pcss
+++ b/app/components/primer/alpha/auto_complete.pcss
@@ -69,8 +69,8 @@
font-size: 13px;
list-style: none;
background: var(--color-canvas-overlay);
- border: var(--borderWidth-thin, 1px) solid var(--color-border-default);
- border-radius: var(--borderRadius-medium, 6px);
+ border: var(--borderWidth-thin) solid var(--color-border-default);
+ border-radius: var(--borderRadius-medium);
box-shadow: var(--color-shadow-medium);
}
@@ -82,7 +82,7 @@
width: 100%;
padding: 4px 8px;
overflow: hidden;
- font-weight: var(--base-text-weight-semibold, 600);
+ font-weight: var(--base-text-weight-semibold);
color: var(--color-fg-default);
text-align: left;
text-decoration: none;
diff --git a/app/components/primer/alpha/banner.pcss b/app/components/primer/alpha/banner.pcss
index 852ddca425..f01cb01a66 100644
--- a/app/components/primer/alpha/banner.pcss
+++ b/app/components/primer/alpha/banner.pcss
@@ -3,11 +3,11 @@
.Banner {
position: relative;
display: grid;
- padding: var(--base-size-8, 8px);
+ padding: var(--base-size-8);
color: var(--color-fg-default);
background-image: linear-gradient(var(--color-accent-subtle), var(--color-accent-subtle));
- border: var(--borderWidth-thin, max(1px, 0.0625rem)) solid var(--color-accent-muted);
- border-radius: var(--borderRadius-medium, 6px);
+ border: var(--borderWidth-thin) solid var(--color-accent-muted);
+ border-radius: var(--borderRadius-medium);
grid-auto-flow: column;
grid-template-areas: 'visual message actions close';
grid-template-columns: min-content 1fr minmax(0, auto) min-content;
@@ -22,7 +22,7 @@
grid-template-rows: min-content min-content;
& .Banner-actions {
- margin: var(--base-size-8, 8px) 0 0 var(--base-size-8, 8px);
+ margin: var(--base-size-8) 0 0 var(--base-size-8);
}
}
@@ -30,12 +30,12 @@
& .Banner-visual {
display: grid;
- padding: var(--base-size-6, 6px) var(--base-size-8, 8px);
+ padding: 0.375rem var(--base-size-8);
grid-area: visual;
align-self: start;
& > .octicon {
- margin-block: calc(var(--base-size-4, 4px) / 2);
+ margin-block: calc(var(--base-size-4) / 2);
}
& > * {
@@ -44,7 +44,7 @@
}
& .Banner-message {
- padding: var(--base-size-6, 6px) var(--base-size-8, 8px);
+ padding: 0.375rem var(--base-size-8);
grid-area: message;
align-self: center;
@@ -54,7 +54,7 @@
& .Banner-title:not(:only-child) {
margin-bottom: 0;
- font-weight: var(--base-text-weight-semibold, 600);
+ font-weight: var(--base-text-weight-semibold);
}
}
@@ -69,7 +69,7 @@
/* is this used anywhere? could not find any use, but unsure */
& .Banner-close {
grid-area: close;
- margin-left: var(--controlStack-medium-gap-condensed, 8px);
+ margin-left: var(--controlStack-medium-gap-condensed);
}
& .Banner-visual .octicon {
@@ -109,7 +109,7 @@
/* Full-width */
&.Banner--full {
- margin-top: calc(var(--borderWidth-thin, max(1px, 0.0625rem)) * -1);
+ margin-top: calc(var(--borderWidth-thin) * -1);
border-right: 0;
border-left: 0;
border-radius: 0;
@@ -117,7 +117,7 @@
@media (max-width: 767.98px) {
&.Banner--full-whenNarrow {
- margin-top: calc(var(--borderWidth-thin, max(1px, 0.0625rem)) * -1);
+ margin-top: calc(var(--borderWidth-thin) * -1);
border-right: 0;
border-left: 0;
border-radius: 0;
diff --git a/app/components/primer/alpha/button_marketing.pcss b/app/components/primer/alpha/button_marketing.pcss
index 0d57a4ae82..744089f8ff 100644
--- a/app/components/primer/alpha/button_marketing.pcss
+++ b/app/components/primer/alpha/button_marketing.pcss
@@ -8,15 +8,14 @@
/* stylelint-disable-next-line primer/typography */
font-size: 1rem;
- font-weight: var(--base-text-weight-semibold, 600);
+ font-weight: var(--base-text-weight-semibold);
line-height: 1;
color: var(--color-canvas-default);
text-align: center;
white-space: nowrap;
vertical-align: middle;
user-select: none;
- background:
- linear-gradient(180deg, rgba(255, 255, 255, 15%) 0%, rgba(255, 255, 255, 0%) 100%),
+ background: linear-gradient(180deg, rgba(255, 255, 255, 15%) 0%, rgba(255, 255, 255, 0%) 100%),
var(--color-mktg-btn-bg) !important;
border: 0;
@@ -69,7 +68,7 @@
/* default focus state */
&:focus-visible {
- @mixin focusOutline 2px, var(--color-accent-fg) ;
+ @mixin focusOutline 2px, var(--color-accent-fg);
}
&:active {
@@ -100,13 +99,11 @@
}
&:active {
-
/* stylelint-disable-next-line primer/box-shadow */
box-shadow: var(--color-fg-default) 0 0 0 3px inset !important;
}
&:disabled {
-
/* stylelint-disable-next-line primer/box-shadow */
box-shadow: var(--color-fg-subtle) 0 0 0 1px inset !important;
}
@@ -127,7 +124,6 @@
}
.btn-signup-mktg {
-
/* stylelint-disable-next-line primer/colors */
color: #fff;
@@ -135,14 +131,13 @@
background: linear-gradient(180deg, rgba(52, 183, 89, 15%) 0%, rgba(46, 164, 79, 0%) 100%), rgb(46, 164, 79) !important;
&::before {
-
/* stylelint-disable-next-line primer/colors */
background: linear-gradient(180deg, rgba(52, 183, 89, 15%) 0%, rgba(46, 164, 79, 0%) 100%) !important;
}
/* fallback :focus state */
&:focus {
- @mixin focusOutline 2px, var(--color-accent-fg) ;
+ @mixin focusOutline 2px, var(--color-accent-fg);
/* remove fallback :focus if :focus-visible is supported */
&:not(:focus-visible) {
@@ -153,20 +148,18 @@
/* default focus state */
&:focus-visible {
- @mixin focusOutline 2px, var(--color-accent-fg) ;
+ @mixin focusOutline 2px, var(--color-accent-fg);
}
}
/* Size modifiers */
.btn-small-mktg {
-
/* stylelint-disable-next-line primer/spacing */
padding: 0.625rem 1rem 0.8125rem;
}
.btn-large-mktg {
-
/* stylelint-disable-next-line primer/spacing */
padding: 16px 30px 20px !important;
diff --git a/app/components/primer/alpha/dialog.pcss b/app/components/primer/alpha/dialog.pcss
index e4d384c13f..6256f8cdce 100644
--- a/app/components/primer/alpha/dialog.pcss
+++ b/app/components/primer/alpha/dialog.pcss
@@ -19,7 +19,7 @@
white-space: normal;
flex-direction: column;
background-color: var(--color-canvas-overlay);
- border-radius: var(--borderRadius-large, 12px);
+ border-radius: var(--borderRadius-large);
box-shadow: var(--color-overlay-shadow);
opacity: 1;
@@ -154,25 +154,25 @@
flex-direction: column;
&.Overlay-header--divided {
- padding-bottom: var(--stack-padding-condensed, 8px);
- box-shadow: inset 0 calc(var(--borderWidth-thin, 1px) * -1) var(--color-border-default);
+ padding-bottom: var(--stack-padding-condensed);
+ box-shadow: inset 0 calc(var(--borderWidth-thin) * -1) var(--color-border-default);
& + .Overlay-body {
- padding-top: var(--stack-padding-normal, 16px);
+ padding-top: var(--stack-padding-normal);
}
}
&.Overlay-header--large {
& .Overlay-headerContentWrap {
& .Overlay-titleWrap {
- gap: var(--stack-gap-condensed, 8px);
+ gap: var(--stack-gap-condensed);
& .Overlay-title {
- font-size: var(--text-title-size-medium, 20px);
+ font-size: var(--text-title-size-medium);
}
& .Overlay-description {
- font-size: var(--text-body-size-medium, 14px);
+ font-size: var(--text-body-size-medium);
}
}
}
@@ -181,33 +181,33 @@
& .Overlay-headerContentWrap {
display: flex;
align-items: flex-start;
- gap: var(--stack-gap-condensed, 8px);
- padding: var(--stack-gap-condensed, 8px) var(--stack-gap-condensed, 8px) 0 var(--stack-gap-condensed, 8px);
+ gap: var(--stack-gap-condensed);
+ padding: var(--stack-gap-condensed) var(--stack-gap-condensed) 0 var(--stack-gap-condensed);
& .Overlay-actionWrap {
display: flex;
flex-direction: row;
- gap: var(--stack-gap-condensed, 8px);
+ gap: var(--stack-gap-condensed);
}
& .Overlay-titleWrap {
display: flex;
- padding: calc(var(--stack-gap-condensed, 8px) * 0.75) 0 calc(var(--stack-gap-condensed, 8px) * 0.75)
- var(--stack-gap-condensed, 8px);
+ padding: calc(var(--stack-gap-condensed) * 0.75) 0 calc(var(--stack-gap-condensed) * 0.75)
+ var(--stack-gap-condensed);
flex-direction: column;
flex-grow: 1;
- gap: var(--control-small-gap, 4px);
+ gap: var(--control-small-gap);
& .Overlay-title {
margin: 0;
- font-size: var(--text-body-size-medium, 14px);
- font-weight: var(--base-text-weight-semibold, 600);
+ font-size: var(--text-body-size-medium);
+ font-weight: var(--base-text-weight-semibold);
}
& .Overlay-description {
margin: 0;
- font-size: var(--text-body-size-small, 12px);
- font-weight: var(--base-text-weight-normal, 400);
+ font-size: var(--text-body-size-small);
+ font-weight: var(--base-text-weight-normal);
color: var(--color-fg-muted);
}
}
@@ -216,15 +216,15 @@
/* generic body content slot */
.Overlay-body {
- padding: var(--stack-padding-normal, 16px);
+ padding: var(--stack-padding-normal);
padding-top: 0;
overflow-y: auto;
scrollbar-width: thin;
- font-size: var(--text-body-size-medium, 14px);
+ font-size: var(--text-body-size-medium);
flex-grow: 1;
&.Overlay-body--paddingCondensed {
- padding: var(--stack-padding-condensed, 8px);
+ padding: var(--stack-padding-condensed);
padding-top: 0;
}
@@ -237,29 +237,29 @@
.Overlay-footer {
z-index: 1;
display: flex;
- padding: 0 var(--stack-padding-normal, 16px) var(--stack-padding-normal, 16px) var(--stack-padding-normal, 16px);
+ padding: 0 var(--stack-padding-normal) var(--stack-padding-normal) var(--stack-padding-normal);
flex-direction: row;
flex-shrink: 0;
flex-wrap: wrap;
&.Overlay-footer--divided {
- padding-top: var(--stack-padding-normal, 16px);
- box-shadow: inset 0 var(--borderWidth-thin, 1px) var(--color-border-default);
+ padding-top: var(--stack-padding-normal);
+ box-shadow: inset 0 var(--borderWidth-thin) var(--color-border-default);
}
&.Overlay-footer--alignStart {
justify-content: flex-start;
- gap: var(--stack-gap-condensed, 8px);
+ gap: var(--stack-gap-condensed);
}
&.Overlay-footer--alignCenter {
justify-content: center;
- gap: var(--stack-gap-condensed, 8px);
+ gap: var(--stack-gap-condensed);
}
&.Overlay-footer--alignEnd {
justify-content: flex-end;
- gap: var(--stack-gap-condensed, 8px);
+ gap: var(--stack-gap-condensed);
}
}
@@ -267,15 +267,15 @@
.Overlay-closeButton {
position: relative;
display: grid;
- width: var(--base-size-32, 32px);
- height: var(--base-size-32, 32px);
+ width: var(--base-size-32);
+ height: var(--base-size-32);
padding: 0;
color: var(--color-fg-muted);
cursor: pointer;
user-select: none;
background-color: transparent;
- border: var(--borderWidth-thin, 1px) solid transparent;
- border-radius: var(--borderRadius-medium, 6px);
+ border: var(--borderWidth-thin) solid transparent;
+ border-radius: var(--borderRadius-medium);
transition: 0.2s cubic-bezier(0.3, 0, 0.5, 1);
transition-property: color, background-color, border-color;
place-content: center;
@@ -285,12 +285,12 @@
&:hover,
&:focus {
background-color: var(--color-btn-hover-bg);
- border: var(--borderWidth-thin, 1px) solid var(--color-btn-hover-bg);
+ border: var(--borderWidth-thin) solid var(--color-btn-hover-bg);
}
/* Override .close-button's `border: 0` that triggers a border-color transition on hover */
&.close-button {
- border: var(--borderWidth-thin, 1px) solid transparent;
+ border: var(--borderWidth-thin) solid transparent;
}
}
@@ -343,7 +343,7 @@
& > .Overlay$(responsiveVariant) {
height: 100vh;
max-height: unset;
- border-radius: var(--borderRadius-large, 12px);
+ border-radius: var(--borderRadius-large);
border-top-left-radius: 0;
border-bottom-left-radius: 0;
@@ -360,7 +360,7 @@
& > .Overlay$(responsiveVariant) {
height: 100vh;
max-height: unset;
- border-radius: var(--borderRadius-large, 12px);
+ border-radius: var(--borderRadius-large);
border-top-right-radius: 0;
border-bottom-right-radius: 0;
@@ -378,7 +378,7 @@
width: 100vw;
height: auto;
max-height: calc(100vh - 2rem);
- border-radius: var(--borderRadius-large, 12px);
+ border-radius: var(--borderRadius-large);
border-bottom-right-radius: 0;
border-bottom-left-radius: 0;
@@ -393,7 +393,7 @@
justify-content: center;
& > .Overlay$(responsiveVariant) {
- border-radius: var(--borderRadius-large, 12px);
+ border-radius: var(--borderRadius-large);
border-top-left-radius: 0;
border-top-right-radius: 0;
diff --git a/app/components/primer/alpha/dropdown.pcss b/app/components/primer/alpha/dropdown.pcss
index 129efa563f..022df6f9ab 100644
--- a/app/components/primer/alpha/dropdown.pcss
+++ b/app/components/primer/alpha/dropdown.pcss
@@ -11,7 +11,7 @@
vertical-align: middle;
content: '';
border-style: solid;
- border-width: var(--borderWidth-thicker, 4px) var(--borderWidth-thicker, 4px) 0;
+ border-width: var(--borderWidth-thicker) var(--borderWidth-thicker) 0;
border-right-color: transparent;
border-bottom-color: transparent;
border-left-color: transparent;
@@ -26,14 +26,14 @@
left: 0;
z-index: 100;
width: 160px;
- padding-top: var(--control-small-paddingBlock, 4px);
- padding-bottom: var(--control-small-paddingBlock, 4px);
+ padding-top: var(--control-small-paddingBlock);
+ padding-bottom: var(--control-small-paddingBlock);
margin-top: 2px;
list-style: none;
background-color: var(--color-canvas-overlay);
background-clip: padding-box;
- border: var(--borderWidth-thin, 1px) solid var(--color-border-default);
- border-radius: var(--borderRadius-medium, 6px);
+ border: var(--borderWidth-thin) solid var(--color-border-default);
+ border-radius: var(--borderRadius-medium);
box-shadow: var(--color-shadow-large);
&::before,
@@ -64,7 +64,7 @@
width: auto;
& .dropdown-item {
- padding: var(--control-small-paddingBlock, 4px) var(--control-medium-paddingInline-spacious, 16px);
+ padding: var(--control-small-paddingBlock) var(--control-medium-paddingInline-spacious);
overflow: visible;
text-overflow: inherit;
}
@@ -73,8 +73,8 @@
/* Dropdown items (can be links or buttons) */
.dropdown-item {
display: block;
- padding: var(--control-small-paddingBlock, 4px) var(--control-medium-paddingInline-condensed, 8px)
- var(--control-small-paddingBlock, 4px) var(--control-medium-paddingInline-spacious, 16px);
+ padding: var(--control-small-paddingBlock) var(--control-medium-paddingInline-condensed)
+ var(--control-small-paddingBlock) var(--control-medium-paddingInline-spacious);
overflow: hidden;
color: var(--color-fg-default);
text-overflow: ellipsis;
@@ -116,13 +116,13 @@
.dropdown-divider {
display: block;
height: 0;
- margin: var(--stack-gap-condensed, 8px) 0;
- border-top: var(--borderWidth-thin, 1px) solid var(--color-border-default);
+ margin: var(--stack-gap-condensed) 0;
+ border-top: var(--borderWidth-thin) solid var(--color-border-default);
}
.dropdown-header {
- padding: var(--control-small-paddingBlock, 4px) var(--control-medium-paddingInline-spacious, 16px);
- font-size: var(--text-body-size-small, 12px);
+ padding: var(--control-small-paddingBlock) var(--control-medium-paddingInline-spacious);
+ font-size: var(--text-body-size-small);
color: var(--color-fg-muted);
}
diff --git a/app/components/primer/alpha/layout.pcss b/app/components/primer/alpha/layout.pcss
index e5e23f4cce..96da1d303a 100644
--- a/app/components/primer/alpha/layout.pcss
+++ b/app/components/primer/alpha/layout.pcss
@@ -73,7 +73,7 @@
background: var(--color-canvas-inset);
border-color: var(--color-border-default);
border-style: solid;
- border-width: var(--borderWidth-thin, 1px) 0;
+ border-width: var(--borderWidth-thin) 0;
}
}
}
@@ -255,14 +255,14 @@
}
& .Layout-main-centered-md {
- max-width: calc(var(--breakpoint-medium, 768px) + var(--Layout-sidebar-width) + var(--Layout-gutter));
+ max-width: calc(var(--breakpoint-medium) + var(--Layout-sidebar-width) + var(--Layout-gutter));
}
& .Layout-main-centered-lg {
- max-width: calc(var(--breakpoint-large, 1012px) + var(--Layout-sidebar-width) + var(--Layout-gutter));
+ max-width: calc(var(--breakpoint-large) + var(--Layout-sidebar-width) + var(--Layout-gutter));
}
& .Layout-main-centered-xl {
- max-width: calc(var(--breakpoint-xlarge, 1280px) + var(--Layout-sidebar-width) + var(--Layout-gutter));
+ max-width: calc(var(--breakpoint-xlarge) + var(--Layout-sidebar-width) + var(--Layout-gutter));
}
}
diff --git a/app/components/primer/alpha/menu.pcss b/app/components/primer/alpha/menu.pcss
index 22ecb2f7c0..07244996a6 100644
--- a/app/components/primer/alpha/menu.pcss
+++ b/app/components/primer/alpha/menu.pcss
@@ -3,37 +3,37 @@
/* A menu on the side of a page, defaults to left side. e.g. github.com/about */
.menu {
- margin-bottom: var(--stack-gap-normal, 16px);
+ margin-bottom: var(--stack-gap-normal);
list-style: none;
background-color: var(--color-canvas-default);
- border: var(--borderWidth-thin, 1px) solid var(--color-border-default);
- border-radius: var(--borderRadius-medium, 6px);
+ border: var(--borderWidth-thin) solid var(--color-border-default);
+ border-radius: var(--borderRadius-medium);
}
.menu-item {
position: relative;
display: block;
- padding: var(--control-medium-paddingInline-condensed, 8px) var(--control-medium-paddingInline-spacious, 16px);
+ padding: var(--control-medium-paddingInline-condensed) var(--control-medium-paddingInline-spacious);
color: var(--color-fg-default);
- border-bottom: var(--borderWidth-thin, 1px) solid var(--color-border-muted);
+ border-bottom: var(--borderWidth-thin) solid var(--color-border-muted);
&:first-child {
border-top: 0;
- border-top-left-radius: var(--borderRadius-medium, 6px);
- border-top-right-radius: var(--borderRadius-medium, 6px);
+ border-top-left-radius: var(--borderRadius-medium);
+ border-top-right-radius: var(--borderRadius-medium);
&::before {
- border-top-left-radius: var(--borderRadius-medium, 6px);
+ border-top-left-radius: var(--borderRadius-medium);
}
}
&:last-child {
border-bottom: 0;
- border-bottom-right-radius: var(--borderRadius-medium, 6px);
- border-bottom-left-radius: var(--borderRadius-medium, 6px);
+ border-bottom-right-radius: var(--borderRadius-medium);
+ border-bottom-left-radius: var(--borderRadius-medium);
&::before {
- border-bottom-left-radius: var(--borderRadius-medium, 6px);
+ border-bottom-left-radius: var(--borderRadius-medium);
}
}
@@ -65,14 +65,14 @@
& .octicon {
width: 16px;
- margin-right: var(--control-medium-gap, 8px);
+ margin-right: var(--control-medium-gap);
color: var(--color-fg-muted);
text-align: center;
}
& .Counter {
float: right;
- margin-left: var(--control-small-gap, 4px);
+ margin-left: var(--control-small-gap);
}
& .menu-warning {
@@ -82,7 +82,7 @@
& .avatar {
float: left;
- margin-right: var(--control-small-gap, 4px);
+ margin-right: var(--control-small-gap);
}
&.alert {
@@ -94,26 +94,26 @@
.menu-heading {
display: block;
- padding: var(--control-medium-paddingInline-condensed, 8px) var(--control-medium-paddingInline-spacious, 16px);
+ padding: var(--control-medium-paddingInline-condensed) var(--control-medium-paddingInline-spacious);
margin-top: 0;
margin-bottom: 0;
font-size: inherit;
- font-weight: var(--base-text-weight-semibold, 600);
+ font-weight: var(--base-text-weight-semibold);
color: var(--color-fg-default);
- border-bottom: var(--borderWidth-thin, 1px) solid var(--color-border-muted);
+ border-bottom: var(--borderWidth-thin) solid var(--color-border-muted);
&:hover {
text-decoration: none;
}
&:first-child {
- border-top-left-radius: var(--borderRadius-medium, 6px);
- border-top-right-radius: var(--borderRadius-medium, 6px);
+ border-top-left-radius: var(--borderRadius-medium);
+ border-top-right-radius: var(--borderRadius-medium);
}
&:last-child {
border-bottom: 0;
- border-bottom-right-radius: var(--borderRadius-medium, 6px);
- border-bottom-left-radius: var(--borderRadius-medium, 6px);
+ border-bottom-right-radius: var(--borderRadius-medium);
+ border-bottom-left-radius: var(--borderRadius-medium);
}
}
diff --git a/app/components/primer/alpha/segmented_control.pcss b/app/components/primer/alpha/segmented_control.pcss
index 6cbad8bbcd..7a71d58452 100644
--- a/app/components/primer/alpha/segmented_control.pcss
+++ b/app/components/primer/alpha/segmented_control.pcss
@@ -4,15 +4,15 @@
display: inline-flex;
list-style: none;
background-color: var(--color-segmented-control-bg);
- border-radius: var(--borderRadius-medium, 6px);
+ border-radius: var(--borderRadius-medium);
}
.SegmentedControl-item {
position: relative;
display: inline-flex;
- border: var(--borderWidth-thin, max(1px, 0.0625rem)) solid transparent;
- border-radius: var(--borderRadius-medium, 6px);
- padding: var(--control-xsmall-paddingInline-condensed, 4px);
+ border: var(--borderWidth-thin) solid transparent;
+ border-radius: var(--borderRadius-medium);
+ padding: var(--control-xsmall-paddingInline-condensed);
/* Selected ---------------------------------------- */
&.SegmentedControl-item--selected {
@@ -20,7 +20,7 @@
border-color: var(--color-segmented-control-button-selected-border);
& .Button {
- font-weight: var(--base-text-weight-semibold, 600);
+ font-weight: var(--base-text-weight-semibold);
&:hover {
background-color: transparent;
@@ -40,7 +40,7 @@
& .Button-label[data-content]::before {
display: block;
height: 0;
- font-weight: var(--base-text-weight-semibold, 600);
+ font-weight: var(--base-text-weight-semibold);
visibility: hidden;
content: attr(data-content);
}
@@ -50,82 +50,73 @@
&::before {
position: absolute;
inset: 0 0 0 -1px;
- margin-top: var(--control-medium-paddingBlock, 6px);
- margin-bottom: var(--control-medium-paddingBlock, 6px);
+ margin-top: var(--control-medium-paddingBlock);
+ margin-bottom: var(--control-medium-paddingBlock);
content: '';
- border-left: var(--borderWidth-thin, max(1px, 0.0625rem)) solid var(--color-border-default);
+ border-left: var(--borderWidth-thin) solid var(--color-border-default);
}
}
/* Button ----------------------------------------- */
& .Button {
border: 0;
- font-weight: var(--base-text-weight-normal, 400);
+ font-weight: var(--base-text-weight-normal);
transition: none;
color: var(--color-btn-text);
&:focus-visible {
- outline-offset: calc(var(--control-xsmall-paddingInline-condensed, 4px) - var(--borderWidth-thin, 1px));
- border-radius: calc(var(--borderRadius-medium, 6px) - 5px);
+ outline-offset: calc(var(--control-xsmall-paddingInline-condensed) - var(--borderWidth-thin));
+ border-radius: calc(var(--borderRadius-medium) - 5px);
}
}
& .Button--small {
height: calc(
- var(--control-small-size, 28px) - var(--control-xsmall-paddingInline-condensed, 4px) * 2 -
- var(--borderWidth-thin, 1px) * 2
+ var(--control-small-size) - var(--control-xsmall-paddingInline-condensed) * 2 - var(--borderWidth-thin) * 2
);
- padding: 0
- calc(var(--control-small-paddingInline-condensed, 8px) - var(--control-xsmall-paddingInline-condensed, 4px));
+ padding: 0 calc(var(--control-small-paddingInline-condensed) - var(--control-xsmall-paddingInline-condensed));
&.Button--iconOnly {
width: calc(
- var(--control-medium-size, 32px) - var(--control-xsmall-paddingInline-condensed, 4px) * 2 -
- var(--borderWidth-thin, 1px) * 2
+ var(--control-medium-size) - var(--control-xsmall-paddingInline-condensed) * 2 - var(--borderWidth-thin) * 2
);
&::before {
- @mixin minTouchTarget var(--control-medium-size, 32px), var(--control-medium-size, 32px);
+ @mixin minTouchTarget var(--control-medium-size), var(--control-medium-size);
}
}
}
& .Button--medium {
height: calc(
- var(--control-medium-size, 32px) - var(--control-xsmall-paddingInline-condensed, 4px) * 2 -
- var(--borderWidth-thin, 1px) * 2
+ var(--control-medium-size) - var(--control-xsmall-paddingInline-condensed) * 2 - var(--borderWidth-thin) * 2
);
- padding: 0
- calc(var(--control-medium-paddingInline-normal, 12px) - var(--control-xsmall-paddingInline-condensed, 4px));
+ padding: 0 calc(var(--control-medium-paddingInline-normal) - var(--control-xsmall-paddingInline-condensed));
&.Button--iconOnly {
width: calc(
- var(--control-medium-size, 32px) - var(--control-xsmall-paddingInline-condensed, 4px) * 2 -
- var(--borderWidth-thin, 1px) * 2
+ var(--control-medium-size) - var(--control-xsmall-paddingInline-condensed) * 2 - var(--borderWidth-thin) * 2
);
&::before {
- @mixin minTouchTarget var(--control-medium-size, 32px), var(--control-medium-size, 32px);
+ @mixin minTouchTarget var(--control-medium-size), var(--control-medium-size);
}
}
}
& .Button--large {
height: calc(
- var(--control-large-size, 40px) - var(--control-xsmall-paddingInline-condensed, 4px) * 2 -
- var(--borderWidth-thin, 1px) * 2
+ var(--control-large-size) - var(--control-xsmall-paddingInline-condensed) * 2 - var(--borderWidth-thin) * 2
);
- padding: 0
- calc(var(--control-large-paddingInline-spacious, 16px) - var(--control-xsmall-paddingInline-condensed, 4px));
+ padding: 0 calc(var(--control-large-paddingInline-spacious) - var(--control-xsmall-paddingInline-condensed));
&.Button--iconOnly {
width: calc(
- var(--control-large-size, 40px) - var(--control-xsmall-paddingInline-condensed, 4px) * 2 -
- var(--borderWidth-thin, 1px) * 2
+ var(--control-large-size) - var(--control-xsmall-paddingInline-condensed) * 2 - var(--borderWidth-thin) * 2
);
&::before {
- @mixin minTouchTarget var(--control-large-size, 40px), var(--control-large-size, 40px);
+ @mixin minTouchTarget var(--control-large-size), var(--control-large-size);
}
}
}
diff --git a/app/components/primer/alpha/tab_nav.pcss b/app/components/primer/alpha/tab_nav.pcss
index ec57dcd491..2923d8c6a3 100644
--- a/app/components/primer/alpha/tab_nav.pcss
+++ b/app/components/primer/alpha/tab_nav.pcss
@@ -3,26 +3,26 @@
/* Outer wrapper */
.tabnav {
margin-top: 0;
- margin-bottom: var(--stack-gap-normal, 16px);
- border-bottom: var(--borderWidth-thin, 1px) solid var(--color-border-default);
+ margin-bottom: var(--stack-gap-normal);
+ border-bottom: var(--borderWidth-thin) solid var(--color-border-default);
}
.tabnav-tabs {
display: flex;
- margin-bottom: calc(var(--borderWidth-thin, 1px) * -1);
+ margin-bottom: calc(var(--borderWidth-thin) * -1);
overflow: auto;
}
.tabnav-tab {
display: inline-block;
flex-shrink: 0;
- padding: var(--base-size-8, 8px) var(--control-medium-paddingInline-spacious, 16px);
- font-size: var(--text-body-size-medium, 14px);
+ padding: var(--base-size-8) var(--control-medium-paddingInline-spacious);
+ font-size: var(--text-body-size-medium);
line-height: 23px;
color: var(--color-fg-muted);
text-decoration: none;
background-color: transparent;
- border: var(--borderWidth-thin, 1px) solid transparent;
+ border: var(--borderWidth-thin) solid transparent;
border-bottom: 0;
transition: color 0.2s cubic-bezier(0.3, 0, 0.5, 1);
@@ -32,7 +32,7 @@
color: var(--color-fg-default);
background-color: var(--color-canvas-default); /* cover bottom border */
border-color: var(--color-border-default);
- border-radius: var(--borderRadius-medium, 6px) var(--borderRadius-medium, 6px) 0 0;
+ border-radius: var(--borderRadius-medium) var(--borderRadius-medium) 0 0;
& .octicon {
color: inherit;
@@ -47,7 +47,7 @@
&:focus,
&:focus-visible {
- border-radius: var(--borderRadius-medium, 6px) var(--borderRadius-medium, 6px) 0 0 !important;
+ border-radius: var(--borderRadius-medium) var(--borderRadius-medium) 0 0 !important;
outline-offset: -6px;
}
@@ -56,12 +56,12 @@
}
& .octicon {
- margin-right: var(--control-small-gap, 4px);
+ margin-right: var(--control-small-gap);
color: var(--color-fg-muted);
}
& .Counter {
- margin-left: var(--control-small-gap, 4px);
+ margin-left: var(--control-small-gap);
color: inherit;
}
}
@@ -75,7 +75,7 @@
display: inline-block;
padding-top: 10px;
margin-left: 10px;
- font-size: var(--text-body-size-small, 12px);
+ font-size: var(--text-body-size-small);
color: var(--color-fg-muted);
& > .octicon {
@@ -96,5 +96,5 @@ a.tabnav-extra:hover {
** the buttons to be floated or inline-block. */
.tabnav-btn {
- margin-left: var(--controlStack-medium-gap-condensed, 8px);
+ margin-left: var(--controlStack-medium-gap-condensed);
}
diff --git a/app/components/primer/alpha/text_field.pcss b/app/components/primer/alpha/text_field.pcss
index 5823e453dc..fb2c429916 100644
--- a/app/components/primer/alpha/text_field.pcss
+++ b/app/components/primer/alpha/text_field.pcss
@@ -4,7 +4,7 @@
.FormControl {
display: inline-flex;
flex-direction: column;
- gap: var(--base-size-4, 4px);
+ gap: var(--base-size-4);
}
/* fill container */
@@ -14,9 +14,9 @@
/*