less / less.js

Less. The dynamic stylesheet language.
http://lesscss.org
Apache License 2.0
17.01k stars 3.41k forks source link

Nested @layer rule lost scope #4242

Open woody-li opened 11 months ago

woody-li commented 11 months ago

To reproduce:

https://lesscss.org/less-preview/#eyJjb2RlIjoiLm1haW57ICBcbiAgQGxheWVye1xuICAgICY6OmJlZm9yZXtcbiAgICAgIGNvbG9yOiNmMDA7XG4gICAgfVxuICB9XG4gIEBtZWRpYSBzY3JlZW57XG4gICAgJjo6YmVmb3Jle1xuICAgICAgY29sb3I6IzBmMDtcbiAgICB9XG4gIH1cbiAgQGNvbnRhaW5lciAod2lkdGg+NDAwcHgpe1xuICAgICY6OmJlZm9yZXtcbiAgICAgIGNvbG9yOiMwMGY7XG4gICAgfVxuICB9XG59IiwiYWN0aXZlVmVyc2lvbiI6IjQuMi4wIiwibWF0aCI6InBhcmVucy1kaXZpc2lvbiIsInN0cmljdFVuaXRzIjpmYWxzZX0=

.main{  
  @layer{
    &::before{
      color:#f00;
    }
  }
}

Current behavior: Nesting selector & lost in @layer. But other @ rules works well, such as @media, @container etc.

@layer {
  ::before {
    color: #f00;
  }
}

Expected behavior: Nesting selector & resolved as its scope selector.

@layer {
  .main::before {
    color: #f00;
  }
}

Environment information:

matthew-dean commented 8 months ago

Fixed in https://github.com/less/less.js/pull/4260