mirror of
https://github.com/mauriceboe/TREK.git
synced 2026-11-13 07:40:59 +00:00
feat(mobile): the trip's tabs, administration, collections and the journal use the large screen
On an iPad or an unfolded foldable the list screens kept one phone-wide column in the middle of the page. They now lay out for the room they have: - Transports, bookings, polls and tasks put their cards in a grid of as many phone-wide columns as the page holds (CardGrid), three on a 13" iPad on its side, two upright, one in a narrow Split View. - Costs: with room for two panes (split size class) the summary (total, owe and owed, settle up, final budget, categories) stands in a pane of its own beside the expenses, each scrolling on its own (TabPanes). The search field sits in the expenses' column again instead of running past it. - Files: a grid of tiles with each photo's picture; with room for two panes the picked file is previewed beside the grid with what it belongs to and its actions, the way Files on an iPad does. The signed preview address comes through fileRepo.previewUrl. - Packing: the categories stand in columns, each card whole in its column; the action menu drops from its button at a popover's width. - To-dos: the four smart filters as tiles and the trip's lists in a pane beside the tasks, which take the filter's name as their head. - Collab: the chat stays in view at the trailing edge beside the notes, links or polls, and the header switches only the board. The chat keeps its place in the tree, so a fold or a rotation into two panes keeps the draft; a chat at its newest message stays there when its box changes size. Notes stand as a board in columns. - Administration and settings share a section list beside the page (MSectionNav); the stats grid takes four columns. - Collections: the lists stand in a column beside the places, which take two columns, and the head names the list on show. - Journal: the entries become a feed beside the map, under their days, with photo, place and the start of the story, in step with the map like the strip of cards it replaces; it fades out under the header. - The assistant opens as a tall panel at the trailing edge over a dimmed page, as Slide Over would, instead of covering the whole screen. - The rail fits every name: a word too wide for it shrinks the label before it is hyphenated, and the admin entry uses its short name. - The journeys and notifications headers keep to their column. - The address screen of the native shell sets the photo as a panel beside the choices on a large screen on its side. On a foldable that reports its fold, a leading pane ends at the fold and a trailing one starts there. Phones keep their layout.
This commit is contained in:
@@ -976,3 +976,46 @@ a.linkbtn {
|
||||
border-color: var(--edge-strong);
|
||||
border-top-color: var(--accent);
|
||||
}
|
||||
|
||||
/* ── A large screen ──────────────────────────────────────────────────────────
|
||||
On its side (an iPad, a foldable unfolded) the photo becomes a panel of its
|
||||
own on the leading half, full height, and the column of choices stands
|
||||
centred in the other half, the way a split sign-in page uses the width.
|
||||
Upright, the photo band grows with the screen instead of stopping at a
|
||||
phone's 440px. Logical sides, so Arabic mirrors it. */
|
||||
@media (min-width: 900px) and (min-height: 600px) and (orientation: landscape) {
|
||||
body::after {
|
||||
inset: 16px auto 16px 16px;
|
||||
inset-block: 16px;
|
||||
inset-inline: 16px auto;
|
||||
width: calc(50% - 24px);
|
||||
height: auto;
|
||||
border-radius: 28px;
|
||||
background:
|
||||
linear-gradient(180deg, transparent 50%, rgba(0, 0, 0, 0.32) 100%),
|
||||
url('./img/kyoto.webp') 30% 45% / cover no-repeat;
|
||||
-webkit-mask-image: none;
|
||||
mask-image: none;
|
||||
box-shadow: 0 30px 70px -30px rgba(0, 0, 0, 0.55);
|
||||
}
|
||||
body::before {
|
||||
inset: 0;
|
||||
inset-inline-start: 50%;
|
||||
height: auto;
|
||||
}
|
||||
.shell {
|
||||
max-width: none;
|
||||
width: 50%;
|
||||
margin-inline: 50% 0;
|
||||
padding-inline: max(32px, calc(25vw - 220px));
|
||||
}
|
||||
.screen-leave {
|
||||
inset-inline: max(32px, calc(25vw - 220px));
|
||||
}
|
||||
}
|
||||
@media (min-width: 700px) and (min-height: 900px) and (orientation: portrait) {
|
||||
body::before,
|
||||
body::after {
|
||||
height: 52vh;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user