Skip to content

Using variables as selector, issue in inheritance #1817

Closed
@jeremypetrequin

Description

@jeremypetrequin

Hi everybody, thank for your great work!

I'm using LESS on a projet where we have one color by master page, so all the children page use 1 different color for a lot of background, hover, color, border... depending of it parent.

I can't simply use a class .background-color for all my elements to colorize for example, for several reasons.

I wanted to create one variable with all the selectors to colorize, for example :

@background-color : ~'selector1, selector2:hover, selector3 ...';
@text-color : ~'selector4, selector2:hover, selector10 ...';
@border-color : ~'selector4, selector2:hover, selector10 ...'

And after that, using my page parent class name :

.master-1 {
    @{background-color} { background-color:@color1;}
}

.master-2 {
    @{background-color} { background-color:@color2;}
}

But the issue is that the output should be :

.master-1 selector1, .master-1 selector2:hover, .master-1 selector3 {
    background-color:black;
}

And in fact, it's :

.master-1 selector1, selector2:hover, selector3 {
    background-color:black;
}

To summarize :

.master-page-1 {
    .selector-1, .selector-2 {
        background-color:@color1;
    }
}

.master-page-2 {
    .selector-1, .selector-2 {
        background-color:@color2;
    }
}

And

@my-selector: ~'.selector-1, .selector-2';
.master-page-1 {
    @{my-selector} {
        background-color:@color1;
    }
}

.master-page-2 {
    @{my-selector} {
        background-color:@color2;
    }
}

Should output the same CSS, but only the first is correct :

.master-page-1 .selector-1, .master-page-1 .selector-2 {
    background-color:black;
}
.master-page-2 .selector-1, .master-page-2 .selector-2{
    background-color:black;
}

The second output :

.master-page-1 .selector-1, .selector-2 {
    background-color:grey;
}

.master-page-2 .selector-1, .selector-2 {
    background-color:grey;
}

Do you have any idea about this?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions