@@ -93,37 +93,59 @@ html {
9393}
9494
9595body {
96- --body--gutter : var (--space );
96+ font : 1.1 em/1.4em text;
97+ font-weight : 400 ;
98+ }
99+
100+ .content-grid {
101+ --padding-inline : var (--space );
102+ --content-max-width : 45rem ;
103+ --breakout-max-width : 50rem ;
104+
105+ --breakout-size : calc ((var (--breakout-max-width ) - var (--content-max-width )) / 2 );
97106
98107 display : grid;
99- grid-template : "header"
100- "main" ;
101- grid-template-rows : auto 1fr ;
102- margin : 0 auto;
103- padding : 0 var (--body--gutter );
104- min-height : 100% ;
105- max-width : 50rem ;
108+ grid-template-columns :
109+ [full-width-start]
110+ minmax (var (--padding-inline ), 1fr )
111+ [breakout-start]
112+ minmax (0 , var (--breakout-size ))
113+ [content-start]
114+ min (
115+ 100% - (var (--padding-inline ) * 2 ),
116+ var (--content-max-width )
117+ )
118+ [content-end]
119+ minmax (0 , var (--breakout-size ))
120+ [breakout-end]
121+ minmax (var (--padding-inline ), 1fr )
122+ [full-width-end];
123+ }
106124
107- font : 1.1 em/1.4em text;
108- font-weight : 400 ;
125+ .content-grid > * {
126+ grid-column : content;
127+ }
128+
129+ .content-grid > .breakout {
130+ grid-column : breakout;
131+ }
132+
133+ .content-grid > .full-width {
134+ grid-column : full-width;
109135}
110136
111137.header--container {
112138 position : sticky;
113- z-index : 20 ;
139+ z-index : calc (infinity) ;
114140 top : 0 ;
115- isolate : isolation;
116141 margin-bottom : var (--space-large );
117142}
118143
119144.header--container ::before {
120145 content : '' ;
121146 position : absolute;
122147 z-index : -1 ;
123- top : 0 ;
124- right : calc (-1 * var (--body--gutter ));
125- bottom : 0 ;
126- left : calc (-1 * var (--body--gutter ));
148+ inset : 0 ;
127149 background : var (--color-light-000-transparent );
128150}
129151
@@ -136,12 +158,9 @@ body {
136158 }
137159
138160.header {
139- grid-area : header;
140-
141161 display : grid;
142- grid-template : "header- title header- details" ;
162+ grid-template : "title details" ;
143163
144- max-width : 50rem ;
145164 font-weight : 600 ;
146165 line-height : var (--space-very-large );
147166}
@@ -151,7 +170,7 @@ body {
151170 }
152171
153172 .header--title {
154- grid-area : header- title;
173+ grid-area : title;
155174 font-size : 120% ;
156175 }
157176
@@ -171,7 +190,7 @@ body {
171190 }
172191
173192 .header--details {
174- grid-area : header- details;
193+ grid-area : details;
175194 text-align : end;
176195 list-style : none;
177196 }
@@ -200,10 +219,6 @@ body {
200219 display : none;
201220}
202221
203- main {
204- grid-area : main;
205- }
206-
207222.things--location {
208223 display : block;
209224 margin-block-end : var (--space-large );
@@ -341,22 +356,15 @@ main {
341356 }
342357
343358 .thing--expandable [aria-expanded = "true" ] > .thing--expandable-long {
344- --thing--expandable-long--gutter : var (--space-large );
345-
346359 position : fixed;
347360 z-index : 9 ;
348- top : var (--space-very-large );
349- right : 0 ;
350- bottom : 0 ;
351- left : 0 ;
361+ inset : var (--space-very-large ) 0 0 ;
352362
353363 visibility : visible;
354364 opacity : 1 ;
355365 transform : translateY (0 );
356366 overflow : auto;
357367
358- padding : var (--space ) var (--thing--expandable-long--gutter );
359-
360368 transition :
361369 transform var (--transition-duration ) var (--transition-bezier ),
362370 opacity var (--transition-duration ) var (--transition-bezier );
@@ -611,13 +619,17 @@ main {
611619
612620.thing--weather-forecast {
613621 --thing--weather-forecast--gutter : var (--space-large );
622+ --thing--weather-forecast--column-width : 6rem ;
623+
624+ position : relative;
614625
615626 display : grid;
616627 grid-auto-flow : column;
617- grid-auto-columns : 6 rem ;
628+ grid-auto-columns : var ( --thing--weather-forecast--column-width ) ;
618629 overflow-x : auto;
619630 overscroll-behavior-inline : contain;
620631 scroll-snap-type : x mandatory;
632+ isolation : isolate;
621633
622634 margin : var (--space-very-large ) 0 ;
623635 border-radius : var (--space-small );
@@ -680,23 +692,26 @@ main {
680692 .thing--weather-forecast > .thing--weather-one-forecast > .thing--weather-one-forecast--title {
681693 flex : 2 ;
682694 font-size : var (--font-size-secondary );
695+ text-align : start;
683696 margin : var (--space ) 0 var (--space-very-small );
684- position : relative;
697+ transform : translateX (-.5rem ) translateY (-.5rem );
698+ }
699+
700+ .thing--weather-forecast > .thing--weather-one-forecast : not (: first-child ) > .thing--weather-one-forecast--title {
685701 visibility : hidden;
686702 }
687703
688704 .thing--weather-forecast > .thing--weather-one-forecast : first-child > .thing--weather-one-forecast--title > span {
689- visibility : visible;
690- position : fixed;
691- transform : translateY (-.5rem );
692- left : var (--thing--expandable-long--gutter );
693- right : var (--thing--expandable-long--gutter );
694-
705+ position : absolute;
706+ left : 0 ;
707+ width : calc (48 * var (--thing--weather-forecast--column-width ));
695708 padding : .2rem 0 .2rem .5rem ;
696- text-align : start;
697709 background : var (--color-light-000-transparent );
710+ }
698711
699- pointer-events : none;
712+ .thing--weather-forecast > .thing--weather-one-forecast : first-child > .thing--weather-one-forecast--title > span > span {
713+ position : sticky;
714+ left : .5rem ;
700715 }
701716
702717 .thing--weather-forecast .thing--weather-one-forecast--datetime {
0 commit comments