theme-ui
theme-ui copied to clipboard
Theme UI v1 Roadmap
This is an umbrella issue for features and additions to bring Theme UI to a stable v1. This list may not be exhaustive and is subject to change. More details, context, and additional issues will be added where needed.
- [x] TypeScript conversion #668
- [ ] TypeScript: Strict-mode theme interface/schema: a fully fleshed out theme schema to improve interoperability.
- [ ] TypeScript: Type check property values against theme scales #1090
- [x] Support MDX v2 #2023
- [ ] Variant composition, e.g.
variant: ['large', 'primary']
(or pluralvariants
). This would potentially be a breaking change, meaning that thevariant
property itself would no longer support responsive arrays, but the values within the variant could. #586, #1017, #1208 - [x] Merge variants before parsing responsive arrays. This should allow responsive values defined in e.g.
theme.styles
to be overridden with non-responsive values with thesx
prop. Related #720, #43 - [x] Upgrade to Emotion 11 https://github.com/emotion-js/emotion/issues/1606
- [x] Remove
@emotion/styled
dependency #2043 - [x] Use Theme UI context instead of Emotion context
- [x]
gatsby-plugin-theme-ui
: support for presets viagatsby-config.js
#878 - [x] Scope all configuration options to
theme.config
https://github.com/system-ui/theme-ui/issues/1291 - [x] Improve
prefers-color-scheme
media query support – allow color mode to be determined by media query without storing inlocalStorage
. See #624, #787 - [x] Support for CSS Logical Properties #794
- [x] Document default theme #2026
Potential
- [ ] Drop CSS props https://github.com/system-ui/theme-ui/discussions/2275 #2326
- [x] Drop Themed API
- Idea: Simpler API for using presets
- Idea: Provide some solution for self-referencing scales in other scale definitions
-
Idea: Plain object syntax responsive values using a
media
key. e.g.media: { small: { fontSize: 3 } }
-
Idea: Nested property shorthands
font: { size: 3, weight: 'bold' }
example branch -
Idea: Universal
variant
prop, see #800 - Idea: isolated React context to prevent collisions
@hasparus out of interest, why did you unpin this issue?
@hasparus out of interest, why did you unpin this issue?
By accident. Thank you. Let's keep this one pinned.
Reading https://github.com/system-ui/theme-ui/issues/2330 - I think another breaking change could be to remove the MDXProvider
from the gatsby-plugin-theme-ui
. We've overhauled gatsby-plugin-mdx
and it's more "barebones" to the other MDX implementations, so people using MDX are already expected to have a MDXProvider