extensions/VisualEditor/lib/ve/src/ce/styles/nodes/ve.ce.ParagraphNode.less
/*!
 * VisualEditor ContentEditable ParagraphNode styles.
 *
 * @copyright See AUTHORS.txt
 */

.ve-ce-paragraphNode.ve-ce-generated-wrapper {
	/* Remove margin around wrapper paragraphs generated by our CE code,
	   to keep the rendering consistent with the view mode where these wrappers are missing */
	margin-left: 0;
	margin-right: 0;

	/* Maintain separation between wrapper paragraphs and start/end of document */

	:not( .ve-ce-attachedRootNode ):not( .ve-ui-surface-placeholder ) > &,
	/* stylelint-disable-next-line no-descending-specificity */
	&:not( :first-child ) {
		/*
		   Keep top margin when:
		     - [child of attachedRoot OR child of placeholder] AND first child in the doc
		   this means we clear the top margin when
		     - [NOT child of attachedRoot AND NOT child of placeholder] OR NOT first child in the doc
		*/
		margin-top: 0;
		padding-top: 0;
	}

	:not( .ve-ce-attachedRootNode ):not( .ve-ui-surface-placeholder ) > &,
	/* stylelint-disable-next-line no-descending-specificity */
	&:not( :last-child ) {
		/* Same for bottom margin */
		margin-bottom: 0;
		padding-bottom: 0;
	}
}
