Skip to content
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

Incorrect rules order #9

Open
lastw opened this issue Mar 13, 2017 · 5 comments
Open

Incorrect rules order #9

lastw opened this issue Mar 13, 2017 · 5 comments

Comments

@lastw
Copy link
Contributor

lastw commented Mar 13, 2017

For example,

div {
    background: linear-gradient(to right, #c8c8c8 15.5%, transparent 15.5%) repeat-x;
    background-size: 4.16667% 4px
}

transforms to

[dir] span {
    background-size: 4.16667% 4px
} 

[dir=ltr] span {
    background: linear-gradient(to right, #c8c8c8 15.5%, transparent 15.5%) repeat-x
} 

[dir=rtl] span {
    background: linear-gradient(to left, #c8c8c8 15.5%, transparent 15.5%) repeat-x
}

So, background property overrides background-size value.

Bug is similar to the csso problem with structural optimizations css/csso#143

@vkalinichev vkalinichev self-assigned this Mar 13, 2017
@vkalinichev
Copy link
Owner

I'll try to fix it in the next release.

For now you can use this workaround:

div {
    background: linear-gradient(to right, #c8c8c8 15.5%, transparent 15.5%) repeat-x;
}
[dir] div {
    background-size: 4.16667% 4px
}

Thanks for the report!

@henryruhs
Copy link

henryruhs commented Aug 11, 2018

Could you please fix this asap? I have a similar issue with background-image... see: teaser.css

@marsjosephine
Copy link

I also encountered a similar issue today. I have some styles that result in the following styles declarations (we have duplicate declarations for background-image due to how we share and extend styles in our codebase):

.gradientBackground {
  background-image: linear-gradient(to right, black 0%, white 50%, black 100%);
  height: 100%;
  width: 100%;
  background-image: var(--brand-radial-gradient);
}

After going through Post CSS RTL, the following is output in our CSS files. The order of the style declarations that's being output is not what I would expect based on the input, and so the first background-image styling is being applied as opposed to the second. What I would expect here is that both declarations for background-image would end up in .dir-ltr.gradientBackground in the same order that they appear in the source CSS.

.dir.gradientBackground {
  height: 100%;
  width: 100%;
  background-image: var(--brand-radial-gradient);
}

.dir-ltr.gradientBackground {
  background-image: linear-gradient(to right, black 0%, white 50%, black 100%);
}

@fabercancio
Copy link

@marsjosephine,

Unfortunately, this library is no longer maintained. As a workaround, if you can modify manually the CSS rules, you can add the rtl:ignore directive to each declaration:

https://runkit.com/embed/7ywx6ed18q7j

@marsjosephine
Copy link

@fabercancio -- totally understand, thanks for responding!

@vkalinichev vkalinichev removed their assignment Aug 20, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants