Input placeholders are selectors, not properties, and so their CSS syntax is placeholder { ... }
, not placeholder: ...
which you are trying to generate.
If you fix that:
.placeholder(...) {
::-webkit-input-placeholder {border:@arguments}
::-moz-placeholder {border:@arguments}
:-ms-input-placeholder {border:@arguments}
}
It will compile, and when you call it:
.placeholder(solid; 1px; blue;);
it will generate this CSS:
::-webkit-input-placeholder {
border: solid 1px #0000ff;
}
::-moz-placeholder {
border: solid 1px #0000ff;
}
:-ms-input-placeholder {
border: solid 1px #0000ff;
}
(I just included border:
as an example of a generic CSS property, independent of its actual effect on an input object)