This is a meta ticket to describe some basic timelines for merging compressed panels into EUI and Kibana. If you have questions ask @cchaos or @snide
One of the feedback points we've taken to heart in design is that a lot of EUI's form controls are too bulky for heavy interactive UI like those found in maps, cavas, viz and lens. As a team we decided to rework the compressed (so named for a prop that lives on all EUI form controls) forms to allow them to take up less space and be a little more on demand with their functionality. Below is a good example of how this works.

compressed got some tweaks to make them more minimalcompressed stylings to several components that did not yet have themFriday, Sept 20: Cleanup PR's created. Cleanup entails just fixing the first 4 items in the checklist below.
Wednesday, Sept 25: Cleanup PR's merged
Friday, Oct 4: Enhancement PR's created. These should entail mostly quick/but substantial changes to compressed forms to make them more aligned to our end goal of the editor style controls. The enhancements section of the checklist below.
| control | compressed | prepend | append | other |
|---|---|---|---|---|
| EuiFieldSearch | โ๏ธ | โ๏ธ | โ๏ธ | |
| EuiFieldPassword | โ๏ธ | โ | โ | |
| EuiSelect | โ๏ธ | โ๏ธ | โ๏ธ | id does not seem to get passed to the actual select tag |
| EuiSuperSelect | โ๏ธ | โ | โ | |
| EuiComboBox | โ๏ธ | โ๏ธfor singleSelect only | โ๏ธfor singleSelect only | uses isDisabled instead of disabled |
| EuiColorPicker | โ๏ธ | โ๏ธ | โ๏ธ | no isLoading |
| EuiRange | โ๏ธ | โ๏ธ | โ๏ธ | |
| EuiDualRange | โ๏ธ | ๐ซ | ๐ซ | |
| EuiButtonGroup | โ | ๐ซ | ๐ซ | |
| EuiFilterButtonGroup | โ | ? as labels maybe | ? | |
Set up TS tables EUI release before we merge this
The work is pretty much done for this. Just waiting on one EUI PR to clear, and I have a Kibana branch locally that resolves new TS issues.
Based on the outline above, here is some concrete instructions on how to best update consuming applications.
compressed usagesDoes this control live within a confined space and is not your typical fill and submit style form? If yes, keep it as compressed. Otherwise, consider removing the compressed property.
โ ๏ธNever mix compressed and non-compressed form controls in the same form.
๐ Break: EuiFormRow no longer has bottom padding, nor does it add margin to any + * siblings. It only adds spacing if it'sEuiFormRow + EuiFormRow`.
Look for: Any siblings of (components that come directly after) EuiFormRow that now look too close to the form row.
Fix: Insert an EuiSpacer component between the EuiFormRow and following sibling.
๐ Break: EuiFormRow longer passes compressed to its children (form controls).
Look for: Places where EuiFormRow has compressed but the form control does not.
Fix: Add compressed prop to the form control itself as well.
โ ๏ธ Deprecation: The compressed prop should become display="compressed"
โ ๏ธ Deprecation: The displayOnly prop should become display="center" or display="centerCompressed" if it should ale be compressed.
๐ Break: EuiFormLabel no longer has bottom margin
Look for: Places where EuiFormLabel is used directly and now looks too close to the component that comes after it.
Fix: insert an EuiSpacer probably with size="s" after the EuiFormLabel.
๐ Break: EuiFilepicker now has additional props for display that go hand in hand with compressed prop.
Look for: Places when EuiFilePicker also had compressed.
Fix: Add display="default" onto the component when compressed is used.
Does your control's value have an explicit measurement like "pixels" or "minutes"? Consider adding an append prop to the form control with this measurement like:
<EuiFieldNumber append="px" />

compressed property.compressed prop.compressed to display="compressed"displayOnly to display="center" or display="centerCompressed"compressed issuesA community member contributed a nice new custom avatar feature here: https://github.com/elastic/kibana/pull/45148
It needs some design touchup and would also benefit from the compressed styles.
Adding prepend / append props for inline labels to EuiFilterGroup came up recently in the Infrastructure Metrics app in this PR https://github.com/elastic/kibana/pull/47083
This is all done, closing in favor of follow up issue #3121
Most helpful comment
Consuming application checklist
Based on the outline above, here is some concrete instructions on how to best update consuming applications.
1. Check for
compressedusagesDoes this control live within a confined space and is not your typical fill and submit style form? If yes, keep it as compressed. Otherwise, consider removing the compressed property.
โ ๏ธNever mix compressed and non-compressed form controls in the same form.
2. Fix breaks and deprecations on EuiFormRow usages
๐ Break: EuiFormRow no longer has bottom padding, nor does it add margin to any
+ * siblings. It only adds spacing if it'sEuiFormRow + EuiFormRow`.Look for: Any siblings of (components that come directly after) EuiFormRow that now look too close to the form row.
Fix: Insert an
EuiSpacercomponent between the EuiFormRow and following sibling.๐ Break: EuiFormRow longer passes
compressedto its children (form controls).Look for: Places where EuiFormRow has
compressedbut the form control does not.Fix: Add
compressedprop to the form control itself as well.โ ๏ธ Deprecation: The
compressedprop should becomedisplay="compressed"โ ๏ธ Deprecation: The
displayOnlyprop should becomedisplay="center"ordisplay="centerCompressed"if it should ale be compressed.3. Fix breaks with EuiFormLabel usages
๐ Break: EuiFormLabel no longer has bottom margin
Look for: Places where EuiFormLabel is used directly and now looks too close to the component that comes after it.
Fix: insert an
EuiSpacerprobably withsize="s"after the EuiFormLabel.4. Fix breaks with EuiFilePicker usages
๐ Break: EuiFilepicker now has additional props for
displaythat go hand in hand withcompressedprop.Look for: Places when EuiFilePicker also had
compressed.Fix: Add
display="default"onto the component when compressed is used.Enhancements
Prepend and Appends
Does your control's value have an explicit measurement like "pixels" or "minutes"? Consider adding an
appendprop to the form control with this measurement like:<EuiFieldNumber append="px" />The checklist
compressedproperty.compressedprop.compressedtodisplay="compressed"displayOnlytodisplay="center"ordisplay="centerCompressed"compressedissues