Skip to content

feat(combobox): adding new s2 migration #3683

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 43 commits into
base: spectrum-two
Choose a base branch
from

Conversation

aramos-adobe
Copy link
Contributor

@aramos-adobe aramos-adobe commented Apr 23, 2025

Combobox S2 Migration

The new combo box is coming in with more pronounced corner radius, thicker outline, and the use of the infield button nested inside. The quiet styling has also been deprecated.

New tokens

--spectrum-combobox-font-weight
--spectrum-combobox-line-height-cjk
--spectrum-combobox-spacing-alert-icon-to-text
--spectrum-combobox-spacing-to-help-text

New mods

--mod-combobox-line-height-cjk
--mod-combobox-popover-animation-distance
--mod-combobox-spacing-alert-icon-to-text
--mod-combobox-spacing-to-help-text
--mod-combobox-textfield-background-color

How and where has this been tested?

Please tag yourself on the tests you've marked complete to confirm the tests have been run by someone other than the author.

Validation steps

Regression testing

Validate:

  1. The documentation pages for at least two other components are still loading, including:
  • The pages render correctly, are accessible, and are responsive.
  1. If components have been modified, VRTs have been run on this branch:
  • VRTs have been run and looked at.
  • Any VRT changes have been accepted (by reviewer and/or PR author), or there are no changes.

Screenshots

S1

Screenshot 2025-05-06 at 1 27 23 PM

S2

Screenshot 2025-05-06 at 1 26 55 PM

To-do list

  • I have read the contribution guidelines.
  • I have updated relevant storybook stories and templates.
  • I have tested these changes in Windows High Contrast mode.
  • If my change impacts other components, I have tested to make sure they don't break.
  • If my change impacts documentation, I have updated the documentation accordingly.
  • ✨ This pull request is ready to merge. ✨

Copy link

changeset-bot bot commented Apr 23, 2025

🦋 Changeset detected

Latest commit: 3daface

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 2 packages
Name Type
@spectrum-css/combobox Major
@spectrum-css/helptext Minor

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@aramos-adobe aramos-adobe self-assigned this Apr 23, 2025
@aramos-adobe aramos-adobe marked this pull request as draft April 23, 2025 16:30
@aramos-adobe aramos-adobe added the S2 Spectrum 2 label Apr 23, 2025
Base automatically changed from aramos-adobe/css770-infield-button-s2-migration to spectrum-two April 24, 2025 15:58
Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remaining comments which cannot be posted as a review comment to avoid GitHub Rate Limit

markdownlint-fix

[markdownlint-fix] reported by reviewdog 🐶

"--spectrum-gray-50",
"--spectrum-gray-700",
"--spectrum-gray-800",


[markdownlint-fix] reported by reviewdog 🐶

"--spectrum-negative-color-1100",


[markdownlint-fix] reported by reviewdog 🐶

"--spectrum-neutral-background-color-selected-default",
"--spectrum-neutral-background-color-selected-down",
"--spectrum-neutral-background-color-selected-hover",
"--spectrum-neutral-background-color-selected-key-focus",


[markdownlint-fix] reported by reviewdog 🐶

"--spectrum-text-to-control-100",


[markdownlint-fix] reported by reviewdog 🐶

"--highcontrast-checkbox-color-hover",


[markdownlint-fix] reported by reviewdog 🐶

"--highcontrast-checkbox-highlight-color-focus",

Copy link
Contributor

github-actions bot commented Apr 24, 2025

File metrics

Summary

Total size: 1.42 MB*
No change in file sizes

Package Size Minified Gzipped
combobox 27.47 KB 26.38 KB 3.22 KB
helptext 7.05 KB 6.75 KB 1.15 KB

File change details

combobox

Filename Head Minified Gzipped Compared to base
index.css 27.47 KB 26.38 KB 3.22 KB 🟢 ⬇ 0.61 KB
metadata.json 16.67 KB - - 🔴 ⬆ 0.83 KB

helptext

Filename Head Minified Gzipped Compared to base
index.css 7.05 KB 6.75 KB 1.15 KB 🔴 ⬆ 0.12 KB
metadata.json 3.87 KB - - 🔴 ⬆ 0.10 KB
* Size is the sum of all main files for packages in the library.
* An ASCII character in UTF-8 is 8 bits or 1 byte.

Copy link
Contributor

github-actions bot commented Apr 24, 2025

🚀 Deployed on https://pr-3683--spectrum-css.netlify.app

@aramos-adobe aramos-adobe force-pushed the aramos-adobe/css769-combox-s2-migration branch from a986db0 to ff02395 Compare April 24, 2025 20:26
@castastrophe castastrophe force-pushed the spectrum-two branch 3 times, most recently from 7e8269c to 4ce8d19 Compare May 5, 2025 21:18
@aramos-adobe aramos-adobe marked this pull request as ready for review May 6, 2025 18:14
@aramos-adobe aramos-adobe added ready-for-review size-5 L ~30-42hrs; lots of effort or complexity, most of a sprint needed to complete. run_vrt For use on PRs looking to kick off VRT labels May 6, 2025
@aramos-adobe aramos-adobe added skip_vrt Add to a PR to skip running VRT (but still pass the action) and removed run_vrt For use on PRs looking to kick off VRT labels May 6, 2025
Copy link
Collaborator

@rise-erpelding rise-erpelding left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Really nice work addressing the feedback from before! I have a few (15? 😬 ) other comments. I definitely see that I've pointed out several things that aren't new in this migration but existing issues from before that hopefully we can improve going forward.

Comment on lines 95 to 98
autocomplete: {
table: {
disable: true,
},
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a way to access autocomplete styles?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Even with &:autofill selector added the styles won't change.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmmm, yeah, I see now that the autocomplete attribute on combobox and textfield doesn't work as I would have expected it to. We still need to be able to apply those autocomplete styles though.

Looking at Web Components and React's implementations as well as MDN, it seems like maybe we'd want aria-autocomplete="list" instead? That seems to be the one that's turned on when autocomplete is working.

I don't see any added styles in index.css related to the design spec'd colors for autocomplete/autofill, did you add any? We should still have some way to make the autocomplete styles visible even if we don't implement any autocomplete functionality here so that SWC would be able to apply those autocomplete styles eventually.

My best guess would be to apply a selector like

.spectrum-Combobox-input[aria-autocomplete="list"] {
  /* Your autocomplete-specific styles here */
}

And then wire up an autocomplete Storybook control that would apply this attribute to the input, and then therefore apply the styles? Would that work?

}
}

.spectrum-Combobox {
position: relative;
display: inline-flex;
flex-flow: row nowrap;
display: inline-grid;

inline-size: var(--mod-combobox-inline-size, var(--spectrum-combobox-inline-size));
min-inline-size: var(--mod-combobox-min-inline-size, var(--spectrum-combobox-min-inline-size));
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here's another thing about combobox that I'm wondering about that I sort of touched on in another comment: Should the min-inline-size be set on .spectrum-Combobox or on .spectrum-Combobox-input? When we have a side label the input tends to shrink a lot, in this case it's about 78.5px. Since the minimum width token is a multiplier (2.5 * the height, which is 32px), it looks like for this particular size the combobox should be a minimum of 80px. Which it is, if we're talking about the field label + input width, but the input is smaller. I know this is how it was before, but was that what was intended?

image image

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@rise-erpelding Looking at the component a little closer in Figma, it looks like side label and the input are half of the combobox in width.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@aramos-adobe I placed a min inline size of 50% for both label and the content (parent containing the inputs). I have seen any weird movements yet in the button. I did place a position: relative on the .spectrum-Combobox-content to keep the button at the end of it.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the 50% min sizing helps (textfield also has its own similar min sizing calc on the input, which helps here too) and that does match the way they're doing it in the Desktop Figma side label variants I see there, but the way I understood that combo-box-minimum-width-multiplier token to work is that it applies to the textfield input or any element that's the same width as the input, such as .spectrum-Combobox-content. Instead you have the combo-box-minimum-width-multiplier token on --spectrum-combobox-min-inline-size and then it's applied to .spectrum-Combobox, which includes the width of the input but also the width of the label.

I only see one instance where that's violated: XL(mobile), where the component height is 60px, so the min-width should be 60 * 2.5 = 150px but the component is just a few px shy of meeting that min-width.
Screenshot 2025-05-27 at 9 28 35 AM

Copy link
Collaborator

@saashapina saashapina left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks really close! I had few last comments that don't seem directly related to these S2 migration changes but I thought I'd point out just in case.

}

/* TEXT INPUT */
.spectrum-Combobox-input {
padding-block-start: calc(var(--mod-combobox-spacing-block-start-edge-to-text, var(--spectrum-combobox-spacing-block-start-edge-to-text)) - var(--mod-combobox-border-width, var(--spectrum-combobox-border-width)));
padding-block-end: calc(var(--mod-combobox-spacing-block-end-edge-to-text, var(--spectrum-combobox-spacing-block-end-edge-to-text)) - var(--mod-combobox-border-width, var(--spectrum-combobox-border-width)));
background-color: var(--highcontrast-combobox-background-color-default, var(--mod-combobox-textfield-background-color, var(--spectrum-combobox-background-color-default)));
padding-inline-start: calc(var(--mod-combobox-spacing-inline-start-edge-to-text, var(--spectrum-combobox-spacing-inline-start-edge-to-text)) - var(--mod-combobox-border-width, var(--spectrum-combobox-border-width)));
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a reason why we subtract the border-width here? It looks like inline edge to start should start at the inside of the border instead of outside of it.

Screenshot 2025-05-22 at 5 49 59 PM

Screenshot 2025-05-22 at 5 55 54 PM

Firefox
Screenshot 2025-05-22 at 6 00 08 PM

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Screenshot 2025-05-27 at 8 45 24 AM
I'm wondering if this is maybe mislabeled in the token spec, in the Desktop spec it looks like the inline and block spacing does include the border width 🤷‍♀️

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@saashapina @rise-erpelding, I deconstructed the component in Figma and even if you remove the border it's still using the edge-to-text token regardless. The border/stroke line position is set to center of the combobox so it's going all the way to the edge.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To recap: @aramos-adobe and I talked this through and decided that the token spec is wrong and that the padding should be including the border (so the spacing is from the edge including the border), and therefore it does still need the calc to add only the spacing we need that isn't taken up by the border width.

}

const popoverHeight = size === "s" ? 106 : size === "l" ? 170 : size === "xl" ? 229 : 142; // default value is "m"
const adjustedPopoverHeight = showFieldLabel ? popoverHeight : popoverHeight + 32; // Subtract label height when no label

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I also noticed on the invalid tests when the combobox is expanded on size small there is a little bit of overlap with the fields below it, I'm not sure if its related to these changes or if this was an existing bug.
Medium
Screenshot 2025-05-22 at 6 14 48 PM
Large
Screenshot 2025-05-22 at 6 24 40 PM

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@saashapina It's like this on the Picker as well and any other component using the Popover. Maybe this could a bug worth reporting in the future.

Copy link
Collaborator

@rise-erpelding rise-erpelding left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added a few more comments here.

I also had one that wasn't part of the PR review that might easily get lost, we need to address the divider at some point even if we remove it from the menu here to avoid horizontal scrolling, I don't think the divider width shouldn't be determining the width of the menu.

Also, this line-height token as it's defined will be problematic in Thai due to diacritic cutoff. It may be worthwhile to ignore that token and set line-height to the component height, like we did in #3256 or #2123, we've also previously needed to modify styles in picker to address this issue like in #2914--not sure which approach is best (maybe just leave it to inherit textfield's styles?), but putting all of our previous PRs on this topic out there for context.
Screenshot 2025-05-27 at 11 57 16 AM

}

/* TEXT INPUT */
.spectrum-Combobox-input {
padding-block-start: calc(var(--mod-combobox-spacing-block-start-edge-to-text, var(--spectrum-combobox-spacing-block-start-edge-to-text)) - var(--mod-combobox-border-width, var(--spectrum-combobox-border-width)));
padding-block-end: calc(var(--mod-combobox-spacing-block-end-edge-to-text, var(--spectrum-combobox-spacing-block-end-edge-to-text)) - var(--mod-combobox-border-width, var(--spectrum-combobox-border-width)));
background-color: var(--highcontrast-combobox-background-color-default, var(--mod-combobox-textfield-background-color, var(--spectrum-combobox-background-color-default)));
padding-inline-start: calc(var(--mod-combobox-spacing-inline-start-edge-to-text, var(--spectrum-combobox-spacing-inline-start-edge-to-text)) - var(--mod-combobox-border-width, var(--spectrum-combobox-border-width)));
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Screenshot 2025-05-27 at 8 45 24 AM
I'm wondering if this is maybe mislabeled in the token spec, in the Desktop spec it looks like the inline and block spacing does include the border width 🤷‍♀️

Comment on lines 78 to 79
--mod-textfield-spacing-block-start: calc(var(--mod-combobox-spacing-block-start-edge-to-text, var(--spectrum-combobox-spacing-block-start-edge-to-text)) - var(--mod-combobox-border-width, var(--spectrum-combobox-border-width)));
--mod-textfield-spacing-block-end: calc(var(--mod-combobox-spacing-block-end-edge-to-text, var(--spectrum-combobox-spacing-block-end-edge-to-text)) - var(--mod-combobox-border-width, var(--spectrum-combobox-border-width)));
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It looks like textfield is already making the same calculation with the border so it's being subtracted twice when used in the textfield input:
Screenshot 2025-05-27 at 9 04 18 AM

}
}

.spectrum-Combobox {
position: relative;
display: inline-flex;
flex-flow: row nowrap;
display: inline-grid;

inline-size: var(--mod-combobox-inline-size, var(--spectrum-combobox-inline-size));
min-inline-size: var(--mod-combobox-min-inline-size, var(--spectrum-combobox-min-inline-size));
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the 50% min sizing helps (textfield also has its own similar min sizing calc on the input, which helps here too) and that does match the way they're doing it in the Desktop Figma side label variants I see there, but the way I understood that combo-box-minimum-width-multiplier token to work is that it applies to the textfield input or any element that's the same width as the input, such as .spectrum-Combobox-content. Instead you have the combo-box-minimum-width-multiplier token on --spectrum-combobox-min-inline-size and then it's applied to .spectrum-Combobox, which includes the width of the input but also the width of the label.

I only see one instance where that's violated: XL(mobile), where the component height is 60px, so the min-width should be 60 * 2.5 = 150px but the component is just a few px shy of meeting that min-width.
Screenshot 2025-05-27 at 9 28 35 AM

Comment on lines 95 to 98
autocomplete: {
table: {
disable: true,
},
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmmm, yeah, I see now that the autocomplete attribute on combobox and textfield doesn't work as I would have expected it to. We still need to be able to apply those autocomplete styles though.

Looking at Web Components and React's implementations as well as MDN, it seems like maybe we'd want aria-autocomplete="list" instead? That seems to be the one that's turned on when autocomplete is working.

I don't see any added styles in index.css related to the design spec'd colors for autocomplete/autofill, did you add any? We should still have some way to make the autocomplete styles visible even if we don't implement any autocomplete functionality here so that SWC would be able to apply those autocomplete styles eventually.

My best guess would be to apply a selector like

.spectrum-Combobox-input[aria-autocomplete="list"] {
  /* Your autocomplete-specific styles here */
}

And then wire up an autocomplete Storybook control that would apply this attribute to the input, and then therefore apply the styles? Would that work?

Copy link
Collaborator

@rise-erpelding rise-erpelding left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks great and I think it's mostly there! Just a couple of smaller things for this round!

}

/* TEXT INPUT */
.spectrum-Combobox-input {
padding-block-start: calc(var(--mod-combobox-spacing-block-start-edge-to-text, var(--spectrum-combobox-spacing-block-start-edge-to-text)) - var(--mod-combobox-border-width, var(--spectrum-combobox-border-width)));
padding-block-end: calc(var(--mod-combobox-spacing-block-end-edge-to-text, var(--spectrum-combobox-spacing-block-end-edge-to-text)) - var(--mod-combobox-border-width, var(--spectrum-combobox-border-width)));
background-color: var(--highcontrast-combobox-background-color-default, var(--mod-combobox-textfield-background-color, var(--spectrum-combobox-background-color-default)));
padding-inline-start: calc(var(--mod-combobox-spacing-inline-start-edge-to-text, var(--spectrum-combobox-spacing-inline-start-edge-to-text)) - var(--mod-combobox-border-width, var(--spectrum-combobox-border-width)));
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To recap: @aramos-adobe and I talked this through and decided that the token spec is wrong and that the padding should be including the border (so the spacing is from the edge including the border), and therefore it does still need the calc to add only the spacing we need that isn't taken up by the border width.

Comment on lines 378 to 380
box-shadow: 0 0 0 30px var(--spectrum-combobox-background-color-autofill) inset !important;
transition: background-color 5000s ease-in-out 0s;
-webkit-text-fill-color: var(--spectrum-neutral-content-color-default) !important;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh I'm so pumped for these styles! I also totally missed that it gets a color background (but I see that now in the Desktop spec), that was left out of the token spec, wasn't it?

A couple of small thoughts I have on this:

  • The border color should be set here, gray-800 for autocomplete.
  • Invalid border color also has tokens for the autocomplete state, but... it's the same as default so I don't think you need to add anything for that.
  • Since we're setting box-shadow and not background-color for the background color, I don't know that the transition is doing much here. It's also a really long transition!
  • Using box-shadow is a great hack here! Looking at the autocomplete state in the Desktop spec, it looks like only the highlighted text (would that be ::selection? honestly not sure) is meant to be that blue color? What if we set the box-shadow color to gray-25 (to override the user agent bg color) and then add a selector for ::selection, something that's maybe like this? (There are probably better custom props to use but just to give an example)
	&:-webkit-autofill,
	&:-webkit-autofill:hover,
	&:-webkit-autofill:focus,
	&:-webkit-autofill:active,
	&:-internal-autofill-selected,
	&.spectrum-Combobox-autocomplete {
		border-color: var(--spectrum-gray-800);
		box-shadow: 0 0 0 30px var(--spectrum-gray-25) inset !important;
		transition: background-color 5000s ease-in-out 0s; /* not sure about keeping this I'm just leaving it alone for now */
		-webkit-text-fill-color: var(--spectrum-neutral-content-color-default) !important;

		&::selection {
			background-color: var(--spectrum-combobox-background-color-autofill);
		}
	}

It's still a little problematic because the design shows something like this:
image

And that code would show something like this but only if you highlight it, which I assume you could do programmatically:
image

If our line-height is set to the component height it doesn't fully match, but I think we would want that line-height set to the component height so I'm not sure what the right answer is there.

I think either way this is going to need some adjusting when the component or the autocomplete feature is actually being built out, but it's a start... what are your thoughts?

Whatever you decide, just one more note to double-check it in WHCM, currently it looks like this:
Screenshot 2025-05-29 at 12 45 06 PM

Copy link
Collaborator

@rise-erpelding rise-erpelding left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Leaving a few thoughts about the autofill, I don't think it quite works as we have it now, but I think that we can leave some of it as follow-up work, interested to know what you think as well!

Comment on lines 372 to 387
&:-webkit-autofill,
&:-webkit-autofill:hover,
&:-webkit-autofill:focus,
&:-webkit-autofill:active,
&:-internal-autofill-selected,
&.spectrum-Combobox-autocomplete {
border-color: var(--spectrum-gray-800);
box-shadow: 0 0 0 30px var(--spectrum-combobox-background-color-default) inset !important;
transition: background-color 5000s ease-in-out 0s; /* not sure about keeping this I'm just leaving it alone for now */
-webkit-text-fill-color: var(--spectrum-neutral-content-color-default) !important;
line-height: var(--spectrum-combobox-line-height);

&::selection {
background-color: var(--spectrum-combobox-background-color-autofill);
}
}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmmm, this autocomplete is starting to be a little problematic... here are some thoughts/questions I have now:

  • Should we use a custom property for the border instead of --spectrum-gray-800? We have --spectrum-combobox-border-color-default, --spectrum-combobox-border-color-hover, etc. that we already use, for instance.
  • I think 5000s is a bit long for an animation-duration, although it is true that we have no guidance for this (I'm also not seeing this doing much of anything either way?).
  • We also have no guidance for WHCM, but I'm guessing it might be jarring to enforce the white background color that I'm seeing now when all the others are dark.
  • Changing the line-height for autofill only does make the highlight work as intended, but we'll still get cutoff for Thai in that case.
    Screenshot 2025-05-30 at 8 27 31 AM

I'd initially only seen the autocomplete styles for border and text color, and hadn't seen the other spec where we're doing the highlight things... I'm kind of inclined to say that since trying to implement the highlight is causing a lot of issues + we also don't have great guidance for it now + at least in my opinion, we'd want to style this in a way that we know will be compatible with SWC, I'd be ok with only styling what's on the token spec (border and text color) and leaving this background-color/highlight portion alone for now, what are your thoughts?

@rise-erpelding rise-erpelding self-requested a review May 30, 2025 15:59
Copy link
Collaborator

@rise-erpelding rise-erpelding left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me! We're leaving autocomplete now in a good place where it can be picked up later if it's implemented in a way that's different from S1.

Copy link
Collaborator

@saashapina saashapina left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for answering those questions Aziz! I think this looks g2g 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ready-for-review S2 Spectrum 2 size-5 L ~30-42hrs; lots of effort or complexity, most of a sprint needed to complete. skip_vrt Add to a PR to skip running VRT (but still pass the action)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy