-
-
Notifications
You must be signed in to change notification settings - Fork 27
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
CSS Duplication reduction - Optimize styles on post build #133
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…eview builds with module builder class pattern lile react & rn
…eact css module build, rn stylesheet build
This pull request is being automatically deployed with Vercel (learn more). 🔍 Inspect: https://vercel.com/grida/designto-codes/Cgp9DJ5KPk5iAug5jTjNHPFUnFKY |
Merged
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
CSS Optimization - Duplication reduction
Supports styled components duplication on copied element (rather it is component/instance or not - simply copied)
Reduces the output code size dramatically on screens containing list-like repetitive patterns by 50%
Before (Without duplication reduction)
After (With duplication reduction)
How to use?
No extra steps required. we will automatically reduce the output size with matching name & style. If you want to reuse the style across the layers, simply give it a same name.
Same name + Same style ⇒ Reduction
Different name + Same style ⇒ No
Same name + Different style ⇒ No
Where same name can have suffix patterns like
Rect 1
~Rect 99
orList ~ List_2
Limitations
This only works with below configurations
styled-components
@emotion/styled
styled-components/native
Stylesheet
(default)Other configuration / frameworks requires extra variable declaration to do this, we will support this in the near feature with components support.
TODO
Note
While reducing the duplication, from the second duplicated element will fallback to the first element’s name. To make the output more semantic, you can give the duplicated layers a organized, repeating name like -
container1
,container2
rather thanrectangle 192
,rectangle 991
- which it will also work for this (if two has the same style)Look
70 to 37 Lines ~= 52%