Gutenberg classes explained

has-global-padding

This adds right and left padding so you have space between the edges. This is defined in theme.json on the <body> element. Thanks to the useRootPaddingAwareAlignments property we can ignore this padding on full aligned blocks. That blocks will not get the has-global-padding class.

"styles": {
	"spacing": {
		"padding": {
			"right": "24px",
			"left": "24px"
		}
	}
}
{
	"version": 2,
	"settings": {
		"useRootPaddingAwareAlignments": true
	}
}

is-layout-flow

If you disable the “Inner blocks use content width” setting that container will get the is-layout-flow class. This means that the child containers wil not use the default container width.

is-layout-constrained

If you enable the “Inner blocks use content width” setting (which is the default setting) the child containers will use the default container width. This containers will have the is-layout-constrained class.

Issues with no padding on a full aligned group

If you have alignfull and is-layout-constrained combined you will not have the root padding. The content wil stick to the edges of the page. You can solve this by adding another inner container. Set the parent container on alignfull with contrained layout unselected. Set the inner container to a contrained layout.