Template:Main Page/shared/styles.css: Difference between revisions
Template page
More actions
Content deleted Content added
DivošiRunner (talk | contribs) Fix main page metadata rail link layout |
DivošiRunner (talk | contribs) Add Divosi banner as a subdued hero background on the main page |
||
| Line 13: | Line 13: | ||
} |
} |
||
/* Attribution: the layered hero treatment below borrows the general "artwork under |
|||
atmospheric overlay" idea seen on several Citizen-theme homepages, rebuilt here |
|||
around the local Divosi banner asset. */ |
|||
.home-header::before { |
.home-header::before { |
||
content: ""; |
|||
position: absolute; |
|||
inset: 0; |
|||
border-radius: 1.25rem; |
|||
background: |
|||
linear-gradient( 180deg, rgba( 6, 7, 10, 0.12 ), rgba( 6, 7, 10, 0.48 ) ), |
|||
url( "/images/b/be/DivosiBanner.png" ) center 32% / cover no-repeat; |
|||
opacity: 0.34; |
|||
filter: saturate( 0.9 ) contrast( 1.04 ); |
|||
transform: scale( 1.02 ); |
|||
pointer-events: none; |
|||
} |
|||
.home-header::after { |
|||
content: ""; |
content: ""; |
||
position: absolute; |
position: absolute; |
||
| Line 20: | Line 37: | ||
border-radius: 1.25rem; |
border-radius: 1.25rem; |
||
background: |
background: |
||
radial-gradient( circle at top, rgba( 128, 18, 28, 0. |
radial-gradient( circle at top, rgba( 128, 18, 28, 0.24 ), transparent 55% ), |
||
linear-gradient( 180deg, rgba( 18, 7, 10, 0. |
linear-gradient( 180deg, rgba( 18, 7, 10, 0.84 ), rgba( 10, 12, 18, 0.84 ) ); |
||
box-shadow: inset 0 1px 0 rgba( 255, 255, 255, 0.03 ); |
|||
pointer-events: none; |
pointer-events: none; |
||
} |
} |
||
| Line 44: | Line 62: | ||
line-height: 0.9; |
line-height: 0.9; |
||
font-weight: var( --font-weight-semi-bold ); |
font-weight: var( --font-weight-semi-bold ); |
||
text-shadow: 0 10px 30px rgba( 0, 0, 0, 0.32 ); |
|||
} |
} |
||
| Line 63: | Line 82: | ||
border-radius: 999px; |
border-radius: 999px; |
||
background: rgba( 18, 13, 18, 0.72 ); |
background: rgba( 18, 13, 18, 0.72 ); |
||
backdrop-filter: blur( 8px ); |
|||
} |
} |
||
| Line 87: | Line 107: | ||
border: 1px solid var( --border-color-base ); |
border: 1px solid var( --border-color-base ); |
||
border-radius: var( --border-radius-pill ); |
border-radius: var( --border-radius-pill ); |
||
background-color: |
background-color: rgba( 17, 19, 25, 0.82 ); |
||
cursor: pointer; |
cursor: pointer; |
||
font-size: var( --font-size-small ); |
font-size: var( --font-size-small ); |
||
font-weight: var( --font-weight-medium ); |
font-weight: var( --font-weight-medium ); |
||
text-align: center; |
text-align: center; |
||
backdrop-filter: blur( 10px ); |
|||
transition: background 180ms ease, border-color 180ms ease; |
transition: background 180ms ease, border-color 180ms ease; |
||
} |
} |
||
| Line 124: | Line 145: | ||
.home-header__search:hover { |
.home-header__search:hover { |
||
background: |
background: rgba( 12, 13, 17, 0.92 ); |
||
} |
} |
||
Revision as of 17:36, 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;
}
/* Attribution: the layered hero treatment below borrows the general "artwork under
atmospheric overlay" idea seen on several Citizen-theme homepages, rebuilt here
around the local Divosi banner asset. */
.home-header::before {
content: "";
position: absolute;
inset: 0;
border-radius: 1.25rem;
background:
linear-gradient( 180deg, rgba( 6, 7, 10, 0.12 ), rgba( 6, 7, 10, 0.48 ) ),
url( "/images/b/be/DivosiBanner.png" ) center 32% / cover no-repeat;
opacity: 0.34;
filter: saturate( 0.9 ) contrast( 1.04 );
transform: scale( 1.02 );
pointer-events: none;
}
.home-header::after {
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.24 ), transparent 55% ),
linear-gradient( 180deg, rgba( 18, 7, 10, 0.84 ), rgba( 10, 12, 18, 0.84 ) );
box-shadow: inset 0 1px 0 rgba( 255, 255, 255, 0.03 );
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 );
text-shadow: 0 10px 30px rgba( 0, 0, 0, 0.32 );
}
.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 );
backdrop-filter: blur( 8px );
}
.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: rgba( 17, 19, 25, 0.82 );
cursor: pointer;
font-size: var( --font-size-small );
font-weight: var( --font-weight-medium );
text-align: center;
backdrop-filter: blur( 10px );
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: rgba( 12, 13, 17, 0.92 );
}
.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 p {
display: flex;
flex-wrap: wrap;
gap: 0.5rem;
margin: 0;
}
.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;
}