-
Notifications
You must be signed in to change notification settings - Fork 186
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Повсеместное использование --safe-area-inset-top
#2414
Повсеместное использование --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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
А зачем мы ставим 20 на iOS? Есть какие то кейсы где в safe-area-inset-top
не проставляется высота? А если iphone без челки?)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Вот на айфонах без чёлки как раз 20. Ещё на айфонах без чёлки может быть старая iOS, где будут отсутствовать нужные нам переменные окружения.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Мне не понятно почему для IOS выставляется 20 а для остальных платформ перебивается в 0. Это какой то баг был или особенность мини аппок?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Тут #2414 (comment) я глянул, что с 20px
напрямую в Safari выглядит так себе
Если фикс для мини-апп, то можно же через VKWebAppUpdateConfig
сетить эти 20px
, не?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@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