TorturedCats (talk | contribs) No edit summary |
TorturedCats (talk | contribs) (3:27pm 7/9/26 - The MediaWiki:Common.css ran rampant with inefficiencies stacked into patches as patches were adjusted in layouts on a case by case basis, this is a clean sweep that will operate as a blanket coverage based on anticipated page adjustments.) |
||
| Line 1: | Line 1: | ||
/* ============================================================ | /* ============================================================ | ||
Sinfar Wiki Visual System | Sinfar Wiki Visual System v3.0 | ||
Unified Common.css Framework | |||
Scope doctrine: | |||
- New/refit pages use: <div class="sf-page"> | |||
- Legacy pages may still use .sinfar-page / .sf-card / .sf-heading | |||
============================================================ */ | ============================================================ */ | ||
/* ============================================================ | |||
1. DESIGN TOKENS | |||
============================================================ */ | |||
:root { | |||
--sf-bg-page: #0f141b; | |||
--sf-bg-shell: #11161d; | |||
--sf-bg-panel: rgba(18, 14, 12, .78); | |||
--sf-bg-panel-solid: #181214; | |||
--sf-bg-panel-soft: rgba(216, 180, 106, .08); | |||
--sf-bg-hero: linear-gradient(135deg, #21150f, #3a2417); | |||
--sf-border: rgba(216, 180, 106, .28); | |||
--sf-border-strong: rgba(216, 180, 106, .48); | |||
--sf-border-muted: rgba(244, 239, 230, .09); | |||
--sf-text: #f4efe6; | |||
--sf-text-muted: #c9bda9; | |||
--sf-gold: #d8b46a; | |||
--sf-gold-bright: #f0d28a; | |||
--sf-link: #8fc6ff; | |||
--sf-link-hover: #b8d6ff; | |||
--sf-red: #9f4b3e; | |||
--sf-green: #2f5d3a; | |||
--sf-blue: #334e7a; | |||
--sf-purple: #60456f; | |||
--sf-radius-sm: 7px; | |||
--sf-radius-md: 10px; | |||
--sf-gap: 8px; | |||
} | } | ||
/* | /* ============================================================ | ||
2. SOVEREIGN PAGE SHELL | |||
============================================================ */ | |||
.sf- | .sf-page, | ||
.sinfar-page { | |||
background: var(--sf-bg-shell); | |||
color: var(--sf-text); | |||
border: 1px solid var(--sf-border); | |||
border-radius: var(--sf-radius-md); | |||
padding: 16px; | |||
line-height: 1.45; | |||
font-size: 14px; | |||
box-shadow: 0 0 22px rgba(0,0,0,.35); | |||
} | } | ||
.sf- | .sf-page *, | ||
.sinfar-page * { | |||
box-sizing: border-box; | |||
} | } | ||
.sf- | .sf-page a, | ||
.sf- | .sf-page a:visited, | ||
.sf- | .sf-page a.external, | ||
.sf- | .sf-page a.external:visited, | ||
. | .sinfar-page a, | ||
.sinfar-page a:visited, | |||
. | .sinfar-page a.external, | ||
.sinfar-page a.external:visited { | |||
color: var(--sf-link); | |||
} | } | ||
.sf-page a:hover, | |||
.sinfar-page a:hover { | |||
.sf- | color: var(--sf-link-hover); | ||
text-decoration: underline; | |||
} | } | ||
.sf- | .sf-page code, | ||
.sinfar-page code { | |||
background: #120d10; | |||
color: var(--sf-gold-bright); | |||
border: 1px solid var(--sf-border); | |||
border-radius: 4px; | |||
padding: 1px 4px; | |||
} | } | ||
. | /* ============================================================ | ||
3. TYPOGRAPHY | |||
============================================================ */ | |||
.sf- | .sf-page h1, | ||
.sf-page h2, | |||
.sf-page h3, | |||
.sinfar-page h1, | |||
.sinfar-page h2, | |||
.sinfar-page h3 { | |||
color: var(--sf-gold-bright); | |||
} | } | ||
.sf- | .sf-section-title, | ||
.sf-heading { | |||
color: var(--sf-gold-bright); | |||
border-bottom: 1px solid var(--sf-border-strong); | |||
margin: 18px 0 8px; | |||
padding-bottom: 3px; | |||
font-size: 1.45rem; | |||
line-height: 1.2; | |||
} | } | ||
.sf- | .sf-subheading { | ||
color: var(--sf-gold-bright); | |||
margin: 10px 0 6px; | |||
font-size: 1.15rem; | |||
} | } | ||
.sf-muted { | .sf-muted { | ||
color: var(--sf-text-muted); | |||
} | } | ||
.sf-label, | |||
.sf-name { | |||
.sf- | color: var(--sf-gold-bright); | ||
.sf- | font-weight: 700; | ||
} | } | ||
.sf- | .sf-center { | ||
text-align: center; | |||
} | } | ||
/* | /* ============================================================ | ||
4. HEROES | |||
============================================================ */ | |||
. | .sf-hero, | ||
. | .sf-hero-compact { | ||
background: var(--sf-bg-hero); | |||
border: 1px solid var(--sf-border-strong); | |||
border-radius: var(--sf-radius-md); | |||
padding: 14px 18px; | |||
margin: 0 0 12px; | |||
text-align: center; | |||
} | } | ||
. | .sf-hero h1, | ||
.sf-hero-compact h1, | |||
.sf-title { | |||
color: var(--sf-gold-bright); | |||
margin: 0 0 4px; | |||
font-size: 1.85rem; | |||
line-height: 1.15; | |||
} | } | ||
.sf-hero p, | |||
.sf-hero-compact p, | |||
.sf- | .sf-subtitle { | ||
color: var(--sf-text); | |||
margin: 0; | |||
} | } | ||
.sf- | .sf-eyebrow { | ||
color: var(--sf-gold); | |||
text-transform: uppercase; | |||
font-size: .75rem; | |||
letter-spacing: .08em; | |||
font-weight: 800; | |||
} | } | ||
.sf- | .sf-hero-main { | ||
padding: 22px; | |||
} | } | ||
.sf- | .sf-hero-main h1 { | ||
font-size: 2.35rem; | |||
} | } | ||
. | /* ============================================================ | ||
5. GRIDS / STATUS TILES | |||
============================================================ */ | |||
.sf- | .sf-grid-2, | ||
.sf-grid-3, | |||
.sf-grid-4, | |||
.sf-grid-5, | |||
.sf-status-grid, | |||
.sf-start-status { | |||
display: grid; | |||
gap: var(--sf-gap); | |||
margin-bottom: 14px; | |||
} | } | ||
.sf- | .sf-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } | ||
.sf-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } | |||
.sf-grid-4, | |||
} | .sf-status-grid, | ||
.sf-start-status { grid-template-columns: repeat(4, minmax(0, 1fr)); } | |||
.sf-grid-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); } | |||
.sf- | .sf-status-grid > div, | ||
.sf-start-status > div { | |||
background: var(--sf-bg-panel); | |||
border: 1px solid var(--sf-border); | |||
border-radius: var(--sf-radius-sm); | |||
padding: 8px 10px; | |||
} | } | ||
.sf- | .sf-status-grid b, | ||
.sf-start-status b { | |||
color: var(--sf-gold-bright); | |||
} | } | ||
.sf- | .sf-status-grid span, | ||
.sf-start-status span { | |||
color: var(--sf-text); | |||
} | } | ||
. | /* ============================================================ | ||
6. QUICKBARS / INDEX GRIDS | |||
============================================================ */ | |||
.sf- | .sf-quickbar, | ||
.sf-index-grid { | |||
display: grid; | |||
gap: var(--sf-gap); | |||
margin: 0 0 14px; | |||
} | } | ||
.sf- | .sf-quickbar { | ||
grid-template-columns: repeat(2, minmax(0, 1fr)); | |||
} | } | ||
.sf- | .sf-index-grid { | ||
grid-template-columns: repeat(3, minmax(0, 1fr)); | |||
} | } | ||
.sf- | .sf-quickbar > div, | ||
.sf-index-grid > div, | |||
.sf-pathline { | |||
background: var(--sf-bg-panel); | |||
border: 1px solid var(--sf-border); | |||
border-left: 4px solid var(--sf-gold); | |||
border-radius: var(--sf-radius-sm); | |||
padding: 8px 10px; | |||
color: var(--sf-text); | |||
} | } | ||
.sf-quickbar b, | |||
.sf- | .sf-index-grid b { | ||
color: var(--sf-gold-bright); | |||
} | } | ||
/* | /* ============================================================ | ||
. | 7. DECISION PANELS | ||
============================================================ */ | |||
.sf- | .sf-decision-grid { | ||
display: grid; | |||
. | grid-template-columns: 1.25fr 1fr 1fr; | ||
gap: var(--sf-gap); | |||
margin-bottom: 14px; | |||
} | } | ||
.sf- | .sf-decision, | ||
.sf-card, | |||
.sf-panel { | |||
background: var(--sf-bg-panel); | |||
border: 1px solid var(--sf-border); | |||
border-radius: var(--sf-radius-md); | |||
color: var(--sf-text); | |||
padding: 12px; | |||
} | } | ||
.sf- | .sf-decision-primary { | ||
border-color: rgba(240,210,138,.58); | |||
background: linear-gradient(135deg, rgba(60,38,20,.88), rgba(18,14,12,.78)); | |||
} | } | ||
.sf- | .sf-decision-kicker { | ||
color: var(--sf-gold); | |||
text-transform: uppercase; | |||
font-size: .72rem; | |||
letter-spacing: .07em; | |||
font-weight: 800; | |||
} | } | ||
.sf- | .sf-decision h3 { | ||
color: var(--sf-gold-bright); | |||
margin: 4px 0 6px; | |||
} | } | ||
.sf- | .sf-decision p { | ||
margin: 0 0 10px; | |||
color: var(--sf-text); | |||
} | } | ||
/* ============================================================ | /* ============================================================ | ||
8. ACTION LISTS / BUTTONS | |||
============================================================ */ | ============================================================ */ | ||
.sf-action-list, | |||
.sf-link-stack { | |||
display: grid; | |||
grid-template-columns: 1fr; | |||
gap: 8px; | |||
margin-top: 12px; | |||
} | } | ||
. | .sf-action-list a, | ||
.sf-action-list a:visited, | |||
.sf-action-list a.external, | |||
.sf-action-list a.external:visited, | |||
.sf-link-stack a, | |||
.sf-link-stack a:visited, | |||
.sf-link-stack a.external, | |||
.sf-link-stack a.external:visited { | |||
display: block; | |||
width: 100%; | |||
background: rgba(216,180,106,.10); | |||
border: 1px solid rgba(216,180,106,.32); | |||
border-radius: var(--sf-radius-sm); | |||
padding: 8px 11px; | |||
color: var(--sf-link); | |||
font-weight: 800; | |||
text-align: left; | |||
text-decoration: none; | |||
} | } | ||
.sf-action-list a:hover, | |||
.sf-link-stack a:hover { | |||
.sf- | background: rgba(216,180,106,.16); | ||
border-color: rgba(240,210,138,.48); | |||
color: var(--sf-link-hover); | |||
text-decoration: none; | |||
} | } | ||
.sf- | .sf-action-row { | ||
display: flex; | |||
align-items: center; | |||
gap: 8px; | |||
flex-wrap: wrap; | |||
margin-top: 12px; | |||
} | } | ||
.sf- | .sf-action-row a, | ||
.sf-action-row a:visited, | |||
.sf-action-row a.external, | |||
.sf-action-row a.external:visited { | |||
display: inline-block; | |||
background: rgba(216,180,106,.12); | |||
border: 1px solid rgba(216,180,106,.35); | |||
border-radius: var(--sf-radius-sm); | |||
padding: 8px 12px; | |||
color: var(--sf-link); | |||
font-weight: 800; | |||
text-decoration: none; | |||
} | } | ||
.sf- | .sf-action-row a:hover { | ||
background: rgba(216,180,106,.18); | |||
color: var(--sf-link-hover); | |||
text-decoration: none; | |||
} | } | ||
.sf- | /* Remove external-link icon clutter inside framework buttons */ | ||
.sf-page .sf-action-list a.external, | |||
.sf-page .sf-link-stack a.external, | |||
.sf-page .sf-action-row a.external { | |||
background-image: none; | |||
padding-right: 11px; | |||
} | } | ||
/* ============================================================ | |||
9. TABLES | |||
============================================================ */ | |||
.sf- | .sf-table { | ||
color: | width: 100%; | ||
border-collapse: collapse; | |||
table-layout: fixed; | |||
background: var(--sf-bg-panel); | |||
border: 1px solid var(--sf-border); | |||
color: var(--sf-text); | |||
margin-bottom: 12px; | |||
} | } | ||
.sf- | .sf-table th { | ||
color: var(--sf-gold-bright); | |||
background: rgba(216,180,106,.14); | |||
border- | border-bottom: 1px solid var(--sf-border-strong); | ||
padding: | padding: 8px 10px; | ||
text-align: left; | |||
} | } | ||
.sf- | .sf-table td { | ||
color: | color: var(--sf-text); | ||
border-bottom: 1px solid var(--sf-border-muted); | |||
padding: 7px 10px; | |||
vertical-align: top; | |||
} | } | ||
.sf- | .sf-table tr:last-child td { | ||
border-bottom: 0; | |||
} | } | ||
.sf- | .sf-table-scroll { | ||
width: 100%; | |||
overflow-x: auto; | |||
margin-bottom: 12px; | |||
} | } | ||
.sf- | .sf-table-scroll .sf-table { | ||
min-width: 760px; | |||
margin-bottom: 0; | |||
margin: | |||
} | } | ||
.sf- | .sf-value, | ||
.sf- | .sf-good { | ||
text-align: center; | |||
} | } | ||
.sf- | .sf-value { | ||
color: # | color: #f4c96b; | ||
} | } | ||
.sf- | .sf-good { | ||
color: #9fe6bd; | |||
} | } | ||
/* Standard table column helpers */ | |||
.sf-channel-table th:nth-child(1), | .sf-channel-table th:nth-child(1), | ||
.sf-channel-table td:nth-child(1) { | .sf-channel-table td:nth-child(1) { width: 14%; } | ||
} | |||
.sf-channel-table th:nth-child(2), | .sf-channel-table th:nth-child(2), | ||
.sf-channel-table td:nth-child(2) { | .sf-channel-table td:nth-child(2) { width: 31%; } | ||
} | |||
.sf-channel-table th:nth-child(3), | .sf-channel-table th:nth-child(3), | ||
.sf-channel-table td:nth-child(3) { | .sf-channel-table td:nth-child(3) { width: 37%; } | ||
} | |||
.sf-channel-table th:nth-child(4), | .sf-channel-table th:nth-child(4), | ||
.sf-channel-table td:nth-child(4) { | .sf-channel-table td:nth-child(4) { width: 18%; } | ||
} | .sf-setup-table th:nth-child(1), | ||
.sf-setup-table td:nth-child(1) { width: 24%; } | |||
.sf-setup-table th:nth-child(2), | |||
.sf-setup-table td:nth-child(2) { width: 52%; } | |||
.sf-setup-table th:nth-child(3), | |||
.sf-setup-table td:nth-child(3) { width: 24%; } | |||
/* ============================================================ | |||
10. BADGES | |||
============================================================ */ | |||
.sf-badge { | .sf-badge { | ||
| Line 535: | Line 471: | ||
margin: 1px 2px 1px 0; | margin: 1px 2px 1px 0; | ||
font-size: .78rem; | font-size: .78rem; | ||
font-weight: | font-weight: 800; | ||
white-space: nowrap; | white-space: nowrap; | ||
} | } | ||
| Line 547: | Line 483: | ||
.sf-badge-best { background: #6a5423; color: #fff0bd; } | .sf-badge-best { background: #6a5423; color: #fff0bd; } | ||
/* ============================================================ | |||
11. ALERTS / NOTES / RULES | |||
============================================================ */ | |||
.sf-note, | |||
.sf-alert, | |||
.sf-warning, | |||
.sf-rule { | |||
color: var(--sf-text); | |||
border-radius: var(--sf-radius-sm); | |||
padding: 8px 11px; | |||
margin: 8px 0; | |||
} | } | ||
.sf- | .sf-note { | ||
background: var(--sf-bg-panel); | |||
border: 1px solid var(--sf-border); | |||
border-left: 4px solid var(--sf-gold); | |||
} | } | ||
.sf- | .sf-alert, | ||
background: rgba( | .sf-warning { | ||
background: rgba(94,63,18,.35); | |||
border: 1px solid rgba(216,180,106,.24); | border: 1px solid rgba(216,180,106,.24); | ||
border- | border-left: 4px solid #d8a447; | ||
} | } | ||
.sf- | .sf-alert b, | ||
color: | .sf-warning b { | ||
display: block; | |||
color: var(--sf-gold-bright); | |||
margin-bottom: 3px; | |||
} | } | ||
.sf- | .sf-alert-info { | ||
color: # | background: rgba(38,58,92,.34); | ||
border-left-color: #6fa8dc; | |||
} | } | ||
.sf- | .sf-alert-warning { | ||
background: rgba(94,63,18,.35); | |||
border-left-color: #d8a447; | |||
} | } | ||
.sf- | .sf-alert-danger, | ||
background: rgba( | .sf-note--red { | ||
border: | background: rgba(80,30,25,.30); | ||
border-left-color: var(--sf-red); | |||
} | } | ||
.sf- | .sf-rule { | ||
border- | border-left: 4px solid var(--sf-red); | ||
background: | background: rgba(80,30,25,.30); | ||
} | } | ||
/* ============================================================ | |||
12. PROGRESS LINES | |||
============================================================ */ | |||
. | |||
.sf-progress-line { | .sf-progress-line { | ||
display: grid; | display: grid; | ||
grid-template-columns: repeat(5, minmax(0, 1fr)); | grid-template-columns: repeat(5, minmax(0, 1fr)); | ||
gap: | gap: var(--sf-gap); | ||
margin: 0 0 14px; | margin: 0 0 14px; | ||
} | } | ||
.sf-progress-line div { | .sf-progress-line div { | ||
background: | background: var(--sf-bg-panel); | ||
border: 1px solid | border: 1px solid var(--sf-border); | ||
border-radius: | border-radius: var(--sf-radius-sm); | ||
padding: 8px; | padding: 8px; | ||
text-align: center; | text-align: center; | ||
| Line 700: | Line 566: | ||
line-height: 24px; | line-height: 24px; | ||
background: rgba(216,180,106,.24); | background: rgba(216,180,106,.24); | ||
color: | color: var(--sf-gold-bright); | ||
margin-bottom: 4px; | margin-bottom: 4px; | ||
} | } | ||
| Line 706: | Line 572: | ||
.sf-progress-line span { | .sf-progress-line span { | ||
display: block; | display: block; | ||
color: | color: var(--sf-text); | ||
font-size: .88rem; | font-size: .88rem; | ||
} | } | ||
.sf- | |||
border-radius: | /* ============================================================ | ||
padding: | 13. CODE / SCRIPTING DOCS | ||
============================================================ */ | |||
.sf-codeblock, | |||
.sf-codebox, | |||
.sf-page pre, | |||
.sinfar-page pre { | |||
background: #120d10; | |||
color: var(--sf-text); | |||
border: 1px solid var(--sf-border); | |||
border-radius: var(--sf-radius-sm); | |||
padding: 10px 12px; | |||
overflow-x: auto; | |||
line-height: 1.45; | |||
} | } | ||
.sf- | .sf-codeblock code, | ||
.sf-codebox code, | |||
.sf-page pre code, | |||
.sinfar-page pre code { | |||
background: transparent; | |||
border: 0; | |||
padding: 0; | |||
color: var(--sf-text); | |||
} | } | ||
/* ============================================================ | |||
14. IMAGES / SCREENSHOTS | |||
============================================================ */ | |||
.sf- | .sf-img-frame { | ||
background: var(--sf-bg-panel); | |||
border: 1px solid var(--sf-border); | |||
border-radius: var(--sf-radius-sm); | |||
padding: 6px; | |||
margin: 8px 0 12px; | |||
} | } | ||
.sf- | .sf-img-frame img { | ||
max-width: 100%; | |||
height: auto; | |||
display: block; | |||
border-radius: 4px; | |||
} | } | ||
/* ============================================================ | /* ============================================================ | ||
15. CHAT CHANNEL COLOR LOCKS | |||
Match in-game channel color identity. | |||
============================================================ */ | ============================================================ */ | ||
.sf-chan { | |||
font-weight: 900; | |||
.sf- | text-shadow: 0 1px 2px rgba(0,0,0,.8); | ||
} | } | ||
.sf- | .sf-chan-shout { color: #feef50; } | ||
.sf-chan-dm { color: #f67271; } | |||
} | .sf-chan-event { color: #ab23f2; } | ||
.sf-chan-action { color: #b56a23; } | |||
.sf-chan-ooc { color: #b1a2bd; } | |||
.sf-chan-pvp { color: #fe5f2e; } | |||
.sf-chan-sex { color: #f520e1; } | |||
.sf-chan-build { color: #b7f520; } | |||
.sf-chan-ffa { color: #20bff0; } | |||
.sf-chan-talk { color: #fefefe; } | |||
.sf-chan-whisper { color: #b0b0b0; } | |||
.sf-chan-quiet { color: #777777; } | |||
.sf-chan-silent { color: #666666; } | |||
.sf-chan-yell { color: #d92324; } | |||
.sf-chan-party { color: #fefefe; } | |||
/* | /* ============================================================ | ||
16. FOOTERS | |||
============================================================ */ | |||
.sf- | .sf-footerlinks, | ||
.sf-footer { | |||
margin-top: 14px; | |||
padding-top: 10px; | |||
border-top: 1px solid var(--sf-border); | |||
color: var(--sf-gold); | |||
} | } | ||
.sf- | .sf-footer { | ||
text-align: center; | |||
background: #120d10; | |||
padding: 12px 14px; | |||
background: | |||
padding: | |||
} | } | ||
.sf- | |||
background: | /* ============================================================ | ||
border-color: | 17. LEGACY COMPATIBILITY | ||
Keeps older remaster pages readable without preserving chaos. | |||
============================================================ */ | |||
.sf-card--gold, | |||
.sf-table--gold { | |||
background: var(--sf-bg-panel); | |||
border-color: var(--sf-border); | |||
} | } | ||
.sf-card--green, | |||
.sf- | .sf-table--green { | ||
background: rgba(17,26,18,.82); | |||
border-color: rgba(68,107,53,.72); | |||
} | } | ||
.sf-card--blue, | |||
.sf-table--blue { | |||
.sf- | background: rgba(16,24,32,.82); | ||
border-color: rgba(52,87,122,.72); | |||
} | } | ||
.sf- | .sf-card--red, | ||
.sf-table--red { | |||
.sf- | background: rgba(26,16,16,.82); | ||
border-color: rgba(122,52,47,.72); | |||
background: rgba( | |||
border: | |||
} | } | ||
.sf- | .sf-card--purple, | ||
background: rgba( | .sf-table--purple { | ||
color: | background: rgba(25,17,29,.82); | ||
border-color: rgba(91,59,120,.72); | |||
} | } | ||
.sf-heading--gold { color: var(--sf-gold-bright); border-bottom-color: var(--sf-border); } | |||
.sf-heading--green { color: #91d38f; border-bottom-color: #446b35; } | |||
.sf-heading--blue { color: #8fc6ff; border-bottom-color: #34577a; } | |||
.sf-heading--red { color: #ff9c8f; border-bottom-color: #7a342f; } | |||
.sf-heading--purple { color: #c49cff; border-bottom-color: #5b3b78; } | |||
.sf- | .sf-docket { | ||
width: 100%; | width: 100%; | ||
background: var(--sf-bg-panel); | |||
color: var(--sf-text); | |||
border: 1px solid var(--sf-border); | |||
border: | border-radius: var(--sf-radius-sm); | ||
margin | margin: 9px 0 8px; | ||
} | } | ||
.sf- | .sf-docket th { | ||
background: rgba(216,180,106,.14); | background: rgba(216,180,106,.14); | ||
color: var(--sf-gold-bright); | |||
text-align: left; | text-align: left; | ||
padding: 9px 12px; | |||
border-bottom: 1px solid var(--sf-border); | |||
} | |||
.sf-docket td { | |||
background: rgba(18,14,12,.72); | |||
color: var(--sf-text); | |||
padding: 10px 12px; | |||
} | |||
/* ============================================================ | |||
18. LISTS | |||
============================================================ */ | |||
.sf-page ul, | |||
.sf-page ol, | |||
.sinfar-page ul, | |||
.sinfar-page ol { | |||
margin: 6px 0 8px; | |||
padding-left: 22px; | |||
} | } | ||
.sf- | .sf-page li, | ||
.sinfar-page li { | |||
margin: 2px 0; | |||
} | } | ||
@media screen and (max-width: | /* ============================================================ | ||
.sf-start-status, | 19. MOBILE RULES | ||
============================================================ */ | |||
@media screen and (max-width: 900px) { | |||
.sf-grid-4, | |||
.sf-grid-5, | |||
.sf-status-grid, | |||
.sf-start-status { | |||
grid-template-columns: repeat(2, minmax(0, 1fr)); | |||
} | |||
.sf-decision-grid, | .sf-decision-grid, | ||
.sf- | .sf-index-grid { | ||
grid-template-columns: 1fr; | grid-template-columns: 1fr; | ||
} | } | ||
} | |||
.sf- | @media screen and (max-width: 720px) { | ||
.sf-page, | |||
.sinfar-page { | |||
padding: 12px; | |||
} | } | ||
.sf- | .sf-quickbar, | ||
.sf-grid-2, | |||
.sf-grid-3, | |||
.sf-grid-4, | |||
.sf-grid-5, | |||
.sf-status-grid, | |||
.sf-start-status, | |||
.sf-progress-line { | |||
grid-template-columns: 1fr; | |||
} | } | ||
| Line 901: | Line 794: | ||
font-size: .92rem; | font-size: .92rem; | ||
} | } | ||
.sf- | .sf-channel-table th:nth-child(n), | ||
.sf- | .sf-channel-table td:nth-child(n), | ||
.sf- | .sf-setup-table th:nth-child(n), | ||
.sf- | .sf-setup-table td:nth-child(n) { | ||
width: auto; | |||
} | |||
} | } | ||
Revision as of 19:28, 9 July 2026
/* ============================================================
Sinfar Wiki Visual System v3.0
Unified Common.css Framework
Scope doctrine:
- New/refit pages use: <div class="sf-page">
- Legacy pages may still use .sinfar-page / .sf-card / .sf-heading
============================================================ */
/* ============================================================
1. DESIGN TOKENS
============================================================ */
:root {
--sf-bg-page: #0f141b;
--sf-bg-shell: #11161d;
--sf-bg-panel: rgba(18, 14, 12, .78);
--sf-bg-panel-solid: #181214;
--sf-bg-panel-soft: rgba(216, 180, 106, .08);
--sf-bg-hero: linear-gradient(135deg, #21150f, #3a2417);
--sf-border: rgba(216, 180, 106, .28);
--sf-border-strong: rgba(216, 180, 106, .48);
--sf-border-muted: rgba(244, 239, 230, .09);
--sf-text: #f4efe6;
--sf-text-muted: #c9bda9;
--sf-gold: #d8b46a;
--sf-gold-bright: #f0d28a;
--sf-link: #8fc6ff;
--sf-link-hover: #b8d6ff;
--sf-red: #9f4b3e;
--sf-green: #2f5d3a;
--sf-blue: #334e7a;
--sf-purple: #60456f;
--sf-radius-sm: 7px;
--sf-radius-md: 10px;
--sf-gap: 8px;
}
/* ============================================================
2. SOVEREIGN PAGE SHELL
============================================================ */
.sf-page,
.sinfar-page {
background: var(--sf-bg-shell);
color: var(--sf-text);
border: 1px solid var(--sf-border);
border-radius: var(--sf-radius-md);
padding: 16px;
line-height: 1.45;
font-size: 14px;
box-shadow: 0 0 22px rgba(0,0,0,.35);
}
.sf-page *,
.sinfar-page * {
box-sizing: border-box;
}
.sf-page a,
.sf-page a:visited,
.sf-page a.external,
.sf-page a.external:visited,
.sinfar-page a,
.sinfar-page a:visited,
.sinfar-page a.external,
.sinfar-page a.external:visited {
color: var(--sf-link);
}
.sf-page a:hover,
.sinfar-page a:hover {
color: var(--sf-link-hover);
text-decoration: underline;
}
.sf-page code,
.sinfar-page code {
background: #120d10;
color: var(--sf-gold-bright);
border: 1px solid var(--sf-border);
border-radius: 4px;
padding: 1px 4px;
}
/* ============================================================
3. TYPOGRAPHY
============================================================ */
.sf-page h1,
.sf-page h2,
.sf-page h3,
.sinfar-page h1,
.sinfar-page h2,
.sinfar-page h3 {
color: var(--sf-gold-bright);
}
.sf-section-title,
.sf-heading {
color: var(--sf-gold-bright);
border-bottom: 1px solid var(--sf-border-strong);
margin: 18px 0 8px;
padding-bottom: 3px;
font-size: 1.45rem;
line-height: 1.2;
}
.sf-subheading {
color: var(--sf-gold-bright);
margin: 10px 0 6px;
font-size: 1.15rem;
}
.sf-muted {
color: var(--sf-text-muted);
}
.sf-label,
.sf-name {
color: var(--sf-gold-bright);
font-weight: 700;
}
.sf-center {
text-align: center;
}
/* ============================================================
4. HEROES
============================================================ */
.sf-hero,
.sf-hero-compact {
background: var(--sf-bg-hero);
border: 1px solid var(--sf-border-strong);
border-radius: var(--sf-radius-md);
padding: 14px 18px;
margin: 0 0 12px;
text-align: center;
}
.sf-hero h1,
.sf-hero-compact h1,
.sf-title {
color: var(--sf-gold-bright);
margin: 0 0 4px;
font-size: 1.85rem;
line-height: 1.15;
}
.sf-hero p,
.sf-hero-compact p,
.sf-subtitle {
color: var(--sf-text);
margin: 0;
}
.sf-eyebrow {
color: var(--sf-gold);
text-transform: uppercase;
font-size: .75rem;
letter-spacing: .08em;
font-weight: 800;
}
.sf-hero-main {
padding: 22px;
}
.sf-hero-main h1 {
font-size: 2.35rem;
}
/* ============================================================
5. GRIDS / STATUS TILES
============================================================ */
.sf-grid-2,
.sf-grid-3,
.sf-grid-4,
.sf-grid-5,
.sf-status-grid,
.sf-start-status {
display: grid;
gap: var(--sf-gap);
margin-bottom: 14px;
}
.sf-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sf-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sf-grid-4,
.sf-status-grid,
.sf-start-status { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.sf-grid-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.sf-status-grid > div,
.sf-start-status > div {
background: var(--sf-bg-panel);
border: 1px solid var(--sf-border);
border-radius: var(--sf-radius-sm);
padding: 8px 10px;
}
.sf-status-grid b,
.sf-start-status b {
color: var(--sf-gold-bright);
}
.sf-status-grid span,
.sf-start-status span {
color: var(--sf-text);
}
/* ============================================================
6. QUICKBARS / INDEX GRIDS
============================================================ */
.sf-quickbar,
.sf-index-grid {
display: grid;
gap: var(--sf-gap);
margin: 0 0 14px;
}
.sf-quickbar {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.sf-index-grid {
grid-template-columns: repeat(3, minmax(0, 1fr));
}
.sf-quickbar > div,
.sf-index-grid > div,
.sf-pathline {
background: var(--sf-bg-panel);
border: 1px solid var(--sf-border);
border-left: 4px solid var(--sf-gold);
border-radius: var(--sf-radius-sm);
padding: 8px 10px;
color: var(--sf-text);
}
.sf-quickbar b,
.sf-index-grid b {
color: var(--sf-gold-bright);
}
/* ============================================================
7. DECISION PANELS
============================================================ */
.sf-decision-grid {
display: grid;
grid-template-columns: 1.25fr 1fr 1fr;
gap: var(--sf-gap);
margin-bottom: 14px;
}
.sf-decision,
.sf-card,
.sf-panel {
background: var(--sf-bg-panel);
border: 1px solid var(--sf-border);
border-radius: var(--sf-radius-md);
color: var(--sf-text);
padding: 12px;
}
.sf-decision-primary {
border-color: rgba(240,210,138,.58);
background: linear-gradient(135deg, rgba(60,38,20,.88), rgba(18,14,12,.78));
}
.sf-decision-kicker {
color: var(--sf-gold);
text-transform: uppercase;
font-size: .72rem;
letter-spacing: .07em;
font-weight: 800;
}
.sf-decision h3 {
color: var(--sf-gold-bright);
margin: 4px 0 6px;
}
.sf-decision p {
margin: 0 0 10px;
color: var(--sf-text);
}
/* ============================================================
8. ACTION LISTS / BUTTONS
============================================================ */
.sf-action-list,
.sf-link-stack {
display: grid;
grid-template-columns: 1fr;
gap: 8px;
margin-top: 12px;
}
.sf-action-list a,
.sf-action-list a:visited,
.sf-action-list a.external,
.sf-action-list a.external:visited,
.sf-link-stack a,
.sf-link-stack a:visited,
.sf-link-stack a.external,
.sf-link-stack a.external:visited {
display: block;
width: 100%;
background: rgba(216,180,106,.10);
border: 1px solid rgba(216,180,106,.32);
border-radius: var(--sf-radius-sm);
padding: 8px 11px;
color: var(--sf-link);
font-weight: 800;
text-align: left;
text-decoration: none;
}
.sf-action-list a:hover,
.sf-link-stack a:hover {
background: rgba(216,180,106,.16);
border-color: rgba(240,210,138,.48);
color: var(--sf-link-hover);
text-decoration: none;
}
.sf-action-row {
display: flex;
align-items: center;
gap: 8px;
flex-wrap: wrap;
margin-top: 12px;
}
.sf-action-row a,
.sf-action-row a:visited,
.sf-action-row a.external,
.sf-action-row a.external:visited {
display: inline-block;
background: rgba(216,180,106,.12);
border: 1px solid rgba(216,180,106,.35);
border-radius: var(--sf-radius-sm);
padding: 8px 12px;
color: var(--sf-link);
font-weight: 800;
text-decoration: none;
}
.sf-action-row a:hover {
background: rgba(216,180,106,.18);
color: var(--sf-link-hover);
text-decoration: none;
}
/* Remove external-link icon clutter inside framework buttons */
.sf-page .sf-action-list a.external,
.sf-page .sf-link-stack a.external,
.sf-page .sf-action-row a.external {
background-image: none;
padding-right: 11px;
}
/* ============================================================
9. TABLES
============================================================ */
.sf-table {
width: 100%;
border-collapse: collapse;
table-layout: fixed;
background: var(--sf-bg-panel);
border: 1px solid var(--sf-border);
color: var(--sf-text);
margin-bottom: 12px;
}
.sf-table th {
color: var(--sf-gold-bright);
background: rgba(216,180,106,.14);
border-bottom: 1px solid var(--sf-border-strong);
padding: 8px 10px;
text-align: left;
}
.sf-table td {
color: var(--sf-text);
border-bottom: 1px solid var(--sf-border-muted);
padding: 7px 10px;
vertical-align: top;
}
.sf-table tr:last-child td {
border-bottom: 0;
}
.sf-table-scroll {
width: 100%;
overflow-x: auto;
margin-bottom: 12px;
}
.sf-table-scroll .sf-table {
min-width: 760px;
margin-bottom: 0;
}
.sf-value,
.sf-good {
text-align: center;
}
.sf-value {
color: #f4c96b;
}
.sf-good {
color: #9fe6bd;
}
/* Standard table column helpers */
.sf-channel-table th:nth-child(1),
.sf-channel-table td:nth-child(1) { width: 14%; }
.sf-channel-table th:nth-child(2),
.sf-channel-table td:nth-child(2) { width: 31%; }
.sf-channel-table th:nth-child(3),
.sf-channel-table td:nth-child(3) { width: 37%; }
.sf-channel-table th:nth-child(4),
.sf-channel-table td:nth-child(4) { width: 18%; }
.sf-setup-table th:nth-child(1),
.sf-setup-table td:nth-child(1) { width: 24%; }
.sf-setup-table th:nth-child(2),
.sf-setup-table td:nth-child(2) { width: 52%; }
.sf-setup-table th:nth-child(3),
.sf-setup-table td:nth-child(3) { width: 24%; }
/* ============================================================
10. BADGES
============================================================ */
.sf-badge {
display: inline-block;
border-radius: 999px;
padding: 2px 7px;
margin: 1px 2px 1px 0;
font-size: .78rem;
font-weight: 800;
white-space: nowrap;
}
.sf-badge-ic { background: #2f5d3a; color: #eaffef; }
.sf-badge-ooc { background: #334e7a; color: #eef4ff; }
.sf-badge-dm { background: #6f3b3b; color: #fff0f0; }
.sf-badge-range { background: #5f4c27; color: #fff2c2; }
.sf-badge-area { background: #60456f; color: #f7eaff; }
.sf-badge-support { background: #4e5563; color: #f0f3f8; }
.sf-badge-best { background: #6a5423; color: #fff0bd; }
/* ============================================================
11. ALERTS / NOTES / RULES
============================================================ */
.sf-note,
.sf-alert,
.sf-warning,
.sf-rule {
color: var(--sf-text);
border-radius: var(--sf-radius-sm);
padding: 8px 11px;
margin: 8px 0;
}
.sf-note {
background: var(--sf-bg-panel);
border: 1px solid var(--sf-border);
border-left: 4px solid var(--sf-gold);
}
.sf-alert,
.sf-warning {
background: rgba(94,63,18,.35);
border: 1px solid rgba(216,180,106,.24);
border-left: 4px solid #d8a447;
}
.sf-alert b,
.sf-warning b {
display: block;
color: var(--sf-gold-bright);
margin-bottom: 3px;
}
.sf-alert-info {
background: rgba(38,58,92,.34);
border-left-color: #6fa8dc;
}
.sf-alert-warning {
background: rgba(94,63,18,.35);
border-left-color: #d8a447;
}
.sf-alert-danger,
.sf-note--red {
background: rgba(80,30,25,.30);
border-left-color: var(--sf-red);
}
.sf-rule {
border-left: 4px solid var(--sf-red);
background: rgba(80,30,25,.30);
}
/* ============================================================
12. PROGRESS LINES
============================================================ */
.sf-progress-line {
display: grid;
grid-template-columns: repeat(5, minmax(0, 1fr));
gap: var(--sf-gap);
margin: 0 0 14px;
}
.sf-progress-line div {
background: var(--sf-bg-panel);
border: 1px solid var(--sf-border);
border-radius: var(--sf-radius-sm);
padding: 8px;
text-align: center;
}
.sf-progress-line b {
display: inline-block;
width: 24px;
height: 24px;
border-radius: 999px;
line-height: 24px;
background: rgba(216,180,106,.24);
color: var(--sf-gold-bright);
margin-bottom: 4px;
}
.sf-progress-line span {
display: block;
color: var(--sf-text);
font-size: .88rem;
}
/* ============================================================
13. CODE / SCRIPTING DOCS
============================================================ */
.sf-codeblock,
.sf-codebox,
.sf-page pre,
.sinfar-page pre {
background: #120d10;
color: var(--sf-text);
border: 1px solid var(--sf-border);
border-radius: var(--sf-radius-sm);
padding: 10px 12px;
overflow-x: auto;
line-height: 1.45;
}
.sf-codeblock code,
.sf-codebox code,
.sf-page pre code,
.sinfar-page pre code {
background: transparent;
border: 0;
padding: 0;
color: var(--sf-text);
}
/* ============================================================
14. IMAGES / SCREENSHOTS
============================================================ */
.sf-img-frame {
background: var(--sf-bg-panel);
border: 1px solid var(--sf-border);
border-radius: var(--sf-radius-sm);
padding: 6px;
margin: 8px 0 12px;
}
.sf-img-frame img {
max-width: 100%;
height: auto;
display: block;
border-radius: 4px;
}
/* ============================================================
15. CHAT CHANNEL COLOR LOCKS
Match in-game channel color identity.
============================================================ */
.sf-chan {
font-weight: 900;
text-shadow: 0 1px 2px rgba(0,0,0,.8);
}
.sf-chan-shout { color: #feef50; }
.sf-chan-dm { color: #f67271; }
.sf-chan-event { color: #ab23f2; }
.sf-chan-action { color: #b56a23; }
.sf-chan-ooc { color: #b1a2bd; }
.sf-chan-pvp { color: #fe5f2e; }
.sf-chan-sex { color: #f520e1; }
.sf-chan-build { color: #b7f520; }
.sf-chan-ffa { color: #20bff0; }
.sf-chan-talk { color: #fefefe; }
.sf-chan-whisper { color: #b0b0b0; }
.sf-chan-quiet { color: #777777; }
.sf-chan-silent { color: #666666; }
.sf-chan-yell { color: #d92324; }
.sf-chan-party { color: #fefefe; }
/* ============================================================
16. FOOTERS
============================================================ */
.sf-footerlinks,
.sf-footer {
margin-top: 14px;
padding-top: 10px;
border-top: 1px solid var(--sf-border);
color: var(--sf-gold);
}
.sf-footer {
text-align: center;
background: #120d10;
padding: 12px 14px;
}
/* ============================================================
17. LEGACY COMPATIBILITY
Keeps older remaster pages readable without preserving chaos.
============================================================ */
.sf-card--gold,
.sf-table--gold {
background: var(--sf-bg-panel);
border-color: var(--sf-border);
}
.sf-card--green,
.sf-table--green {
background: rgba(17,26,18,.82);
border-color: rgba(68,107,53,.72);
}
.sf-card--blue,
.sf-table--blue {
background: rgba(16,24,32,.82);
border-color: rgba(52,87,122,.72);
}
.sf-card--red,
.sf-table--red {
background: rgba(26,16,16,.82);
border-color: rgba(122,52,47,.72);
}
.sf-card--purple,
.sf-table--purple {
background: rgba(25,17,29,.82);
border-color: rgba(91,59,120,.72);
}
.sf-heading--gold { color: var(--sf-gold-bright); border-bottom-color: var(--sf-border); }
.sf-heading--green { color: #91d38f; border-bottom-color: #446b35; }
.sf-heading--blue { color: #8fc6ff; border-bottom-color: #34577a; }
.sf-heading--red { color: #ff9c8f; border-bottom-color: #7a342f; }
.sf-heading--purple { color: #c49cff; border-bottom-color: #5b3b78; }
.sf-docket {
width: 100%;
background: var(--sf-bg-panel);
color: var(--sf-text);
border: 1px solid var(--sf-border);
border-radius: var(--sf-radius-sm);
margin: 9px 0 8px;
}
.sf-docket th {
background: rgba(216,180,106,.14);
color: var(--sf-gold-bright);
text-align: left;
padding: 9px 12px;
border-bottom: 1px solid var(--sf-border);
}
.sf-docket td {
background: rgba(18,14,12,.72);
color: var(--sf-text);
padding: 10px 12px;
}
/* ============================================================
18. LISTS
============================================================ */
.sf-page ul,
.sf-page ol,
.sinfar-page ul,
.sinfar-page ol {
margin: 6px 0 8px;
padding-left: 22px;
}
.sf-page li,
.sinfar-page li {
margin: 2px 0;
}
/* ============================================================
19. MOBILE RULES
============================================================ */
@media screen and (max-width: 900px) {
.sf-grid-4,
.sf-grid-5,
.sf-status-grid,
.sf-start-status {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.sf-decision-grid,
.sf-index-grid {
grid-template-columns: 1fr;
}
}
@media screen and (max-width: 720px) {
.sf-page,
.sinfar-page {
padding: 12px;
}
.sf-quickbar,
.sf-grid-2,
.sf-grid-3,
.sf-grid-4,
.sf-grid-5,
.sf-status-grid,
.sf-start-status,
.sf-progress-line {
grid-template-columns: 1fr;
}
.sf-table {
table-layout: auto;
font-size: .92rem;
}
.sf-channel-table th:nth-child(n),
.sf-channel-table td:nth-child(n),
.sf-setup-table th:nth-child(n),
.sf-setup-table td:nth-child(n) {
width: auto;
}
}