Skip to content

feat(input-otp): convert to a form associated shadow component #30785#30884

Merged
brandyscarney merged 56 commits intonextfrom
FW-6912-input-otp
Feb 5, 2026
Merged

feat(input-otp): convert to a form associated shadow component #30785#30884
brandyscarney merged 56 commits intonextfrom
FW-6912-input-otp

Conversation

@brandyscarney
Copy link
Member

@brandyscarney brandyscarney commented Dec 19, 2025

Issue number: internal


What is the current behavior?

Input Otp uses scoped encapsulation. This causes issues with CSP compatibility and is inconsistent with our goal of having all components use Shadow DOM.

What is the new behavior?

  • Converts ion-input-otp to shadow with formAssociated: true
  • Adds shadow parts for inner elements

Does this introduce a breaking change?

  • Yes
  • No
BREAKING CHANGE:

Input Otp has been converted to use [Shadow DOM](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Using_shadow_DOM).

If you were targeting the internals of `ion-input-otp` in your CSS, you will need to target the `group`, `container`, `native`, `separator` or `description` [Shadow Parts](https://ionicframework.com/docs/theming/css-shadow-parts) instead, or use the provided CSS Variables.

Other information

@brandyscarney brandyscarney marked this pull request as draft January 12, 2026 22:14
Copy link
Contributor

@thetaPC thetaPC left a comment

Choose a reason for hiding this comment

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

LGTM, one comment but not a blocker

Copy link
Contributor

@thetaPC thetaPC left a comment

Choose a reason for hiding this comment

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

LGTM

Copy link
Member

@ShaneK ShaneK left a comment

Choose a reason for hiding this comment

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

Looking good! I left a couple of comments, but I consider them non-blockers. Well done!

Copy link
Contributor

@thetaPC thetaPC left a comment

Choose a reason for hiding this comment

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

LGTM

Base automatically changed from FW-6912-textarea to next February 5, 2026 18:35
@brandyscarney brandyscarney merged commit 177a6ea into next Feb 5, 2026
49 checks passed
@brandyscarney brandyscarney deleted the FW-6912-input-otp branch February 5, 2026 18:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

package: angular @ionic/angular package package: core @ionic/core package package: react @ionic/react package package: vue @ionic/vue package

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants