Are these mixins (`icon-font` and `icon-font-replace`) trying to do too much? It might be simpler to allow the user to supply the color and margin in their own stylesheet, allowing the parameter list to be more focused. In the case of margin, it may also help avoid surprising behaviour (since by default the margin is set, but to zero – could be higher specificity than another rule attempting to apply a margin later).

Also, I wonder about having the replace boolean param first. Is it common enough to warrant always having to pass it? Moreover, I tend to dislike opaque boolean params like this – it makes code hard to understand by design. What about making the icon-font and icon-font-replace mixins siblings that do not depend on one another – icon-font-replace would need to be used if text replacement was desired.