MediaWiki:Common.css/sandbox: Difference between revisions

From Evospace
Jump to navigation Jump to search
Dark frames for thumbnails, captions and galleries
Stop the dark skin text colour leaking into OOUI and VisualEditor dialogs
Line 588: Line 588:
li.gallerybox {
li.gallerybox {
     background: transparent;
     background: transparent;
}
/*==================== OOUI / VisualEditor dialogs ====================*/
.oo-ui-window-head,
.oo-ui-window-body,
.oo-ui-window-foot,
.oo-ui-popupWidget-body,
.oo-ui-menuSelectWidget,
.ve-ui-overlay,
.mw-editform,
.editOptions {
    color: #202122;
}
.oo-ui-window-body .oo-ui-labelElement-label,
.oo-ui-window-body .oo-ui-fieldLayout-header label,
.oo-ui-window-body .oo-ui-fieldLayout-help,
.oo-ui-processDialog-title,
.oo-ui-messageDialog-title,
.oo-ui-messageDialog-message,
.oo-ui-popupWidget-body .oo-ui-labelElement-label {
    color: inherit;
}
.oo-ui-window-body .oo-ui-inputWidget-input,
.mw-editform textarea,
.mw-editform input[type='text'] {
    color: #202122;
    background: #fff;
}
.oo-ui-window-body a,
.ve-ui-overlay a {
    color: #3366cc;
}
.oo-ui-window-body a.new,
.ve-ui-overlay a.new {
    color: #d73333;
}
}



Revision as of 11:53, 5 September 2026

/*======================================================================

 Evospace wiki skin — tokens shared with evospace.tech

======================================================================*/

root {
   color-scheme: dark;
   --bg: #2e2e2e;
   --bg-deep: #1a1a1a;
   --bg-base: #0a0a10;
   --steel: #3a3e44;
   --steel-light: #525860;
   --steel-mid: #434850;
   --steel-dark: #272a2f;
   --panel: #1a1a1a;
   --panel-raised: #242424;
   --panel-border: #4a4a4a;
   --recess: #151515;
   --bevel-light: rgba(255, 255, 255, 0.1);
   --bevel-dark: rgba(0, 0, 0, 0.65);
   --text: #ececec;
   --muted: #8a8a8a;
   --accent-subtle: rgba(72, 212, 255, 0.14);
   --accent-muted: #5ec4e8;
   --accent: #48d4ff;
   --accent-bright: #7ae4ff;
   --accent-deep: #1e9ec7;
   --link: #8fb4c6;
   --link-visited: #7d97a5;
   --steel-ink: #10141a;
   --danger: #c45c5c;
   --steel-texture:
       repeating-linear-gradient(0deg,
           rgba(255,255,255,.018) 0, rgba(255,255,255,.018) 1px,
           transparent 1px, transparent 3px,
           rgba(0,0,0,.04) 3px, rgba(0,0,0,.04) 4px,
           transparent 4px, transparent 7px),
       repeating-linear-gradient(90deg,
           transparent, transparent 2px,
           rgba(255,255,255,.012) 2px, rgba(255,255,255,.012) 3px);
   --steel-gloss:
       linear-gradient(180deg,
           rgba(255,255,255,.16) 0%, rgba(255,255,255,.07) 6%,
           rgba(255,255,255,.02) 14%, transparent 38%);
   --metal-rim:
       linear-gradient(90deg, transparent 0%,
           rgba(255,255,255,.22) 12%, rgba(255,255,255,.72) 50%,
           rgba(255,255,255,.22) 88%, transparent 100%);
   --steel-body:
       linear-gradient(180deg,
           var(--steel-light) 0%, var(--steel-mid) 14%,
           var(--steel) 32%, var(--steel) 100%);
   --mono: ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace;

}

/*==================== page ====================*/ body {

   background: var(--bg-base);
   color: var(--text);

}

.mw-body,

  1. content,
  2. mw-content-text {
   background: var(--panel);
   color: var(--text);
   border-color: var(--panel-border);

}

.mw-body {

   border: 1px solid var(--panel-border);
   border-radius: 6px;
   box-shadow: inset 1px 1px 0 var(--bevel-light), 0 6px 24px rgba(0,0,0,.5);

}

  1. mw-page-base {
   background: var(--bg-deep);

}

  1. mw-head-base,
  2. mw-navigation h2 {
   border: 0;

}

/*==================== typography ====================*/ .mw-body h1, .mw-body h2, .mw-body h3, .mw-body h4, .mw-body h5, .mw-body h6,

  1. firstHeading {
   color: var(--text);
   font-weight: 600;
   border: 0;

}

.mw-body h1,

  1. firstHeading {
   border-bottom: 1px solid var(--steel-mid);
   padding-bottom: .25em;

}

.mw-body h2 {

   border-bottom: 1px solid var(--steel-dark);
   padding-bottom: .2em;

}

hr {

   border: 0;
   border-top: 1px solid var(--steel-dark);

}

/*==================== links ====================*/ .mw-body a, .mw-body a.external,

  1. mw-panel a,
  2. footer a {
   color: var(--link);

}

.mw-body a:visited {

   color: var(--link-visited);

}

.mw-body a:hover,

  1. mw-panel a:hover {
   color: var(--accent-bright);
   text-decoration: underline;

}

.mw-body a.new,

  1. mw-panel a.new,

a.new:visited {

   color: var(--danger);

}

.mw-body a.external {

   background-image: none;
   padding-right: 0;

}

/*==================== personal bar ====================*/

  1. p-personal ul {
   color: var(--muted);

}

  1. p-personal li a,
  2. p-personal li a:visited,
  3. pt-anontalk a,
  4. pt-anonuserpage {
   color: #b6bcc2;

}

  1. p-personal li a:hover {
   color: var(--accent-bright);

}

  1. p-personal li.new a,
  2. p-personal li a.new {
   color: var(--danger);

}

/*==================== sidebar & tabs ====================*/

  1. mw-panel.vector-legacy-sidebar .vector-menu-heading {
   color: var(--muted);
   text-transform: uppercase;
   letter-spacing: .08em;
   font-size: .72rem;
   border: 0;
   background: none;

}

  1. mw-panel.vector-legacy-sidebar .vector-menu-content {
   background: none;

}

.vector-menu-tabs, .vector-menu-tabs ul, .vector-menu-tabs li, .vector-menu-tabs li a, .vector-menu-dropdown .vector-menu-heading {

   background-image: none;

}

.vector-menu-tabs li, .vector-menu-dropdown .vector-menu-heading {

   background: var(--steel-dark);
   box-shadow:
       inset 1px 0 0 var(--panel-border),
       inset -1px 0 0 var(--panel-border),
       inset 0 1px 0 var(--panel-border);
   border-radius: 4px 4px 0 0;

}

.vector-menu-tabs li.selected {

   background: linear-gradient(180deg, #737a83 0%, #5c636b 100%);

}

.vector-menu-tabs li a, .vector-menu-tabs li a span, .vector-menu-dropdown .vector-menu-heading {

   color: var(--link);

}

.vector-menu-tabs li.selected a, .vector-menu-tabs li.selected a span {

   color: #0d1116;
   font-weight: 600;

}

.vector-search-box-inner,

  1. searchform input,

.cdx-text-input__input {

   background: var(--recess) !important;
   border: 1px solid var(--panel-border) !important;
   color: var(--text) !important;
   border-radius: 4px;

}

.cdx-text-input__input::placeholder {

   color: var(--muted);

}

/*==================== steel frame — the shared panel look ====================*/ .infobox,

  1. toc,

.toc, .catlinks, table.recipe-table {

   background: var(--steel-gloss), var(--steel-texture), var(--steel-body) !important;
   border: 1px solid rgba(255,255,255,.1) !important;
   border-top-color: rgba(255,255,255,.28) !important;
   border-bottom-color: rgba(0,0,0,.55) !important;
   border-radius: 6px !important;
   padding: 4px !important;
   box-shadow:
       inset 0 1px 0 rgba(255,255,255,.3),
       inset 0 -1px 0 rgba(0,0,0,.6),
       0 2px 8px rgba(0,0,0,.4) !important;
   color: var(--text);
   position: relative;

}

.infobox::after,

  1. toc::after,

table.recipe-table::after {

   content: ;
   position: absolute;
   top: 1px;
   left: 10px;
   right: 10px;
   height: 1px;
   border-radius: 1px;
   background: var(--metal-rim);
   pointer-events: none;

}

.infobox caption a, table.recipe-table caption a {

   color: var(--steel-ink);

}

.infobox caption a:hover, table.recipe-table caption a:hover {

   color: #21506b;

}

/*==================== table of contents ====================*/

  1. toc,

.toc {

   display: inline-block;

}

  1. toc .toctitle,

.toc .toctitle {

   color: var(--steel-ink);
   text-align: left;
   padding: 2px 4px 6px;

}

  1. toc .toctitle a,

.toc .toctitle a,

  1. toc .toctogglelabel,

.toc .toctogglelabel {

   color: var(--steel-ink);
   opacity: .7;

}

  1. toc .toctitle a:hover,

.toc .toctitle a:hover,

  1. toc .toctogglelabel:hover {
   color: #21506b;
   opacity: 1;

}

  1. toc .tocnumber,

.toc .tocnumber {

   color: var(--muted);

}

  1. toc a:hover .tocnumber,

.toc a:hover .tocnumber {

   color: var(--text);

}

  1. toc ul,

.toc ul {

   background: var(--recess);
   border-radius: 5px;
   padding: .6em 1.2em;
   margin: 0;
   box-shadow: inset 2px 2px 6px rgba(0,0,0,.55), inset 0 -1px 0 rgba(255,255,255,.38);

}

/*==================== wikitables ====================*/ table.wikitable {

   background: var(--recess);
   color: var(--text);
   border: 1px solid var(--panel-border);
   border-collapse: collapse;
   border-radius: 6px;
   overflow: hidden;

}

table.wikitable > * > tr > th {

   background: var(--steel-body);
   background-image: var(--steel-gloss), var(--steel-texture), var(--steel-body);
   color: var(--steel-ink);
   border: 1px solid var(--steel-dark);
   text-align: left;

}

table.wikitable > * > tr > td {

   background: transparent;
   border: 1px solid var(--steel-dark);

}

table.wikitable > * > tr:nth-child(even) > td {

   background: rgba(255,255,255,.022);

}

/*==================== infobox ====================*/ .infobox {

   float: right;
   clear: right;
   margin: 0 0 1em 1em;
   width: 300px;
   border-collapse: separate !important;
   font-size: 90%;
   overflow: hidden;

}

.infobox th, .infobox td {

   background: var(--recess) !important;
   color: var(--text);
   border: 0 !important;
   padding: 6px !important;

}

.infobox th {

   color: var(--muted);
   font-weight: 600;
   text-transform: uppercase;
   letter-spacing: .06em;
   font-size: .78em;
   width: 40%;

}

.infobox tr {

   border: 0;

}

.infobox .image-link {

   display: flex;
   align-items: center;
   justify-content: center;
   gap: 6px;

}

.infobox .image-link img {

   max-width: 32px;
   max-height: 32px;
   display: inline-block;
   margin: 0;

}

/*==================== recipe cards ====================*/ .recipe-grid {

   display: grid;
   grid-template-columns: repeat(auto-fill, minmax(215px, 1fr));
   gap: 9px;
   align-items: stretch;
   margin: 10px 0;

}

table.recipe-table {

   display: flex !important;
   flex-direction: column;
   width: auto !important;
   min-width: 0;
   max-width: none;
   height: 100%;
   margin: 0;
   font-size: 85%;
   border-collapse: separate !important;

}

table.recipe-table caption, .infobox caption {

   color: var(--steel-ink);
   font-weight: 600;
   padding: 3px 7px;
   margin-bottom: 4px;
   text-align: left;
   background: linear-gradient(180deg, #6c737c 0%, #575e66 100%);
   border: 0;
   border-radius: 4px;
   display: flex;
   align-items: center;
   gap: 6px;

}

table.recipe-table tbody {

   display: flex;
   flex-direction: column;
   flex: 1;
   background: var(--recess);
   border-radius: 5px;
   padding: 4px;
   box-shadow: inset 2px 2px 6px rgba(0,0,0,.55), inset 0 -1px 0 rgba(255,255,255,.38);

}

table.recipe-table tr {

   display: flex;
   align-items: center;
   gap: 6px;
   border: 0;

}

table.recipe-table tr:last-child {

   margin-top: auto;

}

table.recipe-table th {

   display: block;
   width: 100%;
   background: none !important;
   color: var(--muted) !important;
   text-align: left !important;
   text-transform: uppercase;
   letter-spacing: .1em;
   font-size: .68rem !important;
   font-weight: 600 !important;
   padding: 6px 2px 2px !important;
   border: 0 !important;

}

table.recipe-table td {

   background: none !important;
   border: 0 !important;
   padding: 2px !important;
   color: var(--text);

}

table.recipe-table td:first-child {

   flex: 0 0 34px;
   width: 34px !important;
   height: 34px;
   display: flex;
   align-items: center;
   justify-content: center;
   background: rgba(0,0,0,.35) !important;
   border: 1px solid var(--steel-dark) !important;
   border-radius: 4px;

}

table.recipe-table td:nth-child(2) {

   flex: 1;
   width: auto !important;
   white-space: normal;
   line-height: 1.25;

}

table.recipe-table td[colspan="2"] {

   flex: 1;
   text-align: center;
   color: var(--muted);
   font-variant-numeric: tabular-nums;

}

table.recipe-table img {

   width: 28px !important;
   height: 28px !important;
   image-rendering: pixelated;

}

/*==================== translate language bar ====================*/ .mw-pt-languages {

   background: var(--recess) !important;
   border: 1px solid var(--steel-dark);
   border-radius: 6px;
   padding: 6px 10px;
   margin-bottom: 1em;
   color: var(--muted);
   box-shadow: inset 2px 2px 6px rgba(0,0,0,.5);

}

.mw-pt-languages-label {

   color: var(--muted);
   font-weight: 600;
   text-transform: uppercase;
   letter-spacing: .06em;
   font-size: .78em;

}

.mw-pt-languages-list a {

   color: var(--link);

}

.mw-pt-languages-list a:hover {

   color: var(--accent-bright);

}

.mw-pt-languages-ui, .mw-pt-languages-selected {

   color: var(--text);
   font-weight: 600;

}

.mw-pt-progress::after {

   background: var(--muted) !important;
   opacity: .5;

}

.mw-pt-progress--complete::after {

   background: var(--accent) !important;
   opacity: 1;

}

.mw-pt-languages-list a:empty {

   display: none;

}

.mw-pt-languages-list li:has(> a:empty) {

   display: none;

}

/*==================== images, thumbs, galleries ====================*/ figure[typeof~='mw:File/Thumb'], figure[typeof~='mw:File/Frame'], .thumbinner {

   background: var(--recess) !important;
   border: 1px solid var(--steel-dark) !important;
   border-radius: 6px;
   padding: 5px !important;
   color: var(--muted);

}

figure[typeof~='mw:File/Thumb'] > figcaption, figure[typeof~='mw:File/Frame'] > figcaption, .thumbcaption {

   background: transparent !important;
   color: var(--muted) !important;
   padding: 6px 3px 2px !important;
   line-height: 1.35;

}

figure[typeof~='mw:File/Thumb'] img, figure[typeof~='mw:File/Frame'] img, .thumbimage, img.thumbborder {

   border-color: var(--steel-dark) !important;
   background-color: transparent !important;
   border-radius: 3px;

}

.gallerybox div.thumb {

   background: var(--recess) !important;
   border: 1px solid var(--steel-dark) !important;
   border-radius: 6px;

}

.gallerytext, .gallerytext p {

   color: var(--muted);

}

li.gallerybox {

   background: transparent;

}

/*==================== OOUI / VisualEditor dialogs ====================*/ .oo-ui-window-head, .oo-ui-window-body, .oo-ui-window-foot, .oo-ui-popupWidget-body, .oo-ui-menuSelectWidget, .ve-ui-overlay, .mw-editform, .editOptions {

   color: #202122;

}

.oo-ui-window-body .oo-ui-labelElement-label, .oo-ui-window-body .oo-ui-fieldLayout-header label, .oo-ui-window-body .oo-ui-fieldLayout-help, .oo-ui-processDialog-title, .oo-ui-messageDialog-title, .oo-ui-messageDialog-message, .oo-ui-popupWidget-body .oo-ui-labelElement-label {

   color: inherit;

}

.oo-ui-window-body .oo-ui-inputWidget-input, .mw-editform textarea, .mw-editform input[type='text'] {

   color: #202122;
   background: #fff;

}

.oo-ui-window-body a, .ve-ui-overlay a {

   color: #3366cc;

}

.oo-ui-window-body a.new, .ve-ui-overlay a.new {

   color: #d73333;

}

/*==================== category bar ====================*/ .catlinks {

   padding: 4px !important;
   color: var(--muted);

}

.catlinks > div {

   background: var(--recess);
   border-radius: 5px;
   padding: 7px 10px;
   box-shadow: inset 2px 2px 6px rgba(0,0,0,.55), inset 0 -1px 0 rgba(255,255,255,.38);

}

.catlinks a {

   color: var(--accent);

}

.catlinks a:hover {

   color: var(--accent-bright);

}

/*==================== footer ====================*/

  1. footer,
  2. footer li,
  3. footer-info li {
   color: var(--muted);

}

  1. footer {
   border-top: 1px solid var(--steel-dark);

}