W3C home > Mailing lists > Public > public-css-archive@w3.org > January 2019

[csswg-drafts] padding-x, padding-y, margin-x & margin-y (#3486)

From: Martijn Cuppens via GitHub <sysbot+gh@w3.org>
Date: Sun, 06 Jan 2019 12:48:01 +0000
To: public-css-archive@w3.org
Message-ID: <issues.opened-396255300-1546778880-sysbot+gh@w3.org>
MartijnCuppens has just created a new issue for https://github.com/w3c/csswg-drafts:

== padding-x, padding-y, margin-x & margin-y ==
Hi there,

First time I open an issue here, the title of this issue probably needs to be changed so it contains a label like the other issues, but I couldn't find anything about it in the Contributor Guidelines, so feel free to change that.

I got a proposition to add 4 new properties:
- `padding-x`
- `padding-y`
- `margin-x`
- `margin-y`

It should be clear what they do but I'll explain it shortly with some examples:

The `.selector` will have `padding-left: 1rem;` and `padding-left: 1rem;` on each side:
```css
.selector {
  padding-x: 1rem;
}
```

The `.selector` will have `padding-right: 1rem;`,`padding-bottom: 2rem;`,`padding-left: .5rem;` and `padding-top: 2rem;` on each side:
```css
.selector {
  padding: 2rem;
  padding-x: 1rem;
  padding-left: .5rem;
}
```


The `.selector` will have `padding-left: 1rem;` and `padding-left: 1rem;` on each side:
```css
.selector {
  padding-left: 2rem;
  padding-x: 1rem;
}
```

It would basically work the same as `padding-left` and `padding-right` currently work. The implementation of the margin variants will work alike.

## Why do we need this?
These days people make a lot of use of utility classes and generating responsive spacing utility classes can generate a lot of css. Also this would simplify the code needed to generate these classes. Some examples of frameworks that work that way:
- Foundation (https://foundation.zurb.com/sites/docs/prototyping-utilities.html#padding-left-right-horizontal-axis-)
- Bootstrap (https://getbootstrap.com/docs/4.2/utilities/spacing/#examples)
- Tailwind (https://tailwindcss.com/docs/spacing)

It would also be nice if we could use these property to only override the left/right properties in one property. Sometime this is used to set `padding-left` and `padding-right` in one property:
```css
.selector {
  padding: 0 1rem;
}
```
... but this overrides the top and bottom values and could lead to unexpected results.

What do you think?





Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/3486 using your GitHub account
Received on Sunday, 6 January 2019 12:48:04 UTC

This archive was generated by hypermail 2.4.0 : Tuesday, 5 July 2022 06:41:42 UTC