/*
XenForo 2.2 style clone inspired by forum.h-bonus.ru
Import/copy this into appearance -> templates -> extra.less
Best used together with style properties listed below.
*/
:root {
--hb-bg: #0a0d14;
--hb-bg-soft: #101522;
--hb-bg-card: #131a2a;
--hb-bg-card-2: #182235;
--hb-stroke: #263247;
--hb-stroke-soft: #1d2637;
--hb-text: #e8edf7;
--hb-text-soft: #a9b5ca;
--hb-text-dim: #76839d;
--hb-accent: #31d0ff;
--hb-accent-2: #6a5cff;
--hb-accent-3: #16f2a5;
--hb-danger: #ff5577;
--hb-warning: #ffb648;
--hb-shadow: 0 20px 50px rgba(0,0,0,.34);
--hb-radius-xl: 24px;
--hb-radius-lg: 18px;
--hb-radius-md: 14px;
--hb-radius-sm: 10px;
}
html,
body {
background:
radial-gradient(circle at top, rgba(49, 208, 255, .10), transparent 28%),
linear-gradient(180deg, #090c13 0%, #0b1018 22%, #0c111a 100%);
color: var(--hb-text);
}
body {
font-family: Inter, Segoe UI, Arial, sans-serif;
}
a {
color: #dff8ff;
transition: .2s ease;
}
a:hover {
color: #ffffff;
text-decoration: none;
}
.p-pageWrapper {
background: transparent;
}
.p-body {
background: transparent;
}
.p-body-inner {
max-width: 1400px;
}
/* Header */
.p-header {
background:
linear-gradient(135deg, rgba(15, 22, 36, .96), rgba(9, 13, 21, .98));
border-bottom: 1px solid rgba(255,255,255,.05);
box-shadow: 0 18px 40px rgba(0,0,0,.30);
position: relative;
overflow: hidden;
}
.p-header:before {
content: "";
position: absolute;
inset: -20% auto auto -10%;
width: 420px;
height: 420px;
background: radial-gradient(circle, rgba(49,208,255,.18), transparent 60%);
pointer-events: none;
}
.p-header-content {
min-height: 110px;
padding: 18px 0;
position: relative;
z-index: 2;
}
.p-header-logo img {
max-height: 54px;
}
.p-nav {
background: rgba(10,14,22,.84);
backdrop-filter: blur(8px);
border-top: 1px solid rgba(255,255,255,.04);
border-bottom: 1px solid rgba(255,255,255,.05);
}
.p-nav-list .p-navEl-link,
.p-nav-list .p-navEl-splitTrigger {
height: 52px;
color: #dbe9ff;
font-weight: 700;
letter-spacing: .02em;
}
.p-nav-list .p-navEl.is-selected .p-navEl-link,
.p-nav-list .p-navEl-link:hover,
.p-nav-list .p-navEl-link:focus {
color: #fff;
background: linear-gradient(180deg, rgba(49,208,255,.16), rgba(49,208,255,.07));
box-shadow: inset 0 -2px 0 var(--hb-accent);
}
.p-navgroup-link {
border-radius: 999px;
margin: 8px 6px;
height: 36px;
line-height: 36px;
background: rgba(255,255,255,.04);
border: 1px solid rgba(255,255,255,.06);
}
.p-navgroup-link:hover {
background: rgba(49,208,255,.12);
border-color: rgba(49,208,255,.35);
}
/* Buttons */
.button,
.button.button--primary,
a.button,
span.button {
border-radius: 999px;
border: 1px solid rgba(49,208,255,.35);
background: linear-gradient(180deg, #1fd6ff, #00a9df);
color: #081018;
font-weight: 800;
box-shadow: 0 10px 24px rgba(10, 183, 230, .24);
}
.button:hover,
.button.button--primary:hover,
a.button:hover {
filter: brightness(1.06);
transform: translateY(-1px);
}
.button.button--link,
.button.button--cta {
border-radius: 999px;
}
/* Breadcrumbs */
.p-breadcrumbs {
margin-top: 18px;
}
.p-breadcrumbs > li {
background: rgba(255,255,255,.04);
border: 1px solid rgba(255,255,255,.06);
border-radius: 999px;
margin-right: 8px;
padding: 6px 12px;
}
/* Blocks */
.block {
background: linear-gradient(180deg, rgba(19, 26, 42, .98), rgba(14, 20, 33, .98));
border: 1px solid var(--hb-stroke);
border-radius: var(--hb-radius-xl);
overflow: hidden;
box-shadow: var(--hb-shadow);
}
.block-container {
background: transparent;
}
.block-header,
.block-minorHeader,
.block-tabHeader {
background: linear-gradient(180deg, rgba(25, 34, 53, .95), rgba(18, 24, 38, .98));
color: #fff;
border-bottom: 1px solid rgba(255,255,255,.06);
font-weight: 800;
letter-spacing: .03em;
}
.block-header {
padding: 16px 22px;
}
.block-row {
border-top: 1px solid rgba(255,255,255,.05);
}
.block-row.is-mod-selected {
background: rgba(49,208,255,.06);
}
/* Node list */
.block--category {
margin-bottom: 22px;
}
.block--category .block-header {
background:
linear-gradient(90deg, rgba(49,208,255,.12), rgba(106,92,255,.10) 52%, rgba(255,255,255,.02));
border-bottom: 1px solid rgba(255,255,255,.06);
padding: 18px 24px;
}
.block--category .block-header a {
font-size: 24px;
text-transform: uppercase;
letter-spacing: .08em;
}
.node {
background: transparent;
}
.node + .node {
border-top: 1px solid rgba(255,255,255,.05);
}
.node-body {
display: flex;
align-items: center;
gap: 18px;
padding: 22px 24px;
background:
linear-gradient(180deg, rgba(255,255,255,.01), rgba(255,255,255,0)),
linear-gradient(90deg, rgba(49,208,255,.03), transparent 18%);
}
.node-icon {
width: 72px;
min-width: 72px;
display: flex;
justify-content: center;
align-items: center;
}
.node-icon i,
.node-icon svg {
width: 52px;
height: 52px;
border-radius: 18px;
background: linear-gradient(180deg, #1d2c45, #111827);
border: 1px solid rgba(49,208,255,.18);
box-shadow: inset 0 1px 0 rgba(255,255,255,.06), 0 12px 30px rgba(0,0,0,.28);
color: var(--hb-accent);
padding: 12px;
}
.node-main {
flex: 1 1 auto;
}
.node-title {
font-size: 21px;
line-height: 1.2;
font-weight: 900;
margin-bottom: 8px;
}
.node-title a {
color: #f3f8ff;
}
.node-description,
.node-subNodeMenu,
.node-statsMeta,
.contentRow-minor,
.node-extra-row,
.node-stats {
color: var(--hb-text-soft);
}
.node-stats {
min-width: 180px;
text-align: center;
}
.node-stats dl {
margin: 0 0 10px;
padding: 10px 14px;
border-radius: 14px;
background: rgba(255,255,255,.03);
border: 1px solid rgba(255,255,255,.05);
}
.node-stats dt {
color: var(--hb-text-dim);
font-size: 12px;
text-transform: uppercase;
letter-spacing: .08em;
}
.node-stats dd {
color: #fff;
font-size: 18px;
font-weight: 800;
}
.node-extra {
min-width: 310px;
max-width: 310px;
padding-left: 10px;
}
.node-extra-row {
background: rgba(255,255,255,.03);
border: 1px solid rgba(255,255,255,.05);
border-radius: 16px;
padding: 12px 14px;
}
.node-extra-title {
display: block;
color: #fff;
font-weight: 800;
margin-bottom: 6px;
}
.label,
.label.label--primary,
.label.label--accent {
border-radius: 999px;
font-weight: 800;
padding: 3px 10px;
border: 1px solid rgba(49,208,255,.18);
background: rgba(49,208,255,.12);
color: #dffbff;
}
/* Forum list visual cards */
.structItem {
border-radius: 18px;
margin: 10px 12px;
background: linear-gradient(180deg, rgba(20,28,43,.96), rgba(14,20,32,.98));
border: 1px solid rgba(255,255,255,.06);
box-shadow: 0 12px 30px rgba(0,0,0,.18);
overflow: hidden;
}
.structItem:hover {
border-color: rgba(49,208,255,.24);
transform: translateY(-1px);
}
.structItem-cell {
padding-top: 16px;
padding-bottom: 16px;
}
.structItem-title {
font-size: 18px;
font-weight: 800;
}
.structItem-title a {
color: #f6fbff;
}
.structItem-minor,
.structItem-parts,
.structItem-latestDate {
color: var(--hb-text-soft);
}
.structItem-status {
border-radius: 14px;
background: rgba(49,208,255,.12);
}
/* Sidebar */
.p-body-sidebar .block {
border-radius: 22px;
}
.p-body-sidebar .block-row,
.p-body-sidebar .block-footer {
background: rgba(255,255,255,.01);
}
.memberTooltip-header,
.memberHeader-main,
.memberHeader-content,
.menu-content,
.overlay-container {
background: linear-gradient(180deg, rgba(18,24,38,.98), rgba(11,16,25,.98));
}
/* Inputs */
.input,
.input input,
.input textarea,
.input select,
textarea,
select,
option {
border-radius: 14px;
}
.input,
textarea,
select,
input[type="text"],
input[type="password"],
input[type="search"],
input[type="email"] {
background: rgba(255,255,255,.04);
border: 1px solid rgba(255,255,255,.08);
color: #eff5ff;
box-shadow: none;
}
.input:focus,
textarea:focus,
select:focus,
input:focus {
border-color: rgba(49,208,255,.42);
box-shadow: 0 0 0 4px rgba(49,208,255,.10);
}
/* Notices */
.messageNotice,
.notice,
.blockMessage {
border-radius: 18px;
border: 1px solid rgba(49,208,255,.16);
background: linear-gradient(180deg, rgba(19,29,43,.98), rgba(15,21,33,.98));
}
.messageNotice.messageNotice--warning {
border-color: rgba(255,182,72,.35);
background: linear-gradient(180deg, rgba(60,42,11,.94), rgba(39,28,10,.96));
}
/* Posts */
.message {
border-radius: 24px;
overflow: hidden;
background: linear-gradient(180deg, rgba(18,24,38,.98), rgba(12,18,29,.98));
border: 1px solid rgba(255,255,255,.06);
box-shadow: var(--hb-shadow);
}
.message-inner {
border: 0;
}
.message-cell--user {
background: linear-gradient(180deg, rgba(21,30,46,.98), rgba(14,19,31,.98));
border-right: 1px solid rgba(255,255,255,.05);
}
.message-userArrow {
display: none;
}
.message-name {
font-size: 20px;
font-weight: 900;
}
.message-attribution {
background: rgba(255,255,255,.02);
border-bottom: 1px solid rgba(255,255,255,.05);
}
.message-userTitle,
.message-userExtras,
.message-signature,
.message-lastEdit {
color: var(--hb-text-soft);
}
.message-avatar .avatar,
.node-avatar .avatar,
.contentRow-figure .avatar {
border: 2px solid rgba(49,208,255,.24);
box-shadow: 0 10px 26px rgba(0,0,0,.24);
}
/* Page titles */
.p-title-value {
font-size: 34px;
font-weight: 900;
letter-spacing: -.02em;
color: #f5fbff;
}
.p-description,
.p-title-pageAction {
color: var(--hb-text-soft);
}
/* Footer */
.p-footer {
background: linear-gradient(180deg, rgba(8,11,18,.96), rgba(5,8,14,.98));
border-top: 1px solid rgba(255,255,255,.05);
margin-top: 28px;
}
.p-footer a,
.p-footer-row {
color: var(--hb-text-soft);
}
/* Decorative badges similar to gaming forums */
.userBanner,
.userBanner.userBanner--primary,
.userBanner.userBanner--accent {
border-radius: 999px;
font-weight: 800;
border: 1px solid rgba(106,92,255,.32);
background: linear-gradient(180deg, rgba(106,92,255,.26), rgba(49,208,255,.18));
}
/* Mobile */
@media (max-width: 900px) {
.node-body {
flex-wrap: wrap;
gap: 14px;
}
.node-stats,
.node-extra {
min-width: 100%;
max-width: 100%;
}
.block--category .block-header a {
font-size: 19px;
}
.p-title-value {
font-size: 28px;
}
}
/* Optional category image strip imitation */
.block--category .block-header {
position: relative;
overflow: hidden;
}
.block--category .block-header:after {
content: "";
position: absolute;
inset: 0;
background: linear-gradient(90deg, rgba(49,208,255,.12), transparent 35%, transparent 65%, rgba(106,92,255,.12));
pointer-events: none;
}
/* Optional style tuning for XF 2.2 default widgets */
[data-widget-definition] .block-row,
.pairs.pairs--justified > dt,
.pairs.pairs--justified > dd {
color: var(--hb-text-soft);
}
/* Scrollbar */
*::-webkit-scrollbar {
width: 10px;
height: 10px;
}
*::-webkit-scrollbar-thumb {
background: linear-gradient(180deg, rgba(49,208,255,.55), rgba(106,92,255,.55));
border-radius: 999px;
}
*::-webkit-scrollbar-track {
background: rgba(255,255,255,.04);
}