-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
As far as I can tell, this doesn't seem to work with CSS modules. Input (LESS):
:local {
.root {
position: relative;
background: url(../stylesheets/checkerboard.png); // https://github.com/webpack-contrib/css-loader/issues/74
}
.image1 {
position: absolute;
left: 0; // TODO: center the images instead?
top: 0;
}
.image2 {
composes: image1;
animation: fadeInOut 1s infinite;
}
@keyframes fadeInOut {
0% {
opacity: 1;
}
40% {
opacity: 0;
}
50% {
opacity: 0;
}
90% {
opacity: 1;
}
}
}Output:
.FaderDiff__root--1brCJ {
position: relative;
background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAIAAAADnC86AAAAQ0lEQVRYw+3QsQlAIRBEQbUlsf9c/6/pLEG4QJN5+TKwdc6vZBujp7etPAoMBoPBYDD4fjUi0uO1fleDwWAwGAwGn9uOIwisc55KqAAAAABJRU5ErkJggg==);
}
.FaderDiff__image1--2oRQY {
position: absolute;
left: 0;
top: 0;
}
.FaderDiff__image2--bHxFu {
-webkit-animation: FaderDiff____FaderDiff_less__fadeInOut--1naMI 1s infinite;
animation: FaderDiff____FaderDiff_less__fadeInOut--1naMI 1s infinite;
}
@-webkit-keyframes __FaderDiff_less__fadeInOut {
0% {
opacity: 1;
}
40% {
opacity: 0;
}
50% {
opacity: 0;
}
90% {
opacity: 1;
}
}
@keyframes __FaderDiff_less__fadeInOut {
0% {
opacity: 1;
}
40% {
opacity: 0;
}
50% {
opacity: 0;
}
90% {
opacity: 1;
}
}I think it's transforming the keyframes name, but then CSS modules is transforming it again (but only inside .image2) which is the exact same bug we were reporting over here.
For reference, my webpack plugins are configured like so:
import Path from 'path';
import browsers from './browser_list';
const cssSourceMaps = false; // Always shows as line 1
export const cssLoader = {
loader: 'css-loader',
options: {
sourceMap: cssSourceMaps,
root: Path.resolve(__dirname, '..', 'public'),
localIdentName: '[name]__[local]--[hash:base64:5]',
importLoaders: 1, // https://github.com/webpack-contrib/css-loader#importloaders
minimize: process.env.NODE_ENV === 'production',
}
};
export const postCssLoader = {
loader: 'postcss-loader',
options: {
sourceMap: cssSourceMaps ? 'inline' : false,
plugins: () => [
require('autoprefixer')({browsers}),
require('postcss-icss-keyframes')(),
]
}
};
export const lessLoader = {
loader: 'less-loader',
options: {
sourceMap: cssSourceMaps, // https://github.com/webpack-contrib/less-loader#user-content-source-maps
strictMath: true,
strictUnits: true,
}
};
export const cssLoaders = [cssLoader, postCssLoader];Metadata
Metadata
Assignees
Labels
No labels