Template:Category/Experiment/styles.css

From Miniscope
Jump to: navigation, search
/* TemplateStyles for {{Category/Experiment}} — a documented miniscope
   preparation rendered as a masthead, a curation-provenance banner,
   and a stack of labelled spec blocks (Animal / Target / Indicator /
   Optical access / Imaging / Contact / Resources).

   Follows the same var() / fallback discipline as
   {{Category/Publication}}/styles.css: every color pulls a --labki-*
   token with a literal fallback, so a wiki can retheme the whole
   registry by overriding tokens in MediaWiki:Common.css without
   touching this file.

   Layout note: rows are a two-column grid (label / value) rather than
   a table, so a long coordinate string wraps under its own label
   instead of stretching the label column across the page. The grid
   collapses to a single column under 640px, where a 9em label column
   would leave too little room for the value.

   Border shorthands are written out in full rather than as
   border-color overrides — MediaWiki's TemplateStyles sanitizer
   rejects var() inside the level-4 border-color longhand, the same
   restriction documented in {{Category/Publication}}/styles.css.
*/

.experiment-page {
	margin: 0 0 1.5em 0;
}

/* ---------- Masthead ---------- */

.experiment-masthead {
	margin: 0 0 1em 0;
}

.experiment-title {
	font-size: 1.55rem;
	line-height: 1.25;
	font-weight: 600;
	margin: 0 0 0.3em 0;
	color: var(--labki-text, #2c2c2c);
	border-bottom: none;
	padding-bottom: 0;
}

.experiment-lead {
	font-size: 1.05rem;
	line-height: 1.55;
	color: var(--labki-text, #2c2c2c);
	font-style: italic;
	margin: 0.4em 0;
	padding: 0.2em 0 0.2em 1em;
	border-left: 3px solid var(--labki-accent, #2774AE);
}

.experiment-source {
	font-size: 0.9rem;
	color: var(--labki-text-muted, #5a6a7a);
	margin-top: 0.5em;
}

.experiment-source-label {
	text-transform: uppercase;
	letter-spacing: 0.06em;
	font-size: 0.75rem;
	margin-right: 0.4em;
}

/* ---------- Curation provenance banner ----------
   Deliberately full-width and stated in words rather than reduced to
   a chip. The registry mixes curator-transcribed values with
   unreviewed community submissions, and a reader who cannot tell them
   apart at a glance will over-trust the weaker ones. The two
   lower-confidence states carry a warning tint; the two verified
   states carry the accent. */

.experiment-curation {
	margin: 0 0 1.25em 0;
	padding: 0.6em 0.9em;
	border-radius: 4px;
	font-size: 0.85rem;
	line-height: 1.5;
	background: var(--labki-bg-subtle, #f4f6f8);
	border-left: 4px solid var(--labki-border, #d8dde2);
}

.experiment-curation-status {
	display: block;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	font-size: 0.75rem;
	margin-bottom: 0.25em;
}

.experiment-curation-gloss {
	color: var(--labki-text-muted, #5a6a7a);
}

.experiment-curation-verified {
	border-left: 4px solid var(--labki-accent, #2774AE);
}
.experiment-curation-verified .experiment-curation-status {
	color: var(--labki-accent, #2774AE);
}

.experiment-curation-author {
	border-left: 4px solid var(--labki-success, #1a7f4b);
}
.experiment-curation-author .experiment-curation-status {
	color: var(--labki-success, #1a7f4b);
}

.experiment-curation-community,
.experiment-curation-review {
	border-left: 4px solid var(--labki-warning, #b8860b);
}
.experiment-curation-community .experiment-curation-status,
.experiment-curation-review .experiment-curation-status {
	color: var(--labki-warning, #b8860b);
}

/* ---------- Spec blocks ---------- */

.experiment-block {
	margin: 0 0 1.1em 0;
	padding: 0 0 0.9em 0;
	border-bottom: 1px solid var(--labki-border, #d8dde2);
}

.experiment-block:last-of-type {
	border-bottom: none;
}

.experiment-block-label {
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.07em;
	color: var(--labki-text-muted, #5a6a7a);
	font-weight: 600;
	margin-bottom: 0.5em;
}

.experiment-row {
	display: grid;
	grid-template-columns: 11em 1fr;
	gap: 0.4em 1em;
	padding: 0.2em 0;
	font-size: 0.95rem;
	line-height: 1.5;
}

.experiment-row-label {
	color: var(--labki-text-muted, #5a6a7a);
}

.experiment-row-value {
	color: var(--labki-text, #2c2c2c);
}

/* Fixed advance width for coordinates, titers, constructs, depths and
   frame rates — digits line up across rows, which makes a mistyped
   sign or a misplaced decimal visible. */
.experiment-row-mono {
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 0.88rem;
}

/* The three fields people most often arrive at the registry to find. */
.experiment-row-emphasis {
	color: var(--labki-accent, #2774AE);
	font-weight: 500;
}

.experiment-region-chip,
.experiment-scope-chip {
	display: inline-block;
	padding: 1px 9px;
	margin: 0 0.3em 0.25em 0;
	border-radius: 999px;
	font-size: 0.85rem;
	background: var(--labki-bg-subtle, #f4f6f8);
	border: 1px solid var(--labki-accent, #2774AE);
}

.experiment-region-chip a,
.experiment-region-chip a:visited,
.experiment-scope-chip a,
.experiment-scope-chip a:visited {
	color: var(--labki-accent, #2774AE);
	text-decoration: none;
}

/* ---------- Known challenges ----------
   Given its own callout rather than a row because it is prose, and
   because it is the field least likely to exist anywhere else. */

.experiment-challenges {
	background: var(--labki-bg-subtle, #f4f6f8);
	border-left: 3px solid var(--labki-warning, #b8860b);
	padding: 0.75em 1em;
	margin: 0 0 1.1em 0;
	border-radius: 0 4px 4px 0;
}

.experiment-challenges-label {
	font-size: 0.75rem;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	color: var(--labki-warning, #b8860b);
	font-weight: 600;
	margin-bottom: 0.4em;
}

.experiment-challenges-body {
	font-size: 0.95rem;
	line-height: 1.55;
	color: var(--labki-text, #2c2c2c);
}

/* ---------- Contact ---------- */

.experiment-block-contact {
	background: var(--labki-bg-subtle, #f4f6f8);
	padding: 0.8em 1em;
	border-radius: 4px;
	border-bottom: none;
}

/* ---------- Resources ---------- */

.experiment-resources {
	margin: 0 0 1em 0;
}

.experiment-resource-list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4em;
}

.experiment-resource {
	display: inline-block;
	padding: 2px 10px;
	border-radius: 3px;
	font-size: 0.85rem;
	border: 1px solid var(--labki-border, #d8dde2);
	background: var(--labki-bg, #ffffff);
}

.experiment-resource a,
.experiment-resource a:visited {
	color: var(--labki-accent, #2774AE);
	text-decoration: none;
}

.experiment-resource-protocol {
	border: 1px solid var(--labki-accent, #2774AE);
}

/* ---------- Notes ---------- */

.experiment-notes {
	margin: 0 0 1em 0;
}

.experiment-notes-body {
	font-size: 0.95rem;
	line-height: 1.55;
	color: var(--labki-text, #2c2c2c);
}

/* ---------- Narrow viewports ----------
   An 11em label column leaves too little for the value on a phone, so
   rows stack and the label becomes a small caption above its value. */

@media screen and (max-width: 640px) {
	.experiment-row {
		grid-template-columns: 1fr;
		gap: 0.1em;
		padding: 0.35em 0;
	}

	.experiment-row-label {
		font-size: 0.78rem;
		text-transform: uppercase;
		letter-spacing: 0.04em;
	}
}