Skip to content

Commit dbb98c8

Browse files
authored
fix: transform css files to es6 modules (#306)
- bundling without an additional setup for importing css files used to be broken - all css files are now distributed as es6 modules that export a single string - ui5-togglebutton used to override some css variables defined in the ui5-button
1 parent d91f237 commit dbb98c8

File tree

8 files changed

+29
-29
lines changed

8 files changed

+29
-29
lines changed

packages/main/bundle.esm.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
import "@ui5/webcomponents-base/src/browsersupport/Edge";
33

44
import "@ui5/webcomponents-base/src/shims/jquery-shim";
5-
import "./src/ThemePropertiesProvider";
5+
import "./dist/ThemePropertiesProvider";
66

77
import Gregorian from "@ui5/webcomponents-core/dist/sap/ui/core/date/Gregorian";
88
import Buddhist from "@ui5/webcomponents-core/dist/sap/ui/core/date/Buddhist";

packages/main/config/postcss.bundles/postcss.config.js

+2
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
const postcssImport = require('postcss-import');
22
const postcssAddFallback = require('../../lib/postcss-add-fallback/index.js');
33
const combineSelectors = require('postcss-combine-duplicated-selectors');
4+
const postcssCSStoESM = require('../../lib/postcss-css-to-esm/index.js');
45
const cssnano = require('cssnano');
56

67
module.exports = {
@@ -9,5 +10,6 @@ module.exports = {
910
postcssAddFallback(),
1011
combineSelectors({removeDuplicatedProperties: true}),
1112
cssnano(),
13+
postcssCSStoESM(),
1214
]
1315
};
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
const postcssNesting = require('postcss-nesting');
22
const postcssAddFallback = require('../../lib/postcss-add-fallback/index.js');
3+
const postcssCSStoESM = require('../../lib/postcss-css-to-esm/index.js');
34
const cssnano = require('cssnano');
45

56
module.exports = {
67
plugins: [
78
postcssNesting(),
8-
postcssAddFallback({importFrom: "./dist/themes-next/sap_fiori_3/parameters-bundle.css"}),
9+
postcssAddFallback({importFrom: "./dist/css/themes-next/sap_fiori_3/parameters-bundle.css"}),
910
cssnano(),
11+
postcssCSStoESM(),
1012
]
1113
};
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
const postcss = require('postcss');
2+
const fs = require('fs');
3+
const path = require('path');
4+
const mkdirp = require('mkdirp');
5+
6+
module.exports = postcss.plugin('add css to esm transform plugin', function (opts) {
7+
opts = opts || {};
8+
9+
return function (root) {
10+
const css = JSON.stringify(root.toString());
11+
const targetFile = root.source.input.from.replace("/src/", "/dist/");
12+
13+
mkdirp.sync(path.dirname(targetFile));
14+
15+
const filePath = `${targetFile}.js`;
16+
17+
fs.writeFileSync(filePath, `export default ${css}`);
18+
}
19+
});

packages/main/package.json

+4-4
Original file line numberDiff line numberDiff line change
@@ -54,10 +54,10 @@
5454
"build:api": "jsdoc -c ../../lib/jsdoc/config.json",
5555
"build:docs": "node ../../lib/documentation/index.js",
5656
"build:styles": "npm-run-all --sequential build:styles-bundles build:styles-components",
57-
"build:styles-bundles": "postcss src/**/parameters-bundle.css --config config/postcss.bundles --base src --dir dist/",
58-
"build:styles-components": "postcss src/themes-next/*.css --config config/postcss.components --base src --dir dist/",
59-
"watch:styles-bundles": "postcss src/**/parameters-bundle.css --config config/postcss.bundles --base src --dir dist/ -w",
60-
"watch:styles-components": "postcss src/themes-next/*.css --config config/postcss.components --base src --dir dist/ -w",
57+
"build:styles-bundles": "postcss src/**/parameters-bundle.css --config config/postcss.bundles --base src --dir dist/css/",
58+
"build:styles-components": "postcss src/themes-next/*.css --config config/postcss.components --base src --dir dist/css/",
59+
"watch:styles-bundles": "postcss src/**/parameters-bundle.css --config config/postcss.bundles --base src --dir dist/css/ -w",
60+
"watch:styles-components": "postcss src/themes-next/*.css --config config/postcss.components --base src --dir dist/css/ -w",
6161
"clean": "rimraf dist src/build",
6262
"copy:src": "copy-and-watch \"src/**/*.js\" \"src/**/i18n/*.json\" dist/",
6363
"copy:i18n": "cpx \"src/i18n/*.json\" dist/i18n",

packages/main/rollup.config.js

-17
Original file line numberDiff line numberDiff line change
@@ -46,23 +46,6 @@ const getPlugins = ({ transpile }) => {
4646
return gzipSize;
4747
}
4848
}));
49-
// component styles
50-
plugins.push(
51-
postcss({
52-
plugins: [postcssNesting()],
53-
inject: false,
54-
exclude: ["**/*.less", "**/parameters-bundle.css"],
55-
})
56-
);
57-
// parameters bundle
58-
plugins.push(
59-
postcss({
60-
plugins: [postcssImport(), csso({comments: true})],
61-
inject: false,
62-
include: ["**/parameters-bundle.css"],
63-
exclude: ["**/*.less"],
64-
})
65-
);
6649

6750
plugins.push(ui5DevImportCheckerPlugin());
6851

packages/main/src/themes-next/base/ToggleButton-parameters.css

-4
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,4 @@
11
:root {
2-
--_ui5_button_base_min_width: 2.5rem;
3-
--_ui5_button_base_min_compact_width: 2rem;
4-
--_ui5_button_base_height: 2.5rem;
5-
--_ui5_button_compact_height: 1.625rem;
62
--_ui5_toggle_button_pressed_focussed: var(--sapUiToggleButtonPressedBorderColor);
73
--_ui5_toggle_button_pressed_focussed_hovered: var(--sapUiToggleButtonPressedBorderColor);
84
--_ui5_toggle_button_pressed_negative_hover: var(--sapUiButtonRejectActiveBackgroundDarken5);
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
@import "../base/ToggleButton-parameters.css";
22

33
:root {
4-
--_ui5_button_base_min_width: 2.25rem;
5-
--_ui5_button_base_height: 2.25rem;
64
--_ui5_toggle_button_pressed_negative_hover: var(--sapUiButtonRejectActiveBackgroundLighten5);
75
--_ui5_toggle_button_pressed_positive_hover: var(--sapUiButtonAcceptActiveBackgroundLighten5);
86
}

0 commit comments

Comments
 (0)