Platform Specific Styling Of Standard HTML Input Types

Since you’re involved in the convo on #15424, I suspect you’ve already given this considerably more thought than I have, but that discussion is still going on, and still feels like a lighter lift than the direction you’re suggesting here, primarily because of the dynamically adapting nature of styles, especially on something like <ion-input>. On events like focus gain/loss, value change, and blur, there is a private method emitStyle that gets fired.

You would have to either use some sort of static analysis to draw out those possibilities, or try triggering equivalent events on your “shadow” component, which strikes me as extremely problematic, especially for focus.

What I have suggested doing before for arbitrary input restriction is a split ngModel binding. I assume you’ve already tried the directive approach, or some library that does so. Any chance you’d be willing to entertain another go at that strategy, or are you wedded to this chameleon idea?