From 6eba65361d83a5fb720116475df6e9e4495afc44 Mon Sep 17 00:00:00 2001 From: Lucjan Suski Date: Wed, 22 Mar 2017 17:03:50 +0100 Subject: [PATCH] Stylo: Add grid-gap shorthand --- .../properties/shorthand/position.mako.rs | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/components/style/properties/shorthand/position.mako.rs b/components/style/properties/shorthand/position.mako.rs index 4ab2f52c34d..bf9c74cfcbb 100644 --- a/components/style/properties/shorthand/position.mako.rs +++ b/components/style/properties/shorthand/position.mako.rs @@ -127,3 +127,32 @@ } } + +<%helpers:shorthand name="grid-gap" sub_properties="grid-row-gap grid-column-gap" + spec="https://drafts.csswg.org/css-grid/#propdef-grid-gap" + products="gecko"> + use properties::longhands::{grid_row_gap, grid_column_gap}; + + pub fn parse_value(context: &ParserContext, input: &mut Parser) -> Result { + let row_gap = grid_row_gap::parse(context, input)?; + let column_gap = input.try(|input| grid_column_gap::parse(context, input)).unwrap_or(row_gap.clone()); + + Ok(Longhands { + grid_row_gap: row_gap, + grid_column_gap: column_gap, + }) + } + + impl<'a> ToCss for LonghandsToSerialize<'a> { + fn to_css(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { + if self.grid_row_gap == self.grid_column_gap { + self.grid_row_gap.to_css(dest) + } else { + self.grid_row_gap.to_css(dest)?; + dest.write_str(" ")?; + self.grid_column_gap.to_css(dest) + } + } + } + +