docs/contributing/css.md
# CSS
## Mixins
We use a variety of mixins for all kind of colors (border, text, background ...)
Those mixins easily generate a CSS variable which can be overriden by theme plugins.
### Background color
```
@import "@sassmixins/bg-color";
.myclass {
@include bg-color(my-class-background, 'colors.gray.500');
}
```
### Text color
```
@import "@sassmixins/text-color";
.myclass {
@include text-color(my-class-text-color, 'colors.gray.500');
}
```
### Border color
```
@import "@sassmixins/border-color";
.myclass {
@include border-color(my-class-border, 'colors.gray.500');
}
```
### Note
As a rule of thumb: you should never directly include a color, for example `color: red;`.
Instead use the appropriate mixin, give it a reasonable name and provide a default value.
For example:
```
@import "sassmixins/bg-color";
@import "sassmixins/text-color";
.body {
@include bg-color(bg-color, 'colors.gray.500');
@include text-color(text-color, 'colors.red.500');
}
```
This will allow theme-developers to override your colors.