Files
Brandy Smith 177a6ea134 feat(input-otp): convert to a form associated shadow component #30785 (#30884)
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?
- [x] 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.

---------

Co-authored-by: Brandy Smith <6577830+brandyscarney@users.noreply.github.com>
2026-02-05 13:54:05 -05:00
..
2025-12-23 18:55:19 +00:00
2025-12-23 18:55:19 +00:00

@ionic/vue

Ionic Framework integration for Vue 3 apps.

Building

  1. Install dependencies in @ionic/core:
cd core && npm install
  1. Build @ionic/core. This will generate Vue component bindings in the packages/vue directory:
npm run build
  1. Install dependencies in @ionic/vue:
cd packages/vue && npm install
  1. Build @ionic/vue:
npm run build
  1. Install dependencies in @ionic/vue-router:
cd packages/vue-router && npm install
  1. Build @ionic/vue-router:
npm run build

Tests

  • E2E Tests are found in the packages/vue/test/base/tests directory and use Cypress.
  • When making changes to @ionic/vue or @ionic/vue-router you can run npm run sync in the test-app directory to ensure that the test application is using your built changes. Be sure to build in the vue and vue-router directories first.
  • Tests can be run in headless mode by running npm run cypress.
  • If you want to open the Cypress test runner, you can run node_modules/.bin/cypress open.
  • Bug fix and feature PRs should have new tests verifying the PR functionality.

Contributing

See our Contributing Guide.

Need Help?

Post your question on the Ionic Forum.