Направление текста в FAST Element регулируется рядом свойств и механизмов, обеспечивающих корректное отображение интерфейсов на языках с разными способами письма. В экосистеме FAST применяются унифицированные модели и директивы, призванные упростить управление направлением и совместимость с веб-стандартами.
В вебе существуют два базовых направления: LTR (Left-To-Right) — слева направо. RTL (Right-To-Left) — справа налево.
На уровне HTML направление задаётся атрибутом dir, что
отражается в потоке документа и наследуется многими элементами. FAST
Element использует это же поведение, обеспечивая совместимость и
предсказуемость.
dirАтрибут dir влияет на расположение текста,
позиционирование встроенных элементов, порядок курсора и целый ряд
свойств CSS. В контексте FAST Element любой пользовательский компонент
способен получать dir из DOM-иерархии и применять его к
собственным визуальным областям.
Ключевой момент состоит в том, что атрибут не обязан быть установлен на самом компоненте. Если он присутствует у предка, компонент наследует направление автоматически. Это оправдано при создании многоязычных интерфейсов, где блок может быть окружён элементами с иным направлением.
FAST предоставляет механизм реактивного обновления, что позволяет
элементу отслеживать изменения dir и перестраивать шаблон
или классы стиля. Компонент способен реагировать на перемены направления
так же, как реагирует на изменение других свойств данных. Это становится
важным при динамической смене локалей и контекстов языка, например, при
переключении UI между английским и арабским.
FAST Element использует декларативную систему шаблонов. Внутри
шаблона возможно биндинг-выражение, зависящее от текущего
dir. Это позволяет изменять структуру DOM, порядок
отображения фрагментов или активировать различные CSS-классы в
зависимости от направления.
Такой подход снижает дублирование разметки, избавляя разработчика от необходимости писать параллельные версии одного и того же шаблона.
При работе с направлением важно учитывать современные логические
свойства CSS. Вместо жёстких margin-left и
margin-right предпочтительнее применять
margin-inline-start и margin-inline-end,
которые автоматически меняют своё семантическое значение при
переключении dir. Это устраняет потребность в условных
стилях и повышает переносимость.
FAST Element не навязывает конкретный стиль, но стимулирует использование логических свойств благодаря тому, что компоненты должны оставаться нейтральными к направлению. Такой подход особенно полезен при создании библиотек UI-компонентов, где требуются стабильные визуальные гарантиями.
Помимо декларативной установки dir возможен императивный
способ. Компонент может изменять собственное направление программно,
присваивая атрибут или меняя свойство. Чаще всего это задействуется при
изменении состояния приложения или переключении языка без обновления
страницы.
Императивный контроль сохраняет согласованность с шаблоном FAST Element: изменение отражается в фазе обновления DOM, после чего шаблон и визуальные правила вступают в силу.
FAST Element обеспечивает изоляцию компонентов, поэтому вложенные элементы могут иметь собственное направление, не совпадающее с глобальным. Такой сценарий встречается при отображении встроенных фрагментов текста в других языках. Например, англоязычные числа или короткие фразы внутри RTL-интерфейса должны корректно восприниматься браузером и верно позиционироваться.
При изоляции важно учитывать, что некоторые CSS-свойства и layout-алгоритмы всё же учитывают контекст предков, поэтому тестирование подобного поведения необходимо.
Интерфейсы, использующие FAST Element, часто взаимодействуют с данными, поступающими из разных систем. В таких сценариях направление текста может определяться не только настройками интерфейса, но и метаданными контента. Например, информационная лента может получать строки в смешанных направлениях.
FAST Element допускает такие случаи, поскольку управление направлением не жёстко связано с внутренней моделью данных. Если данные несут метку направления, она может быть учтена на уровне шаблона или при отрисовке слота компонента.
FAST состоит из нескольких уровней — Foundation, Design System, Element. Механизм направления во многом единообразен между ними. Это позволяет использовать общие решения для RTL и LTR даже вне Element, что особенно полезно при создании дизайн-систем.
Совместное использование логических CSS-свойств, наследования
dir и реакции шаблонов образует комплексный подход, который
упрощает реализацию международных интерфейсов без необходимости вводить
дополнительные прослойки или адаптеры.
Проверка правильности направлений включает визуальную инспекцию,
автоматические юнит-тесты и интерфейсные тесты. Наличие dir
влияет на рендер и структуру DOM, поэтому тесты должны учитывать
различия в расположении элементов и соблюдении порядка в шаблоне.
Надёжное тестирование гарантирует, что компонент будет одинаково корректен в приложениях с любой локалью. Для библиотек, предназначенных для широкого использования, такой подход становится обязательным шагом.
Направление текста — часть более широкой стратегии интернационализации. FAST Element создавался с прицелом на масштабирование, поэтому управление направлением встроено в фундаментальные механизмы, а не существует в качестве дополнения. Это повышает устойчивость интерфейса, снижает технический долг и сокращает влияние локализации на архитектурные решения.
Ключевой момент: правильная работа с направлением в FAST Element формирует основу универсального UI, который корректно функционирует на языках любых письменных систем и не требует переделки при добавлении новых локалей.