@@ -266,7 +266,7 @@ fn parse_line_names<'i, 't>(input: &mut Parser<'i, 't>) -> Result<SmallVec<[Cust
266266 } )
267267}
268268
269- fn serialize_line_names < W > ( names : & SmallVec < [ CustomIdent ; 1 ] > , dest : & mut Printer < W > ) -> std:: fmt:: Result where W : std:: fmt:: Write {
269+ fn serialize_line_names < W > ( names : & [ CustomIdent ] , dest : & mut Printer < W > ) -> std:: fmt:: Result where W : std:: fmt:: Write {
270270 dest. write_char ( '[' ) ?;
271271 let mut first = true ;
272272 for name in names {
@@ -655,11 +655,41 @@ impl ToCss for GridTemplate {
655655 let mut items_iter = track_list. items . iter ( ) ;
656656
657657 let mut next = areas_iter. next ( ) ;
658+ let mut first = true ;
659+ let mut indented = false ;
658660 while next. is_some ( ) {
661+ macro_rules! newline {
662+ ( ) => {
663+ if !dest. minify {
664+ if !indented {
665+ // Indent by the width of "grid-template: ", so the rows line up.
666+ dest. indent_by( 15 ) ;
667+ indented = true ;
668+ }
669+ dest. newline( ) ?;
670+ }
671+ } ;
672+ }
673+
659674 if let Some ( line_names) = line_names_iter. next ( ) {
660675 if !line_names. is_empty ( ) {
661- serialize_line_names ( line_names, dest) ?;
676+ if !dest. minify && line_names. len ( ) == 2 {
677+ dest. whitespace ( ) ?;
678+ serialize_line_names ( & line_names[ 0 ..1 ] , dest) ?;
679+ newline ! ( ) ;
680+ serialize_line_names ( & line_names[ 1 ..] , dest) ?;
681+ } else {
682+ if !first {
683+ newline ! ( ) ;
684+ }
685+ serialize_line_names ( line_names, dest) ?;
686+ }
687+ dest. whitespace ( ) ?;
688+ } else {
689+ newline ! ( ) ;
662690 }
691+ } else {
692+ newline ! ( ) ;
663693 }
664694
665695 self . areas . write_string ( dest, & mut areas_iter, & mut next) ?;
@@ -673,18 +703,26 @@ impl ToCss for GridTemplate {
673703 }
674704 }
675705 }
706+
707+ first = false ;
676708 }
677709
678710 if let Some ( line_names) = line_names_iter. next ( ) {
679711 if !line_names. is_empty ( ) {
712+ dest. whitespace ( ) ?;
680713 serialize_line_names ( line_names, dest) ?;
681714 }
682715 }
683716
684717 if let TrackSizing :: TrackList ( track_list) = & self . columns {
685- dest. delim ( '/' , true ) ?;
718+ dest. newline ( ) ?;
719+ dest. delim ( '/' , false ) ?;
686720 track_list. to_css ( dest) ?;
687721 }
722+
723+ if indented {
724+ dest. dedent_by ( 15 ) ;
725+ }
688726 }
689727 }
690728
0 commit comments