mirror of
https://github.com/flarum/core.git
synced 2025-07-27 19:50:20 +02:00
Tweak UX on mobile
Since Mobile Safari automatically resizes iframes to fit their content, we need to avoid using position:fixed. In this commit we: - Eliminate use of position:fixed for dropdowns. They are instead displayed statically, like on desktop. - Reposition modals when they are shown according to the parent window's scroll position. - Tweak the toolbar's appearance and height on mobile.
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import { override } from 'flarum/extend';
|
||||
import { override, extend } from 'flarum/extend';
|
||||
import app from 'flarum/app';
|
||||
import Composer from 'flarum/components/Composer';
|
||||
import ModalManager from 'flarum/components/ModalManager';
|
||||
@@ -35,6 +35,19 @@ app.initializers.replace('boot', () => {
|
||||
return original(post).replace('/embed', '/d');
|
||||
});
|
||||
|
||||
app.pageInfo = m.prop();
|
||||
|
||||
extend(ModalManager.prototype, 'show', function() {
|
||||
const info = app.pageInfo();
|
||||
this.$().css('top', Math.max(0, info.scrollTop - info.offsetTop));
|
||||
});
|
||||
|
||||
window.iFrameResizer = {
|
||||
readyCallback: function() {
|
||||
window.parentIFrame.getPageInfo(app.pageInfo);
|
||||
}
|
||||
};
|
||||
|
||||
app.pane = new Pane(document.getElementById('app'));
|
||||
app.drawer = new Drawer();
|
||||
app.composer = m.mount(document.getElementById('composer'), Composer.component());
|
||||
|
@@ -1,6 +1,10 @@
|
||||
.container {
|
||||
width: auto;
|
||||
padding: 0 20px;
|
||||
|
||||
@media @phone {
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
.App {
|
||||
padding-top: 0;
|
||||
@@ -14,13 +18,15 @@
|
||||
border-top: 0;
|
||||
}
|
||||
.DiscussionPage-nav--embed {
|
||||
@media @tablet-up {
|
||||
height: 70px;
|
||||
}
|
||||
|
||||
> ul {
|
||||
z-index: 100;
|
||||
background: @body-bg;
|
||||
list-style: none;
|
||||
padding: 0;
|
||||
padding: 15px 0;
|
||||
margin: 0;
|
||||
border-bottom: 1px solid @control-bg;
|
||||
|
||||
@@ -29,19 +35,20 @@
|
||||
left: 0;
|
||||
right: 0;
|
||||
top: 0;
|
||||
padding: 0 15px;
|
||||
padding: 15px 15px;
|
||||
}
|
||||
|
||||
> li {
|
||||
margin: 15px 15px 15px 0;
|
||||
margin: 0 15px 0 0;
|
||||
display: inline-block;
|
||||
}
|
||||
.item-replies {
|
||||
@media @phone {
|
||||
display: block;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.Dropdown-menu {
|
||||
left: 0;
|
||||
right: auto;
|
||||
}
|
||||
}
|
||||
.item-replies h3 {
|
||||
h3 {
|
||||
font-weight: normal;
|
||||
margin: 0;
|
||||
|
||||
@@ -51,9 +58,26 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.DiscussionPage-stream {
|
||||
margin-right: 0;
|
||||
}
|
||||
.Post-stream {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
@media @phone {
|
||||
.Dropdown .Dropdown-menu {
|
||||
position: absolute;
|
||||
bottom: auto;
|
||||
top: auto;
|
||||
right: auto !important;
|
||||
padding-bottom: 0 !important;
|
||||
.transition(none);
|
||||
|
||||
&.Dropdown-menu--right {
|
||||
left: auto !important;
|
||||
right: 0 !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user