Edge Rewrite
// HTMLRewriter · presentation

This page was redesigned at the edge.

Cloudflare fetched the original article and streamed it through HTMLRewriter to apply an entirely new visual system without rebuilding the source page.

Jump to content

Module:Flex columns/sandbox/styles.css

From Wikipedia, the free encyclopedia
/* edit summary for the main module: invert media queries, remove float fallback as flex is well-supported by all MediaWiki-supported browsers, add gap using @supports fallback to padding and large note to go with it, remove unnecessary box-sizing */




/* I wonder why this clears, also seems suspect for a general flex-columns
 * module, see below >div selector rules
 */
.flex-columns-container {
	clear: both;
}

.flex-columns-container > .flex-columns-column {
	display: flex;
	flex-direction: column;
}

/* TODO: these two rules seem suspect for a general flex-columns module and
 * should be moved to some portal-specific variant probably
 * also would need to remove the rule declaring the columns to be display: flex
 * and their associated flex-direction
 */
.flex-columns-container > .flex-columns-column > div {
	flex: 1 0 auto;
}

.flex-columns-container > .flex-columns-column > div.flex-columns-noflex {
	flex: 0;
}

/* the padding in the @supports not case really should just categorically be
 * `gap` rules because having more than two columns flexing isn't pretty
 * with the padding version. however, flex `gap` was released in 2018 for
 * Firefox and 2020 for everyone else, so it's fairly new. honestly kind of
 * surprised that css-sanitizer doesn't yell about it. some percent of browsers
 * (~1.5% pageviews total) right now for the targeted environment (desktop) of
 * these rules will interpret this as `gap` for grid, so they will have no
 * padding and no flex `gap`. seems like a reasonable tradeoff
 * TODO: remove @supports at-rule sometime in 2023 or 2024 when a more
 * significant ratio of viewing browsers support `gap` in flex
 */
@supports (gap: 1em) {
	@media screen and (min-width: 720px) {
		.flex-columns-container {
			gap: 1em;
		}
	}
}

@supports not (gap: 1em) {
	@media screen and (min-width: 720px) {
		.flex-columns-container > .flex-columns-column {
			padding: 0 0.5em;
		}
	
		.flex-columns-container > .flex-columns-column:first-child {
			padding-left: 0;
		}
	
		.flex-columns-container > .flex-columns-column:last-child {
			padding-right: 0;
		}
	}
}

@media screen and (min-width: 720px) {
	.flex-columns-container {
		display: flex;
		flex-wrap: wrap;
	}
	
	.flex-columns-container > .flex-columns-column {
		flex: 1;
		min-width: 360px;
	}
}