eui
eui copied to clipboard
[Emotion] EuiDataGrid
Acceptance criteria
- [ ] All SCSS files have been removed from the component(s) directory
- [ ] All SCSS overrides have been removed from the Amsterdam theme
- [ ] Any dependent components are identified in a new issue
- [ ] Changelog is updated
- [ ] Breaking changes are identified and broadcast to consumers
Checklists
Kibana usage
- [ ] Search Kibana's codebase for
{euiComponent}-(case sensitive) to check for usage of modifier classes- [ ] If usage exists, consider converting to a
dataattribute so that consumers still have something to hook into
- [ ] If usage exists, consider converting to a
General
- [ ] Output CSS matches the previous CSS (works as expected in all browsers)
- [ ] Rendered
className(s)read as expected in snapshots and browsers - [ ] Checked component playground
NOTE: Class components wrapped in
withEuiThemeneed to passtrueas the second argument to itspropUtilityForPlaygroundinsrc-docs/src/views/{component}/playground.js
Unit tests
- [ ]
shouldRenderCustomStyles()test was added and passes with parent component and any nestedchildProps(e.g.tooltipProps) - [ ] Removed any
mount()ed snapshots in favor ofrender()or a more specific assertion
Sass/Emotion conversion process
- [ ] Converted all global Sass vars/mixins to JS (e.g.
$euiSizetoeuiTheme.size.base) - [ ] Removed or converted component-specific Sass vars/mixins to exported JS versions
- [ ] Listed var/mixin removals in changelog
- [ ] Ran
yarn compile-scssto update var/mixin JSON files - [ ] Simplified
calc()tomathWithUnitsif possible (if mixing different unit types, this may not be possible) - [ ] Added an
@warndeprecation message within theglobal_styling/mixins/{component}.scssfile - [ ] Removed component from
src/components/index.scss - [ ] Deleted any
src/amsterdam/overrides/{component}.scssfiles (styles within should have been converted to the baseline Emotion styles)
CSS tech debt
- [ ] Wrapped all animations or transitions in
euiCanAnimate - [ ] Used
gapproperty to add margin between items if using flex - [ ] Converted side specific padding, margin, and position to
-inlineand-blocklogical properties (check inline styles as well as CSS)
DOM Cleanup
- [ ] Did NOT remove any block/element classNames (e.g.
euiComponent,euiComponent__child) - [ ] SEARCH KIBANA FIRST: Deleted any modifier classNames or maps if not being used in Kibana.
Kibana due diligence
- [ ] Pre-emptively check how your conversion will impact the next Kibana upgrade. This entails searching/grepping through Kibana (excluding
**/target, **/*.snap, **/*.storyshotfor less noise) foreui{Component}(case sensitive) to find: - [ ] Any test/query selectors that will need to be updated
- [ ] Any Sass or CSS that will need to be updated, particularly if a component Sass var was deleted
- [ ] Any direct className usages that will need to be refactored (e.g. someone calling the
euiBadgeclass on a div instead of simply using theEuiBadgecomponent)
Extras/nice-to-have
- [ ] Documentation pass:
- [ ] Converted any remaining
.jsdocs files to TS - [ ] Misc cleanup of docs code (e.g. combine imports to single
from '../src', replace<React.Fragment>with<>)
- [ ] Converted any remaining
- [ ] Reduced specificity where possible (usually by reducing nesting and class name chaining)
- [ ] Check for issues in the backlog that could be a quick fix for that component
- [ ] Optional component/code cleanup: consider splitting up the component into multiple children if it's overly verbose or difficult to reason about
👋 Hi there - this issue hasn't had any activity in 6 months. If the EUI team has not explicitly expressed that this is something on our roadmap, it's unlikely that we'll pick this issue up. We would sincerely appreciate a PR/community contribution if this is something that matters to you! If not, and there is no further activity on this issue for another 6 months (i.e. it's stale for over a year), the issue will be auto-closed.