To prevent any mixin collisions between extensions, we should recommend the use of Less namespaces, similar to how we handle initiali(s/z)ers in JS.
https://lesscss.org/features/#mixins-feature-namespaces
They're not that tricky to understand, thankfully, using an ID-based system.
My suggested syntax would be #vendor__package. I don't know how Less would handle slashes, etc.
#davwheat__sidebar-nav-items {
.my-cool-mixin() {
color: red;
}
}
button.davwheat_btn {
#davwheat__sidebar-nav-items.my-cool-mixin();
}
Eventually, core should switch to something like #flarum__core.xxx(), or similar.
To prevent any mixin collisions between extensions, we should recommend the use of Less namespaces, similar to how we handle initiali(s/z)ers in JS.
https://lesscss.org/features/#mixins-feature-namespaces
They're not that tricky to understand, thankfully, using an ID-based system.
My suggested syntax would be
#vendor__package. I don't know how Less would handle slashes, etc.Eventually, core should switch to something like
#flarum__core.xxx(), or similar.