You can define a mixin as follows,
const useMixinStyles = cssta.mixin`
width: 200px;
@media (min-width: 768px) {
width: 300px;
}
`;
You can use it in other components using @include and then wrapping your mixin name in ${ and }.
const OtherComponent = cssta(View)`
@include ${useMixinStyles};
`;
We called the variable above useMixinStyles because cssta.mixin returns a hook.
You can call the hook in your own components too, and when you do, it will return styles that you can then pass to other components.
const ComponentThatUsesMixins = ({ children }) => {
const mixinStyles = useMixinStyles();
return (
<ScrollView contentContainerStyle={mixinStyles}>{children}</ScrollView>
);
};
Note that because this is a hook, you always need to call it.
Below is a table of what you can and cannot do with mixins.
| Feature | Supported |
|---|---|
[@prop] selectors |
❌ |
@media queries |
✅ |
@include mixins |
✅ |
Reference CSS custom properties (var(--color)) |
✅ |
Defining CSS custom properties (--color: red) |
❌ |
Viewport units (vw, vh etc.) |
✅ |
| Transitions | ❌ |
| Animations | ❌ |