diff --git a/CHANGELOG.md b/CHANGELOG.md index 4edcd770..f08dfd99 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,8 +10,9 @@ Introducing theme variables! CSS variables beginning with `--theme-` will adjust ### CSS Logical Properties -* Continued migrating physical directional properties to their logical equivalents (see #1084) -- `templates/_card-layout.scss`, `templates/_main-with-sidebar.scss`, `_footer.scss`, `_navigation.scss`, `_menu.scss`, `_menu-item.scss`, `_menu-list.scss`, and `_sidebar-menu.scss`. 59 `bidi()` calls removed. -* Where a property has no logical equivalent safe across the supported matrix (`background-position`, and a CSS `transform` that visually flips a directional glyph), kept the physical value with an explicit `[dir='rtl']` override instead. +* RTL support now relies on CSS logical properties. +* Where a property has no supported logical equivalent (e.g. `background-position`), RTL support is with an explicit `[dir='rtl']` override instead. +* **Deprecated** `@mixin bidi()` The mixin is still exported and available for your use, but you are encouraged to phase it out. ### Browser Support @@ -61,10 +62,6 @@ Introducing theme variables! CSS variables beginning with `--theme-` will adjust * (breaking) Standardized interactive component states on `:focus-visible` instead of `:focus`. * (breaking) Click/pick form elements now use :focus-visible but input/typing fields keep :focus. -### CSS Logical Properties - -* Started migrating physical directional properties to their logical equivalents - ## Component changes ### Feature Card diff --git a/assets/sass/protocol/components/_breadcrumb.scss b/assets/sass/protocol/components/_breadcrumb.scss index cbf1dd4f..9a79eceb 100644 --- a/assets/sass/protocol/components/_breadcrumb.scss +++ b/assets/sass/protocol/components/_breadcrumb.scss @@ -28,9 +28,13 @@ + .mzp-c-breadcrumb-item { &::before { + content: '\2192'; font-weight: normal; margin: 0 0.25em; - @include bidi(((content, '\2192', '\2190'),)); + + [dir='rtl'] & { + content: '\2190'; + } } } diff --git a/assets/sass/protocol/components/_button.scss b/assets/sass/protocol/components/_button.scss index 1d7e7caa..3955eb07 100644 --- a/assets/sass/protocol/components/_button.scss +++ b/assets/sass/protocol/components/_button.scss @@ -240,9 +240,9 @@ } .mzp-c-button-icon-start { - @include bidi(((margin-right, 0.5ch, 0), (margin-left, 0, 0.5ch),)); + margin-inline: 0 0.5ch; } .mzp-c-button-icon-end { - @include bidi(((margin-left, 0.5ch, 0), (margin-right, 0, 0.5ch),)); + margin-inline: 0.5ch 0; } diff --git a/assets/sass/protocol/components/_card.scss b/assets/sass/protocol/components/_card.scss index 5c134818..480c1ca1 100644 --- a/assets/sass/protocol/components/_card.scss +++ b/assets/sass/protocol/components/_card.scss @@ -54,13 +54,15 @@ &.mzp-has-video .mzp-c-card-tag, &.mzp-has-audio .mzp-c-card-tag { + background-position: center left; background-repeat: no-repeat; line-height: 1.8; min-height: 25px; - @include bidi(( - (background-position, center left, center right), - (padding-left, $spacing-xl, padding-right, 0), - )); + padding-inline-start: $spacing-xl; + + [dir='rtl'] & { + background-position: center right; + } } &.mzp-has-video .mzp-c-card-tag { diff --git a/assets/sass/protocol/components/_inline-list.scss b/assets/sass/protocol/components/_inline-list.scss index 21abb5a2..08d4e6dd 100644 --- a/assets/sass/protocol/components/_inline-list.scss +++ b/assets/sass/protocol/components/_inline-list.scss @@ -5,12 +5,14 @@ @use '../includes/lib' as *; .mzp-c-inline-list { - margin: $layout-md 0 0 ($layout-md * -1); + margin-top: $layout-md; + margin-bottom: 0; + margin-inline: ($layout-md * -1) 0; li { display: inline-block; margin-bottom: $layout-xs; - margin-left: $layout-md; // this technique works for RTL without needing bidi styles + margin-inline-start: $layout-md; white-space: nowrap; &:last-child { diff --git a/assets/sass/protocol/components/_language-switcher.scss b/assets/sass/protocol/components/_language-switcher.scss index 1d0f37a8..4d28eff2 100644 --- a/assets/sass/protocol/components/_language-switcher.scss +++ b/assets/sass/protocol/components/_language-switcher.scss @@ -12,7 +12,8 @@ .mzp-c-language-switcher-link { display: inline-block; font-size: var(--theme-body-font-size-sm); // just want smaller text size, so don't use full mixin - @include bidi(((margin, 0 $spacing-lg $spacing-sm 0, 0 0 $spacing-sm $spacing-lg),)); + margin-block: 0 $spacing-sm; + margin-inline-end: $spacing-lg; } // hide the