Skip to content

feat(Popover): always render outline, deprecate outline prop - #3427

Open
aresnik11 wants to merge 2 commits into
mainfrom
ajr-remove-popover-boxshadow
Open

feat(Popover): always render outline, deprecate outline prop#3427
aresnik11 wants to merge 2 commits into
mainfrom
ajr-remove-popover-boxshadow

Conversation

@aresnik11

@aresnik11 aresnik11 commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

Overview

The Popover's outlined style (1px border, no drop shadow) is now always applied, and the beak always renders its matching border. The outline prop is retained as a deprecated no-op so there are no breaking API changes — existing callers passing outline (or omitting it) continue to compile and render.

Previously outline toggled between a boxShadow style (default) and the bordered outline style. That boxShadow variant is removed.

Changes

packages/gamut

  • styles/base.ts — folded the outline styles (border, boxShadow: 'none') into raisedDivVariants.base, so the container is always outlined.
  • styles/variants.ts — deleted the outlineVariants variant (removes the boxShadow option); removed beakBorderStates and folded borderStyles into beakVariants.base so every beak is bordered unconditionally.
  • elements.tsx — dropped outlineVariants / beakBorderStates from imports, the RaisedDiv/Beak type unions, and the styled compositions.
  • Popover.tsx — stopped consuming outline, removed the outline prop from RaisedDiv, and removed the conditional hasBorder from Beak.
  • types.tsx — marked the outline prop @deprecated (kept for back-compat).

packages/styleguide

  • Removed the dedicated Outline story and the ### Outline docs section (the Default/Playground canvases already show the outlined style).
  • Hid the deprecated outline prop from the Controls panel.

Impact / visual changes

This is a visual change for any Popover that previously rendered with the default drop shadow — those now show the border instead. This includes the default primary variant and internal consumers such as Coachmark and the floating tooltip. secondary-variant popovers already rendered with a border, so they are visually unchanged.

No consumer passes outline={false}, so no downstream code relies on the removed shadow behavior.

PR Checklist

  • Related to designs:
  • Related to JIRA ticket: GMT-227
  • Version plan added/updated (or not needed)
  • I have run this code to verify it works
  • This PR includes unit tests for the code change
  • This PR includes testing instructions tests for the code change
  • The alpha package of this PR is passing end-to-end tests in all relevant Codecademy repositories

Testing Instructions

  1. Go to Popover
  2. Default / Playground* — confirm the popover renders with a 1px border and no drop shadow.
  3. Beak stories — confirm the beak has a matching border in all positions (above/below/center, left/right/center alignment).
  4. Variant (secondary) — confirm it looks the same as before (already bordered).
  5. Toggle light/dark mode in the toolbar — confirm the border color adapts correctly.
  6. Confirm the Controls panel no longer shows an outline knob, and there is no longer a dedicated Outline story.

PR Links and Envs

Repository PR Link
Monolith Monolith PR
Mono Mono PR

Remove the boxShadow variant so the RaisedDiv and beak always render
the outlined style. The outline prop is kept as a deprecated no-op for
backwards compatibility, and Storybook drops the dedicated Outline
story/docs and hides the prop control.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@nx-cloud

nx-cloud Bot commented Aug 27, 2026

Copy link
Copy Markdown

View your CI Pipeline Execution ↗ for commit f351673


☁️ Nx Cloud last updated this comment at 2026-08-27 19:03:10 UTC

@nx-cloud

nx-cloud Bot commented Aug 27, 2026

Copy link
Copy Markdown

View your CI Pipeline Execution ↗ for commit 9f926a1


☁️ Nx Cloud last updated this comment at 2026-08-27 18:26:08 UTC

@codecov

codecov Bot commented Aug 27, 2026

Copy link
Copy Markdown

⚠️ JUnit XML file not found

The CLI was unable to find any JUnit XML files to upload.
For more help, visit our troubleshooting guide.

@codecademydev

Copy link
Copy Markdown
Collaborator

📬 Published Alpha Packages:

Package Version npm Diff
@codecademy/gamut 73.3.1-alpha.8d1bab.0 npm diff
@codecademy/gamut-icons 10.1.1-alpha.8d1bab.0 npm diff
@codecademy/gamut-illustrations 1.1.1-alpha.8d1bab.0 npm diff
@codecademy/gamut-kit 3.0.21-alpha.8d1bab.0 npm diff
@codecademy/gamut-patterns 1.1.1-alpha.8d1bab.0 npm diff
@codecademy/gamut-styles 21.2.1-alpha.8d1bab.0 npm diff
@codecademy/gamut-tests 7.1.1-alpha.8d1bab.0 npm diff
@codecademy/variance 1.1.1-alpha.8d1bab.0 npm diff
eslint-plugin-gamut 3.1.1-alpha.8d1bab.0 npm diff

@aresnik11
aresnik11 marked this pull request as ready for review August 27, 2026 19:13
@aresnik11
aresnik11 requested a review from a team as a code owner August 27, 2026 19:13
@github-actions

Copy link
Copy Markdown
Contributor

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.

2 participants