|
Tags: Mobile edit Mobile web edit |
| (29 intermediate revisions by the same user not shown) |
| Line 1: |
Line 1: |
| /* ============================================================ | | /* SpiritVale Wiki — Common.css */ |
| SpiritVale Wiki – Site CSS | | /* Role: shared tokens, primitives, utilities, and interactive anatomy */ |
| ============================================================ */
| | /* Scope: sitewide SpiritVale UI foundations only */ |
| | /* -------------------------------------------------------------------------- */ |
| | /* Canonical ownership map */ |
| | /* -------------------------------------------------------------------------- */ |
| | /* Common.css is the sitewide foundation layer. It owns: */ |
| | /* - canonical breakpoint definitions and responsive policy comments */ |
| | /* - shared design tokens and utility primitives */ |
| | /* - reusable interactive anatomy used by multiple modules/templates */ |
| | /* - global parser-output treatments that should behave the same everywhere */ |
| | /* */ |
| | /* Common.css does NOT own: */ |
| | /* - Citizen skin theme/chrome styling (Citizen.css) */ |
| | /* - module-specific card/layout rules (GameInfo, PatchHighlights, etc.) */ |
| | /* - template-specific presentation rules (Definitions, ClassInfobox, etc.) */ |
| | /* */ |
| | /* Responsive cleanup note: this file is the source of truth for breakpoint */ |
| | /* meaning. Its own responsive selectors should model the canonical ladder */ |
| | /* and shared UI should follow that ladder everywhere else. */ |
| | /* -------------------------------------------------------------------------- */ |
| | /* Responsive policy (canonical) */ |
| | /* -------------------------------------------------------------------------- */ |
| | /* SpiritVale uses a mobile-first six-viewpoint ladder aligned to Tailwind's */ |
| | /* defaults. */ |
| | /* */ |
| | /* Viewpoints */ |
| | /* - default: 0px-639px (phones / smallest layout) */ |
| | /* - sm: 640px-767px (large phones / small tablets) */ |
| | /* - md: 768px-1023px(tablets / narrow landscape) */ |
| | /* - lg: 1024px-1279px(laptop / desktop start) */ |
| | /* - xl: 1280px-1535px(wide desktop) */ |
| | /* - 2xl: 1536px+ (very wide desktop) */ |
| | /* */ |
| | /* Implementation rule: write defaults for the smallest layout whenever */ |
| | /* practical, then layer upward with canonical breakpoints. */ |
| | /* -------------------------------------------------------------------------- */ |
|
| |
|
| /* ------------------------------------------------------------
| |
| Global additions (hardened)
| |
| --------------------------------------------------------- */
| |
|
| |
|
| .mw-parser-output .playtest-info-box {
| | /* -------------------------------------------------------------------------- */ |
| max-width: 100%;
| | /* 1) SpiritVale tokens */ |
| margin: 0 0 10px 0;
| | /* -------------------------------------------------------------------------- */ |
| border: 1px solid #ccc;
| |
| border-radius: 6px;
| |
| box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
| |
| background: #f0f2f8;
| |
| padding: 10px;
| |
| text-align: center;
| |
| color: #333;
| |
| overflow-wrap: anywhere;
| |
| word-break: break-word;
| |
| }
| |
|
| |
|
| .mw-parser-output .header-container-outer { | | :root{ |
| max-width: 100%;
| | /* Surface ladder. |
| margin: 1px;
| | bg0 = site background only |
| border: 2px solid #372b54;
| | bg1 = main component surface |
| border-radius: 10px;
| | bg2 = nested/grouped panel surface |
| box-shadow: 0 2px 6px rgba(0, 0, 0, 0.25);
| | bg3 = deep inset / pill surface |
| background: #f0f2f8;
| | bg4 = highest emphasis / selected / strong highlight surface |
| }
| | */ |
| | | --sv-ui-bg0:#0f172a; |
| .mw-parser-output .header-container-middle {
| | --sv-ui-bg1:#1f2937; |
| background: #f0f2f8;
| | --sv-ui-bg2:#273449; |
| color: white;
| | --sv-ui-bg3:#2e3f59; |
| text-align: center;
| | --sv-ui-bg4:#4e6d97; |
| padding: 1px;
| |
| border-radius: 8px;
| |
| overflow-wrap: anywhere;
| |
| word-break: break-word;
| |
| }
| |
|
| |
|
| .mw-parser-output .header-container-inner { | | /* Border / frame ladder. */ |
| background: linear-gradient(180deg, #5a4e7c, #372b54);
| | --sv-ui-line1:#3b4b63; |
| color: white;
| | --sv-ui-line2:#4b6388; |
| text-align: center;
| | --sv-ui-line3:#7d93b5; |
| padding: 1px;
| |
| border-radius: 8px;
| |
| overflow-wrap: anywhere;
| |
| word-break: break-word;
| |
| font-size: 300%;
| |
| }
| |
|
| |
|
| .mw-parser-output table.custom-table { | | /* Text ladder. */ |
| float: none;
| | --sv-ui-text1:#f5f9ff; |
| border: 2px solid #372b54;
| | --sv-ui-text2:#d7e2f4; |
| border-radius: 10px;
| | --sv-ui-text3:#b6c6e0; |
| padding: 2px;
| | --sv-ui-text4:#7f9fcc; |
| box-shadow: 0 2px 6px rgba(0, 0, 0, 0.25);
| |
| margin: 1em auto;
| |
| text-align: center;
| |
| border-collapse: separate;
| |
| border-spacing: 0;
| |
| overflow: hidden;
| |
| -webkit-user-select: text;
| |
| user-select: text;
| |
| }
| |
|
| |
|
| .mw-parser-output table.custom-table > tbody > tr:nth-child(1) > th {
| | /* Accent ladder. */ |
| background: linear-gradient(180deg, #7a6fb0, #5a4e7c);
| | --sv-ui-accent:#6aa6ff; |
| color: white;
| | --sv-ui-accent2:#8cbcff; |
| text-align: center;
| | --sv-ui-accent3:#e6f0ff; |
| padding: 6px;
| |
| font-size: 120%;
| |
| border-top-left-radius: 8px;
| |
| border-top-right-radius: 8px;
| |
| overflow-wrap: anywhere;
| |
| word-break: break-word;
| |
| }
| |
|
| |
|
| .mw-parser-output table.custom-table > tbody > tr:nth-child(2) > th {
| | /* Popover tokens. */ |
| text-align: center;
| | --sv-ui-pop-bg:var(--sv-ui-bg2); |
| padding: 4px;
| | --sv-ui-pop-line:var(--sv-ui-line2); |
| border-bottom: 1px solid #555;
| | --sv-ui-pop-shadow:0 10px 30px rgba(0,0,0,0.35); |
| }
| |
|
| |
|
| .mw-parser-output table.custom-table > tbody > tr > td {
| | /* Radius tokens. */ |
| text-align: center;
| | --sv-ui-rad-sm:10px; |
| padding: 4px;
| | --sv-ui-rad-md:14px; |
| border-bottom: 1px solid #555;
| | --sv-ui-rad-lg:18px; |
| }
| | --sv-ui-rad-pill:999px; |
|
| |
|
| .mw-parser-output table.custom-table > tbody > tr.middle-header > th {
| | /* Shared shadow tokens. */ |
| background: linear-gradient(180deg, #7a6fb0, #5a4e7c);
| | --sv-ui-shadow1:0 10px 28px rgba(0,0,0,0.40); |
| color: white;
| |
| text-align: center;
| |
| padding: 6px;
| |
| font-size: 110%;
| |
| }
| |
|
| |
|
| .citizen-search-trigger { | | /* Shared pill tokens. */ |
| transition: transform 0.15s ease-in-out;
| | --sv-ui-pill-bg:var(--sv-ui-bg3); |
| | --sv-ui-pill-line:var(--sv-ui-line2); |
| | --sv-ui-pill-shadow:inset 0 1px 0 rgba(255,255,255,0.06); |
| | --sv-ui-pill-text:var(--sv-ui-text1); |
| } | | } |
|
| |
|
| .citizen-search-trigger:hover {
| | /* Fallback light skin mapping. */ |
| transform: translateY(-2px);
| | .mw-theme-light{ |
| }
| | --sv-ui-bg0:#1f2937; |
| | --sv-ui-bg1:#273449; |
| | --sv-ui-bg2:#2e3f59; |
| | --sv-ui-bg3:#364a69; |
| | --sv-ui-bg4:#6888b4; |
|
| |
|
| /* ------------------------------------------------------------
| | --sv-ui-line1:#4b6388; |
| Hero Infobox System (Skills + Passives)
| | --sv-ui-line2:#5f7fb4; |
| --------------------------------------------------------- */
| | --sv-ui-line3:#8ea7ca; |
|
| |
|
| :root {
| | --sv-ui-text1:#f5f9ff; |
| --sv-skill-width: 660px;
| | --sv-ui-text2:#d7e2f4; |
| --sv-passive-width: 540px;
| | --sv-ui-text3:#b6c6e0; |
| --sv-card-border: rgba(75, 81, 96, 0.55);
| | --sv-ui-text4:#8ba8d1; |
| --sv-row-border: rgba(148, 163, 184, 0.35);
| |
| --sv-base: #0F172B;
| |
| --sv-surface: #1b2336;
| |
| --sv-hero-a: var(--sv-base);
| |
| --sv-hero-b: var(--sv-base);
| |
| --sv-tile-a: var(--sv-surface);
| |
| --sv-tile-b: var(--sv-surface);
| |
| --sv-gridline: rgba(255, 255, 255, 0.14);
| |
| --sv-pill: #4B5160;
| |
| --sv-pill-a: var(--sv-pill);
| |
| --sv-pill-b: var(--sv-pill);
| |
| --sv-text-soft: rgba(255, 255, 255, 0.92);
| |
| --sv-text-outline: 0 1px 0 rgba(0,0,0,0.55), 0 -1px 0 rgba(0,0,0,0.55), 1px 0 0 rgba(0,0,0,0.55), -1px 0 0 rgba(0,0,0,0.55);
| |
| }
| |
|
| |
|
| /* Base infobox */
| | --sv-ui-accent:#8cbcff; |
| table.spiritvale-skill-infobox,
| | --sv-ui-accent2:#b0d0ff; |
| table.spiritvale-passive-infobox {
| | --sv-ui-accent3:#f2f7ff; |
| border-collapse: separate;
| |
| border-spacing: 0;
| |
| width: 100%;
| |
| margin: 1.25em auto;
| |
| border-radius: 12px;
| |
| overflow: hidden;
| |
| border: 1px solid var(--sv-card-border);
| |
| box-shadow: 0 4px 12px rgba(0, 0, 0, 0.45);
| |
| font-size: 0.95em;
| |
| background: var(--sv-base);
| |
| } | | } |
|
| |
|
| table.spiritvale-skill-infobox > tbody > tr,
| | /* -------------------------------------------------------------------------- */ |
| table.spiritvale-passive-infobox > tbody > tr {
| | /* 2) Sitewide link treatment */ |
| border-bottom: 1px solid var(--sv-row-border);
| | /* -------------------------------------------------------------------------- */ |
| }
| |
|
| |
|
| table.spiritvale-skill-infobox > tbody > tr:last-child,
| | .mw-parser-output a{ |
| table.spiritvale-passive-infobox > tbody > tr:last-child {
| | color:var(--color-link, var(--sv-ui-accent)); |
| border-bottom: none;
| | text-decoration:underline; |
| }
| | text-decoration-thickness:2px; |
| | | text-underline-offset:2px; |
| table.spiritvale-skill-infobox > tbody > tr:not(.spiritvale-infobox-main) > th:not(.spiritvale-infobox-section-header),
| | text-decoration-skip-ink:auto; |
| table.spiritvale-passive-infobox > tbody > tr:not(.spiritvale-infobox-main) > th:not(.spiritvale-infobox-section-header) {
| | transition: |
| width: 26%;
| | color 120ms ease, |
| padding: 0.45em 0.85em;
| | text-decoration-thickness 120ms ease, |
| text-align: left;
| | text-underline-offset 120ms ease; |
| font-weight: 600;
| |
| white-space: nowrap;
| |
| }
| |
| | |
| table.spiritvale-skill-infobox > tbody > tr > td,
| |
| table.spiritvale-passive-infobox > tbody > tr > td {
| |
| padding: 0.45em 0.85em;
| |
| text-align: left;
| |
| }
| |
| | |
| table.spiritvale-skill-infobox > tbody > tr:nth-child(odd) > td,
| |
| table.spiritvale-skill-infobox > tbody > tr:nth-child(odd) > th:not(.spiritvale-infobox-section-header),
| |
| table.spiritvale-passive-infobox > tbody > tr:nth-child(odd) > td,
| |
| table.spiritvale-passive-infobox > tbody > tr:nth-child(odd) > th:not(.spiritvale-infobox-section-header) {
| |
| background-color: rgba(148, 163, 184, 0.05);
| |
| }
| |
| | |
| /* Hero band */
| |
| table.spiritvale-skill-infobox > tbody > tr.spiritvale-infobox-main > th,
| |
| table.spiritvale-skill-infobox > tbody > tr.spiritvale-infobox-main > td,
| |
| table.spiritvale-passive-infobox > tbody > tr.spiritvale-infobox-main > th,
| |
| table.spiritvale-passive-infobox > tbody > tr.spiritvale-infobox-main > td,
| |
| table.spiritvale-skill-infobox > tbody > tr.sv-hero-title-row > th,
| |
| table.spiritvale-skill-infobox > tbody > tr.sv-hero-desc-row > td,
| |
| table.spiritvale-passive-infobox > tbody > tr.sv-hero-title-row > th,
| |
| table.spiritvale-passive-infobox > tbody > tr.sv-hero-desc-row > td {
| |
| background: var(--sv-base);
| |
| color: #fff;
| |
| padding: 0.9em 1.1em;
| |
| text-align: center;
| |
| vertical-align: middle;
| |
| }
| |
| | |
| table.spiritvale-skill-infobox > tbody > tr.sv-hero-title-row {
| |
| border-bottom: none !important;
| |
| }
| |
| | |
| table.spiritvale-skill-infobox > tbody > tr.sv-hero-title-row > th {
| |
| padding-bottom: 0.55em;
| |
| }
| |
| | |
| table.spiritvale-skill-infobox > tbody > tr.sv-hero-desc-row > td {
| |
| padding: 0.55em 1.1em;
| |
| }
| |
| | |
| table.spiritvale-passive-infobox > tbody > tr.sv-hero-title-row {
| |
| border-bottom: none !important;
| |
| }
| |
| | |
| table.spiritvale-passive-infobox > tbody > tr.sv-hero-title-row > th {
| |
| padding-bottom: 0.55em;
| |
| }
| |
| | |
| table.spiritvale-passive-infobox > tbody > tr.sv-hero-desc-row > td {
| |
| padding: 0.55em 1.1em;
| |
| }
| |
| | |
| .spiritvale-infobox-title {
| |
| font-size: 1.25em;
| |
| font-weight: 600;
| |
| } | | } |
|
| |
|
| .spiritvale-infobox-description { | | .mw-parser-output a:visited{ |
| font-size: 1.05em;
| | color:var(--color-visited, var(--sv-ui-accent2)); |
| font-style: italic;
| |
| text-align: center;
| |
| max-width: 42em;
| |
| margin: 0 auto;
| |
| opacity: 0.95;
| |
| } | | } |
|
| |
|
| /* Skills sizing + list layout */
| | .mw-parser-output a:hover{ |
| table.spiritvale-skill-infobox {
| | text-decoration-thickness:3px; |
| max-width: var(--sv-skill-width);
| | text-underline-offset:3px; |
| table-layout: fixed;
| |
| } | | } |
|
| |
|
| table.spiritvale-skill-infobox.sv-skill-card {
| | .mw-parser-output a:focus-visible{ |
| width: 100%;
| | outline:2px solid var(--sv-ui-accent3); |
| | outline-offset:2px; |
| | border-radius:6px; |
| | box-shadow:0 0 0 3px rgba(230,240,255,0.12); |
| } | | } |
|
| |
|
| table.spiritvale-skill-infobox.sv-skill-inlist {
| | /* -------------------------------------------------------------------------- */ |
| margin: 0.35em auto 1.15em;
| | /* 3) Shared primitives */ |
| }
| | /* -------------------------------------------------------------------------- */ |
| | |
| @media (min-width: 1024px) {
| |
| :root {
| |
| --sv-skill-width: 75%;
| |
| }
| |
| | |
| .mw-parser-output table.spiritvale-skill-infobox.sv-skill-card,
| |
| .mw-parser-output table.spiritvale-skill-infobox.sv-skill-inlist {
| |
| width: var(--sv-skill-width);
| |
| max-width: var(--sv-skill-width);
| |
| }
| |
|
| |
|
| table.spiritvale-skill-infobox.sv-skill-inlist {
| | .sv-card, |
| }
| | .mw-parser-output .sv-card{ |
| | background:var(--sv-ui-bg1); |
| | border:1px solid var(--sv-ui-line1); |
| | border-radius:var(--sv-ui-rad-md); |
| | box-shadow:var(--sv-ui-shadow1); |
| | color:var(--color-base, var(--sv-ui-text2)); |
| } | | } |
|
| |
|
| /* Standardized slot grid */
| | .sv-card :where(h1,h2,h3,h4,h5,h6,th,summary,.mw-headline), |
| :is(table.spiritvale-skill-infobox, table.spiritvale-passive-infobox) tr.sv-slot-row > td.sv-slot-cell { | | .mw-parser-output .sv-card :where(h1,h2,h3,h4,h5,h6,th,summary,.mw-headline){ |
| padding: 0 !important;
| | color:var(--color-emphasized, var(--sv-ui-text1)); |
| background: var(--sv-base) !important;
| |
| color: #fff;
| |
| } | | } |
|
| |
|
| :is(table.spiritvale-skill-infobox, table.spiritvale-passive-infobox) .sv-slot-grid {
| | .sv-tile, |
| display: grid;
| | .mw-parser-output .sv-tile{ |
| grid-template-columns: 1fr 1fr;
| | background:var(--sv-ui-bg2); |
| grid-auto-flow: row dense;
| | border:1px solid var(--sv-ui-line2); |
| gap: 0.55em;
| | border-radius:var(--sv-ui-rad-sm); |
| width: 100%;
| | color:var(--color-emphasized, var(--sv-ui-text1)); |
| box-sizing: border-box;
| |
| background: var(--sv-base);
| |
| padding: 0.80em;
| |
| } | | } |
|
| |
|
| :is(table.spiritvale-skill-infobox, table.spiritvale-passive-infobox) .sv-slot {
| | .sv-pill, |
| min-width: 0;
| | .mw-parser-output .sv-pill{ |
| display: flex;
| | display:inline-flex; |
| box-sizing: border-box;
| | align-items:center; |
| background: var(--sv-surface) !important;
| | justify-content:center; |
| color: #fff !important;
| | padding:0.18em 0.40em; |
| border: 1px solid var(--sv-gridline);
| | border-radius:var(--sv-ui-rad-sm); |
| border-radius: 8px;
| | background:var(--sv-ui-pill-bg); |
| | border:1px solid var(--sv-ui-pill-line); |
| | box-shadow:var(--sv-ui-pill-shadow); |
| | background-image:linear-gradient(180deg, rgba(255,255,255,0.06), rgba(255,255,255,0.00)); |
| | color:var(--sv-ui-pill-text); |
| | font-weight:800; |
| | text-transform:uppercase; |
| | letter-spacing:0.03em; |
| | font-size:0.72em; |
| | line-height:1.15; |
| | white-space:nowrap; |
| } | | } |
|
| |
|
| :is(table.spiritvale-skill-infobox, table.spiritvale-passive-infobox) .sv-slot-grid > .sv-slot.sv-slot--full {
| | .sv-pill--compact, |
| grid-column: 1 / -1;
| | .mw-parser-output .sv-pill--compact{ |
| | padding:0.15em 0.38em; |
| | border-radius:var(--sv-ui-rad-pill); |
| } | | } |
|
| |
|
| :is(table.spiritvale-skill-infobox, table.spiritvale-passive-infobox) .sv-slot--empty .sv-slot__body {
| | .sv-pill--value, |
| min-height: 3.2em;
| | .mw-parser-output .sv-pill--value{ |
| | border-radius:var(--sv-ui-rad-pill); |
| | font-weight:900; |
| | text-transform:none; |
| | letter-spacing:0.01em; |
| } | | } |
|
| |
|
| :is(table.spiritvale-skill-infobox, table.spiritvale-passive-infobox) .sv-slot__body {
| | .sv-focus-ring:focus-visible, |
| width: 100%;
| | .mw-parser-output .sv-focus-ring:focus-visible{ |
| height: 100%;
| | outline:2px solid var(--sv-ui-accent3); |
| display: flex;
| | outline-offset:2px; |
| align-items: center;
| | border-radius:var(--sv-ui-rad-sm); |
| justify-content: center;
| |
| text-align: center;
| |
| padding: 0.85em;
| |
| box-sizing: border-box;
| |
| } | | } |
|
| |
|
| :is(table.spiritvale-skill-infobox, table.spiritvale-passive-infobox) .sv-herobar-1-wrap {
| | /* -------------------------------------------------------------------------- */ |
| display: flex;
| | /* 3a) Hover lift utility */ |
| align-items: center;
| | /* -------------------------------------------------------------------------- */ |
| justify-content: center;
| |
| gap: 0.65em;
| |
| }
| |
|
| |
|
| :is(table.spiritvale-skill-infobox, table.spiritvale-passive-infobox) .sv-herobar-icon {
| | .sv-hover-lift{ |
| line-height: 0;
| | transition:transform 0.15s ease-in-out; |
| | will-change:transform; |
| } | | } |
|
| |
|
| :is(table.spiritvale-skill-infobox, table.spiritvale-passive-infobox) .sv-herobar-icon img {
| | .sv-hover-lift:hover{ |
| vertical-align: middle;
| | transform:translateY(-2px); |
| }
| |
| | |
| /* Tooltip scopes + triggers */
| |
| .sv-tip-content { display: none; } | |
| | |
| .sv-tip-pop {
| |
| position: fixed;
| |
| z-index: 99999;
| |
| max-width: min(380px, calc(100vw - 16px));
| |
| max-height: 60vh;
| |
| overflow: auto;
| |
| padding: 10px 12px;
| |
| border-radius: 10px;
| |
| border: 1px solid rgba(255,255,255,.12);
| |
| background: rgba(20, 24, 30, .98);
| |
| color: #e9eef6;
| |
| box-shadow: 0 10px 30px rgba(0,0,0,.35);
| |
| font-size: 13px;
| |
| line-height: 1.35;
| |
| } | | } |
|
| |
|
| .sv-tip-pop .sv-tip-title {
| | /* -------------------------------------------------------------------------- */ |
| font-weight: 700;
| | /* 3b) Right infobox wrapper */ |
| margin-bottom: 6px;
| | /* -------------------------------------------------------------------------- */ |
| }
| |
|
| |
|
| .sv-tip-pop .sv-tip-section { | | .sv-card.sv-infobox-right{ |
| margin-top: 8px;
| | float:right !important; |
| | width:100%; |
| | max-width:200px; |
| | margin:0 0 2em 2em; |
| | box-sizing:border-box; |
| | border-radius:var(--sv-ui-rad-lg); |
| | overflow:hidden; |
| | clear:right; |
| } | | } |
|
| |
|
| .sv-tip-pop .sv-tip-label { | | .sv-card.sv-infobox-right.sv-infobox-right--md{max-width:260px;} |
| font-weight: 700;
| | .sv-card.sv-infobox-right.sv-infobox-right--lg{max-width:320px;} |
| display: block;
| |
| margin-bottom: 2px;
| |
| opacity: .95;
| |
| } | |
|
| |
|
| .sv-tip-scope { position: relative; }
| | /* -------------------------------------------------------------------------- */ |
| .sv-tip-btn {
| | /* 4) Shared utilities */ |
| cursor: pointer;
| | /* -------------------------------------------------------------------------- */ |
| user-select: none;
| |
| -webkit-appearance: none;
| |
| appearance: none;
| |
| font: inherit;
| |
| color: inherit;
| |
| }
| |
|
| |
|
| .sv-tip-btn:focus-visible { | | .sv-hidden, |
| outline: 2px solid rgba(255,255,255,.25);
| | .mw-parser-output .sv-hidden{ |
| outline-offset: 2px;
| | display:none !important; |
| } | | } |
|
| |
|
| | [hidden]{display:none !important;} |
|
| |
|
| :is(table.spiritvale-skill-infobox, table.spiritvale-passive-infobox) .module-icon-name .sv-herobar-1-wrap {
| | .sv-miss, |
| display: grid;
| | .mw-parser-output .sv-miss{ |
| grid-template-columns: auto auto;
| | display:inline-flex; |
| grid-template-rows: auto auto;
| | align-items:center; |
| column-gap: 0.65em;
| | justify-content:center; |
| row-gap: 0.35em;
| | width:18px; |
| align-items: center;
| | height:18px; |
| justify-content: center;
| | border-radius:var(--sv-ui-rad-pill); |
| | border:1px solid var(--sv-ui-line2); |
| | background:var(--sv-ui-bg3); |
| | color:var(--sv-ui-text1); |
| | font-weight:900; |
| | font-size:12px; |
| | line-height:1; |
| } | | } |
|
| |
|
| :is(table.spiritvale-skill-infobox, table.spiritvale-passive-infobox) .module-icon-name .sv-herobar-icon {
| | .sv-img, |
| grid-column: 1;
| | .mw-parser-output .sv-img{ |
| grid-row: 1;
| | display:inline-flex; |
| width: 80px;
| | align-items:center; |
| height: 80px;
| | justify-content:center; |
| display: flex;
| |
| align-items: center;
| |
| justify-content: center;
| |
| line-height: 0;
| |
| }
| |
| :is(table.spiritvale-skill-infobox, table.spiritvale-passive-infobox) .module-icon-name .sv-herobar-icon img {
| |
| max-width: 80px;
| |
| max-height: 80px;
| |
| width: 100%;
| |
| height: 100%;
| |
| object-fit: contain;
| |
| } | | } |
|
| |
|
| :is(table.spiritvale-skill-infobox, table.spiritvale-passive-infobox) .module-icon-name .sv-herobar-text {
| | .sv-img img, |
| grid-column: 2;
| | .mw-parser-output .sv-img img{ |
| grid-row: 1;
| | display:block; |
| display: flex;
| | max-width:100%; |
| flex-direction: column;
| | height:auto; |
| align-items: center;
| | border-radius:var(--sv-ui-rad-sm); |
| } | | } |
|
| |
|
| :is(table.spiritvale-skill-infobox, table.spiritvale-passive-infobox) .module-icon-name .sv-herobar-title-row {
| | .sv-img--shadow img, |
| display: inline-flex;
| | .mw-parser-output .sv-img--shadow img{ |
| align-items: center;
| | box-shadow:0 10px 18px rgba(0,0,0,0.35); |
| justify-content: center;
| |
| gap: 0.45em;
| |
| } | | } |
|
| |
|
| :is(table.spiritvale-skill-infobox, table.spiritvale-passive-infobox) .module-icon-name .sv-pill-row--req {
| | /* -------------------------------------------------------------------------- */ |
| grid-column: 1 / -1;
| | /* 5) Shared level selector */ |
| grid-row: 2;
| | /* -------------------------------------------------------------------------- */ |
| justify-self: center;
| |
| margin-top: 2px;
| |
| }
| |
|
| |
|
| :is(table.spiritvale-skill-infobox, table.spiritvale-passive-infobox) .module-icon-name .sv-tip-btn--notes {
| | .sv-level-ui, |
| display: inline-flex;
| | .mw-parser-output .sv-level-ui{ |
| align-items: center;
| | display:flex; |
| justify-content: center;
| | align-items:center; |
| min-width: 30px;
| | justify-content:center; |
| height: 30px;
| | gap:8px; |
| border-radius: 999px;
| | flex-wrap:wrap; |
| border: 1px solid rgba(255,255,255,.18);
| | text-align:center; |
| background: rgba(255,255,255,.10);
| | margin:0; |
| cursor: pointer;
| |
| } | | } |
|
| |
|
| :is(table.spiritvale-skill-infobox, table.spiritvale-passive-infobox) .module-icon-name .sv-tip-btn--notes:hover {
| | .sv-level-label, |
| background: rgba(255,255,255,.14);
| | .mw-parser-output .sv-level-label{ |
| | margin:0; |
| } | | } |
|
| |
|
| :is(table.spiritvale-skill-infobox, table.spiritvale-passive-infobox) .module-icon-name .sv-tip-btn--notes:focus-visible { | | .sv-level-label[data-sv-helper-text], |
| outline: 2px solid rgba(255,255,255,.28);
| | .sv-level-ui .sv-level-label:not([data-sv-helper-text]), |
| outline-offset: 2px;
| | .mw-parser-output .sv-level-label[data-sv-helper-text], |
| | .mw-parser-output .sv-level-ui .sv-level-label:not([data-sv-helper-text]){ |
| | display:inline-block; |
| | margin:0; |
| | padding:0; |
| | font-size:0; |
| | line-height:0; |
| } | | } |
|
| |
|
| :is(table.spiritvale-skill-infobox, table.spiritvale-passive-infobox) .module-icon-name .sv-ico--info { | | .sv-level-ui .sv-level-label:not([data-sv-helper-text]), |
| width: 22px;
| | .mw-parser-output .sv-level-ui .sv-level-label:not([data-sv-helper-text]){ |
| height: 22px;
| | position:static; |
| border-radius: 999px;
| | top:auto; |
| display: inline-flex;
| | right:auto; |
| align-items: center;
| | bottom:auto; |
| justify-content: center;
| | left:auto; |
| font-weight: 900;
| | transform:none; |
| font-size: 15px;
| |
| line-height: 1;
| |
| background: var(--sv-ico-bg, #6aa6ff);
| |
| color: var(--sv-ico-fg, #081018);
| |
| } | | } |
|
| |
|
| .module-icon-name .sv-pill--req { | | .sv-level-label[data-sv-helper-text]::after, |
| display: inline-flex;
| | .mw-parser-output .sv-level-label[data-sv-helper-text]::after{ |
| align-items: center;
| | content:attr(data-sv-helper-text); |
| | display:inline-block; |
| | font-weight:900; |
| | font-size:12px; |
| | line-height:1.25; |
| | letter-spacing:0.15px; |
| | color:var(--sv-ui-text1); |
| } | | } |
|
| |
|
| .sv-pill--req::after { | | .sv-level-ui .sv-level-label:not([data-sv-helper-text])::after, |
| content: " ▼";
| | .mw-parser-output .sv-level-ui .sv-level-label:not([data-sv-helper-text])::after{ |
| font-weight: normal;
| | content:"Slide to set level"; |
| font-size: 0.8em;
| | display:inline-block; |
| | font-weight:900; |
| | font-size:12px; |
| | line-height:1.25; |
| | letter-spacing:0.15px; |
| | color:var(--sv-ui-text1); |
| } | | } |
|
| |
|
| :is(table.spiritvale-skill-infobox, table.spiritvale-passive-infobox) .sv-description {
| | .sv-level-slider, |
| font-size: 1.05em;
| | .mw-parser-output .sv-level-slider{ |
| font-style: italic;
| | position:relative; |
| max-width: 42em;
| | display:flex; |
| margin: 0 auto;
| | flex-direction:row; |
| line-height: 1.35;
| | align-items:center; |
| opacity: 0.95;
| | gap:10px; |
| }
| | width:100%; |
| /* Soft white + outline */
| | flex-wrap:nowrap; |
| :is(table.spiritvale-skill-infobox, table.spiritvale-passive-infobox) .sv-slot,
| | direction:ltr; |
| :is(table.spiritvale-skill-infobox, table.spiritvale-passive-infobox) .sv-slot *,
| |
| :is(table.spiritvale-skill-infobox, table.spiritvale-passive-infobox) > tbody > tr.sv-slot-row, | |
| :is(table.spiritvale-skill-infobox, table.spiritvale-passive-infobox) > tbody > tr.sv-hero-title-row,
| |
| :is(table.spiritvale-skill-infobox, table.spiritvale-passive-infobox) > tbody > tr.sv-hero-desc-row {
| |
| color: var(--sv-text-soft) !important;
| |
| text-shadow: var(--sv-text-outline);
| |
| } | | } |
|
| |
|
| /* Shared pill look (all modules)
| | .sv-level-slider input.sv-level-range[type="range"], |
| - Desktop pills shrink (width:auto)
| | .sv-level-slider .sv-level-range--custom, |
| - Mobile keeps its own padding overrides below */
| | .sv-level-slider .sv-level-range[data-sv-slider="1"], |
| :is(table.spiritvale-skill-infobox, table.spiritvale-passive-infobox) :where(.sv-type-label, .sv-source-pill, .sv-m4-label, .sv-sm-label, .sv-sm-flag, .sv-pill, .sv-pill--req) {
| | .mw-parser-output .sv-level-slider input.sv-level-range[type="range"], |
| width: auto;
| | .mw-parser-output .sv-level-slider .sv-level-range--custom, |
| display: inline-block;
| | .mw-parser-output .sv-level-slider .sv-level-range[data-sv-slider="1"]{ |
| max-width: 100%;
| | flex:1 1 auto; |
| white-space: nowrap;
| | min-width:0; |
| padding: 0.18em 0.35em;
| | width:auto; |
| border-radius: 6px;
| | box-sizing:border-box; |
| font-weight: 800;
| | margin:0; |
| text-transform: uppercase;
| | order:1; |
| letter-spacing: 0.03em;
| |
| font-size: 0.72em;
| |
| line-height: 1.15;
| |
| background: var(--sv-pill);
| |
| } | | } |
|
| |
|
| /* Level selector */
| | .sv-level-endvalue, |
| :is(table.spiritvale-skill-infobox, table.spiritvale-passive-infobox) .module-level-selector .sv-level-ui {
| | .mw-parser-output .sv-level-endvalue{ |
| width: 90%;
| | flex:0 0 auto; |
| margin: 0 !important;
| | order:2; |
| display: flex;
| | min-width:28px; |
| flex-direction: column;
| | padding:1px 7px; |
| gap: 0.3em;
| | border-radius:var(--sv-ui-rad-pill); |
| | border:1px solid var(--sv-ui-pill-line); |
| | background:var(--sv-ui-pill-bg); |
| | background-image:linear-gradient(180deg, rgba(255,255,255,0.05), rgba(255,255,255,0.00)); |
| | box-shadow:var(--sv-ui-pill-shadow); |
| | color:var(--sv-ui-text2); |
| | font-weight:900; |
| | font-size:12px; |
| | line-height:1.25; |
| | letter-spacing:0.15px; |
| | text-align:center; |
| | white-space:nowrap; |
| } | | } |
|
| |
|
| :is(table.spiritvale-skill-infobox, table.spiritvale-passive-infobox) .module-level-selector .sv-level-label {
| | .sv-level--hide-ticks .sv-level-ticklabels, |
| font-weight: 600;
| | [data-sv-level-hide-ticks="1"] .sv-level-ticklabels, |
| | .mw-parser-output .sv-level--hide-ticks .sv-level-ticklabels, |
| | .mw-parser-output [data-sv-level-hide-ticks="1"] .sv-level-ticklabels{ |
| | display:none; |
| } | | } |
|
| |
|
| :is(table.spiritvale-skill-infobox, table.spiritvale-passive-infobox) .module-level-selector .sv-level-slider input[type="range"] {
| | .sv-level-range--custom, |
| width: 90%;
| | .sv-level-range[data-sv-slider="1"]{ |
| box-sizing: border-box;
| | display:block; |
| margin: 0;
| | position:relative; |
| | height:26px; |
| | border-radius:var(--sv-ui-rad-pill); |
| | border:1px solid var(--sv-ui-line2); |
| | background:var(--sv-ui-bg1); |
| | cursor:pointer; |
| | box-sizing:border-box; |
| } | | } |
|
| |
|
| :is(table.spiritvale-skill-infobox, table.spiritvale-passive-infobox) .module-level-selector .sv-level-ui-single .sv-level-slider-single {
| | .sv-level-track{ |
| min-height: 0.45em;
| | position:absolute; |
| | left:8px; |
| | right:8px; |
| | top:50%; |
| | margin-top:-4px; |
| | height:8px; |
| | border-radius:var(--sv-ui-rad-pill); |
| | background:var(--sv-ui-bg2); |
| | overflow:hidden; |
| } | | } |
|
| |
|
| /* ============================================================
| | .sv-level-fill{ |
| Skill Type (Hero Bar Slot 2)
| | display:block; |
| - Desktop: 2 rows x 3 columns (3-col grid)
| | height:100%; |
| - Mobile: 2 rows x 3 columns (same grid), but reorder:
| | width:0%; |
| Damage, Element, Target, Cast, Hits, Combo
| | border-radius:var(--sv-ui-rad-pill); |
| ============================================================ */
| | background:linear-gradient(90deg, var(--sv-ui-accent), rgba(245,249,255,0.22)); |
| | |
| table.spiritvale-skill-infobox .hero-bar-module-2 .hero-bar-module-body,
| |
| table.spiritvale-skill-infobox .hero-bar-module-2 .module-skill-type {
| |
| width: 100%;
| |
| } | | } |
|
| |
|
| table.spiritvale-skill-infobox .module-skill-type .sv-type-grid {
| | .sv-level-thumb{ |
| width: 100%;
| | position:absolute; |
| margin: 0 !important;
| | left:0%; |
| box-sizing: border-box;
| | top:50%; |
| display: grid;
| | margin-top:-9px; |
| grid-template-columns: repeat(3, minmax(0, 1fr));
| | margin-left:-9px; |
| gap: 0.50em;
| | width:18px; |
| padding: 0.40em;
| | height:18px; |
| justify-items: center;
| | border-radius:var(--sv-ui-rad-pill); |
| align-items: center;
| | border:2px solid var(--sv-ui-line3); |
| | background:rgba(245,249,255,0.92); |
| | box-shadow:0 10px 18px rgba(0,0,0,0.35); |
| } | | } |
|
| |
|
| table.spiritvale-skill-infobox .module-skill-type .sv-type-chunk {
| | .sv-level-ticklabels{ |
| display: flex;
| | display:flex; |
| flex-direction: column;
| | justify-content:space-between; |
| align-items: center;
| | gap:10px; |
| justify-content: center;
| | margin-top:7px; |
| text-align: center;
| | font-weight:900; |
| padding: 0.20em 0.35em;
| | font-size:12px; |
| gap: 0.50em;
| | color:var(--sv-ui-text3); |
| min-width: 0;
| | line-height:1.1; |
| | min-height:12px; |
| } | | } |
|
| |
|
| table.spiritvale-skill-infobox .module-skill-type .sv-type-value {
| | .sv-level-tick{ |
| font-weight: 400;
| | display:inline-flex; |
| font-size: 1.02em;
| | align-items:center; |
| line-height: 1.25;
| | justify-content:center; |
| white-space: normal;
| | min-width:18px; |
| overflow-wrap: anywhere;
| |
| word-break: break-word;
| |
| } | | } |
|
| |
|
| /* Desktop ordering */
| | .sv-level-range--custom .sv-level-bubble, |
| table.spiritvale-skill-infobox .module-skill-type .sv-type-damage {
| | .sv-level-range[data-sv-slider="1"] .sv-level-bubble{ |
| order: 1;
| | position:absolute; |
| | top:-45px; |
| | left:0%; |
| | transform:translateX(-50%); |
| | padding:9px 15px; |
| | border-radius:36px; |
| | border:1px solid var(--sv-ui-line3); |
| | background:var(--sv-ui-bg3); |
| | background-image:linear-gradient(180deg, rgba(255,255,255,0.06), rgba(255,255,255,0.00)); |
| | box-shadow:0 10px 18px rgba(0,0,0,0.35); |
| | font-weight:900; |
| | font-size:36px; |
| | line-height:1; |
| | color:var(--sv-ui-text1); |
| | pointer-events:none; |
| | white-space:nowrap; |
| } | | } |
|
| |
|
| table.spiritvale-skill-infobox .module-skill-type .sv-type-element {
| | .sv-level-range--custom .sv-level-bubble:after, |
| order: 2;
| | .sv-level-range[data-sv-slider="1"] .sv-level-bubble:after{ |
| | content:""; |
| | position:absolute; |
| | left:50%; |
| | bottom:-9px; |
| | width:14px; |
| | height:14px; |
| | margin-left:-7px; |
| | background:var(--sv-ui-bg3); |
| | border-left:1px solid var(--sv-ui-line3); |
| | border-bottom:1px solid var(--sv-ui-line3); |
| | transform:rotate(45deg); |
| } | | } |
|
| |
|
| table.spiritvale-skill-infobox .module-skill-type .sv-type-hits {
| | .sv-level-range--custom:focus-visible, |
| order: 3;
| | .sv-level-range[data-sv-slider="1"]:focus-visible{ |
| | outline:2px solid var(--sv-ui-accent3); |
| | outline-offset:2px; |
| | border-radius:var(--sv-ui-rad-sm); |
| } | | } |
|
| |
|
| table.spiritvale-skill-infobox .module-skill-type .sv-type-target {
| | /* -------------------------------------------------------------------------- */ |
| order: 4;
| | /* 6) Shared tabs */ |
| }
| | /* -------------------------------------------------------------------------- */ |
|
| |
|
| table.spiritvale-skill-infobox .module-skill-type .sv-type-cast {
| | .sv-tabs, |
| order: 5;
| | .mw-parser-output .sv-tabs{ |
| | margin:10px 0 0; |
| } | | } |
|
| |
|
| table.spiritvale-skill-infobox .module-skill-type .sv-type-combo {
| | .sv-tabs-list, |
| order: 6;
| | .mw-parser-output .sv-tabs-list{ |
| | display:flex; |
| | gap:8px; |
| | flex-wrap:wrap; |
| | margin:0 0 10px 0; |
| | padding:0; |
| } | | } |
|
| |
|
| /* SourceType */
| | .sv-tab, |
| table.spiritvale-skill-infobox .sv-slot.skill-source-module .sv-slot__body {
| | .mw-parser-output .sv-tab{ |
| width: 100%;
| | display:inline-flex; |
| height: 100%;
| | align-items:center; |
| | justify-content:center; |
| | border-radius:var(--sv-ui-rad-pill); |
| | padding:7px 10px; |
| | border:1px solid var(--sv-ui-line2); |
| | background:var(--sv-ui-bg2); |
| | color:var(--sv-ui-text1); |
| | font-weight:900; |
| | font-size:13px; |
| | cursor:pointer; |
| | user-select:none; |
| } | | } |
|
| |
|
| table.spiritvale-skill-infobox .skill-source-module .sv-source-grid {
| | .sv-tab:hover, |
| width: 100%;
| | .mw-parser-output .sv-tab:hover{ |
| box-sizing: border-box;
| | background:var(--sv-ui-bg3); |
| display: grid;
| |
| gap: 0.55em;
| |
| align-items: center;
| |
| justify-items: center;
| |
| } | | } |
|
| |
|
| table.spiritvale-skill-infobox .sv-slot.skill-source-module.sv-has-mod .sv-source-grid {
| | .sv-tab[aria-selected="true"], |
| grid-template-columns: 0.85fr 1fr 1fr;
| | .mw-parser-output .sv-tab[aria-selected="true"]{ |
| | background:var(--sv-ui-bg3); |
| | border-color:var(--sv-ui-accent); |
| } | | } |
|
| |
|
| table.spiritvale-skill-infobox .sv-slot.skill-source-module.sv-no-mod .sv-source-grid {
| | .sv-tabpanel, |
| grid-template-columns: 1fr 1fr;
| | .mw-parser-output .sv-tabpanel{ |
| | padding:10px 12px; |
| | border-radius:var(--sv-ui-rad-md); |
| | border:1px solid var(--sv-ui-line1); |
| | background:var(--sv-ui-bg1); |
| } | | } |
|
| |
|
| table.spiritvale-skill-infobox .sv-slot.skill-source-module.sv-only-source.sv-no-mod .sv-source-grid,
| | .sv-tab:focus-visible, |
| table.spiritvale-skill-infobox .sv-slot.skill-source-module.sv-only-scaling.sv-no-mod .sv-source-grid {
| | .mw-parser-output .sv-tab:focus-visible, |
| grid-template-columns: 1fr;
| | .sv-disclose-btn:focus-visible, |
| | .mw-parser-output .sv-disclose-btn:focus-visible{ |
| | outline:2px solid var(--sv-ui-accent3); |
| | outline-offset:2px; |
| | border-radius:var(--sv-ui-rad-sm); |
| } | | } |
|
| |
|
| table.spiritvale-skill-infobox .sv-slot.skill-source-module.sv-only-source.sv-has-mod .sv-source-grid,
| | /* -------------------------------------------------------------------------- */ |
| table.spiritvale-skill-infobox .sv-slot.skill-source-module.sv-only-scaling.sv-has-mod .sv-source-grid {
| | /* 7) Shared tip trigger */ |
| grid-template-columns: 0.95fr 1.05fr;
| | /* -------------------------------------------------------------------------- */ |
| }
| |
|
| |
|
| table.spiritvale-skill-infobox .skill-source-module .sv-source-col {
| | .sv-tip, |
| width: 100%;
| | .mw-parser-output .sv-tip{ |
| display: flex;
| | position:relative; |
| flex-direction: column;
| | display:inline-flex; |
| align-items: center;
| | align-items:center; |
| justify-content: flex-start;
| | flex:0 0 auto; |
| text-align: center;
| |
| gap: 0.35em;
| |
| } | | } |
|
| |
|
| table.spiritvale-skill-infobox .skill-source-module :where(.sv-modifier-value, .sv-source-value) {
| | .sv-tip-btn, |
| font-weight: 800;
| | .mw-parser-output .sv-tip-btn{ |
| line-height: 1.05;
| | display:inline-flex; |
| font-size: clamp(1.05em, 2.2vw, 1.35em);
| | align-items:center; |
| white-space: normal;
| | justify-content:center; |
| overflow-wrap: anywhere;
| | border:1px solid var(--sv-ui-line2); |
| word-break: break-word;
| | background:var(--sv-ui-bg2); |
| opacity: 0.98;
| | color:var(--sv-ui-text1); |
| | cursor:pointer; |
| | user-select:none; |
| } | | } |
|
| |
|
| table.spiritvale-skill-infobox .skill-source-module .sv-scaling-list {
| | .sv-tip-btn:hover, |
| display: flex;
| | .mw-parser-output .sv-tip-btn:hover{ |
| flex-direction: column;
| | background:var(--sv-ui-bg3); |
| gap: 0.22em;
| |
| align-items: center;
| |
| } | | } |
|
| |
|
| table.spiritvale-skill-infobox .skill-source-module .sv-scaling-item {
| | .sv-tip-btn:focus-visible, |
| font-weight: 500;
| | .mw-parser-output .sv-tip-btn:focus-visible{ |
| font-size: 0.88em;
| | outline:2px solid var(--sv-ui-accent3); |
| line-height: 1.15;
| | outline-offset:2px; |
| opacity: 0.95;
| |
| } | | } |
|
| |
|
| /* Quick stats */
| | .sv-tip-btn--icon, |
| table.spiritvale-skill-infobox .sv-slot.module-quick-stats .sv-slot__body {
| | .sv-tip-btn:not(.sv-tip-btn--pill), |
| width: 100%;
| | .mw-parser-output .sv-tip-btn--icon, |
| height: 100%;
| | .mw-parser-output .sv-tip-btn:not(.sv-tip-btn--pill){ |
| | width:28px; |
| | height:28px; |
| | border-radius:var(--sv-ui-rad-pill); |
| } | | } |
|
| |
|
| table.spiritvale-skill-infobox .module-quick-stats .sv-m4-grid {
| | .sv-tip-btn--pill, |
| width: 100%;
| | .sv-overcap-btn, |
| margin: 0 !important;
| | .mw-parser-output .sv-tip-btn--pill, |
| box-sizing: border-box;
| | .mw-parser-output .sv-overcap-btn{ |
| display: grid;
| | width:auto; |
| grid-template-columns: 1fr 1fr 1fr;
| | height:auto; |
| gap: 0.45em;
| | min-width:0; |
| padding: 0.35em;
| | min-height:0; |
| justify-items: center;
| | padding:1px 8px; |
| align-items: center;
| | border-radius:var(--sv-ui-rad-pill); |
| | font-weight:900; |
| | font-size:13px; |
| | line-height:1.25; |
| | letter-spacing:0.15px; |
| | white-space:nowrap; |
| | background:var(--sv-ui-pill-bg); |
| | background-image:linear-gradient(180deg, rgba(255,255,255,0.05), rgba(255,255,255,0.00)); |
| | box-shadow:var(--sv-ui-pill-shadow); |
| | border-color:var(--sv-ui-pill-line); |
| | color:var(--sv-ui-text2); |
| } | | } |
|
| |
|
| table.spiritvale-skill-infobox .sv-slot.sv-slot--full.module-quick-stats .sv-m4-grid {
| | .sv-ico--info, |
| grid-template-columns: repeat(6, minmax(0, 1fr));
| | .mw-parser-output .sv-ico--info{ |
| | width:18px; |
| | height:18px; |
| | border-radius:999px; |
| | display:flex; |
| | align-items:center; |
| | justify-content:center; |
| | font-style:normal; |
| | font-weight:900; |
| | font-size:12px; |
| | line-height:1; |
| } | | } |
|
| |
|
| table.spiritvale-skill-infobox .module-quick-stats .sv-m4-cell {
| | /* -------------------------------------------------------------------------- */ |
| display: flex;
| | /* 8) Shared disclosure */ |
| flex-direction: column;
| | /* -------------------------------------------------------------------------- */ |
| align-items: center;
| |
| justify-content: center;
| |
| text-align: center;
| |
| gap: 0.35em;
| |
| padding: 0.10em 0.20em;
| |
| min-height: 2.35em;
| |
| }
| |
|
| |
|
| table.spiritvale-skill-infobox .module-quick-stats .sv-m4-value {
| | .sv-disclose, |
| font-weight: 650;
| | .mw-parser-output .sv-disclose{ |
| font-size: 0.96em;
| | position:relative; |
| line-height: 1.15;
| |
| opacity: 0.98;
| |
| white-space: normal;
| |
| overflow-wrap: anywhere;
| |
| word-break: break-word;
| |
| } | | } |
|
| |
|
| /* ============================================================
| | .sv-disclose-btn, |
| Special Mechanics (Flags + Mechanics)
| | .mw-parser-output .sv-disclose-btn{ |
| - Desktop:
| | display:flex; |
| * 1 group => centered
| | align-items:center; |
| * 2 groups => flags (narrow) + mechanics (wide)
| | justify-content:space-between; |
| - Mechanics spread out on the right + centered
| | gap:12px; |
| ============================================================ */
| | width:100%; |
| | | padding:10px 12px; |
| table.spiritvale-skill-infobox .sv-slot.module-special-mechanics .sv-slot__body {
| | border-radius:var(--sv-ui-rad-md); |
| width: 100%;
| | border:1px solid var(--sv-ui-line1); |
| height: 100%;
| | background:var(--sv-ui-bg1); |
| | box-shadow:inset 0 1px 0 rgba(255,255,255,0.05); |
| | background-image:linear-gradient(180deg, rgba(255,255,255,0.05), rgba(255,255,255,0.00)); |
| | color:var(--sv-ui-text1); |
| | font-weight:900; |
| | cursor:pointer; |
| | user-select:none; |
| } | | } |
|
| |
|
| table.spiritvale-skill-infobox .module-special-mechanics .sv-sm-root {
| | .sv-disclose-btn:hover, |
| width: 100%;
| | .mw-parser-output .sv-disclose-btn:hover{ |
| | background:var(--sv-ui-bg2); |
| } | | } |
|
| |
|
| table.spiritvale-skill-infobox .module-special-mechanics .sv-sm-empty {
| | .sv-disclose-btn--compact, |
| width: 100%;
| | .mw-parser-output .sv-disclose-btn--compact{ |
| font-weight: 650;
| | border-radius:var(--sv-ui-rad-pill); |
| opacity: 0.95;
| | min-height:36px; |
| text-align: center;
| | padding:0 12px; |
| } | | } |
|
| |
|
| /* Layout grid */
| | .sv-disclose-count, |
| table.spiritvale-skill-infobox .module-special-mechanics .sv-sm-layout {
| | .mw-parser-output .sv-disclose-count{ |
| width: 100%;
| | font-weight:800; |
| display: grid;
| | font-size:13px; |
| gap: 0.55em;
| | color:var(--sv-ui-text3); |
| align-items: start;
| | white-space:nowrap; |
| /* Let columns consume available width (we'll center inside columns) */
| |
| justify-items: stretch;
| |
| } | | } |
|
| |
|
| table.spiritvale-skill-infobox .module-special-mechanics .sv-sm-layout.sv-sm-count-1 {
| | /* -------------------------------------------------------------------------- */ |
| grid-template-columns: 1fr;
| | /* 9) Universal popups */ |
| justify-items: center; /* truly centered when only one group exists */
| | /* -------------------------------------------------------------------------- */ |
| }
| |
|
| |
|
| /* Default 2-col split (works everywhere; desktop override below) */
| | .sv-tip-btn, |
| table.spiritvale-skill-infobox .module-special-mechanics .sv-sm-layout.sv-sm-count-2 {
| | .sv-disclose-btn, |
| grid-template-columns: 1fr 1fr;
| | .sv-def, |
| }
| | .sv-uipop-head, |
| | | .sv-uipop-title, |
| /* Columns (default = stacked/centered) */
| | .sv-uipop-title-link{ |
| table.spiritvale-skill-infobox .module-special-mechanics .sv-sm-col {
| | -webkit-touch-callout:none; |
| width: 100%;
| | -webkit-user-select:none; |
| min-width: 0;
| | user-select:none; |
| display: flex;
| | touch-action:manipulation; |
| flex-direction: column;
| |
| align-items: center;
| |
| justify-content: flex-start;
| |
| text-align: center;
| |
| gap: 0.40em;
| |
| } | | } |
|
| |
|
| /* Items */
| | .sv-tip-btn *, |
| table.spiritvale-skill-infobox .module-special-mechanics .sv-sm-mech {
| | .sv-disclose-btn *, |
| width: 100%;
| | .sv-uipop-head *{ |
| min-width: 0;
| | -webkit-user-select:none; |
| display: flex;
| | user-select:none; |
| flex-direction: column;
| |
| align-items: center;
| |
| justify-content: flex-start;
| |
| text-align: center;
| |
| gap: 0.50em;
| |
| } | | } |
|
| |
|
| /* Values centered (fix for drifting/left-align cases) */
| | .sv-uipop{ |
| table.spiritvale-skill-infobox .module-special-mechanics .sv-sm-value {
| | position:fixed; |
| width: 100%;
| | z-index:9000; |
| text-align: center;
| | top:0; |
| font-weight: 500;
| | left:0; |
| font-size: 0.98em; | | box-sizing:border-box; |
| line-height: 1.2; | | border-radius:var(--sv-ui-rad-lg); |
| opacity: 0.98;
| | border:1px solid var(--sv-ui-pop-line, var(--sv-ui-line2)); |
| white-space: normal;
| | background:var(--sv-ui-pop-bg, var(--sv-ui-bg2)); |
| overflow-wrap: anywhere; | | background-image: |
| word-break: break-word;
| | radial-gradient(900px 260px at 35% 0, rgba(106,166,255,0.14), rgba(0,0,0,0) 60%), |
| | linear-gradient(180deg, rgba(255,255,255,0.04), rgba(255,255,255,0.00)); |
| | color:var(--sv-ui-text1); |
| | box-shadow: |
| | var(--sv-ui-pop-shadow, 0 10px 30px rgba(0,0,0,0.35)), |
| | inset 0 1px 0 rgba(255,255,255,0.04); |
| | overflow:hidden; |
| } | | } |
|
| |
|
| /* ============================================================
| | .sv-uipop[aria-hidden="true"]{display:none;} |
| Desktop behavior: mechanics spread out across the right column
| |
| ============================================================ */
| |
| @media (min-width: 720px) {
| |
|
| |
|
| /* Make flags column a bit narrower, mechanics column wider */
| | .sv-uipop--sm, |
| table.spiritvale-skill-infobox .module-special-mechanics
| | .sv-uipop--lg{ |
| .sv-sm-layout.sv-sm-count-2 {
| | width:240px; |
| grid-template-columns: minmax(8.5em, 0.85fr) minmax(16em, 1.15fr);
| | max-width:calc(100vw - 20px); |
| }
| | } |
|
| |
|
| /*
| | .sv-uipop--sm{max-height:min(45vh, 320px);} |
| Turn the mechanics column into a wrapping grid.
| | .sv-uipop--lg{max-height:min(70vh, 560px);} |
| Each mechanic becomes a grid item so "Chains" and "Knockback"
| |
| can sit side-by-side when there's room.
| |
| */
| |
| table.spiritvale-skill-infobox .module-special-mechanics .sv-sm-col-mech {
| |
| display: grid; /* overrides the flex rule above */
| |
| grid-template-columns: repeat(auto-fit, minmax(9.5em, 1fr));
| |
| gap: 0.55em 0.75em;
| |
| align-items: start;
| |
| justify-items: center; /* center each mechanic card within its cell */
| |
| align-content: center; /* center the whole group vertically if short */
| |
| text-align: center;
| |
| }
| |
|
| |
|
| /* Ensure each mechanic block fills its grid cell cleanly */
| | .sv-uipop-head{ |
| table.spiritvale-skill-infobox .module-special-mechanics .sv-sm-col-mech .sv-sm-mech {
| | display:flex; |
| width: 100%;
| | align-items:center; |
| }
| | justify-content:center; |
| | padding:12px 12px; |
| | border-bottom:1px solid var(--sv-ui-line2); |
| | background:var(--sv-ui-bg3); |
| } | | } |
|
| |
|
| /* Mobile */
| | .sv-uipop-head--clickable{cursor:pointer;} |
| @media (max-width: 560px) {
| |
| /* Slots stack into a single column */
| |
| :is(table.spiritvale-skill-infobox, table.spiritvale-passive-infobox) .sv-slot-grid {
| |
| grid-template-columns: 1fr;
| |
| gap: 0.50em;
| |
| padding: 0.70em;
| |
| }
| |
| | |
| /* Pills shrink by width (not font size) */
| |
| :is(table.spiritvale-skill-infobox, table.spiritvale-passive-infobox) :where(.sv-type-label, .sv-source-pill, .sv-m4-label, .sv-sm-label, .sv-sm-flag, .sv-pill, .sv-pill--req) {
| |
| width: auto !important;
| |
| display: inline-block !important;
| |
| max-width: 100%;
| |
| white-space: nowrap;
| |
| padding: 0.22em 0.45em;
| |
| }
| |
|
| |
|
| /* SkillType stays 3 columns, but reorders to:
| | .sv-uipop-title{ |
| Damage, Element, Target, Cast, Hits, Combo */
| | width:100%; |
| table.spiritvale-skill-infobox .module-skill-type .sv-type-damage {
| | text-align:center; |
| order: 1;
| | font-weight:900; |
| }
| | font-size:16px; |
| | | letter-spacing:0.02em; |
| table.spiritvale-skill-infobox .module-skill-type .sv-type-element {
| | color:var(--color-emphasized, var(--sv-ui-text1)); |
| order: 2;
| |
| }
| |
| | |
| table.spiritvale-skill-infobox .module-skill-type .sv-type-target {
| |
| order: 3;
| |
| }
| |
| | |
| table.spiritvale-skill-infobox .module-skill-type .sv-type-cast {
| |
| order: 4;
| |
| }
| |
| | |
| table.spiritvale-skill-infobox .module-skill-type .sv-type-hits {
| |
| order: 5;
| |
| }
| |
| | |
| table.spiritvale-skill-infobox .module-skill-type .sv-type-combo {
| |
| order: 6;
| |
| }
| |
| | |
| /* SourceType: mod over source, beside scaling */
| |
| table.spiritvale-skill-infobox
| |
| .sv-slot.skill-source-module.sv-has-mod:not(.sv-only-source):not(.sv-only-scaling)
| |
| .sv-source-grid {
| |
| grid-template-columns: 1fr 1fr;
| |
| grid-template-areas:
| |
| "mod scaling"
| |
| "source scaling";
| |
| align-items: center;
| |
| }
| |
| | |
| table.spiritvale-skill-infobox
| |
| .sv-slot.skill-source-module.sv-has-mod:not(.sv-only-source):not(.sv-only-scaling)
| |
| .sv-source-modifier {
| |
| grid-area: mod;
| |
| }
| |
| | |
| table.spiritvale-skill-infobox
| |
| .sv-slot.skill-source-module.sv-has-mod:not(.sv-only-source):not(.sv-only-scaling)
| |
| .sv-source-main {
| |
| grid-area: source;
| |
| }
| |
| | |
| table.spiritvale-skill-infobox
| |
| .sv-slot.skill-source-module.sv-has-mod:not(.sv-only-source):not(.sv-only-scaling)
| |
| .sv-source-scaling {
| |
| grid-area: scaling;
| |
| align-self: center;
| |
| }
| |
| | |
| /* QuickStats becomes 2 cols in tiles */
| |
| table.spiritvale-skill-infobox .module-quick-stats .sv-m4-grid {
| |
| grid-template-columns: 1fr 1fr;
| |
| gap: 0.40em;
| |
| padding: 0.30em;
| |
| }
| |
| | |
| /* Special Mechanics:
| |
| - If 2 groups: single centered column (stacked) */
| |
| table.spiritvale-skill-infobox .module-special-mechanics .sv-sm-layout.sv-sm-count-2 {
| |
| grid-template-columns: 1fr;
| |
| }
| |
| } | | } |
|
| |
|
| /* Passives */
| | .sv-uipop-title a.sv-uipop-title-link{ |
| table.spiritvale-passive-infobox {
| | color:inherit; |
| width: min(var(--sv-passive-width), 100%);
| | text-decoration:none; |
| max-width: min(var(--sv-passive-width), 100%);
| |
| margin: 1em auto;
| |
| table-layout: fixed;
| |
| } | | } |
|
| |
|
| table.spiritvale-passive-infobox tr.sv-slot-row > td.sv-slot-cell {
| | .sv-uipop-title a.sv-uipop-title-link:hover{ |
| padding: 0 !important;
| | text-decoration:underline; |
| background: var(--sv-base) !important;
| | text-decoration-thickness:2px; |
| color: #fff;
| | text-underline-offset:2px; |
| } | | } |
|
| |
|
| table.spiritvale-passive-infobox .sv-slot-grid {
| | .sv-uipop-body{ |
| display: grid;
| | padding:10px 12px 12px; |
| grid-template-columns: 1fr 1fr;
| | font-size:13px; |
| grid-auto-flow: row dense;
| | line-height:1.4; |
| gap: 0.55em;
| | color:var(--sv-ui-text2); |
| width: 100%;
| | overflow:auto; |
| box-sizing: border-box;
| | overflow-wrap:anywhere; |
| background: var(--sv-base);
| | word-break:break-word; |
| padding: 0.80em;
| | -webkit-user-select:text; |
| | user-select:text; |
| } | | } |
|
| |
|
| table.spiritvale-passive-infobox .sv-slot-grid > .sv-slot.sv-slot--full {
| | .sv-uipop-body--pre{white-space:pre-line;} |
| grid-column: 1 / -1;
| |
| } | |
|
| |
|
| table.spiritvale-passive-infobox .sv-slot {
| | .sv-uipop-body p, |
| min-width: 0;
| | .sv-uipop-body ul, |
| display: flex;
| | .sv-uipop-body ol{margin:0;} |
| box-sizing: border-box;
| |
| background: var(--sv-surface) !important;
| |
| color: #fff !important;
| |
| border: 1px solid var(--sv-gridline);
| |
| border-radius: 8px;
| |
| } | |
|
| |
|
| table.spiritvale-passive-infobox .sv-slot__body {
| | .sv-uipop-body ul, |
| width: 100%;
| | .sv-uipop-body ol{padding-left:1.15em;} |
| height: 100%;
| |
| display: flex;
| |
| align-items: center;
| |
| justify-content: center;
| |
| text-align: center;
| |
| padding: 0.85em;
| |
| box-sizing: border-box;
| |
| } | |
|
| |
|
| table.spiritvale-passive-infobox .module-passive-effects .sv-slot__body {
| | .sv-uipop-body li{margin:0;} |
| display: flex;
| |
| flex-direction: column;
| |
| align-items: stretch;
| |
| justify-content: center;
| |
| text-align: left;
| |
| } | |
|
| |
|
| table.spiritvale-passive-infobox .module-level-selector .sv-level-ui {
| | .sv-uipop a{ |
| width: 90%;
| | color:var(--color-link, var(--sv-ui-accent)); |
| margin: 0 !important;
| | text-decoration:underline; |
| display: flex;
| | text-decoration-thickness:2px; |
| flex-direction: column;
| | text-underline-offset:2px; |
| gap: 0.3em;
| |
| } | | } |
|
| |
|
| table.spiritvale-passive-infobox .module-level-selector .sv-level-label {
| | .sv-uipop a:hover{ |
| font-weight: 600;
| | text-decoration-thickness:3px; |
| | text-underline-offset:3px; |
| } | | } |
|
| |
|
| table.spiritvale-passive-infobox .module-level-selector .sv-level-slider input[type="range"] {
| | .sv-uipop a:focus-visible, |
| width: 90%;
| | .sv-uipop-title a.sv-uipop-title-link:focus-visible{ |
| box-sizing: border-box;
| | outline:2px solid var(--sv-ui-accent3); |
| margin: 0;
| | outline-offset:2px; |
| | border-radius:6px; |
| } | | } |
|
| |
|
| table.spiritvale-passive-infobox .module-level-selector .sv-level-ui-single .sv-level-slider-single {
| | .sv-uipop :where(.sv-disclose-list, .sv-uipop-list){ |
| min-height: 0.45em;
| | margin:0; |
| | padding:0; |
| | list-style:none; |
| } | | } |
|
| |
|
| table.spiritvale-passive-infobox .module-passive-effects .sv-passive-effects {
| | .sv-uipop :where(.sv-disclose-list, .sv-uipop-list) > li{ |
| width: 100%;
| | padding:6px 0; |
| display: block;
| | border-top:1px solid var(--sv-ui-line1); |
| | font-size:13px; |
| | color:var(--sv-ui-text2); |
| } | | } |
|
| |
|
| table.spiritvale-passive-infobox .module-passive-effects .sv-pe-table {
| | .sv-uipop :where(.sv-disclose-list, .sv-uipop-list) > li:first-child{ |
| width: 100%;
| | border-top:none; |
| display: flex;
| | padding-top:0; |
| flex-direction: column;
| |
| gap: 0.35em;
| |
| box-sizing: border-box;
| |
| padding: 0.05em 0;
| |
| } | | } |
|
| |
|
| table.spiritvale-passive-infobox .module-passive-effects .sv-pe-row {
| | .sv-uipop :where(.sv-disclose-group-title, .sv-uipop-group-title){ |
| width: 100%;
| | padding-top:10px; |
| display: grid;
| | font-weight:900; |
| grid-template-columns: minmax(0, 1fr) max-content;
| | font-size:12px; |
| column-gap: 0.75em;
| | letter-spacing:0.02em; |
| row-gap: 0.05em;
| | color:var(--sv-ui-text1); |
| align-items: center;
| |
| } | | } |
|
| |
|
| table.spiritvale-passive-infobox .module-passive-effects .sv-pe-label {
| | .sv-uipop .sv-disclose-sections{ |
| font-weight: 700;
| | display:flex; |
| text-align: left;
| | flex-direction:column; |
| text-transform: none;
| | gap:10px; |
| letter-spacing: 0.01em;
| |
| opacity: 0.95;
| |
| min-width: 0;
| |
| overflow-wrap: anywhere;
| |
| } | | } |
|
| |
|
| table.spiritvale-passive-infobox .module-passive-effects .sv-pe-value {
| | .sv-uipop .sv-disclose-sec + .sv-disclose-sec{ |
| font-weight: 650;
| | padding-top:10px; |
| text-align: right;
| | border-top:1px solid var(--sv-ui-line1); |
| font-size: 1.02em;
| |
| min-width: 0;
| |
| justify-self: end;
| |
| overflow-wrap: anywhere;
| |
| } | | } |
|
| |
|
| @media (max-width: 560px) {
| | .sv-uipop .sv-disclose-sec-title{ |
| table.spiritvale-passive-infobox .sv-slot-grid {
| | font-weight:900; |
| grid-template-columns: 1fr;
| | font-size:13px; |
| gap: 0.50em;
| | letter-spacing:0.02em; |
| padding: 0.70em;
| | color:var(--sv-ui-text1); |
| }
| | margin:0 0 4px 0; |
| | |
| table.spiritvale-passive-infobox .module-passive-effects .sv-pe-row {
| |
| grid-template-columns: 1fr;
| |
| text-align: center;
| |
| align-items: stretch;
| |
| justify-items: center;
| |
| row-gap: 0.25em;
| |
| }
| |
| | |
| table.spiritvale-passive-infobox .module-passive-effects .sv-pe-value {
| |
| text-align: center;
| |
| }
| |
| } | | } |
|
| |
|
| table.spiritvale-passive-infobox :is(.sv-slot--5, .sv-slot--6, .sv-slot--7, .sv-slot--8),
| | .sv-uipop .sv-disclose-sec-items{ |
| table.spiritvale-passive-infobox :is(.sv-slot[data-hero-slot="5"], .sv-slot[data-hero-slot="6"], .sv-slot[data-hero-slot="7"], .sv-slot[data-hero-slot="8"]) {
| | font-size:13px; |
| display: none !important;
| | line-height:1.45; |
| | color:var(--sv-ui-text2); |
| } | | } |
|
| |
|
| table.spiritvale-passive-infobox > tbody > tr:not(.spiritvale-infobox-main) > th,
| | .sv-uipop .sv-disclose-item{display:inline;} |
| table.spiritvale-passive-infobox > tbody > tr:not(.spiritvale-infobox-main) > td {
| | .sv-uipop .sv-disclose-sfx{opacity:0.78;} |
| text-align: center;
| | .sv-uipop .sv-tip-pop-body{white-space:pre-line;} |
| vertical-align: middle;
| |
| white-space: normal;
| |
| overflow-wrap: anywhere;
| |
| word-break: break-word;
| |
| }
| |
|
| |
|
| table.spiritvale-passive-infobox .spiritvale-infobox-section-header {
| | /* -------------------------------------------------------------------------- */ |
| text-align: center;
| | /* 10) Motion */ |
| }
| | /* -------------------------------------------------------------------------- */ |
|
| |
|
| .spiritvale-passive-list { | | @media (prefers-reduced-motion: reduce){ |
| display: flex;
| | .sv-hover-lift{transition:none;} |
| flex-direction: column;
| | .sv-hover-lift:hover{transform:none;} |
| align-items: center;
| |
| gap: 1.25em;
| |
| } | | } |
|
| |
|
| .spiritvale-passive-list .mw-table-wrapper,
| | /* -------------------------------------------------------------------------- */ |
| .spiritvale-passive-list .table-overflow,
| | /* 11) Responsive */ |
| .spiritvale-passive-list .table-scroll,
| | /* -------------------------------------------------------------------------- */ |
| .spiritvale-passive-list .citizen-table {
| | /* default (<640px): compact end value and helper text. */ |
| border: none !important;
| | /* sm and up (>=640px): restore the standard control sizing. */ |
| box-shadow: none !important;
| |
| background: transparent !important;
| |
| padding: 0 !important;
| |
| margin: 0 !important;
| |
| }
| |
|
| |
|
| /* Light mode tweaks */
| | @media (min-width:640px){ |
| .mw-theme-light table.spiritvale-skill-infobox > tbody > tr:nth-child(odd) > td,
| | .sv-level-endvalue, |
| .mw-theme-light table.spiritvale-skill-infobox > tbody > tr:nth-child(odd) > th:not(.spiritvale-infobox-section-header), | | .mw-parser-output .sv-level-endvalue{ |
| .mw-theme-light table.spiritvale-passive-infobox > tbody > tr:nth-child(odd) > td, | | padding:2px 8px; |
| .mw-theme-light table.spiritvale-passive-infobox > tbody > tr:nth-child(odd) > th:not(.spiritvale-infobox-section-header) {
| | min-width:30px; |
| background-color: rgba(148, 163, 184, 0.12); | | font-size:13px; |
| } | | line-height:1.25; |
| | } |
|
| |
|
| .mw-theme-light table.spiritvale-skill-infobox > tbody > tr, | | .sv-level-label[data-sv-helper-text]::after, |
| .mw-theme-light table.spiritvale-passive-infobox > tbody > tr { | | .sv-level-ui .sv-level-label:not([data-sv-helper-text])::after, |
| border-bottom: 1px solid rgba(55, 43, 84, 0.18); | | .mw-parser-output .sv-level-label[data-sv-helper-text]::after, |
| | .mw-parser-output .sv-level-ui .sv-level-label:not([data-sv-helper-text])::after{ |
| | font-size:13px; |
| | } |
| } | | } |