<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://wikisp.org/wiki/index.php?action=history&amp;feed=atom&amp;title=M%C3%B3dulo%3ACardLua%2Fstyles.css</id>
	<title>Módulo:CardLua/styles.css - Historial de revisiones</title>
	<link rel="self" type="application/atom+xml" href="https://wikisp.org/wiki/index.php?action=history&amp;feed=atom&amp;title=M%C3%B3dulo%3ACardLua%2Fstyles.css"/>
	<link rel="alternate" type="text/html" href="https://wikisp.org/wiki/index.php?title=M%C3%B3dulo:CardLua/styles.css&amp;action=history"/>
	<updated>2026-09-14T05:21:22Z</updated>
	<subtitle>Historial de revisiones de esta página en la wiki</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://wikisp.org/wiki/index.php?title=M%C3%B3dulo:CardLua/styles.css&amp;diff=8124&amp;oldid=prev</id>
		<title>Luxbane: 1 revisión importada</title>
		<link rel="alternate" type="text/html" href="https://wikisp.org/wiki/index.php?title=M%C3%B3dulo:CardLua/styles.css&amp;diff=8124&amp;oldid=prev"/>
		<updated>2026-09-11T23:10:03Z</updated>

		<summary type="html">&lt;p&gt;1 revisión importada&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;es&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Revisión anterior&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revisión del 23:10 11 sep 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;es&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(Sin diferencias)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Luxbane</name></author>
	</entry>
	<entry>
		<id>https://wikisp.org/wiki/index.php?title=M%C3%B3dulo:CardLua/styles.css&amp;diff=8123&amp;oldid=prev</id>
		<title>scw&gt;Alistar Bot: A wikitext list in the card body renders as a compact bulleted list (via update-page on MediaWiki MCP Server)</title>
		<link rel="alternate" type="text/html" href="https://wikisp.org/wiki/index.php?title=M%C3%B3dulo:CardLua/styles.css&amp;diff=8123&amp;oldid=prev"/>
		<updated>2026-08-22T03:49:56Z</updated>

		<summary type="html">&lt;p&gt;A wikitext list in the card body renders as a compact bulleted list (via update-page on MediaWiki MCP Server)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;.t-card {&lt;br /&gt;
	margin-block: var(--space-md);&lt;br /&gt;
	/* Opaque, not transparent. In article flow this is a no-op — surface-0 is&lt;br /&gt;
	 * what shows through anyway — but a transparent card lets whatever sits&lt;br /&gt;
	 * behind it bleed through, which is visible the moment one overlaps&lt;br /&gt;
	 * something (a card riding up over a hero shows the artwork through its&lt;br /&gt;
	 * top edge). */&lt;br /&gt;
	background-color: var(--color-surface-0);&lt;br /&gt;
	border: var(--border-base);&lt;br /&gt;
	border-radius: var(--border-radius-medium);&lt;br /&gt;
	/* `overflow: clip` (both axes) so child header hover / open background&lt;br /&gt;
	 * colours stay inside the card&amp;#039;s rounded corners. */&lt;br /&gt;
	overflow: clip;&lt;br /&gt;
	display: flex;&lt;br /&gt;
	flex-direction: column;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.t-card__header {&lt;br /&gt;
	display: flex;&lt;br /&gt;
	align-items: center;&lt;br /&gt;
	column-gap: var(--space-sm);&lt;br /&gt;
	padding: var(--space-sm);&lt;br /&gt;
	font-size: var(--font-size-small);&lt;br /&gt;
	line-height: var(--line-height-small);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.t-card__header-content {&lt;br /&gt;
	flex-grow: 1;&lt;br /&gt;
	min-width: 0;&lt;br /&gt;
	display: flex;&lt;br /&gt;
	justify-content: space-between;&lt;br /&gt;
	flex-wrap: wrap;&lt;br /&gt;
	align-items: center;&lt;br /&gt;
	column-gap: var(--space-sm);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.t-card__title {&lt;br /&gt;
	font-weight: var(--font-weight-medium);&lt;br /&gt;
	color: var(--color-emphasized);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.t-card__description {&lt;br /&gt;
	color: var(--color-subtle);&lt;br /&gt;
	font-size: var(--font-size-small);&lt;br /&gt;
	line-height: var(--line-height-small);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Right-aligned trailing slot (chevron, one or more buttons, …). */&lt;br /&gt;
.t-card__trailing {&lt;br /&gt;
	margin-left: auto;&lt;br /&gt;
	display: flex;&lt;br /&gt;
	align-items: center;&lt;br /&gt;
	flex-wrap: wrap;&lt;br /&gt;
	column-gap: var(--space-xs);&lt;br /&gt;
	row-gap: var(--space-xs);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.t-card__content {&lt;br /&gt;
	border-top: var(--border-subtle);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.t-card__content &amp;gt; .citizen-overflow-wrapper,&lt;br /&gt;
.t-card__content &amp;gt; .wikitable {&lt;br /&gt;
	margin-block: 0;&lt;br /&gt;
	box-shadow: none; /* Remove the border from the overflow wrapper */&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.t-card__footer {&lt;br /&gt;
	border-top: var(--border-subtle);&lt;br /&gt;
	color: var(--color-subtle);&lt;br /&gt;
	font-size: var(--font-size-x-small);&lt;br /&gt;
	line-height: var(--line-height-x-small);&lt;br /&gt;
	margin-inline: var(--space-sm);&lt;br /&gt;
	padding-block: var(--space-xs) var(--space-sm);&lt;br /&gt;
}&lt;br /&gt;
/* ---- Media card (p.renderMediaCard) ----------------------------------------&lt;br /&gt;
 * The art needs no negative margins: `.t-card` carries no padding of its own,&lt;br /&gt;
 * so a section that declines to add any already reaches the card&amp;#039;s inner edge,&lt;br /&gt;
 * and the shell&amp;#039;s `overflow: clip` trims it to the inside of the border radius.&lt;br /&gt;
 */&lt;br /&gt;
.t-card__media-layout {&lt;br /&gt;
	display: flex;&lt;br /&gt;
	min-width: 0;&lt;br /&gt;
	/* Grow into the card. A card stretched by a grid row is taller than its own&lt;br /&gt;
	 * content, and without this the spare height lands below the layout as dead&lt;br /&gt;
	 * space rather than inside it, where the foot&amp;#039;s auto margin can spend it —&lt;br /&gt;
	 * which shows up as two cards&amp;#039; read-more cues sitting at different heights&lt;br /&gt;
	 * in the same row. */&lt;br /&gt;
	flex-grow: 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.t-card__media-layout--split {&lt;br /&gt;
	flex-direction: row;&lt;br /&gt;
	align-items: stretch;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.t-card__media-layout--banner {&lt;br /&gt;
	flex-direction: column;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.t-card__media {&lt;br /&gt;
	flex: none;&lt;br /&gt;
	overflow: hidden;&lt;br /&gt;
	background-color: var(--color-surface-2);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.t-card__media-layout--split &amp;gt; .t-card__media {&lt;br /&gt;
	inline-size: 13rem;&lt;br /&gt;
	align-self: stretch;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.t-card__media-layout--banner &amp;gt; .t-card__media {&lt;br /&gt;
	aspect-ratio: 21 / 7;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* MediaWiki wraps the file in two spans, a &amp;lt;picture&amp;gt;, and an anchor when linked&lt;br /&gt;
 * — every one of them inline by default — so the whole chain has to be opened&lt;br /&gt;
 * up before object-fit can reach the image. Listed explicitly because&lt;br /&gt;
 * :is()/:where() are rejected by the TemplateStyles sanitizer. */&lt;br /&gt;
.t-card__media span,&lt;br /&gt;
.t-card__media a,&lt;br /&gt;
.t-card__media picture {&lt;br /&gt;
	display: block;&lt;br /&gt;
	block-size: 100%;&lt;br /&gt;
	inline-size: 100%;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.t-card__media img {&lt;br /&gt;
	display: block;&lt;br /&gt;
	inline-size: 100%;&lt;br /&gt;
	block-size: 100%;&lt;br /&gt;
	object-fit: cover;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.t-card__media-body {&lt;br /&gt;
	flex-grow: 1;&lt;br /&gt;
	min-width: 0;&lt;br /&gt;
	display: flex;&lt;br /&gt;
	flex-direction: column;&lt;br /&gt;
	gap: var(--space-xs);&lt;br /&gt;
	padding: var(--space-md);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.t-card__kicker {&lt;br /&gt;
	font-family: var(--font-family-monospace);&lt;br /&gt;
	font-size: var(--font-size-x-small);&lt;br /&gt;
	line-height: var(--line-height-x-small);&lt;br /&gt;
	font-weight: var(--font-weight-medium);&lt;br /&gt;
	letter-spacing: 0.12em;&lt;br /&gt;
	text-transform: uppercase;&lt;br /&gt;
	color: var(--color-subtle);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.t-card__media-body .t-card__title {&lt;br /&gt;
	font-size: var(--font-size-medium);&lt;br /&gt;
	line-height: var(--line-height-medium);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.t-card__body {&lt;br /&gt;
	color: var(--color-subtle);&lt;br /&gt;
	font-size: var(--font-size-small);&lt;br /&gt;
	line-height: var(--line-height-small);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* A wikitext list in the body, styled down to card scale. This deliberately&lt;br /&gt;
 * targets whatever list the author wrote rather than adding a `highlights`&lt;br /&gt;
 * parameter: `* item` is already how Update: pages write &amp;quot;what&amp;#039;s new&amp;quot;, so the&lt;br /&gt;
 * card reads the same source shape the wiki already uses.&lt;br /&gt;
 *&lt;br /&gt;
 * The marker is absolutely positioned rather than a flex child, so an item that&lt;br /&gt;
 * does wrap keeps its dot beside the FIRST line instead of centred against the&lt;br /&gt;
 * whole item. */&lt;br /&gt;
.t-card__body ul {&lt;br /&gt;
	margin: 0;&lt;br /&gt;
	padding: 0;&lt;br /&gt;
	list-style: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.t-card__body li {&lt;br /&gt;
	position: relative;&lt;br /&gt;
	margin: 0;&lt;br /&gt;
	padding-inline-start: var(--space-md);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.t-card__body li + li {&lt;br /&gt;
	margin-block-start: 2px;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.t-card__body li::before {&lt;br /&gt;
	content: &amp;#039;&amp;#039;;&lt;br /&gt;
	position: absolute;&lt;br /&gt;
	inset-inline-start: var(--space-xs);&lt;br /&gt;
	/* Optically on the first line&amp;#039;s centre, not the item&amp;#039;s. */&lt;br /&gt;
	top: 0.6em;&lt;br /&gt;
	inline-size: 3px;&lt;br /&gt;
	block-size: 3px;&lt;br /&gt;
	border-radius: 50%;&lt;br /&gt;
	background-color: currentcolor;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Pinned to the foot: cards in a row are stretched to the tallest, and this&lt;br /&gt;
 * puts the spare height above the foot rather than below everything. The auto&lt;br /&gt;
 * margin lives on the wrapper and not on each child, because flex splits free&lt;br /&gt;
 * space evenly between auto margins — two of them would drive the pair apart&lt;br /&gt;
 * instead of holding it at the bottom. */&lt;br /&gt;
.t-card__foot {&lt;br /&gt;
	margin-top: auto;&lt;br /&gt;
	padding-top: var(--space-xs);&lt;br /&gt;
	display: flex;&lt;br /&gt;
	flex-direction: column;&lt;br /&gt;
	gap: var(--space-xs);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.t-card__readout {&lt;br /&gt;
	display: flex;&lt;br /&gt;
	justify-content: space-between;&lt;br /&gt;
	align-items: baseline;&lt;br /&gt;
	gap: var(--space-md);&lt;br /&gt;
	font-family: var(--font-family-monospace);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.t-card__readout-label {&lt;br /&gt;
	font-size: var(--font-size-x-small);&lt;br /&gt;
	line-height: var(--line-height-x-small);&lt;br /&gt;
	color: var(--color-subtle);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.t-card__readout-value {&lt;br /&gt;
	font-size: var(--font-size-large);&lt;br /&gt;
	line-height: var(--line-height-large);&lt;br /&gt;
	font-weight: var(--font-weight-medium);&lt;br /&gt;
	letter-spacing: -0.02em;&lt;br /&gt;
	color: var(--color-emphasized);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media (max-width: 639px) {&lt;br /&gt;
	.t-card__media-layout--split {&lt;br /&gt;
		flex-direction: column;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	.t-card__media-layout--split &amp;gt; .t-card__media {&lt;br /&gt;
		inline-size: auto;&lt;br /&gt;
		aspect-ratio: 21 / 8;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* ---- Whole-card link (renderMediaCard stretchLink) -------------------------&lt;br /&gt;
 * The title&amp;#039;s own anchor is stretched over the card by a pseudo-element rather&lt;br /&gt;
 * than overlaying a second, empty anchor: an overlay with no text has no&lt;br /&gt;
 * accessible name, and one repeating the title gives keyboard and screen-reader&lt;br /&gt;
 * users a duplicate stop for the same destination. This way the card has&lt;br /&gt;
 * exactly one link, named by its title, in its natural reading order.&lt;br /&gt;
 *&lt;br /&gt;
 * The cost is real and worth knowing: the pseudo-element sits over the body, so&lt;br /&gt;
 * text inside the card can no longer be selected.&lt;br /&gt;
 */&lt;br /&gt;
.t-card--link {&lt;br /&gt;
	position: relative;&lt;br /&gt;
	/* Longhand on purpose: the sanitizer takes var() as a whole `transition`&lt;br /&gt;
	 * value but not as one component beside a literal property name, so the&lt;br /&gt;
	 * house idiom is the token for duration/easing plus a longhand for what&lt;br /&gt;
	 * moves (see Module:Tiles). */&lt;br /&gt;
	transition: var(--transition-hover);&lt;br /&gt;
	transition-property: border-color, background-color;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* The title stops looking like a link once the whole card is one: the card is&lt;br /&gt;
 * the affordance, so a blue underlined title inside it would advertise a second&lt;br /&gt;
 * target that does not exist. The anchor keeps its focus ring, which is what a&lt;br /&gt;
 * keyboard user needs. */&lt;br /&gt;
.t-card--link .t-card__title a,&lt;br /&gt;
.t-card--link .t-card__title a:hover {&lt;br /&gt;
	color: inherit;&lt;br /&gt;
	text-decoration: none;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.t-card--link .t-card__title a::after {&lt;br /&gt;
	content: &amp;#039;&amp;#039;;&lt;br /&gt;
	position: absolute;&lt;br /&gt;
	inset: 0;&lt;br /&gt;
	z-index: 1;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.t-card--link:hover {&lt;br /&gt;
	border-color: var(--border-color-interactive--hover);&lt;br /&gt;
	background-color: var(--color-surface-2);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* No card-level focus ring: `:focus-within` is rejected by the TemplateStyles&lt;br /&gt;
 * sanitizer, as are :has()/:is()/:where(). The title&amp;#039;s anchor is a real,&lt;br /&gt;
 * visible element, so it keeps the skin&amp;#039;s own focus ring around the title text&lt;br /&gt;
 * — which is where a keyboard user is looking anyway. */&lt;br /&gt;
&lt;br /&gt;
/* The affordance for the stretched anchor. Blue because that is what a link&lt;br /&gt;
 * looks like on this wiki, and underlined on card hover so the cue answers the&lt;br /&gt;
 * same gesture the border and background do. Deliberately NOT lifted above the&lt;br /&gt;
 * overlay below — it is a span, so a click on it lands on the card&amp;#039;s own link,&lt;br /&gt;
 * which is the whole point. */&lt;br /&gt;
.t-card__more {&lt;br /&gt;
	color: var(--color-progressive);&lt;br /&gt;
	font-size: var(--font-size-small);&lt;br /&gt;
	line-height: var(--line-height-small);&lt;br /&gt;
	font-weight: var(--font-weight-medium);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
.t-card--link:hover .t-card__more {&lt;br /&gt;
	text-decoration: underline;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/* Anything else interactive has to be lifted above the stretched anchor, or the&lt;br /&gt;
 * card swallows its clicks. */&lt;br /&gt;
.t-card--link .t-card__body a,&lt;br /&gt;
.t-card--link .t-card__readout a,&lt;br /&gt;
.t-card--link .t-card__footer a {&lt;br /&gt;
	position: relative;&lt;br /&gt;
	z-index: 2;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
@media (prefers-reduced-motion: reduce) {&lt;br /&gt;
	.t-card--link {&lt;br /&gt;
		transition: none;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>scw&gt;Alistar Bot</name></author>
	</entry>
</feed>