...
A good approach for monorepos is [`Lerna`](https://lerna.js.org/), in combination with [`Nx`](https://nx.dev). Other possible tools are [`TurboRepo`](https://turbo.build/) and [`Rush`](https://rushjs.io/).If we want a themable application where plugin authors can rely on a global style, we should make use of css variables. We can also make use of [Design Tokens](https://spectrum.adobe.com/page/design-tokens/).
With design tokens, we can generate css variables.
We can then override the Material css variables, so all the material components (mdc/mwc) will have the same look.
### Background
Related links:
- [Adobe Design tokens](https://spectrum.adobe.com/page/design-tokens/)
- [Design Tokens for dummies](https://uxdesign.cc/design-tokens-for-dummies-8acebf010d71)
- [Material Design Tokens](https://m3.material.io/foundations/design-tokens)Core plugins can be grouped together in multiple monorepos
Plugin | Group | Repository |
---|---|---|
@openscd/oscd-open | File-handling | |
@openscd/oscd-new | File-handling | |
@openscd/oscd-save | File-handling | |
@openscd/oscd-validate-template | Validating | |
@openscd/oscd-validate-schema | Validating | |
@openscd/oscd-import-ied | IED | |
@openscd/oscd-compare-ied | IED | |
@openscd/oscd-virtual-ied | IED | |
@openscd/oscd-substation-editor | Editor | |
@openscd/oscd-ied-editor | Editor | |
@openscd/oscd-template | - |
## Decision
T.B.D.
## Consequences
**OpenSCD mono repo**
...