From a2d347dcdc9777f6d12c53334510131a1fdf5fc5 Mon Sep 17 00:00:00 2001 From: johnnyshields <27655+johnnyshields@users.noreply.github.com> Date: Mon, 6 Jul 2026 14:15:39 +0900 Subject: [PATCH] RTL: right-align number next to the flag/dial-code button (pure-CSS layout) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Opinionated TableCheck RTL layout: the phone number is right-aligned so it sits beside the country button, and the number, separate dial code and flag read as one group hugging the flag β€” e.g. "51 234 5678 +966 πŸ‡ΈπŸ‡¦". - No direction detection in JS, and the dial code keeps ONE position (inside the country button, upstream default) that serves both LTR and RTL. - Layout is pure CSS, scoped to :dir(rtl): right-align the number and move the flag-clearance padding to the input's physical inline-end. - Why the one JS touch: browsers resolve a tel input's own direction as LTR even inside an RTL page, so ui.ts's flag-clearance padding-inline-start lands on the physical LEFT β€” the wrong side when the button is on the right. ui.ts now also publishes that already-measured width as the --iti-country-clearance custom property (a measurement only); the :dir(rtl) rule neutralises the left padding and re-applies the clearance on the right. The direction/side decision is 100% in CSS. Only the RTL visual snapshot changes; the other 8 are byte-identical and the LTR path is untouched. typecheck clean, e2e 17 passed, node unit suite 508 passed. --- packages/core/src/css/intlTelInput.css | 26 ++++++++++++++++++ packages/core/src/js/core/ui.ts | 9 ++++++ .../vanilla-rtl-dropdown-open-chromium.png | Bin 19094 -> 19293 bytes 3 files changed, 35 insertions(+) diff --git a/packages/core/src/css/intlTelInput.css b/packages/core/src/css/intlTelInput.css index caab58d39..5b92f4633 100644 --- a/packages/core/src/css/intlTelInput.css +++ b/packages/core/src/css/intlTelInput.css @@ -132,6 +132,32 @@ direction: ltr; } +/* Fork RTL layout: right-align the phone number so it sits next to the country button, which + holds the flag and the separate dial code on the inline-start (right) edge. The number and + dial code then read as one group hugging the flag ("51 234 5678 +966 πŸ‡¦πŸ‡ͺ"). Pure CSS, + scoped to :dir(rtl); the LTR layout is unchanged and the dial code keeps its single, + direction-agnostic position inside the country button (see ui.ts #buildCountryContainer). + + Note: placing a *separate* dial-code element to the LEFT of the right-aligned number, in a + full-width field, is not expressible in pure CSS β€” it needs the number's pixel width (a JS + measurement) or a field that shrinks to its content. Keeping the dial code by the flag is + the full-width, pure-CSS layout. The scope is keyed off the wrapper's directionality (a + plain
, whose :dir resolves reliably) and reaches the input via a descendant selector, + so it does not depend on the 's own :dir resolution. */ +.iti:dir(rtl) .iti__tel-input { + /* Right-align the number so it sits next to the country button. */ + text-align: right; + /* The input's own direction resolves to LTR (browsers force it for tel/number-style inputs + even inside an RTL page), so its logical inline-start is the physical LEFT β€” where the + JS-set flag-clearance padding lands, and the WRONG side for an RTL widget whose country + button is on the right. Neutralise that padding and re-apply the clearance on the physical + RIGHT (the input's inline-end). The width comes from the --iti-country-clearance custom + property that ui.ts publishes (a measurement; the side is chosen here in CSS). !important + beats both the JS inline padding-inline-start and any consumer id-selector padding. */ + padding-inline-start: var(--iti-spacer-horizontal) !important; + padding-inline-end: var(--iti-country-clearance, 0px) !important; +} + .iti__arrow { margin-inline-start: var(--iti-arrow-padding); margin-top: -2px; diff --git a/packages/core/src/js/core/ui.ts b/packages/core/src/js/core/ui.ts index 3fbd32447..6fc515138 100644 --- a/packages/core/src/js/core/ui.ts +++ b/packages/core/src/js/core/ui.ts @@ -487,6 +487,15 @@ export default class UI { const inputPadding = selectedCountryWidth + LAYOUT.INPUT_PADDING_EXTRA_LEFT; this.telInputEl.style.paddingInlineStart = `${inputPadding}px`; + //* Publish the clearance width as a custom property so the RTL stylesheet can place it on + //* the physical RIGHT. Browsers resolve a tel input's own direction as LTR even inside an + //* RTL page, so the line above (logical inline-start) writes to the physical LEFT, whereas + //* the flag/country button in an RTL widget sits on the RIGHT. This is a measurement only β€” + //* the direction/side decision lives entirely in CSS (intlTelInput.css, scoped to :dir(rtl)). + this.telInputEl.style.setProperty( + "--iti-country-clearance", + `${inputPadding}px`, + ); } } diff --git a/tests-e2e/visual.spec.ts-snapshots/vanilla-rtl-dropdown-open-chromium.png b/tests-e2e/visual.spec.ts-snapshots/vanilla-rtl-dropdown-open-chromium.png index 7740ccf920940a9096da3731a9f6d6e4590f7620..c3686252c035a1c0f9012afaf64afa9249a001a7 100644 GIT binary patch literal 19293 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 DCsbJM literal 19094 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