Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions RFC-by-stage/1-approved/distribute-css-as-unprefixed.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
---
Status: `Proposal` # Please do not change this.
Implementer: # It will be changed upon merging and as it moves through the RFC stages
---

# Distribute CSS unminified and unprefixed

## The issue to be solved

CSS is currently being distributed as minified and vendor-prefixed assets.

This is unnecessary since users (developing apps using npm) process styles for minification and vendor-prefixing, therefore css "as modules" should ship without being processed. This issue was raised by @liamfiddler [here](https://github.com/designsystemau/RFCs/pull/11#discussion_r724769922).
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Typically files from within the node_modules folders are not processed. That's the reason we publish transpiled babledfied js in our dists for react components. It's backwards and I agree it's not great but that's the norm these days. And one of the issues we have encountered in GOLD was that consumers were unable to use pancake because it included CSS files in their dist folders that were located within node_modules which most users were unable to write CSS loaders for their bundlers for one reason or another.


Where users want to consume full CSS however, they may still expect the asset to be vendor prefixed and minified. This scenario might be handled better by delivering styles from a CDN like [UNPKG](https://unpkg.com/).
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

So perhaps we leave both unprefixed and prefixed css files in with dist folder for consumers to choose from?


This work should ship with pancake being removed [#1](https://github.com/designsystemau/RFCs/pull/1).

## A short description of the desired outcome or solution

- Npm packages should contain unprocessed CSS assets
- New package "design-system" is created which provides minified + vendor-prefixed CSS **and** an unprocessed version, ie `gold.min.css` and `gold.css`
- Usage of the new package is documented

## Technical details

Assuming that pancake has been removed.

1. Create a new package "design-system", (gold-design-system/packages/design-system) to generate a full CSS
2. In the design-system package, minified + vendor-prefixed assets **and** an unprocessed version CSS are published
3. Remove minifier and vendor prefix from other packages