Skip to content

Conversation

inikolova
Copy link
Contributor

@inikolova inikolova commented Jul 15, 2025

Closes https://github.com/telerik/kendo-themes-private/issues/366

This PR addresses the following issues as well:

#5427
#5397
#5025

Based on an audit of z-index usage across all themes and components, I would suggest the following organisation into semantic groups with clearly defined and meaningful ranges:
1. Base / background (-1-0)
For elements that should appear behind normal content (pseudo-elements, placeholders, backgrounds);
2. Content / basic (1-99)
For normal content elements and their internal layering - like grid headers, calendar header, form inputs etc.
3. Navigation (100-999)
For elements that should appear above normal content (for example Sticky Appbar);
4. Floating (1000-9999)
For elements that float above the main interface (Notification, Badge, Dock manager unpinned containers, Map attribution, Fixed Appbar);
5. Overlay (10000-11999)
For modal dialogs and overlays, Drawer overlays, Fullscreen modes.
6. Popups (12000 - 19999)
For Tooltip, Popover, Context menu, Chat tooltip.
7. User feedback (20000-29999)
For drag&drop elements elements, loading states, and temporary user feedback.
8 Special Cases (30000+)
For emergency overrides and special cases (!!!use sparingly).

Here are some further suggestions based on the research:
1. Structural Elements (for example k-header) which are direct children of a component should have z-index 1;
2. k-resize-handle -> its z-index has been increased to 10, as it should always appear above its surrounding elements.; this value is now consistent across all components;
3. Interactive states - when component state needs a higher priority, increase its z-index with 1;
4. .k-edit-cell should have the highest priority than all other cells - normal, sticky, intersection of sticky row and cell, therefore is z-index is increased to 5.

@inikolova inikolova self-assigned this Jul 15, 2025
Copy link

github-actions bot commented Jul 15, 2025

Packages Report

core default classic bootstrap material fluent utils
Size 29.15 KB (0.0%) 763.83 KB (-0.0%🔽) 763.85 KB (-0.0%🔽) 775.91 KB (-0.0%🔽) 909.41 KB (-0.0%🔽) 1135.26 KB (-0.0%🔽) 625.19 KB (0.0%)
Gzip Size 4.85 KB (0.0%) 99.45 KB (-0.1%🔽) 99.77 KB (-0.1%🔽) 101.12 KB (-0.0%🔽) 112.81 KB (-0.0%🔽) 134.65 KB (-0.0%🔽) 52.16 KB (0.0%)
Compile Time 1 s (0.0%) 4 s (0.0%) 4 s (0.0%) 4 s (0.0%) 4 s (0.0%) 5 s (0.0%) 3 s (0.0%)

@inikolova inikolova force-pushed the revise-z-index branch 2 times, most recently from b68c6c8 to a8c0193 Compare July 16, 2025 14:17
@inikolova inikolova modified the milestone: 2025 Q3 (Aug) Jul 16, 2025
@inikolova inikolova marked this pull request as ready for review July 16, 2025 14:36
@inikolova inikolova requested a review from a team as a code owner July 16, 2025 14:36
@zhpenkov zhpenkov requested a review from Copilot July 17, 2025 10:29
Copy link

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This PR reorganizes z-index values across themes and components to follow a semantic grouping (background, content, navigation, floating, overlays, popups, user feedback, special cases). Key changes include lowering the AppBar default z-index, aligning documentation, and adjusting dozens of component layers to match their intended stack order.

  • Lower AppBar z-index from 1000 to 900 in all themes
  • Update documentation tables to reflect the new default
  • Adjust various component z-indexes (splitter handles, popups, media player, grid, Gantt, draggable, dock-manager, color palette)

Reviewed Changes

Copilot reviewed 36 out of 45 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
packages/material/scss/appbar/_variables.scss Set AppBar z-index to 900
packages/material/docs/customization*.md Align docs with new 900 default
packages/fluent/scss/appbar/_layout.scss Hardcoded fixed AppBar z-index changed to 1000
packages/fluent/scss/spreadsheet/_layout.scss Removed .k-spreadsheet-tabstrip z-index block
packages/fluent/scss/splitter/_layout.scss Increased splitter drag-handle z-index to 10
packages/fluent/scss/popup/_layout.scss Raised popup container z-index to 12000
packages/fluent/scss/mediaplayer/_layout.scss Standardized media player layers to z-index: 1
packages/fluent/scss/grid/_layout.scss Bumped grid resizer to 10 and edit-cell to 5
packages/fluent/scss/draggable/_layout.scss Updated draggable feedback to z-index 20000
packages/fluent/scss/dock-manager/_layout.scss Set dock-manager panel to z-index 1 / 1000
packages/fluent/scss/colorpalette/_layout.scss Refined hover/focus stack levels to 3 / 2
Comments suppressed due to low confidence (1)

packages/fluent/scss/spreadsheet/_layout.scss:871

  • The entire .k-spreadsheet-tabstrip block was removed, including layout tweaks beyond z-index. This may break tabstrip styling or behavior. If only z-index needed adjustment, revert the removal and only update that property.
        border-color: inherit;

@inikolova inikolova marked this pull request as draft July 21, 2025 09:39
@inikolova inikolova requested a review from a team August 1, 2025 12:56
@inikolova inikolova marked this pull request as ready for review August 1, 2025 12:56
@inikolova inikolova force-pushed the revise-z-index branch 2 times, most recently from bd8b1ce to 9b55ec7 Compare August 1, 2025 13:30
@TeyaVes
Copy link
Contributor

TeyaVes commented Aug 1, 2025

Maybe we can add a list with the componets that use z-index and order them by z-index

@zhpenkov zhpenkov mentioned this pull request Aug 11, 2025
@zhpenkov
Copy link
Contributor

Closed in favour of: #5542

@zhpenkov zhpenkov closed this Aug 14, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants