Skip to content

[Chrome Workspace] split application area into topBar, bottomBar and content area#225824

Merged
Dosant merged 5 commits intoelastic:mainfrom
Dosant:d/2025-06-30-grid-layout-appbar
Jun 30, 2025
Merged

[Chrome Workspace] split application area into topBar, bottomBar and content area#225824
Dosant merged 5 commits intoelastic:mainfrom
Dosant:d/2025-06-30-grid-layout-appbar

Conversation

@Dosant
Copy link
Copy Markdown
Contributor

@Dosant Dosant commented Jun 30, 2025

Summary

Based on the discussion this PR slightly reworks the layout introduced in #223890.

For the Application Menu Bar, we need a header that is technically part of the application grid cell. This PR introduces applicationTopBar (and applicationBottomBar for consistency). It also adds a new set of variables: --kbn-application--content-[top|bottom|left|right|height|width], which will represent the "safe" application content space for applications to use.

  • applicationBottomBar now works like the previous footer, but it is implemented differently—it is part of the application cell instead of being its own grid cell.
  • I kept the global footer just in case we need it and to properly debug/test that the variables work correctly. I adjusted it to take up the full width, similar to the banner.

Before

Screenshot 2025-06-30 at 14 05 38

After

Screenshot 2025-06-30 at 13 59 36

@Dosant Dosant requested a review from a team as a code owner June 30, 2025 12:06
@Dosant Dosant added release_note:skip Skip the PR/issue when compiling release notes Team:SharedUX Platform AppEx-SharedUX (formerly Global Experience) t// labels Jun 30, 2025
@elasticmachine
Copy link
Copy Markdown
Contributor

Pinging @elastic/appex-sharedux (Team:SharedUX)

@Dosant Dosant added the backport:skip This PR does not require backporting label Jun 30, 2025
Copy link
Copy Markdown
Contributor

@clintandrewhall clintandrewhall left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Awesome. Approving to unblock-- let's address my open question before merging.

- `--kbn-layout--footer-width`
- `--kbn-layout--application-[top|bottom|left|right|height|width]`
- **Application Top Bar**
- `--kbn-layout--application-top-bar-[height|top|left|width|right|bottom]`
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: perhaps we could consider splitting these away from layout...?

**Application**
  - `--kbn-layout--application-[top|bottom|left|right|height|width]`

  - `--kbn-application--top-bar-[top|bottom|left|right|height|width]`
  - `--kbn-application--content-[top|bottom|left|right|height|width]`
  - `--kbn-application--bottom-bar-[top|bottom|left|right|height|width]`

This would also reflect the reality of the grid divisions, (i.e. the application area has its own grid)

The benefit would also be for consumers: they wouldn't have to touch the --kbn-layout--* namespace at all, reducing any confusion.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was unsure about this and wanted to keep the word layout in the variable name. What do you think about --kbn-application-layout--bottom-bar-[top|bottom|left|right|height|width]? Is it too verbose?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I updated as you suggested, but let me know if you'd prefer more verbose version

@Dosant Dosant enabled auto-merge (squash) June 30, 2025 15:06
@Dosant Dosant merged commit a786e72 into elastic:main Jun 30, 2025
11 checks passed
@elasticmachine
Copy link
Copy Markdown
Contributor

💚 Build Succeeded

Metrics [docs]

Async chunks

Total size of all lazy-loaded chunks that will be downloaded as the user navigates the app

id before after diff
automaticImport 1.1MB 1.1MB +2.0B
canvas 1.1MB 1.1MB +2.0B
contentConnectors 470.1KB 470.1KB +2.0B
dashboard 617.8KB 617.8KB +2.0B
discover 1.1MB 1.1MB +1.0B
enterpriseSearch 1.1MB 1.1MB +2.0B
eventAnnotationListing 204.5KB 204.5KB +2.0B
filesManagement 101.6KB 101.6KB +2.0B
graph 370.6KB 370.6KB +2.0B
home 106.0KB 106.0KB +2.0B
indexManagement 677.6KB 677.7KB +2.0B
infra 1.0MB 1.0MB +2.0B
kibanaOverview 38.6KB 38.6KB +2.0B
management 33.3KB 33.3KB +2.0B
maps 3.1MB 3.1MB +3.0B
ml 5.4MB 5.4MB +2.0B
observabilityShared 37.8KB 37.8KB +2.0B
onechat 32.4KB 32.4KB +2.0B
osquery 1.0MB 1.0MB +2.0B
painlessLab 16.3KB 16.3KB +1.0B
searchHomepage 37.9KB 37.9KB +2.0B
searchIndices 193.6KB 193.6KB +2.0B
searchInferenceEndpoints 96.7KB 96.7KB +2.0B
searchPlayground 196.9KB 196.9KB +2.0B
searchprofiler 29.1KB 29.1KB +1.0B
searchQueryRules 118.9KB 118.9KB +2.0B
searchSynonyms 52.1KB 52.1KB +2.0B
security 502.5KB 502.5KB +2.0B
securitySolution 9.8MB 9.8MB +2.0B
securitySolutionEss 35.1KB 35.1KB +2.0B
securitySolutionServerless 55.1KB 55.1KB +2.0B
spaces 209.1KB 209.1KB +2.0B
visualizations 373.7KB 373.7KB +2.0B
workchatApp 126.2KB 126.2KB +2.0B
total +66.0B

Page load bundle

Size of the bundles that are downloaded on every page load. Target size is below 100kb

id before after diff
core 468.9KB 471.7KB +2.8KB
esUiShared 89.1KB 89.1KB +2.0B
total +2.8KB

History

Dosant added a commit that referenced this pull request Jul 3, 2025
> [!IMPORTANT]
> **Should be no user-facing changes!!!** The new layout work is behind
a feature flag!

## Summary

Part of [workspace
chrome](elastic/kibana-team#1581 ) work.
This is follow up to #224255,
#225824 which mostly implements
the new layout for project (serverless) navigation.


![Screenshot 2025-07-01 at 15 04
45](https://github.com/user-attachments/assets/270a9871-4eec-49ac-bb75-75ea1b68916e)

### Implementation notes:

- The project navigation sidebar still uses the EuiCollapsibleNavBeta
component. It works as a push flyout on larger screens and as an overlay
on smaller screens.
- In the next steps, we will start using the new navigation grid cell
for the upcoming side navigation component.


## How to review 

1. Most importantly, we need to ensure that nothing is broken in the old
layout during the refactor. - Functional tests + visual/manual testing
2. Then for the new layout: 

kibana.yml:
```
feature_flags.overrides:
  core.chrome.layoutType: 'grid'
  core.chrome.layoutDebug: true
```

- Check that it mostly works (some specific edge cases and bugs are
expected and are gathered in
#225263)
- Code-review:  focus on the layout implementation split approach
kertal pushed a commit to kertal/kibana that referenced this pull request Jul 25, 2025
)

> [!IMPORTANT]
> **Should be no user-facing changes!!!** The new layout work is behind
a feature flag!

## Summary

Part of [workspace
chrome](elastic/kibana-team#1581 ) work.
This is follow up to elastic#224255,
elastic#225824 which mostly implements
the new layout for project (serverless) navigation.


![Screenshot 2025-07-01 at 15 04
45](https://github.com/user-attachments/assets/270a9871-4eec-49ac-bb75-75ea1b68916e)

### Implementation notes:

- The project navigation sidebar still uses the EuiCollapsibleNavBeta
component. It works as a push flyout on larger screens and as an overlay
on smaller screens.
- In the next steps, we will start using the new navigation grid cell
for the upcoming side navigation component.


## How to review 

1. Most importantly, we need to ensure that nothing is broken in the old
layout during the refactor. - Functional tests + visual/manual testing
2. Then for the new layout: 

kibana.yml:
```
feature_flags.overrides:
  core.chrome.layoutType: 'grid'
  core.chrome.layoutDebug: true
```

- Check that it mostly works (some specific edge cases and bugs are
expected and are gathered in
elastic#225263)
- Code-review:  focus on the layout implementation split approach
@Dosant Dosant added the chrome-grid Work related to Chrome refactor to grid layout label Nov 17, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport:skip This PR does not require backporting chrome-grid Work related to Chrome refactor to grid layout release_note:skip Skip the PR/issue when compiling release notes Team:SharedUX Platform AppEx-SharedUX (formerly Global Experience) t// v9.2.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants