Tabs > HAML > Migrate Bootstrap tabs to GlTabs in GitLab
GitLab's codebase relies on Bootstrap's tabs in some parts of the application. Those occurrences are defined via a `data-toggle="tab"` attribute, or the `.nav-tabs` class. Let's migrate those occurrences to Pajamas-compatible implementations, like GitLab UI's [`GlTabs` component](https://gitlab-org.gitlab.io/gitlab-ui/?path=/story/base-tabs-tabs--default) or the [`gl_tabs_nav`](https://gitlab.com/gitlab-org/gitlab/-/blob/14-5-stable-ee/app/helpers/tab_helper.rb#L6-23) helper.
## Integration strategy
As of February 2024, the remaining open issues either have a migration guide or pointers on approaches worth investigating as part of the migrations. Generally, there are two options:
- Replace with `GlTabs`/Vue directly
- Example MR: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/77653
- Replace with `gl_tabs_nav` Rails helper, plus our JS `GlTabsBehaviour` class.
- Example MR: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/75944
- Note that, if the tabs can be scrolled through, you might need to add the left and right arrow buttons ad-hoc.
Some challenges, and possible strategies to handle them are discussed in https://gitlab.com/groups/gitlab-org/-/epics/3983#note_741194990, but there's no general guidance for these yet.
epic