Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Remove the deprecated fake-btn, fake-tabs, fake-link and fake-menu classes in the next Skin major

Open
#1,069 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
25/100
Issue type
Refactor
Clarity
Clearly specified
Activity status
Active
Tech stack
javascript, react, sass, typescript

Research direction

Start with docs/adr/0009-static-component-boundaries.md and the framework-layer prerequisite list, then trace remaining selectors in button.scss, tabs.scss, link.scss, menu.scss and the named component styles. Update framework components, snapshots, stories, docs, tokens and selectors API as listed; confirm no in-scope legacy classes remain, then add the @ebay/skin major changeset. The issue says framework updates must land in a minor release before Skin removes the selectors.

Written by the indexing model from the issue text.

Description

package: ebayui-core package: ebayui-core-react package: evo-web/marko package: evo-web/react package: skin semvar: breaking changes

Context

#1045 added link-button, navigation-tabs, button-link and navigation-menu as standalone Skin components and deprecated their legacy counterparts (fake-btn, fake-tabs, fake-link, fake-menu) without removing them, so that release was not breaking. This issue removes the legacy classes in the next major version.

Replacement map: fake-btn to link-button, fake-tabs to navigation-tabs, fake-link to button-link, fake-menu to navigation-menu.

Decision record: docs/adr/0009-static-component-boundaries.md.

Prerequisite (blocks the removal)

The framework layers still emit the legacy classes. Each must move to the new classes in a minor release first, otherwise removing the Skin selectors breaks them.

  • Button components that build the fake-btn base class: ebayui-core/ebay-button, evo-marko/evo-button, ebayui-core-react/ebay-button, evo-react/button
  • Fake tabs, fake link and fake menu components in ebayui-core, evo-marko, ebayui-core-react and evo-react, or their replacement (for example a variant prop), as decided by the Marko and React owners
  • Wrappers that render fake-link internally: notices, drawer, panel and fullscreen dialogs, tourtip and snackbar dialog (for example ebay-notice-base, ebay-dialog-base, ebay-snackbar-dialog and their React and evo- equivalents)
  • Snapshots and tests that assert the legacy classes

Skin removal

  • Delete the a.fake-btn* selectors from button.scss, fake-tabs* from tabs.scss, button.fake-link from link.scss and fake-menu* from menu.scss
  • Delete the .fake-link half of the parallel rules in panel-dialog, inline-notice, tourtip, drawer-dialog, section-notice, education-notice, fullscreen-dialog, snackbar-dialog and page-notice
  • Delete the legacy stories: button/stories/fake-button/, tabs/stories/fake-tabs/, menu/stories/fake-menu.stories.js, and the fake, disabledFake and legalFake stories in link.stories.js
  • Move stories in other components that use these classes to the new classes: card, global, split-button, education-notice, page-notice, panel-dialog, section-notice, snackbar-dialog, tourtip
  • Rename the fake-link-foreground-* token overrides used by button-link. They kept the old names so existing themes keep working
  • Remove the FAKE entries from src/selectors-api/selectors-api.json

Docs site

  • Remove the deprecation notices and the Fake Tabs, Fake Link and Fake Menu sections from the button, tabs, link and menu CSS pages, and the fake-btn examples on the button CSS page
  • Update the pages that show these classes: card, split-button, the notice and dialog pages, tourtip, snackbar, button/marko+page, button/react+page, the cta-button Marko and React pages, and the accessibility pattern pages for fake tabs and fake menu button
  • Add a changeset: @ebay/skin major, listing the removed classes and their replacements

Not in scope

  • fake-menu-button, which is a separate component
  • packages/skin/docs/archive/ and CHANGELOG.md entries, which are history
Dominant language
TypeScript
Stars
52
Forks
54
Avg merge
2d 11h
Merged PRs (30d)
42

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from eBay/evo-web

All issues in eBay/evo-web

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.