freenowtech / freenowtech/wave

What should we do with the `styled-system`?

Open
#302 2 comments 0 reactions 0 assignees View on GitHub
conversation needed
Dominant language
TypeScript
Stars
67
Forks
31
Avg merge
1d 8h
Merged PRs (30d)
4

Description

## Context

We use low-level [styled-system library](https://github.com/styled-system/styled-system) to provide nice component css-props and shortcuts like `p`, `m`, etc. Those props are crucial for the developer experience and are actively used across codebases together with the per breakpoint value setting like:

```jsx
...
```

## Problem

The last time when _styled-system_ was updated was in May, 2020. Even though the API is stable, issues with types pop up here and there.

_styled-components_ at the same time is evolving, and version 6.0 will be shipped this year. There is a risk that styled-system won't work with it.

## Options

Here are the steps we can proactively take to mitigate future issues. Please, add yours!

**Option #1**. Fork and support the styled-system library for Wave's use case only

Even though the codebase of the styled-system consists of many files, they are primarily configurations of what to expose in each helper. We'll have flexibility to remove things we don't use and keep the surface smaller than now.

The downsides:
* costs to maintain the library
* current codebase is in plain JS (there are tests, though)

**Option #2**. Implement a set of helpers with the same functionality

We use only a subset of the styled-system, it could be easier to implement the featureset in place.

**Option #3**. Migrate to other solution.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.