Skip to content

Roux Components v1#17

Draft
pangolingo wants to merge 135 commits into
mainfrom
component_library_2
Draft

Roux Components v1#17
pangolingo wants to merge 135 commits into
mainfrom
component_library_2

Conversation

@pangolingo
Copy link
Copy Markdown
Contributor

@pangolingo pangolingo commented May 22, 2026

This PR merges the working Roux Components branch into main.

What this adds:

  • 11ty site for documenting Roux Components (in the /site directory)
  • Prettier autoformatting (this automatically acts on Markdown, HTML, and CSS)
    • autoformatting has resulted in adjustments to some core Roux files:
      • markdown formatting (especially bullets)
      • standardizing whitespace in CSS files
        • changing some CSS rules to multiline
  • CI Workflows
    • build/compile the 11ty docs site and publish it to GitHub pages
    • HTML validation
    • a11y checks with AXE
    • snapshot tests to call out CSS/HTML changes that affect how components look
  • Specific core CSS changes to support new components
    • .button:disabled styles
    • new blockquote styles
    • new and adjusted variables for colors and font styles
    • new sizing utilities

garciadanny and others added 30 commits December 11, 2025 10:32
Also started a "sizing" set of utility classes, starting with widths
Uses 11ty to generate a static site for displaying a component library
built with Roux.
- Set pathPrefix to /roux/ in production via SITE_ENV variable
- Update CSS link to use Eleventy's url filter (to set the path prefix in prod)
- Simplify deploy script environment variables
Copy link
Copy Markdown
Contributor

@enatario enatario left a comment

Choose a reason for hiding this comment

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

AMAZING WORK! TRULY!

I think my only questions are:

  • Can we pair on this to go through it all together? I feel like I have mostly a handle on the breadth but might be good to just do a check all together.
  • It seems like we still might not be compiling the CSS into one file. I wonder how we can achieve that across the board since we push that in our docs. I know we had used lightning css before but it was tricky with this particular setup.


## Considerations

We use a simple `<div class="alert">` structure with modifier classes (e.g., `alert--success`, `alert--danger`) so visual styling is predictable and easy to extend. Each alert includes an appropriate ARIA live-region role:
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Should we include some information about aria-live regions for this as they often go hand-in-hand with these types of components? Maybe not necessarily baked into the component itself.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

I can link to MDN's page about live regions.
Are you suggesting we add an explanation of what they are right here? And are you also suggesting we remove the role attributes from the component examples?


## Considerations

If badges contain just a number or text that requires extra context, you should provide that context with a visually-hidden element. For example, a badge on a mail icon displaying "12" should read `12 <span class="u-hide-visually">unread messages</span>` so that assistive tech understands the intent. Or to be even more clear, include the label visible inside the badge: `12 unread messages`
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

<3


::preview{file="dialogs/basic.html" id="example_basic_modal" tall="true"}::

### Slide-in Drawer Modal
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I think I might want to update the CSS on this before launch to invert the animation and have it default to no animation and then create an opt-in approach (so using no-preference as the modifier instead of reduce).


## Considerations

Loaders should use either the `alert` or `status` ARIA roles. Use the "alert" role when the user needs to know immediately when loading finishes: for example, when submitting a form. This role causes assistive technologies to announce all changes in an assertive way, and could be annoying. Use the "status" role when the loading state is doesn't need immediate attention: for example, when loading extra page content.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Should we link to those roles on MDN?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Updated!


## Considerations

Be sure to use headline levels in order (H1 followed by H2, etc) so that assistive technologies can navigate the page. Skipping a headline level causes confusion.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Perhaps we should also just tell folks to lean into typographic elements instead of plain divs where appropriate as well. The amount of divs I've seen that should be a p tag is astounding

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Done

title: Spinning Loading Indicator
---

<div aria-busy="true">
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

nice

Comment thread site/index.md Outdated

Much like Roux CSS, these components are meant as a baseline for you to build on top of, so feel free to adjust as needed. They're flexible and extendable, but opinionated about what matters.

All components are accessible and semantic by default.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Suggested change
All components are accessible and semantic by default.
All components aim to be accessible and semantic by default.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Updated

@pangolingo
Copy link
Copy Markdown
Contributor Author

Can we pair on this to go through it all together? I feel like I have mostly a handle on the breadth but might be good to just do a check all together.

Scheduled!

It seems like we still might not be compiling the CSS into one file. I wonder how we can achieve that across the board since we push that in our docs. I know we had used lightning css before but it was tricky with this particular setup.

I will work on this!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants