Есть ли способ передать одно объявление mixin или стиля другому mixin в качестве входного параметра?
Посмотрим на пример с ключевыми кадрами анимации. Ниже мы определяем ключевые кадры в чистом CSS:
@-moz-keyframes some-name
{
from { color: red; }
to { color: blue; }
}
@-webkit-keyframes some-name
{
from { color: red; }
to { color: blue; }
}
@keyframes some-name
{
from { color: red; }
to { color: blue; }
}
Идея заключается в упрощении этих объявлений с помощью mixins, поэтому мы можем иметь что-то вроде следующего:
.keyframes(name, from, to)
{
// here we need somehow to reproduce structure
// that we have in an example above
}
// define one animation
.my-from() { color: red; }
.my-to() { color: blue; }
// the following won't work because you cannot pass mixin as a parameter
// in way I have here, so I am looking for a way to solve this problem
.keyframes('some-name', .my-from, .my-to);
// define another animation
.another-from() { font-size: 1em; }
.another-to() { font-size: 2em; }
.keyframes('another-name', .another-from, .another-to);
Система будет иметь разные модули, которые могут быть динамически привязаны к приложению, а также удалены. Поэтому не предлагайте мне использовать @import
, потому что это не так. Вывод CSS динамически компилируется на лету с использованием информации о модулях и их собственных стилях LESS, а также базовых зависимостей LESS, таких как библиотека mixins и т.д.
Примечание. Это будет работать для меня, если вы знаете способ передать определение класса вместо mixin. В приведенном выше примере это будет .my-from
вместо .my-from()
и т.д.