Grommet v3 - grommet/grommet GitHub Wiki

This page is a place to gather things that should be removed or considered for v3 of Grommet. It is important to note that v3 is not currently in development or planned. This is just a place to collect things should we consider a v3 in the future.

Feature Requests

Enhancement requests that are breaking changes.

  • Property consolidation (#2529)
  • Evaluate Linaria vs Styled Components (#5818)
  • Evaluate supporting Emotion (#2641)
  • Standardize font styling (#2829)
  • Border radius inconsistency (#3117)
  • Evaluate Web Components (#4987) - Note: currently we are not considering this, our reasons align with points made in this article. If there is interest we are happy to discuss and re-evaluate.
  • Roadmap suggestions from the community (#3271)
  • Rename Anchor to Link (#3297)
  • Modify Theme Structure (#2806)

Deprecated

Deprecated items that should be removed in v3.

Components

  • RoutedAnchor
  • RoutedButton

Theme props

  • accordion.hover.color (use accordion.hover.heading.color instead)
  • drop.shadowSize (use elevation instead)
  • formfield.border.error.color (use error.border.color instead)
  • global.input.weight (use global.input.font.weight instead)

Props

  • Box - tag: deprecated in favor of indicating the DOM tag via the as property.
  • Button - plain: when using the kind button (i.e. button.default on the theme), the usage of plain is deprecated.
  • Chart - color opacity: opacity is deprecated. Use top level opacity instead.
  • Chart - size=“full”: 'full' is deprecated as 'fill' is more consistent with how that term is used elsewhere.
  • DataTable - columns=[{ verticalAlign: }]: verticalAlign should be deprecated in favor of verticalAlign prop instead of columns.
  • DateInput - inputProps={{ icon: ... }}: drop support for changing the DateInput icon through inputProps. The icon prop should be used instead.
  • Grid - tag: deprecated in favor of indicating the DOM tag via the as property.
  • Layer - animate: use animation instead.
  • Select - selected: deprecated in favor of indicating the selected values via the value property.
  • Select - value element: passing an element is deprecated. Use the valueLabel property instead.
  • Text - tag: deprecated in favor of indicating the DOM tag via the as property.
  • TextInput - onSelect: use onSuggestionSelect instead.

Additional Items

Anything else that should be removed or changed in v3.

  • Remove Button (ButtonKind should become the default type of Button).
  • Consolidate to use either pad or padding in the theme. Currently we have instances of both.
  • layerOptions should be removed from Layer.
  • global.drop shouldn't be under global in the theme because it only affects the Drop component.
  • Remove areNormalizedValuesEquals and areNormalizedBoundsEquals from Chart utils.
  • Box should use css gap by default and we should no longer support inserting an element to handle gap. (See #6181)
  • Select and SelectMultiple should have the id on the input element. (See #5167)
  • Change the theme to be more consistent with defining background colors. See background vs background.color in the theme.