diff --git a/packages/eui/.loki/reference/chrome_desktop_Display_EuiComment_EuiCommentList_High_Contrast.png b/packages/eui/.loki/reference/chrome_desktop_Display_EuiComment_EuiCommentList_High_Contrast.png index 80a9cdb477f..6b2e47a4027 100644 Binary files a/packages/eui/.loki/reference/chrome_desktop_Display_EuiComment_EuiCommentList_High_Contrast.png and b/packages/eui/.loki/reference/chrome_desktop_Display_EuiComment_EuiCommentList_High_Contrast.png differ diff --git a/packages/eui/.loki/reference/chrome_desktop_Display_EuiToolTip_High_Contrast_Mode.png b/packages/eui/.loki/reference/chrome_desktop_Display_EuiToolTip_High_Contrast_Mode.png index f30a5e71eba..37ce71dd946 100644 Binary files a/packages/eui/.loki/reference/chrome_desktop_Display_EuiToolTip_High_Contrast_Mode.png and b/packages/eui/.loki/reference/chrome_desktop_Display_EuiToolTip_High_Contrast_Mode.png differ diff --git a/packages/eui/.loki/reference/chrome_desktop_Editors_Syntax_EuiMarkdownFormat_High_Contrast.png b/packages/eui/.loki/reference/chrome_desktop_Editors_Syntax_EuiMarkdownFormat_High_Contrast.png index b1a29b78b85..2b46f401247 100644 Binary files a/packages/eui/.loki/reference/chrome_desktop_Editors_Syntax_EuiMarkdownFormat_High_Contrast.png and b/packages/eui/.loki/reference/chrome_desktop_Editors_Syntax_EuiMarkdownFormat_High_Contrast.png differ diff --git a/packages/eui/.loki/reference/chrome_desktop_Forms_EuiFilterButton_High_Contrast.png b/packages/eui/.loki/reference/chrome_desktop_Forms_EuiFilterButton_High_Contrast.png index 848bd1ede1f..e2033917feb 100644 Binary files a/packages/eui/.loki/reference/chrome_desktop_Forms_EuiFilterButton_High_Contrast.png and b/packages/eui/.loki/reference/chrome_desktop_Forms_EuiFilterButton_High_Contrast.png differ diff --git a/packages/eui/.loki/reference/chrome_desktop_Layout_EuiPanel_Overlapping_Panels.png b/packages/eui/.loki/reference/chrome_desktop_Layout_EuiPanel_Overlapping_Panels.png new file mode 100644 index 00000000000..be0f4492331 Binary files /dev/null and b/packages/eui/.loki/reference/chrome_desktop_Layout_EuiPanel_Overlapping_Panels.png differ diff --git a/packages/eui/.loki/reference/chrome_desktop_Navigation_EuiKeyPadMenu_EuiKeyPadMenu_High_Contrast.png b/packages/eui/.loki/reference/chrome_desktop_Navigation_EuiKeyPadMenu_EuiKeyPadMenu_High_Contrast.png index 89ef536dd37..0d1ed467538 100644 Binary files a/packages/eui/.loki/reference/chrome_desktop_Navigation_EuiKeyPadMenu_EuiKeyPadMenu_High_Contrast.png and b/packages/eui/.loki/reference/chrome_desktop_Navigation_EuiKeyPadMenu_EuiKeyPadMenu_High_Contrast.png differ diff --git a/packages/eui/.loki/reference/chrome_desktop_Navigation_EuiSteps_EuiStepsHorizontal_High_Contrast.png b/packages/eui/.loki/reference/chrome_desktop_Navigation_EuiSteps_EuiStepsHorizontal_High_Contrast.png index 0a841374556..f8e64e965f4 100644 Binary files a/packages/eui/.loki/reference/chrome_desktop_Navigation_EuiSteps_EuiStepsHorizontal_High_Contrast.png and b/packages/eui/.loki/reference/chrome_desktop_Navigation_EuiSteps_EuiStepsHorizontal_High_Contrast.png differ diff --git a/packages/eui/.loki/reference/chrome_desktop_Navigation_EuiSteps_EuiSteps_High_Contrast.png b/packages/eui/.loki/reference/chrome_desktop_Navigation_EuiSteps_EuiSteps_High_Contrast.png index 73207461aed..e3a06c5a075 100644 Binary files a/packages/eui/.loki/reference/chrome_desktop_Navigation_EuiSteps_EuiSteps_High_Contrast.png and b/packages/eui/.loki/reference/chrome_desktop_Navigation_EuiSteps_EuiSteps_High_Contrast.png differ diff --git a/packages/eui/.loki/reference/chrome_mobile_Display_EuiComment_EuiCommentList_High_Contrast.png b/packages/eui/.loki/reference/chrome_mobile_Display_EuiComment_EuiCommentList_High_Contrast.png index d17f2818a29..d9972b55a40 100644 Binary files a/packages/eui/.loki/reference/chrome_mobile_Display_EuiComment_EuiCommentList_High_Contrast.png and b/packages/eui/.loki/reference/chrome_mobile_Display_EuiComment_EuiCommentList_High_Contrast.png differ diff --git a/packages/eui/.loki/reference/chrome_mobile_Editors_Syntax_EuiMarkdownFormat_High_Contrast.png b/packages/eui/.loki/reference/chrome_mobile_Editors_Syntax_EuiMarkdownFormat_High_Contrast.png index a5f7f9dbb96..e44d6f07727 100644 Binary files a/packages/eui/.loki/reference/chrome_mobile_Editors_Syntax_EuiMarkdownFormat_High_Contrast.png and b/packages/eui/.loki/reference/chrome_mobile_Editors_Syntax_EuiMarkdownFormat_High_Contrast.png differ diff --git a/packages/eui/.loki/reference/chrome_mobile_Forms_EuiFilterButton_High_Contrast.png b/packages/eui/.loki/reference/chrome_mobile_Forms_EuiFilterButton_High_Contrast.png index c52023250ff..cc937587921 100644 Binary files a/packages/eui/.loki/reference/chrome_mobile_Forms_EuiFilterButton_High_Contrast.png and b/packages/eui/.loki/reference/chrome_mobile_Forms_EuiFilterButton_High_Contrast.png differ diff --git a/packages/eui/.loki/reference/chrome_mobile_Layout_EuiPanel_Overlapping_Panels.png b/packages/eui/.loki/reference/chrome_mobile_Layout_EuiPanel_Overlapping_Panels.png new file mode 100644 index 00000000000..3d13264af99 Binary files /dev/null and b/packages/eui/.loki/reference/chrome_mobile_Layout_EuiPanel_Overlapping_Panels.png differ diff --git a/packages/eui/.loki/reference/chrome_mobile_Navigation_EuiKeyPadMenu_EuiKeyPadMenu_High_Contrast.png b/packages/eui/.loki/reference/chrome_mobile_Navigation_EuiKeyPadMenu_EuiKeyPadMenu_High_Contrast.png index a91a120a112..b2718ebd343 100644 Binary files a/packages/eui/.loki/reference/chrome_mobile_Navigation_EuiKeyPadMenu_EuiKeyPadMenu_High_Contrast.png and b/packages/eui/.loki/reference/chrome_mobile_Navigation_EuiKeyPadMenu_EuiKeyPadMenu_High_Contrast.png differ diff --git a/packages/eui/.loki/reference/chrome_mobile_Navigation_EuiSteps_EuiStepsHorizontal_High_Contrast.png b/packages/eui/.loki/reference/chrome_mobile_Navigation_EuiSteps_EuiStepsHorizontal_High_Contrast.png index 15ce141dc5b..b9dcc47d7ff 100644 Binary files a/packages/eui/.loki/reference/chrome_mobile_Navigation_EuiSteps_EuiStepsHorizontal_High_Contrast.png and b/packages/eui/.loki/reference/chrome_mobile_Navigation_EuiSteps_EuiStepsHorizontal_High_Contrast.png differ diff --git a/packages/eui/.loki/reference/chrome_mobile_Navigation_EuiSteps_EuiSteps_High_Contrast.png b/packages/eui/.loki/reference/chrome_mobile_Navigation_EuiSteps_EuiSteps_High_Contrast.png index 81239a3cb40..14d739bfd2c 100644 Binary files a/packages/eui/.loki/reference/chrome_mobile_Navigation_EuiSteps_EuiSteps_High_Contrast.png and b/packages/eui/.loki/reference/chrome_mobile_Navigation_EuiSteps_EuiSteps_High_Contrast.png differ diff --git a/packages/eui/changelogs/upcoming/8519.md b/packages/eui/changelogs/upcoming/8519.md new file mode 100644 index 00000000000..e4f9f7a06ec --- /dev/null +++ b/packages/eui/changelogs/upcoming/8519.md @@ -0,0 +1,4 @@ +**Bug fixes** + +- Fixed a visual issue of overlapping borders for layered `EuiPanel`s + diff --git a/packages/eui/src/components/panel/panel.stories.tsx b/packages/eui/src/components/panel/panel.stories.tsx index 03e3296a637..164969c5b55 100644 --- a/packages/eui/src/components/panel/panel.stories.tsx +++ b/packages/eui/src/components/panel/panel.stories.tsx @@ -6,6 +6,7 @@ * Side Public License, v 1. */ +import React from 'react'; import type { Meta, StoryObj } from '@storybook/react'; import { @@ -45,3 +46,31 @@ export const Playground: Story = { children: 'Panel content', }, }; + +/* Verifying that borders are applied in correct order */ +export const OverlappingPanels: Story = { + tags: ['vrt-only'], + globals: { colorMode: 'dark' }, + args: { + children: 'Panel content', + }, + render: function Render(args: EuiPanelProps) { + return ( + <> + + ({ + top: `-${euiTheme.size.m}`, + })} + /> + ({ + top: `-${euiTheme.size.l}`, + })} + /> + + ); + }, +}; diff --git a/packages/eui/src/components/panel/panel.styles.ts b/packages/eui/src/components/panel/panel.styles.ts index 70e76ae1848..82fd4a29481 100644 --- a/packages/eui/src/components/panel/panel.styles.ts +++ b/packages/eui/src/components/panel/panel.styles.ts @@ -36,11 +36,11 @@ export const euiPanelBorderStyles = ( /* Using a pseudo element for the border instead of floating border only because the transparent border might otherwise be visible with arbitrary full-width/height content in light mode. */ - &::before { + &::after { content: ''; position: absolute; /* ensure to keep on top of flush content */ - z-index: 1; + z-index: 0; inset: 0; border: ${euiTheme.border.width.thin} solid ${ diff --git a/packages/eui/src/components/toast/toast.styles.ts b/packages/eui/src/components/toast/toast.styles.ts index 6d19028495f..a329c69a5ad 100644 --- a/packages/eui/src/components/toast/toast.styles.ts +++ b/packages/eui/src/components/toast/toast.styles.ts @@ -26,7 +26,7 @@ export const euiToastStyles = (euiThemeContext: UseEuiTheme) => { color: string, width?: CSSProperties['borderWidth'] ) => ` - &:after { + &:before { content: ''; position: absolute; /* ensure highlight border is on top of panel border */ @@ -80,7 +80,7 @@ export const euiToastStyles = (euiThemeContext: UseEuiTheme) => { preferred: ` ${highlightStyles(color, borderWidth)} - &::after { + &::before { ${logicalCSS( 'width', `calc(100% + ${mathWithUnits( @@ -96,7 +96,7 @@ export const euiToastStyles = (euiThemeContext: UseEuiTheme) => { forced: ` overflow: hidden; - &::after { + &::before { content: ''; position: absolute; ${logicalCSS('top', 0)}