Skip to main content

Gutters

How to use ?​

Generated styles provided by the gutters section of the theme configuration assist in applying margin and padding to your components. You can access these styles using the following code:

const { gutters } = useTheme()

For more details, refer to the gutters section of the theme configuration.

Generated gutters​

Here's the representation of the generated styles for a given GuttersConfig like the one below:

export const config = {
// ...
gutters: [...value],
// ...
}

Where value is an array of numbers, the generated keys available through the gutters key will be the concatenation of the gutter name and the value, including:

  • margin_${value},
  • marginBottom_${value},
  • marginTop_${value},
  • marginRight_${value},
  • marginLeft_${value},
  • marginVertical_${value},
  • marginHorizontal_${value},
  • padding_${value},
  • paddingBottom_${value},
  • paddingTop_${value},
  • paddingRight_${value},
  • paddingLeft_${value},
  • paddingVertical_${value},
  • paddingHorizontal_${value},
  • gap_${value},

The corresponding values behind these keys will be:

{
[gutter_name]: value
}

This structure simplifies the process of accessing and applying margin and padding styles with various gutter values.

Static gutter styles​

Some gutter styles, don't require dynamic generation. To accommodate this, we offer the staticGuttersStyles object that houses static styles for gutters. You can use this file as-is or customize it to your preferences. These styles will be seamlessly merged with the generated ones, making them accessible through the gutters object of the useTheme hook.

Playground​

Here's a simple playground that provides a visual representation of the objects generated from a given gutters configuration:

export const config = { 
  //... 
  gutters: [], 
  //... 
}

Generated classes

PropertyValue
gap_10{ gap: 10 }
margin_10{ margin: 10 }
marginBottom_10{ marginBottom: 10 }
marginTop_10{ marginTop: 10 }
marginRight_10{ marginRight: 10 }
marginLeft_10{ marginLeft: 10 }
marginVertical_10{ marginVertical: 10 }
marginHorizontal_10{ marginHorizontal: 10 }
padding_10{ padding: 10 }
paddingBottom_10{ paddingBottom: 10 }
paddingTop_10{ paddingTop: 10 }
paddingRight_10{ paddingRight: 10 }
paddingLeft_10{ paddingLeft: 10 }
paddingVertical_10{ paddingVertical: 10 }
paddingHorizontal_10{ paddingHorizontal: 10 }
gap_20{ gap: 20 }
margin_20{ margin: 20 }
marginBottom_20{ marginBottom: 20 }
marginTop_20{ marginTop: 20 }
marginRight_20{ marginRight: 20 }
marginLeft_20{ marginLeft: 20 }
marginVertical_20{ marginVertical: 20 }
marginHorizontal_20{ marginHorizontal: 20 }
padding_20{ padding: 20 }
paddingBottom_20{ paddingBottom: 20 }
paddingTop_20{ paddingTop: 20 }
paddingRight_20{ paddingRight: 20 }
paddingLeft_20{ paddingLeft: 20 }
paddingVertical_20{ paddingVertical: 20 }
paddingHorizontal_20{ paddingHorizontal: 20 }