Template:Infobox software: Difference between revisions

From BOINC Projects
Jump to navigation Jump to search
No edit summary
Tag: Reverted
No edit summary
Tag: Manual revert
Line 1: Line 1:
/* ═══════════════════════════════════════════════════════
<includeonly><table class="infobox bs-infobox" style="width:300px; float:right; clear:right; margin:0 0 1em 1em; border-radius:6px; font-size:13px; line-height:1.5; border-collapse:separate; border-spacing:0; overflow:hidden;">
  BOINC Synergy — sitewide styles
<tr><th colspan="2" class="bs-infobox-title">{{{name|{{PAGENAME}}}}}</th></tr>
  MediaWiki:Common.css
{{#if:{{{logo|}}}|<tr><td colspan="2" class="bs-infobox-logo">[[File:{{{logo}}}|180px|center]]{{#if:{{{logo caption|}}}|<div class="bs-infobox-caption">{{{logo caption}}}</div>}}</td></tr>}}
═══════════════════════════════════════════════════════ */
{{#if:{{{screenshot|}}}|<tr><td colspan="2" class="bs-infobox-screenshot">[[File:{{{screenshot}}}|250px|center]]{{#if:{{{caption|}}}|<div class="bs-infobox-caption">{{{caption}}}</div>}}</td></tr>}}
{{#if:{{{status|}}}{{{category|}}}{{{compute|}}}{{{dependencies|}}}|<tr><th colspan="2" class="bs-infobox-section">Project</th></tr>}}
{{#if:{{{status|}}}|{{#ifeq:{{{status}}}|Active|<tr class="bs-infobox-active"><th class="bs-infobox-active">Status</th><td class="bs-infobox-active" style="font-weight:600;">{{{status}}}</td></tr>|<tr class="bs-infobox-inactive"><th class="bs-infobox-inactive">Status</th><td class="bs-infobox-inactive" style="font-weight:600;">{{{status}}}</td></tr>}}}}
{{#if:{{{category|}}}|<tr><th>Category</th><td>{{{category}}}</td></tr>}}
{{#if:{{{compute|}}}|<tr><th>Compute</th><td>{{{compute}}}</td></tr>}}
{{#if:{{{dependencies|}}}|<tr><th>Requires</th><td>{{{dependencies}}}</td></tr>}}
{{#if:{{{developer|}}}{{{author|}}}{{{sponsor|}}}{{{maintainer|}}}{{{released|}}}{{{completed|}}}{{{discontinued|}}}{{{repository|}}}|<tr><th colspan="2" class="bs-infobox-section">Development</th></tr>}}
{{#if:{{{developer|}}}|<tr><th style="width:110px;">Developer</th><td>{{{developer}}}</td></tr>}}
{{#if:{{{author|}}}|<tr><th>Author</th><td>{{{author}}}</td></tr>}}
{{#if:{{{sponsor|}}}|<tr><th>Sponsor</th><td>{{{sponsor}}}</td></tr>}}
{{#if:{{{maintainer|}}}|<tr><th>Maintainer</th><td>{{{maintainer}}}</td></tr>}}
{{#if:{{{released|}}}|<tr><th>Initial release</th><td>{{{released}}}</td></tr>}}
{{#if:{{{completed|}}}|<tr><th>Completed</th><td class="bs-infobox-ended">{{{completed}}}</td></tr>}}
{{#if:{{{discontinued|}}}|<tr><th>Discontinued</th><td class="bs-infobox-ended">{{{discontinued}}}</td></tr>}}
{{#if:{{{repository|}}}|<tr><th>Repository</th><td>{{{repository}}}</td></tr>}}
{{#if:{{{programming language|}}}{{{operating system|}}}{{{size|}}}|<tr><th colspan="2" class="bs-infobox-section">Software</th></tr>}}
{{#if:{{{programming language|}}}|<tr><th style="width:110px;">Written in</th><td>{{{programming language}}}</td></tr>}}
{{#if:{{{operating system|}}}|<tr><th>Operating system</th><td>{{{operating system}}}</td></tr>}}
{{#if:{{{size|}}}|<tr><th>Size</th><td>{{{size}}}</td></tr>}}
{{#if:{{{stats as of|}}}{{{average performance|}}}{{{active users|}}}{{{total users|}}}{{{active hosts|}}}{{{total hosts|}}}|<tr><th colspan="2" class="bs-infobox-section">BOINC statistics</th></tr>}}
{{#if:{{{stats as of|}}}|<tr><th style="width:110px;" class="bs-infobox-statsdate">Stats as of</th><td class="bs-infobox-statsdate" style="font-weight:600;">{{{stats as of}}}</td></tr>}}
{{#if:{{{average performance|}}}|<tr><th>Performance</th><td>{{{average performance}}}</td></tr>}}
{{#if:{{{active users|}}}|<tr><th>Active users</th><td>{{formatnum:{{{active users}}}}}</td></tr>}}
{{#if:{{{total users|}}}|<tr><th>Total users</th><td>{{formatnum:{{{total users}}}}}</td></tr>}}
{{#if:{{{active hosts|}}}|<tr><th>Active hosts</th><td>{{formatnum:{{{active hosts}}}}}</td></tr>}}
{{#if:{{{total hosts|}}}|<tr><th>Total hosts</th><td>{{formatnum:{{{total hosts}}}}}</td></tr>}}
{{#if:{{{rac|}}}{{{credit per day|}}}{{{gpu performance|}}}{{{cpu performance|}}}|<tr><th colspan="2" class="bs-infobox-section">Analytics</th></tr>}}
{{#if:{{{rac|}}}|<tr><th style="width:110px;">RAC</th><td>{{formatnum:{{{rac}}}}}</td></tr>}}
{{#if:{{{credit per day|}}}|<tr><th>Credit/day</th><td>{{formatnum:{{{credit per day}}}}}</td></tr>}}
{{#if:{{{gpu performance|}}}|<tr><th>GPU performance</th><td>{{{gpu performance}}}</td></tr>}}
{{#if:{{{cpu performance|}}}|<tr><th>CPU performance</th><td>{{{cpu performance}}}</td></tr>}}
{{#if:{{{website|}}}{{{license|}}}|<tr><th colspan="2" class="bs-infobox-section">Metadata</th></tr>}}
{{#if:{{{website|}}}|<tr><th style="width:110px;">Website</th><td>{{{website}}}</td></tr>}}
{{#if:{{{license|}}}|<tr><th>License</th><td>{{{license}}}</td></tr>}}
</table></includeonly><noinclude>
== Template:Infobox software ==


/* ── FONT ───────────────────────────────────────────── */
Modern BOINC-oriented infobox template for distributed computing and software project articles.
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500&display=swap');


body, .mw-body, .mw-body-content {
=== Parameters ===
    font-family: 'Inter', sans-serif;
}


/* ── CSS VARIABLES — light mode ─────────────────────── */
{| class="wikitable"
:root {
! Parameter !! Description !! Required
    /* purple ramp */
|-
    --bs-purple-50: #EEEDFE;
| <code>name</code> || Software name (defaults to page name) || No
    --bs-purple-200: #AFA9EC;
|-
    --bs-purple-400: #534AB7;
| <code>logo</code> || Logo filename || No
    --bs-purple-800: #3C3489;
|-
    --bs-purple-900: #26215C;
| <code>logo caption</code> || Caption below logo || No
|-
| <code>screenshot</code> || Screenshot filename || No
|-
| <code>caption</code> || Caption below screenshot || No
|-
| colspan="3" style="background:#eaecf0; text-align:center;" | '''Project'''
|-
| <code>status</code> || Active, Completed, etc. Green background when "Active", red otherwise || No
|-
| <code>category</code> || Research category (e.g. Astrophysics, Mathematics) || No
|-
| <code>compute</code> || Processing type: CPU, GPU, or CPU & GPU || No
|-
| <code>dependencies</code> || Additional software required (e.g. VirtualBox, CUDA, Git) || No
|-
| colspan="3" style="background:#eaecf0; text-align:center;" | '''Development'''
|-
| <code>developer</code> || Developer name || No
|-
| <code>author</code> || Original author || No
|-
| <code>sponsor</code> || Sponsoring organization || No
|-
| <code>maintainer</code> || Current maintainer || No
|-
| <code>released</code> || Initial release date || No
|-
| <code>completed</code> || Completion date or status (shown in red) || No
|-
| <code>discontinued</code> || Discontinuation date (shown in red) || No
|-
| <code>repository</code> || Source code repository link || No
|-
| colspan="3" style="background:#eaecf0; text-align:center;" | '''Software'''
|-
| <code>programming language</code> || Language(s) the software is written in || No
|-
| <code>operating system</code> || Supported operating systems || No
|-
| <code>size</code> || Download/install size || No
|-
| colspan="3" style="background:#eaecf0; text-align:center;" | '''BOINC statistics'''
|-
| <code>stats as of</code> || Date the statistics below were recorded || No
|-
| <code>average performance</code> || Average FLOPS or equivalent || No
|-
| <code>active users</code> || Current active user count || No
|-
| <code>total users</code> || All-time total users || No
|-
| <code>active hosts</code> || Current active host count || No
|-
| <code>total hosts</code> || All-time total hosts || No
|-
| colspan="3" style="background:#eaecf0; text-align:center;" | '''Analytics'''
|-
| <code>rac</code> || Recent Average Credit || No
|-
| <code>credit per day</code> || Credits granted per day || No
|-
| <code>gpu performance</code> || GPU-specific performance metric || No
|-
| <code>cpu performance</code> || CPU-specific performance metric || No
|-
| colspan="3" style="background:#eaecf0; text-align:center;" | '''Metadata'''
|-
| <code>website</code> || Official website URL || No
|-
| <code>license</code> || Software license || No
|}


    /* teal ramp */
=== Full example ===
    --bs-teal-50:  #E1F5EE;
    --bs-teal-200: #5DCAA5;
    --bs-teal-400: #1D9E75;
    --bs-teal-800: #085041;


    /* coral ramp */
<pre>
    --bs-coral-50:  #FAECE7;
{{Infobox software
    --bs-coral-200: #F0997B;
| name                = Einstein@Home
    --bs-coral-400: #D85A30;
| logo                = Ein.jpg
    --bs-coral-800: #4A1B0C;
| logo caption        = Einstein@Home logo
| screenshot          = [email protected]
| caption              = Einstein@Home screensaver


    /* blue ramp */
| status              = Active
    --bs-blue-50:  #E6F1FB;
| category            = Astrophysics
    --bs-blue-200: #85B7EB;
| compute              = CPU & GPU
    --bs-blue-400: #378ADD;
| dependencies        = None
    --bs-blue-800: #042C53;


    /* green ramp */
| developer            = Bruce Allen
    --bs-green-50:  #EAF3DE;
| author              = Bruce Allen
    --bs-green-200: #C0DD97;
| sponsor              = Max Planck Society
    --bs-green-800: #173404;
| maintainer          = Einstein@Home team
| released            = {{Start date and age|2005|02|19}}
| completed            = No
| discontinued        =
| repository          = {{URL|https://git.ligo.org/einsteinathome}}


     /* amber ramp */
| programming language = C, C++
    --bs-amber-50:  #FAEEDA;
| operating system     = Windows, Linux, macOS, Android
    --bs-amber-200: #FAC775;
| size                = ~50 MB
    --bs-amber-800: #412402;


    /* pink ramp */
| stats as of          = {{Start date and age|2026|05|19}}
    --bs-pink-50: #FBEAF0;
| average performance = 21 PFLOPS
    --bs-pink-200: #F4C0D1;
| active users        = 14531
    --bs-pink-800: #4B1528;
| total users          = 1061585
| active hosts        = 24489
| total hosts          = 8237726


    /* gray ramp */
| rac                  = 18500000
    --bs-gray-50:  #F1EFE8;
| credit per day      = 950000
    --bs-gray-200: #D3D1C7;
| gpu performance      = 15 PFLOPS
    --bs-gray-400: #888780;
| cpu performance      = 6 PFLOPS
    --bs-gray-800: #2C2C2A;
    --bs-gray-850: #444441;


    /* semantic */
| website              = {{URL|https://einsteinathome.org/}}
    --bs-page-bg:      #ffffff;
| license              = GPL-2.0-or-later
    --bs-text-primary: #1a1a1a;
}}
    --bs-text-muted:  #555555;
</pre>


    /* link colours — light mode */
=== Minimal example ===
    --bs-link:        #4840A3;  /* purple-400, darkened */
    --bs-link-hover:  #302A74;  /* purple-800, darkened */
    --bs-link-visited: #6B63C8;  /* mid-purple, darkened */
}


/* ── CSS VARIABLES — dark mode ──────────────────────── */
<pre>
@media (prefers-color-scheme: dark) {
{{Infobox software
    :root {
| name                = My Project
        --bs-purple-50:  #1e1a3a;
| status              = Active
        --bs-purple-200: #534AB7;
| category            = Mathematics
        --bs-purple-400: #AFA9EC;
| compute              = CPU
        --bs-purple-800: #CECBF6;
        --bs-purple-900: #EEEDFE;


        --bs-teal-50:  #0a2a1f;
| developer            = Jane Smith
        --bs-teal-200: #0F6E56;
| released            = {{Start date and age|2020|01|01}}
        --bs-teal-400: #5DCAA5;
        --bs-teal-800: #9FE1CB;


        --bs-coral-50:  #2a100a;
| operating system    = Windows, Linux, macOS
        --bs-coral-200: #993C1D;
        --bs-coral-400: #F0997B;
        --bs-coral-800: #F5C4B3;


        --bs-blue-50: #091824;
| website              = {{URL|https://example.org/}}
        --bs-blue-200: #185FA5;
| license              = MIT
        --bs-blue-400: #85B7EB;
}}
        --bs-blue-800: #B5D4F4;
</pre>


        --bs-green-50:  #111f08;
[[Category:Infobox templates]]
        --bs-green-200: #3B6D11;
</noinclude>
        --bs-green-800: #C0DD97;
 
        --bs-amber-50:  #1f1608;
        --bs-amber-200: #854F0B;
        --bs-amber-800: #FAC775;
 
        --bs-pink-50:  #200d14;
        --bs-pink-200: #72243E;
        --bs-pink-800: #F4C0D1;
 
        --bs-gray-50:  #1a1a18;
        --bs-gray-200: #444441;
        --bs-gray-400: #888780;
        --bs-gray-800: #D3D1C7;
        --bs-gray-850: #B4B2A9;
 
        --bs-page-bg:      #121212;
        --bs-text-primary: #e8e8e8;
        --bs-text-muted:  #aaaaaa;
 
        /* link colours — dark mode */
        --bs-link:        #AFA9EC;  /* purple-200: soft lilac, readable on dark */
        --bs-link-hover:  #CECBF6;  /* purple-800 (dark-mode): lighter on hover */
        --bs-link-visited: #7F77DD;  /* mid-purple, distinct from unvisited */
    }
}
 
/* ── LINKS ──────────────────────────────────────────── */
/* Scope to .mw-body-content so MediaWiki nav chrome is unaffected */
.mw-body-content a,
.mw-body-content a:link {
    color: var(--bs-link);
    text-decoration: none;
}
 
.mw-body-content a:visited {
    color: var(--bs-link-visited);
}
 
.mw-body-content a:hover,
.mw-body-content a:focus {
    color: var(--bs-link-hover);
    text-decoration: underline;
    text-underline-offset: 2px;
}
 
/* ── INFOBOX — suppress phantom leading paragraphs ── */
/* MediaWiki generates <p><br></p> nodes from template newlines */
#mw-content-text > .mw-parser-output > p:empty,
#mw-content-text > .mw-parser-output > p:has(> br:only-child) {
    display: none;
    margin: 0;
    padding: 0;
}
 
/* hide leading breaks generated by template newlines */
#mw-content-text > .mw-parser-output > br:first-child,
#mw-content-text > .mw-parser-output > p:first-child > br:only-child {
    display: none;
}
 
/* ══════════════════════════════════════════════════════
  HERO BANNER
══════════════════════════════════════════════════════ */
.bs-hero {
    border: 0.5px solid var(--bs-purple-200);
    border-radius: 12px;
    background: linear-gradient(135deg, var(--bs-purple-50) 0%, var(--bs-teal-50) 100%);
    padding: 2rem 2rem 1.5rem;
    margin-bottom: 1.5rem;
    text-align: center;
}
 
.bs-hero-title {
    font-size: 2rem;
    font-weight: 500;
    color: var(--bs-purple-800);
    letter-spacing: -0.5px;
    margin: 0.75rem 0 0.25rem;
}
 
.bs-hero-subtitle {
    font-size: 1.05rem;
    color: var(--bs-purple-400);
    margin-bottom: 1rem;
}
 
.bs-hero-btn {
    display: inline-block;
    border: 2px solid var(--bs-purple-400);
    border-radius: 8px;
    padding: 0.6rem 1.6rem;
    font-size: 1.1rem;
    font-weight: 500;
    margin-bottom: 0.5rem;
    background: var(--bs-purple-50);
}
 
.bs-hero-note {
    font-size: 0.85rem;
    color: var(--bs-purple-400);
    margin-top: 0.5rem;
}
 
/* ══════════════════════════════════════════════════════
  STATS RIBBON
══════════════════════════════════════════════════════ */
.bs-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-bottom: 1.5rem;
    justify-content: center;
}
 
.bs-stat {
    flex: 1;
    min-width: 140px;
    border-radius: 8px;
    padding: 0.75rem 1rem;
    text-align: center;
    border: 0.5px solid;
}
 
.bs-stat-number {
    font-size: 1.6rem;
    font-weight: 500;
}
 
.bs-stat-label {
    font-size: 0.8rem;
}
 
.bs-stat-purple {
    background: var(--bs-purple-50);
    border-color: var(--bs-purple-200);
}
.bs-stat-purple .bs-stat-number { color: var(--bs-purple-800); }
.bs-stat-purple .bs-stat-label  { color: var(--bs-purple-400); }
 
.bs-stat-teal {
    background: var(--bs-teal-50);
    border-color: var(--bs-teal-200);
}
.bs-stat-teal .bs-stat-number { color: var(--bs-teal-800); }
.bs-stat-teal .bs-stat-label  { color: var(--bs-teal-400); }
 
.bs-stat-coral {
    background: var(--bs-coral-50);
    border-color: var(--bs-coral-200);
}
.bs-stat-coral .bs-stat-number { color: var(--bs-coral-800); }
.bs-stat-coral .bs-stat-label  { color: var(--bs-coral-400); }
 
.bs-stat-blue {
    background: var(--bs-blue-50);
    border-color: var(--bs-blue-200);
}
.bs-stat-blue .bs-stat-number { color: var(--bs-blue-800); }
.bs-stat-blue .bs-stat-label  { color: var(--bs-blue-400); }
 
/* ══════════════════════════════════════════════════════
  DEFINITION CALLOUT
══════════════════════════════════════════════════════ */
.bs-definition {
    border-left: 3px solid var(--bs-purple-400);
    padding: 0.75rem 1.25rem;
    margin-bottom: 1.5rem;
    background: var(--bs-purple-50);
    border-radius: 0 8px 8px 0;
    color: var(--bs-purple-800);
}
 
.bs-definition-label {
    font-size: 0.85rem;
    color: var(--bs-purple-400);
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    display: block;
    margin-bottom: 0.5rem;
}
 
/* ══════════════════════════════════════════════════════
  CTA BOX
══════════════════════════════════════════════════════ */
.bs-cta {
    border: 1.5px solid var(--bs-purple-400);
    border-radius: 10px;
    padding: 1rem 1.5rem;
    margin-bottom: 2rem;
    background: var(--bs-page-bg);
}
 
.bs-cta-title {
    font-size: 1rem;
    font-weight: 500;
    color: var(--bs-purple-800);
    margin-bottom: 0.4rem;
}
 
.bs-cta-body {
    font-size: 0.9rem;
    color: var(--bs-text-muted);
    margin-bottom: 0.75rem;
}
 
/* ══════════════════════════════════════════════════════
  COLLAPSIBLE PROJECT GROUPS
══════════════════════════════════════════════════════ */
.bs-group {
    border-radius: 8px;
    padding: 1rem 1.25rem;
    margin-bottom: 1rem;
    border: 0.5px solid;
}
 
.bs-group-toggle {
    font-weight: 500;
    font-size: 1rem;
}
 
/* colour variants — color set on the group itself covers all untagged child text */
.bs-group-teal  { background: var(--bs-teal-50);  border-color: var(--bs-teal-200);  color: var(--bs-teal-800);  }
.bs-group-teal  .bs-group-toggle { color: var(--bs-teal-800); }
 
.bs-group-purple { background: var(--bs-purple-50); border-color: var(--bs-purple-200); color: var(--bs-purple-800); }
.bs-group-purple .bs-group-toggle { color: var(--bs-purple-800); }
 
.bs-group-blue  { background: var(--bs-blue-50);  border-color: var(--bs-blue-200);  color: var(--bs-blue-800);  }
.bs-group-blue  .bs-group-toggle { color: var(--bs-blue-800); }
 
.bs-group-green  { background: var(--bs-green-50);  border-color: var(--bs-green-200);  color: var(--bs-green-800);  }
.bs-group-green  .bs-group-toggle { color: var(--bs-green-800); }
 
.bs-group-amber  { background: var(--bs-amber-50);  border-color: var(--bs-amber-200);  color: var(--bs-amber-800);  }
.bs-group-amber  .bs-group-toggle { color: var(--bs-amber-800); }
 
.bs-group-coral  { background: var(--bs-coral-50);  border-color: var(--bs-coral-200);  color: var(--bs-coral-800);  }
.bs-group-coral  .bs-group-toggle { color: var(--bs-coral-800); }
 
.bs-group-gray  { background: var(--bs-gray-50);  border-color: var(--bs-gray-200);  color: var(--bs-gray-800);  }
.bs-group-gray  .bs-group-toggle { color: var(--bs-gray-800); }
 
.bs-group-pink  { background: var(--bs-pink-50);  border-color: var(--bs-pink-200);  color: var(--bs-pink-800);  }
.bs-group-pink  .bs-group-toggle { color: var(--bs-pink-800); }
 
/* links inside groups — use the group's own ramp so they're readable on coloured backgrounds */
.bs-group-teal  .mw-body-content a,
.bs-group-teal  .mw-body-content a:link    { color: var(--bs-teal-800); }
.bs-group-teal  .mw-body-content a:visited { color: var(--bs-teal-400); }
.bs-group-teal  .mw-body-content a:hover  { color: var(--bs-teal-800); text-decoration: underline; }
 
.bs-group-purple .mw-body-content a,
.bs-group-purple .mw-body-content a:link    { color: var(--bs-purple-800); }
.bs-group-purple .mw-body-content a:visited { color: var(--bs-purple-400); }
.bs-group-purple .mw-body-content a:hover  { color: var(--bs-purple-800); text-decoration: underline; }
 
.bs-group-blue  .mw-body-content a,
.bs-group-blue  .mw-body-content a:link    { color: var(--bs-blue-800); }
.bs-group-blue  .mw-body-content a:visited { color: var(--bs-blue-400); }
.bs-group-blue  .mw-body-content a:hover  { color: var(--bs-blue-800); text-decoration: underline; }
 
.bs-group-green  .mw-body-content a,
.bs-group-green  .mw-body-content a:link    { color: var(--bs-green-800); }
.bs-group-green  .mw-body-content a:visited { color: var(--bs-green-200); }
.bs-group-green  .mw-body-content a:hover  { color: var(--bs-green-800); text-decoration: underline; }
 
.bs-group-amber  .mw-body-content a,
.bs-group-amber  .mw-body-content a:link    { color: var(--bs-amber-800); }
.bs-group-amber  .mw-body-content a:visited { color: var(--bs-amber-200); }
.bs-group-amber  .mw-body-content a:hover  { color: var(--bs-amber-800); text-decoration: underline; }
 
.bs-group-coral  .mw-body-content a,
.bs-group-coral  .mw-body-content a:link    { color: var(--bs-coral-800); }
.bs-group-coral  .mw-body-content a:visited { color: var(--bs-coral-400); }
.bs-group-coral  .mw-body-content a:hover  { color: var(--bs-coral-800); text-decoration: underline; }
 
.bs-group-gray  .mw-body-content a,
.bs-group-gray  .mw-body-content a:link    { color: var(--bs-gray-800); }
.bs-group-gray  .mw-body-content a:visited { color: var(--bs-gray-400); }
.bs-group-gray  .mw-body-content a:hover  { color: var(--bs-gray-800); text-decoration: underline; }
 
.bs-group-pink  .mw-body-content a,
.bs-group-pink  .mw-body-content a:link    { color: var(--bs-pink-800); }
.bs-group-pink  .mw-body-content a:visited { color: var(--bs-pink-200); }
.bs-group-pink  .mw-body-content a:hover  { color: var(--bs-pink-800); text-decoration: underline; }
 
/* project list table inside groups */
.bs-project-table {
    width: 100%;
    margin-top: 0.75rem;
    border: none;
    background: transparent;
}
 
.bs-project-table td {
    width: 50%;
    vertical-align: top;
    padding: 0.2rem 0.5rem 0.2rem 0;
    border: none;
    background: transparent;
}
 
.bs-group-note {
    font-size: 0.85rem;
    margin: 0.5rem 0;
}
 
.bs-group-teal  .bs-group-note { color: var(--bs-teal-800); }
.bs-group-purple .bs-group-note { color: var(--bs-purple-800); }
.bs-group-amber  .bs-group-note { color: var(--bs-amber-800); }
.bs-group-gray  .bs-group-note { color: var(--bs-gray-850); }
.bs-group-pink  .bs-group-note { color: var(--bs-pink-800); }
 
.bs-group-footer {
    font-size: 0.8rem;
    margin-top: 0.75rem;
}
 
.bs-group-amber .bs-group-footer { color: var(--bs-amber-400); }
.bs-group-gray  .bs-group-footer { color: var(--bs-gray-400);  }
 
/* ══════════════════════════════════════════════════════
  HOW TO PARTICIPATE CARDS
══════════════════════════════════════════════════════ */
.bs-steps {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin: 0.75rem 0 1.5rem;
}
 
.bs-step {
    flex: 1;
    min-width: 180px;
    border-radius: 8px;
    padding: 0.9rem 1rem;
    border: 0.5px solid;
}
 
.bs-step-title {
    font-weight: 500;
    margin-bottom: 0.4rem;
}
 
.bs-step-body {
    font-size: 0.85rem;
}
 
.bs-step-purple {
    background: var(--bs-purple-50);
    border-color: var(--bs-purple-200);
}
.bs-step-purple .bs-step-title { color: var(--bs-purple-800); }
.bs-step-purple .bs-step-body  { color: var(--bs-purple-400); }
 
.bs-step-teal {
    background: var(--bs-teal-50);
    border-color: var(--bs-teal-200);
}
.bs-step-teal .bs-step-title { color: var(--bs-teal-800); }
.bs-step-teal .bs-step-body  { color: var(--bs-teal-400); }
 
.bs-step-blue {
    background: var(--bs-blue-50);
    border-color: var(--bs-blue-200);
}
.bs-step-blue .bs-step-title { color: var(--bs-blue-800); }
.bs-step-blue .bs-step-body  { color: var(--bs-blue-400); }
 
/* ══════════════════════════════════════════════════════
  FOOTER BAR
══════════════════════════════════════════════════════ */
.bs-footer-bar {
    border-top: 0.5px solid var(--bs-gray-200);
    margin-top: 1.5rem;
    padding-top: 0.75rem;
    font-size: 0.8rem;
    color: var(--bs-gray-400);
    text-align: center;
}
 
/* ══════════════════════════════════════════════════════
  INFOBOX — light mode base
══════════════════════════════════════════════════════ */
table.bs-infobox {
    background: #ffffff;
    color: #202122;
    border: 1px solid #c8ccd1;
    box-shadow: 0 1px 3px rgba(0,0,0,0.08);
}
 
table.bs-infobox th,
table.bs-infobox td {
    background: #ffffff;
    color: #202122;
    padding: 4px 8px;
    border: none;
}
 
.bs-infobox-title {
    background: #2c3e50 !important;
    color: #ffffff !important;
    padding: 12px !important;
    font-size: 20px !important;
    text-align: center !important;
    font-weight: 700 !important;
}
 
.bs-infobox-section {
    background: #eaecf0 !important;
    color: #202122 !important;
    padding: 6px !important;
    text-align: center !important;
    font-size: 11px !important;
    text-transform: uppercase !important;
}
 
.bs-infobox-logo,
.bs-infobox-screenshot {
    text-align: center;
    padding: 12px;
    background: #f8f9fa !important;
    color: #202122 !important;
}
 
.bs-infobox-caption {
    font-size: 11px;
    color: #54595d;
    margin-top: 6px;
}
 
/* active status — green */
tr.bs-infobox-active th,
tr.bs-infobox-active td,
th.bs-infobox-active,
td.bs-infobox-active {
    background: #d4edda !important;
    color: #155724 !important;
}
 
/* inactive/other status — red */
tr.bs-infobox-inactive th,
tr.bs-infobox-inactive td,
th.bs-infobox-inactive,
td.bs-infobox-inactive {
    background: #f8d7da !important;
    color: #721c24 !important;
}
 
/* completed / discontinued dates */
td.bs-infobox-ended {
    color: #b32424 !important;
    font-weight: 600 !important;
}
 
/* stats as of — purple tint */
th.bs-infobox-statsdate,
td.bs-infobox-statsdate {
    background: #e8d5f5 !important;
    color: #4a235a !important;
}
 
/* ══════════════════════════════════════════════════════
  DARK MODE — ARTICLE PAGES & VECTOR LEGACY CHROME
  Applies when the OS/browser is set to dark mode.
  Targets skin-vector (legacy 2010) selectors.
══════════════════════════════════════════════════════ */
@media (prefers-color-scheme: dark) {
 
    /* ── Page shell ─────────────────────────────────── */
    html,
    body {
        background-color: #1a1a18;
        color: var(--bs-text-primary);
        color-scheme: dark;
    }
 
    /* ── Article content area ───────────────────────── */
    #content,
    .mw-body,
    .mw-body-content {
        background-color: #121212;
        border-color: #333331;
    }
 
    /* ensure core text elements get the light colour in dark mode */
    .mw-body-content p,
    .mw-body-content li,
    .mw-body-content dt,
    .mw-body-content dd {
        color: var(--bs-text-primary);
    }
 
    /* headings */
    #content h1, #content h2, #content h3,
    #content h4, #content h5, #content h6 {
        color: var(--bs-purple-900);
        border-bottom-color: #333331;
    }
 
    /* article title */
    #firstHeading {
        color: var(--bs-purple-900);
        border-bottom-color: #333331;
    }
 
    /* horizontal rules, table borders */
    #content hr  { border-color: #333331; }
 
    /* standard wikitables */
    #content table.wikitable,
    #content table.wikitable > * > tr > th,
    #content table.wikitable > * > tr > td {
        background-color: #1e1e1c;
        color: var(--bs-text-primary);
        border-color: #3a3a38;
    }
    #content table.wikitable > * > tr > th {
        background-color: #2a2a28;
        color: var(--bs-gray-800);
    }
 
    /* infoboxes and floated tables */
    #content table {
        color: var(--bs-text-primary);
    }
 
    /* code / pre blocks */
    #content pre,
    #content code {
        background-color: #1e1e1c;
        color: #c8c4e8;
        border-color: #333331;
    }
 
    /* blockquotes */
    #content blockquote {
        border-left-color: var(--bs-purple-200);
        color: var(--bs-text-muted);
    }
 
    /* ── Tabs (article / talk / edit / history) ─────── */
    #p-cactions,
    div#mw-head {
        background-color: #1a1a18;
    }
 
    /* inactive tabs — both namespaces (article/talk) and actions (edit/history/more) */
    #p-cactions li a,
    #p-namespaces li a,
    #ca-nstab-main a,
    #ca-talk a,
    #ca-edit a,
    #ca-ve-edit a,
    #ca-viewsource a,
    #ca-history a,
    #ca-watch a,
    li.collapsible a,
    #mw-head .vectorTabs li a,
    #mw-head .vectorMenu li a {
        background-color: #252523 !important;
        color: #b0aeA6 !important;
        border-color: #333331 !important;
    }
 
    /* active / selected tab */
    #p-cactions li.selected a,
    #p-namespaces li.selected a,
    #mw-head .vectorTabs li.selected a {
        background-color: #121212 !important;
        color: var(--bs-purple-900) !important;
        border-bottom-color: #121212 !important;
    }
 
    /* tab hover */
    #p-cactions li a:hover,
    #p-namespaces li a:hover,
    #mw-head .vectorTabs li a:hover,
    #mw-head .vectorMenu li a:hover {
        background-color: #2e2e2c !important;
        color: var(--bs-purple-400) !important;
    }
 
    /* tab background strip */
    #mw-head-base,
    div#mw-head-base {
        background-color: #252523;
        border-bottom: 1px solid #333331;
    }
 
    /* ── Image frames & captions ────────────────────── */
    /* Dark mode for image frames is deferred — caption text darkened via base styles instead */
 
    /* ── Watchlist star ─────────────────────────────── */
    #ca-watch a,
    #ca-unwatch a,
    li#ca-watch,
    li#ca-unwatch {
        background-color: #252523 !important;
        border-color: #333331 !important;
    }
 
    #ca-watch img,
    #ca-unwatch img,
    #ca-watch span,
    #ca-unwatch span {
        background-color: transparent !important;
    }
 
 
    #mw-panel,
    div#mw-panel {
        background-color: #1a1a18;
    }
 
    /* sidebar portlet headings (Navigation, Tools, etc.) */
    #mw-panel .portal h3 {
        color: var(--bs-gray-400);
        border-bottom: 1px solid #2e2e2c;
    }
 
    /* sidebar links */
    #mw-panel .portal a {
        color: var(--bs-link);
    }
    #mw-panel .portal a:visited {
        color: var(--bs-link-visited);
    }
    #mw-panel .portal a:hover {
        color: var(--bs-link-hover);
        text-decoration: underline;
    }
 
    /* ── Top toolbar / search bar ───────────────────── */
    #mw-head {
        background-color: #1a1a18;
        border-bottom: 1px solid #2e2e2c;
    }
 
    /* search input */
    #searchInput,
    #searchform input[type="search"],
    #searchform input[type="text"] {
        background-color: #252523;
        color: var(--bs-text-primary);
        border-color: #3a3a38;
    }
    #searchInput::placeholder {
        color: var(--bs-text-muted);
    }
 
    /* search button */
    #mw-searchButton,
    #searchButton {
        background-color: #252523;
        border-color: #3a3a38;
        color: var(--bs-gray-800);
    }
 
    /* personal tools (login, preferences, etc.) */
    #pt-login a,
    #pt-userpage a,
    #pt-preferences a,
    #pt-logout a,
    #p-personal a {
        color: var(--bs-link);
    }
    #p-personal a:hover {
        color: var(--bs-link-hover);
    }
 
    /* ── Site footer ────────────────────────────────── */
    #footer {
        background-color: #1a1a18;
        border-top: 1px solid #2e2e2c;
        color: var(--bs-text-muted);
    }
    #footer a      { color: var(--bs-link); }
    #footer a:hover { color: var(--bs-link-hover); }
 
    /* ── Miscellaneous chrome ───────────────────────── */
 
    /* edit notices, system messages */
    .mw-editsection a          { color: var(--bs-link); }
    .mw-editsection a:hover    { color: var(--bs-link-hover); }
 
    /* category links at page bottom */
    #catlinks {
        background-color: #1e1e1c;
        border-color: #333331;
        color: var(--bs-text-muted);
    }
    #catlinks a      { color: var(--bs-link); }
    #catlinks a:hover { color: var(--bs-link-hover); }
 
    /* TOC */
    #toc {
        background-color: #1e1e1c;
        border-color: #333331;
        color: var(--bs-text-primary);
    }
    #toc a      { color: var(--bs-link); }
    #toc a:hover { color: var(--bs-link-hover); }
 
    /* notification / sitenotice bar */
    #siteNotice,
    #centralNotice {
        background-color: #1e1a3a;
        border-color: var(--bs-purple-200);
        color: var(--bs-purple-900);
    }
 
    /* diff view */
    .diff-addedline  { background-color: #0d2b0d; color: #b8e6b8; }
    .diff-deletedline { background-color: #2b0d0d; color: #e6b8b8; }
    .diff-context    { background-color: #1e1e1c; color: var(--bs-text-muted); }
 
    /* ── Infobox ────────────────────────────────────── */
    table.bs-infobox {
        background: #1e1e1c !important;
        color: var(--bs-text-primary) !important;
        border-color: #3a3a38 !important;
        box-shadow: 0 1px 3px rgba(0,0,0,0.4) !important;
    }
 
    table.bs-infobox th,
    table.bs-infobox td {
        background: #1e1e1c !important;
        color: var(--bs-text-primary) !important;
        border-color: #2e2e2c !important;
    }
 
    .bs-infobox-title {
        background: #1e1a3a !important;
        color: var(--bs-purple-900) !important;
    }
 
    .bs-infobox-section {
        background: #323230 !important;
        color: var(--bs-gray-850) !important;
        border-top: 1px solid #3a3a38 !important;
        border-bottom: 1px solid #3a3a38 !important;
    }
 
    .bs-infobox-logo,
    .bs-infobox-screenshot {
        background: #252523 !important;
        color: var(--bs-text-primary) !important;
    }
 
    .bs-infobox-caption {
        color: var(--bs-text-muted) !important;
    }
 
    /* active status — dark green */
    tr.bs-infobox-active th,
    tr.bs-infobox-active td,
    th.bs-infobox-active,
    td.bs-infobox-active {
        background: #0d2b0d !important;
        color: #7ee8a2 !important;
    }
 
    /* inactive status — dark red */
    tr.bs-infobox-inactive th,
    tr.bs-infobox-inactive td,
    th.bs-infobox-inactive,
    td.bs-infobox-inactive {
        background: #2b0d0d !important;
        color: #f5a8a8 !important;
    }
 
    /* completed / discontinued */
    td.bs-infobox-ended {
        color: #f5a8a8 !important;
    }
 
    /* stats as of — dark purple tint, mirrors light mode #e8d5f5 */
    th.bs-infobox-statsdate,
    td.bs-infobox-statsdate {
        background: #2a1f42 !important;
        color: var(--bs-purple-900) !important;
    }
 
} /* end @media (prefers-color-scheme: dark) */

Revision as of 01:20, 25 May 2026

Template:Infobox software

Modern BOINC-oriented infobox template for distributed computing and software project articles.

Parameters

Parameter Description Required
name Software name (defaults to page name) No
logo Logo filename No
logo caption Caption below logo No
screenshot Screenshot filename No
caption Caption below screenshot No
Project
status Active, Completed, etc. Green background when "Active", red otherwise No
category Research category (e.g. Astrophysics, Mathematics) No
compute Processing type: CPU, GPU, or CPU & GPU No
dependencies Additional software required (e.g. VirtualBox, CUDA, Git) No
Development
developer Developer name No
author Original author No
sponsor Sponsoring organization No
maintainer Current maintainer No
released Initial release date No
completed Completion date or status (shown in red) No
discontinued Discontinuation date (shown in red) No
repository Source code repository link No
Software
programming language Language(s) the software is written in No
operating system Supported operating systems No
size Download/install size No
BOINC statistics
stats as of Date the statistics below were recorded No
average performance Average FLOPS or equivalent No
active users Current active user count No
total users All-time total users No
active hosts Current active host count No
total hosts All-time total hosts No
Analytics
rac Recent Average Credit No
credit per day Credits granted per day No
gpu performance GPU-specific performance metric No
cpu performance CPU-specific performance metric No
Metadata
website Official website URL No
license Software license No

Full example

{{Infobox software
| name                 = Einstein@Home
| logo                 = Ein.jpg
| logo caption         = Einstein@Home logo
| screenshot           = [email protected]
| caption              = Einstein@Home screensaver

| status               = Active
| category             = Astrophysics
| compute              = CPU & GPU
| dependencies         = None

| developer            = Bruce Allen
| author               = Bruce Allen
| sponsor              = Max Planck Society
| maintainer           = Einstein@Home team
| released             = {{Start date and age|2005|02|19}}
| completed            = No
| discontinued         =
| repository           = {{URL|https://git.ligo.org/einsteinathome}}

| programming language = C, C++
| operating system     = Windows, Linux, macOS, Android
| size                 = ~50 MB

| stats as of          = {{Start date and age|2026|05|19}}
| average performance  = 21 PFLOPS
| active users         = 14531
| total users          = 1061585
| active hosts         = 24489
| total hosts          = 8237726

| rac                  = 18500000
| credit per day       = 950000
| gpu performance      = 15 PFLOPS
| cpu performance      = 6 PFLOPS

| website              = {{URL|https://einsteinathome.org/}}
| license              = GPL-2.0-or-later
}}

Minimal example

{{Infobox software
| name                 = My Project
| status               = Active
| category             = Mathematics
| compute              = CPU

| developer            = Jane Smith
| released             = {{Start date and age|2020|01|01}}

| operating system     = Windows, Linux, macOS

| website              = {{URL|https://example.org/}}
| license              = MIT
}}