theme-ui icon indicating copy to clipboard operation
theme-ui copied to clipboard

Theme UI v1 Roadmap

Open jxnblk opened this issue 4 years ago • 3 comments

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 plural variants). This would potentially be a breaking change, meaning that the variant 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 the sx 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 via gatsby-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 in localStorage. 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

jxnblk avatar Apr 07 '20 20:04 jxnblk

@hasparus out of interest, why did you unpin this issue?

gausie avatar Mar 18 '21 18:03 gausie

@hasparus out of interest, why did you unpin this issue?

By accident. Thank you. Let's keep this one pinned.

hasparus avatar Mar 19 '21 18:03 hasparus

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

LekoArts avatar Oct 01 '22 07:10 LekoArts