🎨 Aesthetic is an end-to-end multi-platform styling framework that offers a strict design system, robust atomic CSS-in-JS engine, a structural style sheet specification (SSS), a low-runtime solution, and much more!
I've tried to support mixins now through multiple iterations, but it's never perfect... The problems that always persist:
Composition is really hard. Especially when themes/systems extend from each other.
TypeScript types are not simple and conflict (sss vs non-sss).
All APIs are just ugly and not ergonomic.
Because of this, I've decided to remove the mixins package and most of the mixin functionality. I left the mixin method in tact, with a handful of reset/text mixins, as they are super generic. However, all matter of extending and custom mixins has been removed. Instead, I feel like this is better solved through components.
Screenshots
Checklist
[x] Build passes with yarn test.
[x] Code is formatted with yarn format.
[x] Tests have been added for my changes.
[x] Code coverage for my change is 100%.
[x] Documentation has been updated for my changes.
Summary
I've tried to support mixins now through multiple iterations, but it's never perfect... The problems that always persist:
Because of this, I've decided to remove the mixins package and most of the mixin functionality. I left the
mixin
method in tact, with a handful of reset/text mixins, as they are super generic. However, all matter of extending and custom mixins has been removed. Instead, I feel like this is better solved through components.Screenshots
Checklist
yarn test
.yarn format
.