Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Template:Main Page/shared/styles.css: Difference between revisions

Template page
Content deleted Content added
DivošiRunner (talk | contribs)
Add hover-only red glow to search bar and restore card spacing
DivošiRunner (talk | contribs)
Refine main page hero and meta rail while consolidating shared styles
Line 1: Line 1:
/* Main page shared styles
/* Created & Original at https://starcitizen.tools
Attribution: some structural and motion ideas in this stylesheet were adapted from
All credits go to them */
Citizen-based homepage implementations on starcitizen.tools and prismparty.net,
then rewritten and adjusted for Echoes of the Flesh. */


/* Main page header */
/* Main page header */
.home-header {
.home-header {
position: relative;
position: relative;
overflow: hidden;
padding-block: 3.5rem;
padding: 3.5rem 1.25rem 2.75rem;
line-height: var( --line-height-xx-small );
line-height: var( --line-height-xx-small );
text-align: center;
text-align: center;
}

.home-header::before {
content: "";
position: absolute;
inset: 0;
border: 1px solid rgba( 128, 42, 48, 0.22 );
border-radius: 1.25rem;
background:
radial-gradient( circle at top, rgba( 128, 18, 28, 0.2 ), transparent 55% ),
linear-gradient( 180deg, rgba( 18, 7, 10, 0.94 ), rgba( 10, 12, 18, 0.72 ) );
pointer-events: none;
}

.home-header > * {
position: relative;
z-index: 1;
}
}


Line 29: Line 49:
margin-top: var( --space-xxs );
margin-top: var( --space-xxs );
color: var( --color-subtle );
color: var( --color-subtle );
font-size: var( --font-size-small );
}

.home-header__status {
display: inline-flex;
flex-wrap: wrap;
gap: 0.5rem;
align-items: center;
justify-content: center;
margin-top: 0.9rem;
padding: 0.45rem 0.8rem;
border: 1px solid rgba( 137, 42, 48, 0.24 );
border-radius: 999px;
background: rgba( 18, 13, 18, 0.72 );
}

.home-header__statusLabel {
color: #d79599;
font-size: var( --font-size-x-small );
letter-spacing: 0.08em;
text-transform: uppercase;
}

.home-header__statusText {
color: var( --color-base );
font-size: var( --font-size-small );
font-size: var( --font-size-small );
}
}
Line 47: Line 92:
font-weight: var( --font-weight-medium );
font-weight: var( --font-weight-medium );
text-align: center;
text-align: center;
transition: background 180ms ease, border-color 180ms ease;
}
}


/* Attribution: the animated hover-glow treatment here was inspired by the
Citizen homepage search affordance on starcitizen.tools, with a custom red palette. */
.home-header__search::before {
.home-header__search::before {
content: "";
content: "";
Line 105: Line 153:
}
}


html.skin-citizen-dark .home-header:before,
html.skin-citizen-dark .home-header__searchIcon img {
html.skin-citizen-dark .home-header__searchIcon img {
filter: invert( 1 );
filter: invert( 1 );
Line 125: Line 172:
}
}


@media (min-width: 760px) {
@media ( min-width: 760px ) {
.main-home-grid {
.main-home-grid {
grid-template-columns: minmax(0, 1.45fr) minmax(320px, 0.95fr);
grid-template-columns: minmax( 0, 1.45fr ) minmax( 320px, 0.95fr );
grid-template-areas: "article widgets";
grid-template-areas: "article widgets";
align-items: start;
align-items: start;
Line 160: Line 207:
}
}


@media (min-width: 700px) {
@media ( min-width: 700px ) {
.sub-home-grid {
.sub-home-grid {
grid-template-columns: 1fr 1fr;
grid-template-columns: 1fr 1fr;
Line 169: Line 216:
.home-grid {
.home-grid {
display: grid;
display: grid;
grid: auto-flow dense/repeat( auto-fit, minmax( 9.375rem, 1fr ) );
grid: auto-flow dense / repeat( auto-fit, minmax( 9.375rem, 1fr ) );
grid-auto-rows: minmax( 3rem, auto );
grid-auto-rows: minmax( 3rem, auto );
grid-gap: var( --space-xs );
grid-gap: var( --space-xs );
Line 184: Line 231:
.home-badge {
.home-badge {
display: flex;
display: flex;
gap: var(--space-xxs);
gap: var( --space-xxs );
font-size: var(--font-size-x-small);
font-size: var( --font-size-x-small );
padding: var(--space-xxs) var(--space-xs);
padding: var( --space-xxs ) var( --space-xs );
background: var(--color-surface-2);
background: var( --color-surface-2 );
color: var(--color-base);
color: var( --color-base );
border-radius: var(--border-radius-base);
border-radius: var( --border-radius-base );
font-weight: var(--font-weight-normal);
font-weight: var( --font-weight-normal );
letter-spacing: 0.025em;
letter-spacing: 0.025em;
line-height: var(--line-height-xxx-small);
line-height: var( --line-height-xxx-small );
}

.home-card,
.home-meta__item {
box-shadow: 0 12px 32px rgba( 5, 5, 8, 0.22 );
}
}


Line 251: Line 303:


.home-card__header a:after {
.home-card__header a:after {
content: '';
content: "";
font-size: var( --font-size-x-small );
font-size: var( --font-size-x-small );
}
}
Line 265: Line 317:
inset: 0;
inset: 0;
display: block;
display: block;
background: linear-gradient(to right,#000,transparent);
background: linear-gradient( to right, #000, transparent );
content: "";
content: "";
transition: transform 250ms ease;
transition: transform 250ms ease;
Line 426: Line 478:
}
}


/* Attribution: the footer utility rail borrows the "compact maintenance links"
#home-card-discord {
idea from Citizen-theme main pages like starcitizen.tools, but uses original copy and styling. */
background: #5865f2;
.home-meta {
display: grid;
gap: 0.75rem;
margin-top: 1rem;
}
}


@media ( min-width: 860px ) {
#home-card-patreon {
.home-meta {
background: #ff424d;
grid-template-columns: 1.2fr 0.8fr 0.9fr;
}
}
}


#home-card-kofi {
.home-meta__item {
padding: 0.95rem 1rem;
background: #ff5e5b;
border: 1px solid var( --border-color-base );
border-radius: var( --border-radius-medium );
background: linear-gradient( 180deg, rgba( 19, 20, 27, 0.94 ), rgba( 11, 12, 17, 0.98 ) );
}
}


#home-card-reddit {
.home-meta__label {
margin-bottom: 0.35rem;
background: #ff4500;
color: #c48a8f;
font-size: var( --font-size-x-small );
letter-spacing: 0.08em;
text-transform: uppercase;
}
}


.home-footer {
.home-meta__text,
.home-meta__actions {
font-size: var( --font-size-small );
font-size: var( --font-size-small );
line-height: 1.5;
font-family: var( --font-family-monospace );
}
text-align: center;

.home-meta__actions {
display: flex;
flex-wrap: wrap;
gap: 0.5rem;
}

.home-meta__actions a {
display: inline-flex;
padding: 0.45rem 0.75rem;
border: 1px solid rgba( 137, 42, 48, 0.25 );
border-radius: 999px;
background: rgba( 54, 15, 21, 0.18 );
text-decoration: none;
background-image: none;
}

.home-meta__actions a:hover {
background: rgba( 82, 22, 28, 0.28 );
}

.home-meta__actions a.external::after {
display: none;
}
}

Revision as of 16:24, 9 April 2026

/* Main page shared styles
   Attribution: some structural and motion ideas in this stylesheet were adapted from
   Citizen-based homepage implementations on starcitizen.tools and prismparty.net,
   then rewritten and adjusted for Echoes of the Flesh. */

/* Main page header */
.home-header {
	position: relative;
	overflow: hidden;
	padding: 3.5rem 1.25rem 2.75rem;
	line-height: var( --line-height-xx-small );
	text-align: center;
}

.home-header::before {
	content: "";
	position: absolute;
	inset: 0;
	border: 1px solid rgba( 128, 42, 48, 0.22 );
	border-radius: 1.25rem;
	background:
		radial-gradient( circle at top, rgba( 128, 18, 28, 0.2 ), transparent 55% ),
		linear-gradient( 180deg, rgba( 18, 7, 10, 0.94 ), rgba( 10, 12, 18, 0.72 ) );
	pointer-events: none;
}

.home-header > * {
	position: relative;
	z-index: 1;
}

.home-header__pretitle {
	margin-bottom: var( --space-xxs );
	color: var( --color-subtle );
	font-size: var( --font-size-small );
	letter-spacing: 0.05em;
}

.home-header__title {
	--display-font-size: min( calc( 2.5rem + 3.9vw ), 4.5rem );
	margin: 0;
	font-size: var( --display-font-size );
	text-transform: uppercase;
	line-height: 0.9;
	font-weight: var( --font-weight-semi-bold );
}

.home-header__subtitle {
	margin-top: var( --space-xxs );
	color: var( --color-subtle );
	font-size: var( --font-size-small );
}

.home-header__status {
	display: inline-flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	align-items: center;
	justify-content: center;
	margin-top: 0.9rem;
	padding: 0.45rem 0.8rem;
	border: 1px solid rgba( 137, 42, 48, 0.24 );
	border-radius: 999px;
	background: rgba( 18, 13, 18, 0.72 );
}

.home-header__statusLabel {
	color: #d79599;
	font-size: var( --font-size-x-small );
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.home-header__statusText {
	color: var( --color-base );
	font-size: var( --font-size-small );
}

.home-header__search {
	position: relative;
	isolation: isolate;
	padding: var( --space-md );
	margin-top: var( --space-xl );
	margin-left: auto;
	margin-right: auto;
	max-width: 600px;
	border: 1px solid var( --border-color-base );
	border-radius: var( --border-radius-pill );
	background-color: var( --color-surface-1 );
	cursor: pointer;
	font-size: var( --font-size-small );
	font-weight: var( --font-weight-medium );
	text-align: center;
	transition: background 180ms ease, border-color 180ms ease;
}

/* Attribution: the animated hover-glow treatment here was inspired by the
   Citizen homepage search affordance on starcitizen.tools, with a custom red palette. */
.home-header__search::before {
	content: "";
	position: absolute;
	inset: -1px;
	z-index: -1;
	border-radius: inherit;
	background: linear-gradient(
		120deg,
		#16090a 0%,
		#3a1113 20%,
		#6a1719 38%,
		#9a2020 50%,
		#6a1719 62%,
		#3a1113 80%,
		#16090a 100%
	);
	background-size: 200% 200%;
	filter: blur( 8px );
	opacity: 0;
	transition: opacity 200ms ease, filter 200ms ease;
}

.home-header__search .desktoponly {
	margin-left: var( --space-xs );
}

.home-header__search:hover {
	background: var( --color-surface-0 );
}

.home-header__search:hover::before {
	opacity: 0.9;
	filter: blur( 10px );
	animation: home-search-red-glow 4.5s linear infinite;
}

@keyframes home-search-red-glow {
	0% {
		background-position: 0% 50%;
	}
	100% {
		background-position: 200% 50%;
	}
}

.home-header__searchIcon img {
	margin-right: var( --space-md );
	opacity: var( --opacity-icon-base );
}

.home-header__search .keyboard-key {
	display: inline;
	padding-top: 0.1em;
	padding-bottom: 0.1em;
}

html.skin-citizen-dark .home-header__searchIcon img {
	filter: invert( 1 );
}

@media ( hover: none ) {
	.home-header__search .desktoponly {
		display: none;
	}
}

/* Main page 2-column layout */
.main-home-grid {
	display: grid;
	grid-template-areas:
		"article"
		"widgets";
	gap: 0.625rem;
}

@media ( min-width: 760px ) {
	.main-home-grid {
		grid-template-columns: minmax( 0, 1.45fr ) minmax( 320px, 0.95fr );
		grid-template-areas: "article widgets";
		align-items: start;
	}
}

.article {
	grid-area: article;
	min-width: 0;
}

.widgets {
	grid-area: widgets;
	min-width: 0;
}

.split-left {
	grid-area: split-left;
}

.split-right {
	grid-area: split-right;
}

.sub-home-grid {
	display: grid;
	margin-top: 0.625rem;
	gap: 0.625rem;
	grid-template-areas:
		"split-left"
		"split-right";
}

@media ( min-width: 700px ) {
	.sub-home-grid {
		grid-template-columns: 1fr 1fr;
		grid-template-areas: "split-left split-right";
	}
}

.home-grid {
	display: grid;
	grid: auto-flow dense / repeat( auto-fit, minmax( 9.375rem, 1fr ) );
	grid-auto-rows: minmax( 3rem, auto );
	grid-gap: var( --space-xs );
}

.home-grid--col2 {
	grid-template-columns: 1fr 1fr;
}

.home-grid a.external {
	background-image: none;
}

.home-badge {
	display: flex;
	gap: var( --space-xxs );
	font-size: var( --font-size-x-small );
	padding: var( --space-xxs ) var( --space-xs );
	background: var( --color-surface-2 );
	color: var( --color-base );
	border-radius: var( --border-radius-base );
	font-weight: var( --font-weight-normal );
	letter-spacing: 0.025em;
	line-height: var( --line-height-xxx-small );
}

.home-card,
.home-meta__item {
	box-shadow: 0 12px 32px rgba( 5, 5, 8, 0.22 );
}

.home-card {
	position: relative;
	padding: var( --space-md );
	border: 1px solid var( --border-color-base );
	background: var( --color-surface-1 );
	border-radius: var( --border-radius-medium );
	font-size: var( --font-size-small );
}

.home-card table.timeline {
	margin-top: var( --space-xs );
}

.home-card--col2 {
	grid-column: span 2;
}

.home-card--row3 {
	grid-row: span 3;
}

.home-card--row4 {
	grid-row: span 4;
}

.home-card--row8 {
	grid-row: span 8 / auto;
}

.home-card__badge,
.home-card__label {
	color: var( --color-subtle );
	font-size: var( --font-size-x-small );
	letter-spacing: 0.05em;
}

.home-card__badge {
	padding: var( --space-xxs ) var( --space-xs );
	border-radius: var( --border-radius-base );
	background: var( --color-surface-2 );
}

.home-card__header {
	color: var( --color-emphasized );
	font-size: 1rem;
	font-weight: var( --font-weight-semi-bold );
	line-height: var( --line-height-xxx-small );
}

.home-card__header a {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.home-card__header a:after {
	content: "▶";
	font-size: var( --font-size-x-small );
}

.home-card__background {
	position: absolute;
	inset: 0;
}

.home-card__background:after {
	position: absolute;
	pointer-events: none;
	inset: 0;
	display: block;
	background: linear-gradient( to right, #000, transparent );
	content: "";
	transition: transform 250ms ease;
}

.home-card__background picture,
.home-card__background img {
	width: 100%;
	height: 100%;
}

.home-card__background img {
	object-fit: cover;
	object-position: center;
}

.home-card__foreground {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 0;
	right: 0;
	padding: var( --space-md );
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: var( --space-xxs );
	color: #fff;
	line-height: var( --line-height-xxx-small );
	pointer-events: none;
}

.home-card__foreground .home-card__badge {
	position: absolute;
	top: 0;
	right: 0;
	border-top-left-radius: 0;
	border-bottom-right-radius: 0;
}

.home-card__foreground .home-card__header {
	color: #fff;
}

.home-card__foreground .home-card__label {
	color: #bababa;
}

.home-card p {
	margin-top: var( --space-xs );
	font-size: var( --font-size-small );
}

.home-card.home-card--button {
	overflow: hidden;
	padding: 0;
	border: 0;
}

.home-card--button a {
	display: flex;
	height: 100%;
	justify-content: center;
	align-items: center;
	padding: 0 var( --space-md );
	background: transparent;
	color: #fff;
	font-weight: var( --font-weight-medium );
}

.home-card--button .home-card__background a {
	padding: 0;
}

.home-card--button img {
	transition: transform 250ms ease;
}

.home-card--button:hover img {
	transform: scale( 1.1 );
}

.home-link {
	display: grid;
	margin-top: var( --space-xs );
	font-size: var( --font-size-small );
	font-weight: var( --font-weight-medium );
	grid-gap: var( --space-xs );
	text-align: center;
}

.home-link__button {
	display: flex;
}

.home-link__button a {
	flex-grow: 1;
	padding: var( --space-xs );
	border: 1px solid var( --border-color-base );
	background: var( --color-surface-2 );
	border-radius: var( --border-radius-medium );
	color: var( --color-emphasized ) !important;
	line-height: var( --line-height-xxx-small );
	text-decoration: none !important;
}

.home-link__button a:hover {
	background: var( --color-surface-2--hover );
}

.home-link__button a:active {
	background: var( --color-surface-2--active );
}

#home-content {
	margin-top: 0;
}

.home-card .template-statsbar {
	margin: 0;
}

/* Discord widget polish + spacing */
.discord-widget-wrap {
	display: flex;
	justify-content: center;
	margin-top: 0.75rem;
	margin-bottom: 0.75rem;
}

#home-discordwidget #discord-widget {
	width: 100%;
	max-width: none;
}

#home-discordwidget iframe.responsive-iframe {
	width: 100%;
	border-radius: 8px;
	overflow: hidden;
	display: block;
	min-height: 500px;
	background: transparent;
}

#home-discordwidget .home-card__label {
	margin-bottom: 0.8rem !important;
}

#home-discordwidget .home-link__button-discord,
#home-discordwidget .home-link__button {
	margin-top: 0.8rem !important;
}

.home-link__button-discord {
	margin-top: 0.6rem;
}

#home-discordwidget a.external.text::after {
	display: none;
}

/* Attribution: the footer utility rail borrows the "compact maintenance links"
   idea from Citizen-theme main pages like starcitizen.tools, but uses original copy and styling. */
.home-meta {
	display: grid;
	gap: 0.75rem;
	margin-top: 1rem;
}

@media ( min-width: 860px ) {
	.home-meta {
		grid-template-columns: 1.2fr 0.8fr 0.9fr;
	}
}

.home-meta__item {
	padding: 0.95rem 1rem;
	border: 1px solid var( --border-color-base );
	border-radius: var( --border-radius-medium );
	background: linear-gradient( 180deg, rgba( 19, 20, 27, 0.94 ), rgba( 11, 12, 17, 0.98 ) );
}

.home-meta__label {
	margin-bottom: 0.35rem;
	color: #c48a8f;
	font-size: var( --font-size-x-small );
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.home-meta__text,
.home-meta__actions {
	font-size: var( --font-size-small );
	line-height: 1.5;
}

.home-meta__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
}

.home-meta__actions a {
	display: inline-flex;
	padding: 0.45rem 0.75rem;
	border: 1px solid rgba( 137, 42, 48, 0.25 );
	border-radius: 999px;
	background: rgba( 54, 15, 21, 0.18 );
	text-decoration: none;
	background-image: none;
}

.home-meta__actions a:hover {
	background: rgba( 82, 22, 28, 0.28 );
}

.home-meta__actions a.external::after {
	display: none;
}