for case like https://github.com/mozilla-b2g/Gaia-UI-Building-Blocks/blob/v2/style/headers.css
ex:
headers.css
/* headers.css */
@import url("headers/layout.css");
@import url("headers/layout_mobile.css");
@import url("headers/layout_tablet.css");
The PROS:
- clean structured
- follow CSS standard
- developer does not have to include extra styles if we support more form factors
The CONS:
- will introduce performance issue in production
Fortunately we can fix it by use pre-processor to detect @import statement and inline the css files in production.
There are some script like https://github.com/simme/rework-importer can interpret and inline all @import css into single file.
With pre-processor, the basic css file will be inlined to single header.css file
/* headers.css */
headers {
}
/* mobile style */
headers .mobile {
}
/* tablet style */
@media (min-width: 768px) and (orientation: portrait) {
headers {
}
}
And we can pass some conditions for production mode, for example: pass mobile type to the build system, pre-processor could pick layout.css and layout_mobile.css but ignore layout_tablet.css, generate an inline header.css.
The PROS:
- previous PROS
- reduce size
- better performance by move out unnecessary styles
The CONS:
- need enhance the pre-processor to make it possible
@rnowm does this proposal reasonable or useful for Building-Blocks?
for case like https://github.com/mozilla-b2g/Gaia-UI-Building-Blocks/blob/v2/style/headers.css
ex:
headers.css
The PROS:
The CONS:
Fortunately we can fix it by use
pre-processorto detect @import statement and inline the css files in production.There are some script like https://github.com/simme/rework-importer can interpret and inline all @import css into single file.
With pre-processor, the basic css file will be inlined to single
header.cssfileAnd we can pass some conditions for production mode, for example: pass
mobiletype to the build system, pre-processor could picklayout.cssandlayout_mobile.cssbut ignorelayout_tablet.css, generate an inlineheader.css.The PROS:
The CONS:
@rnowm does this proposal reasonable or useful for Building-Blocks?