Files
brave-core/components/tabs
Sangwoo Ko 383f178f80 [Tree Tabs] Add UI representation for tree tab nesting (#34102)
* [Tree Tabs] Add UI representation for tree tab nesting

Add visual indentation support for tree tabs in the vertical tab strip.
This enables tabs to be visually nested based on their tree hierarchy,
with dynamic indentation that adapts to available width.

Key changes:
- Add TabNestingInfo struct and integrate it into tab layout pipeline
- Add GetTabNestingInfo() virtual method to TabSlotView
- Add GetTreeHeight()/GetTreeTabNode() to TabSlotController interface
- Implement nesting-aware layout in CalculateVerticalLayout
- Wire tree tab pref into BraveTabContainer layout orientation

Implementation:

- Base offset per level is kBaseOffsetPerLevel (20px). When the strip is
  too narrow to keep min tab width at that spacing, use a tree-wide
  reduced offset: even_offset_per_level = available_width_for_tree /
  (tree_height + 1). The switch to this narrow offset is based on
  tree_height only (not level), so all nodes in the tree share the same
  rule and indent does not jump at a specific depth.

- Minimum offset_per_level in the narrow case is 1. The final offset is
  clamped so tab width never goes below min_inactive_width:
  offset = clamp(offset_per_level * level, 0,
  clamped_available_width_for_tree).

- For very narrow strips, available_width_for_tree is clamped to
  non-negative so offset math stays valid.
2026-02-27 03:10:55 +00:00
..