-
Couldn't load subscription status.
- Fork 50
[WIP-03] [Project Solar / Phase 1 / Themed CSS for HDS components] Rollup configuration and Sass processing for multiple files #3259
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
base: project-solar/phase-1/HDS-5216_modes/modes-pipeline-implementation
Are you sure you want to change the base?
[WIP-03] [Project Solar / Phase 1 / Themed CSS for HDS components] Rollup configuration and Sass processing for multiple files #3259
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR reorganizes the Sass architecture for the Helios Design System components to support theming capabilities. It creates a foundation for generating multiple CSS builds with different theming strategies while maintaining the existing component functionality.
Key changes:
- Reorganizes Sass files to separate common components from theming-specific configurations
- Updates Rollup configuration to support multiple CSS output files with custom SCSS compilation
- Creates new themed CSS variants using CSS selectors and prefers-color-scheme approaches
Reviewed Changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
packages/components/src/styles/components/index.scss |
New centralized index file importing all component SCSS files |
packages/components/src/styles/@hashicorp/design-system-components.scss |
Refactored to use new components index and updated token paths |
packages/components/src/styles/@hashicorp/design-system-components-theming-with-prefers-color-scheme.scss |
New themed variant using prefers-color-scheme media queries |
packages/components/src/styles/@hashicorp/design-system-components-theming-with-css-selectors.scss |
New themed variant using CSS selectors |
packages/components/rollup.config.mjs |
Updated with custom SCSS compilation function and multiple output configurations |
75bc4b6 to
b258e2e
Compare
1803ce4 to
66b876e
Compare
67f8499 to
d4cd0c3
Compare
66b876e to
1a855c1
Compare
6251490 to
bb949c9
Compare
1a855c1 to
57ea7fa
Compare
bb949c9 to
88f8368
Compare
723b081 to
c6dae3e
Compare
ac8353a to
1eb34c1
Compare
1eb34c1 to
df0af59
Compare
df0af59 to
d78ae8d
Compare
6d30514 to
8b955fb
Compare
…added custom source files for theming + updated rollup config to process different files
…th output from `rollup-plugin-scss`
…er-cli-build.js`
… to new custom plugin
…ugin for every Scss compilation)
…validate that all the new CSS files are generated too
… for old CSS files that don’t exist anymore)
d78ae8d to
e664de3
Compare
📌 Summary
This is built on top of #3239 and is based on the initial spike done by @alex-ju in #3235
🛠️ Detailed description
In this PR I have:
prefers-color-schemedesign-system-components.css- current file for HDS componentsdesign-system-components-theming-with-css-selectors.css- new file for theming via CSS selectorsdesign-system-components-theming-with-prefers-color-scheme.css- new file for theming viaprefers-color-schemeThen, after discussion and agreement with @alex-ju, I have moved also the existing compilation of the
design-system-components.scssanddesign-system-power-select-overrides.scssfiles to our custom plugin, so we can removerollup-plugin-scssas dev-dependencydesign-system-power-select-overrides.scssis not only copied in thedistfolder, but also compiled to.css(and a.mapfile is generated)🔎 How to review
You can look at the single commits, to see the sequence of steps and understand the explorations and thinking behind the PR, or you can look directly at the files, checking how the Scss files have been organized, how the Rollup plugin function has been implemented, and how the path for the
includedeclarations have been updated to make it more obvious where a file was coming from.🛠️ How to test
Check out the branch, delete the
distfolder underpackages/components, run the commandpnpm buildorpnpm start, and see how different files are copied/generated underpackages/components/dist/styles/@hashicorp(source Scss files, compiled CSS files, map files)You can also go one step further, and update (or add) some design tokens with
$modesvalues, run thepnpm buildcommand in thepackages/tokensfolder, and then run the commandpnpm buildin thepackages/componentsfolder and see how the tokens changes are reflected in the generated CSS files for the components (if only$modesare changed, the filepackages/components/dist/styles/@hashicorp/design-system-components.cssshould remain untouched.💬 To discuss/decide
- @use "products/css/themed-tokens/with-prefers-color-scheme/tokens.css";+ @import "products/css/themed-tokens/with-prefers-color-scheme/tokens.css";🔗 External links
Jira ticket: https://hashicorp.atlassian.net/browse/HDS-5505
👀 Component checklist
A changelog entry was added via Changesets if needed (see templates here)💬 Please consider using conventional comments when reviewing this PR.
📋 PCI review checklist
Examples of changes to controls include access controls, encryption, logging, etc.
Examples include changes to operating systems, ports, protocols, services, cryptography-related components, PII processing code, etc.