feat(web): use CSS grid-areas layout with anchor-positioned report picker

Replace flexbox layout with CSS grid using named grid-areas for responsive
content containment. Gutters collapse naturally on small screens via
min(--content-max-width, 100%). Anchor ReportPicker to its trigger button
using CSS anchor positioning instead of fixed viewport offsets.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-15 14:08:41 +01:00
parent 78881e1b07
commit d86501e4e6
5 changed files with 14 additions and 8 deletions
+2 -1
View File
@@ -63,16 +63,17 @@
<style> <style>
.header { .header {
grid-area: header;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
padding: var(--spacing-sm) var(--spacing-md); padding: var(--spacing-sm) var(--spacing-md);
background-color: var(--bg-primary); background-color: var(--bg-primary);
border-bottom: 1px solid var(--border-color); border-bottom: 1px solid var(--border-color);
flex-shrink: 0;
} }
.report-btn { .report-btn {
anchor-name: --report-btn;
display: inline-flex; display: inline-flex;
align-items: center; align-items: center;
gap: var(--spacing-xs); gap: var(--spacing-xs);
+1 -1
View File
@@ -119,7 +119,7 @@
<style> <style>
.input-bar { .input-bar {
flex-shrink: 0; grid-area: input;
padding: var(--spacing-sm) var(--spacing-md); padding: var(--spacing-sm) var(--spacing-md);
padding-bottom: calc(var(--spacing-sm) + env(safe-area-inset-bottom, 0px)); padding-bottom: calc(var(--spacing-sm) + env(safe-area-inset-bottom, 0px));
background-color: var(--bg-primary); background-color: var(--bg-primary);
@@ -83,9 +83,8 @@
<style> <style>
.report-picker { .report-picker {
position: fixed; position: fixed;
top: 48px; position-anchor: --report-btn;
left: var(--spacing-md); position-area: bottom span-right;
right: auto;
margin: 0; margin: 0;
padding: var(--spacing-sm); padding: var(--spacing-sm);
background-color: var(--bg-primary); background-color: var(--bg-primary);
+2 -1
View File
@@ -57,10 +57,11 @@
<style> <style>
.task-list { .task-list {
flex: 1; grid-area: content;
overflow-y: auto; overflow-y: auto;
-webkit-overflow-scrolling: touch; -webkit-overflow-scrolling: touch;
background-color: var(--bg-primary); background-color: var(--bg-primary);
min-height: 0;
} }
.loading-container { .loading-container {
+7 -2
View File
@@ -27,8 +27,13 @@
<style> <style>
.app { .app {
height: 100dvh; height: 100dvh;
display: flex; display: grid;
flex-direction: column; grid-template-columns: 1fr min(var(--content-max-width), 100%) 1fr;
grid-template-rows: auto 1fr auto;
grid-template-areas:
". header ."
". content ."
". input .";
overflow: hidden; overflow: hidden;
} }
</style> </style>