resources/src/mediawiki.htmlform.ooui.styles.less
@import 'mediawiki.skin.variables.less';
@import 'mediawiki.mixins.less';

/* stylelint-disable selector-class-pattern */
// OOUIHTMLForm styles
@ooui-font-size-browser: 16; // assumed browser default of `16px`
@ooui-font-size-base: 0.875em; // equals `14px` at browser default of `16px`

// Equals `1.85714286em`≈`26px`.
@ooui-spacing-radio-label: (26 / @ooui-font-size-browser / @ooui-font-size-base);

.mw-htmlform-ooui {
	line-height: 1.4; // Override MediaWiki's default of `1.6`

	.oo-ui-fieldsetLayout-header {
		font-size: 100%; // Override MediaWiki's generic `legend` styling
	}

	.oo-ui-fieldLayout.oo-ui-labelElement > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-header {
		line-height: (16 / @ooui-font-size-browser / @ooui-font-size-base);
	}

	// Default OOUI styles produce a larger margin here
	.mw-htmlform-field-HTMLSizeFilterField {
		margin-top: @spacing-75;
	}

	.mw-htmlform-matrix {
		border-spacing: 0;

		th {
			font-weight: normal;
		}

		td,
		th {
			padding: @spacing-75;
			text-align: center;
			transition: background-color 250ms;

			&:first-child {
				text-align: left;
			}
		}

		tbody tr:nth-child( even ) td {
			background-color: @background-color-neutral-subtle;
		}

		tbody tr:hover td {
			background-color: @background-color-neutral;
		}

		.oo-ui-fieldLayout-help {
			// Clickable size is much larger than visual size,
			// adjust so that it doesn't affect row height.
			margin-bottom: -6px;
		}

		.oo-ui-fieldLayout.oo-ui-labelElement > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-header {
			padding-bottom: 0;
		}
	}

	// Allows fields to be visually indented to associate them with a checkbox or
	// radio button that enables/disables them.
	.oo-ui-fieldLayout.mw-htmlform-checkradio-indent {
		margin-left: @ooui-spacing-radio-label;

		.oo-ui-tagMultiselectWidget,
		.oo-ui-textInputWidget {
			max-width: 50em - @ooui-spacing-radio-label;
		}
	}
}

// Flatlist styling for PHP (`.oo-ui-fieldLayout-align-inline`) &
// JS (`.oo-ui-radioOptionWidget, .oo-ui-checkboxMultioptionWidget`) widgets
.mw-htmlform-flatlist {
	.oo-ui-fieldLayout-align-inline,
	.oo-ui-radioOptionWidget,
	.oo-ui-checkboxMultioptionWidget {
		display: inline-block;
		margin-right: @spacing-75;
	}

	// Reduce label distance in flatlist
	&.oo-ui-fieldLayout.oo-ui-labelElement > .oo-ui-fieldLayout-body > .oo-ui-fieldLayout-header {
		padding-bottom: 0;
	}
}

// First selector is flatlist specific
.mw-htmlform-field-HTMLMultiSelectField.oo-ui-fieldLayout,
.mw-htmlform-ooui .htmlform-tip,
.mw-htmlform-ooui .mw-htmlform-submit-buttons {
	margin-top: @spacing-75;
}
