Повсеместное использование --safe-area-inset-top#2414
Conversation
|
This pull request is automatically built and testable in CodeSandbox. To see build info of the built libraries, click here or the icon next to each commit SHA. Latest deployment of this branch, based on commit 0628334:
|
size-limit report 📦
|
👀 Styleguide deployedSee the styleguide for this PR at https://vkcom.github.io/VKUI/pull/2414/ |
|
При |
src/styles/constants.css
Outdated
| */ | ||
| @supports (-webkit-touch-callout: none) { | ||
| :root { | ||
| --safe-area-inset-top: 20px; |
There was a problem hiding this comment.
А зачем мы ставим 20 на iOS? Есть какие то кейсы где в safe-area-inset-top не проставляется высота? А если iphone без челки?)
There was a problem hiding this comment.
Вот на айфонах без чёлки как раз 20. Ещё на айфонах без чёлки может быть старая iOS, где будут отсутствовать нужные нам переменные окружения.
There was a problem hiding this comment.
Мне не понятно почему для IOS выставляется 20 а для остальных платформ перебивается в 0. Это какой то баг был или особенность мини аппок?
There was a problem hiding this comment.
Тут #2414 (comment) я глянул, что с 20px напрямую в Safari выглядит так себе
Если фикс для мини-апп, то можно же через VKWebAppUpdateConfig сетить эти 20px, не?
There was a problem hiding this comment.
@stoope Игорь рассказал мне в оффлайне, что значение по умолчанию в 20px было необходимо для версий iOS без поддержки CSS Custom Properties. Это позволяло полифилить --safe-area-inset-top
:root {
--safe-area-inset-top: 20px
}
.ComponentA {
top: 20px
top: var(--safe-area-inset-top);
}
Пришли к тому, что можно удалить это значение, т.к. прошло достаточно много времени, чтобы считать, что iOS с такой версий уже почти нет.
Запушил коммит.
PS: 20px это высота статус бара в iOS без челки
|
На iOS тоже отключена ротация приложения. Глянул в браузере, там, где поддерживается Ещё интересная особенность, что система сама переключает значения в зависимости от Рис. 1. Рис. 2. Нюанс про
|
Ага, давай починим. А что если использовать |
|
Со sticky не все так просто, легко получить дополнительные проблемы, когда его что-то может перекрыть, либо он перестанет адекватно позиционироваться из-за особенностей его работы |
bafedbb to
230b4dc
Compare
Это да, |



В частности поправил, что на Android игнорировалось использование
--safe-area-inset-topв следующих компонентах:Проверил на эмуляторе
О значении по умолчанию для iOS
Для iOS в
--safe-area-inset-topв:rootвыставлялось значение по умолчанию в20px(прикрепляю код ниже)VKUI/src/styles/constants.css
Lines 34 to 35 in ca0a2da
Из-за этого для других платформ приходилось обнулять это значение точечно (прикрепляю пример ниже)
VKUI/src/components/PanelHeader/PanelHeader.css
Lines 155 to 160 in ca0a2da
Чтобы избежать этого, сделал так, что значение по умолчанию выставлялось только для iOS (ссылка на коммит)
DevTools Safari
DevTools Android
UPD
В рамках этого PR, также поправил следующие issues:
fix [Bug][FixedLayout] Сломана центровка внутриrevertView>Panelна устройствах с бровкой вlandscapeрежиме #2422