7 декабря 2020 г.
В нашей первой бета-версии Bootstrap 5 мы называем ее новыми функциями и критическими изменениями. С этого момента мы только дорабатываем функции, ошибки и документацию на пути к стабильной версии 5. Woohoo!
Как и в случае с процессом разработки v4, наши документы для v5 были временно размещены на субдомене для следующего основного выпуска. С сегодняшнего дня эти документы перемещаются в основной домен, а наш старый домен v5.getbootstrap.com
будет перенаправлен.
В этом выпуске добавлено несколько действительно потрясающих новых функций — RTL! — и внесены некоторые важные изменения. Читайте подробности и дайте нам знать, что вы думаете!
Содержание статьи
RTL
Наше самое большое дополнение к проекту за многие годы, мы наконец добавили поддержку RTL в Bootstrap! Пожалуйста, присоединитесь ко мне и поблагодарите @ ffoodd — одного из наших новейших участников и автора запроса на перенос RTL. Запрос на вытягивание включает около 50 ссылок на существующие проблемы и PR, которые пытались внедрить эту функцию в наше ядро.
На высоком уровне наш подход RTL включает несколько изменений:
Наш подход основан на RTLCSS, замечательном проекте, который помогает переработать существующую таблицу стилей LTR для RTL. На данный момент мы классифицировали его как экспериментальную функцию, ожидая, что что-то из этого будет сделано неправильно. Мы надеемся, что сообщество поможет нам завершить эту функцию, пока мы завершим некоторые оставшиеся задачи.
Наша команда уже запланировала несколько важных задач для решения этой проблемы. Видите что-то еще, что мы можем улучшить? Рассмотрите возможность открытия вопроса или запроса на перенос.
Прочтите о RTL в Bootstrap в нашей документации, включая необходимые изменения HTML, начальный шаблон, подробности о нашем подходе и многое другое.
Переименованные классы для логических свойств
Часть нашего подхода к добавлению RTL в Bootstrap заключалась в том, чтобы добавить его таким образом, чтобы он был удобен для нас и Интернета в целом в будущем. Таким образом, мы приняли дух логических свойств CSS и переименовали несколько классов и переменных . Это рискованное изменение из-за масштабов и последствий изменения, но мы надеемся, что вы в целом оцените его!
Большинство из вас уже взаимодействовали с логическими свойствами благодаря нашим гибким утилитам — они заменяют свойства направления, такие как left
и right
на start
и ] конец
. Такие вещи, как align-items-end
приветствуются. Это делает имена классов горизонтального направления подходящими для LTR и RTL без каких-либо дополнительных накладных расходов.
Например, в контексте LTR вместо .ml-3
для левое поле
используйте .ms-3
. Обязательно ознакомьтесь с полным списком переименованных классов и переменных в руководстве по миграции RTL.
Popper.js v2
Мы обновили Popper.js с версии v1.x до версии v2.x, внося с собой небольшие критические изменения в наши всплывающие подсказки и всплывающие окна. Эти два изменения являются причиной того, что мы не смогли выполнить обновление до версии 2.x раньше.
- Удалена опция смещения
popperConfig
. - Вариант
fallbackPlacement
сталfallbackPlacements
.
Popper.js v2 также поставляется с меньшим размером файла для нашей основной зависимости, обновленными расчетами позиционирования и многим другим. Кроме того, наши всплывающие подсказки и всплывающие подсказки остались неизменными и столь же мощными.
Атрибуты данных в пространстве имен
Мы переименовали все наши атрибуты данных
чтобы включить bs
в качестве инфикса, тем самым присвоив всем атрибутам HTML, которые обеспечивают поведение JavaScript из наших плагинов, пространство имен. Подробнее см. # 31827. Это помогает четко идентифицировать триггеры JavaScript, необходимые для Bootstrap, в ваших проектах.
Внесение этого изменения немного утомляет, но достаточно легко исправить, найдя и заменив. Новые атрибуты работают так же, как и старые, только немного конкретнее. Например, вот выпадающая кнопка и меню с недавно переименованным атрибутом data-bs-toggle
.
<div class = "выпадающий список" >
<button class = «btn btn-secondary dropdown-toggle» type = «button» id = "dropdownMenuButton" data-bs-toggle = "dropdown" aria-extended = » false " >
Выпадающая кнопка
<ul class = "раскрывающееся меню" aria-labelledby = "dropdownMenuButton" >
<a class = "dropdown-item" href = "#" > Действие
<a class = "dropdown-item" href = "#" > Другое действие
<a class = "раскрывающийся список" href = "#" > Здесь что-то еще
Позиционирование новых тостов
После того, как мы попробовали некоторые решения JavaScript для позиционирования тостов, мы остановились на новом подходе, основанном только на CSS, благодаря нашим новым утилитам позиционирования. Это сопровождается некоторыми незначительными критическими изменениями, а именно некоторыми изменениями точных свойств CSS и того, как мы переключаем видимость тостов, но в основном они остаются неизменными.
Наши документы были обновлены и теперь включают новое средство предварительного просмотра позиции, чтобы вы могли увидеть их в действии. Подробнее см. В запросе на включение.
Улучшения JS
Помимо пространств имен, мы отказались от некоторых других улучшений JavaScript и исправлений ошибок. Вот краткое изложение того, что нового:
- Создан новый базовый компонент для разделения логики между нашими компонентами. См. № 29370.
- Переходите на более современные API через наши плагины. См. №32095.
- Всплывающие подсказки и всплывающие окна теперь могут иметь настраиваемые классы. См. № 32217.
- Не скрывать модальное окно, если
config.keyboard
имеет значение false. См. № 32179.
Скоро появятся новые обновления JavaScript, от улучшений производительности и размера файлов до новых функций.
Состояния в утилитах API
Одной из самых больших новых функций Bootstrap 5 является наш API утилит, расширяемый способ настройки, добавления или удаления утилит Bootstrap. Мы постоянно повторяем этот процесс, и наше последнее улучшение — это возможность добавлять варианты псевдокласса с опцией состояния
.
Используйте параметр состояние
для генерации вариаций псевдокласса. Примеры псевдоклассов: : hover
и : focus
. Когда предоставляется список состояний, для этого псевдокласса создаются имена классов. Например, чтобы изменить прозрачность при наведении курсора, добавьте state: hover
и вы получите .opacity-hover: hover
в вашем скомпилированном CSS.
Требуется несколько псевдоклассов? Используйте список, разделенный пробелами: состояние: hover focus
.
$ коммунальные услуги : (
«непрозрачность» : (
свойство : непрозрачность
класс : непрозрачность
состояние : парение
значения : (
0 : 0
25 : .25
50 : .5
75 : .75
100 : 1
)
)
);
Который выводит на:
.opacity-0-hover : hover { непрозрачность : 0 ; }
.opacity-25-hover : hover { непрозрачность : .25 ; }
.opacity-50-hover : hover { непрозрачность : .5 ; }
.opacity-75-hover : hover { непрозрачность : .75 ; }
.opacity-100-hover : hover { непрозрачность : 1 ]; }
См. № 31643 для получения дополнительной информации об изменении.
И многое другое…
В другом месте мы внесли несколько важных изменений и улучшений. Среди наиболее заметных обновлений:
-
Нарушение: Функция
scale-color ()
переименована вshift-color ()
. См. № 32149. -
Взлом: Упрощен миксин
make-container ()
и$ container-padding-x
. См. № 31735. -
Исправлено: Углы теперь остаются скругленными в вертикальных группах кнопок. См. № 31303.
-
Исправлено: Удален линейный градиент по умолчанию для некоторых строк таблицы, который приводил к нежелательной производительности. Еще больше работы, которую нужно сделать здесь, к вашему сведению. См. № 32277.
-
Обновлено: Панировочные сухари теперь имеют упрощенный вид. Используйте утилиты, чтобы восстановить
padding
background-color
иborder-radius
по желанию. См. № 32149. -
Обновлено: Окончательная конфигурация списка браузеров для соответствия нашим поддерживаемым браузерам. См. № 30986.
Более полный список изменений можно найти на доске проекта v5 Beta или в списке проблем и PR в этом выпуске.
Начать
Зайдите на https://getbootstrap.com, чтобы изучить новую версию. Мы также опубликовали это обновление как предварительный выпуск для npm, так что если вы чувствуете смелость или хотите узнать, что нового, вы можете получить последние таким образом.
Поддержите команду
Посетите нашу страницу Open Collective или профили членов нашей команды на GitHub, чтобы помочь сопровождающим, вносящим свой вклад в Bootstrap.
<3,
@mdo и команда