MediaWiki:Achievements.css
Appearance
Note: After publishing, you may have to bypass your browser's cache to see the changes.
- Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
- Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
- Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
/* WARNING: THIS FILE IS @IMPORT BY COMMON.CSS */
/* ------------------------------------------------------------------------- */
/* The styling for achievements is defined here, while the achievements themselves are defined in MediaWiki:AchievementData.json. Achievement IDs from the JSON correspond to CSS classes in the format:
- achievement-{id} */
/* ------------------------------------------------------------------------- */
/* ========================= TITLE ACHIEVEMENTS ========================= */
/* ANCHOR: Titles */
/* BASE STYLING */
/* Container settings for "title" achievements*/
.achievement-header {
font-size: 1.2em;
}
/* Text foreground layer for all achievement headers */
.achievement-foreground-layer {
z-index: 10; /* Ensure it's above all animations */
display: block;
position: relative;
pointer-events: none;
width: 100%;
padding: 1px;
text-align: center;
font-weight: bold;
}
/* ------------------------------------------------------------------------- */
/* SPECIFIC STYLES */
/* %%%%% DEVELOPER %%%%% */
.achievement-header.title-developer {
position: relative;
background-color: var(--colored-box-bg-night);
color: #C9FFD7;
overflow: hidden;
z-index: 3;
}
/* First Matrix animation layer */
.achievement-header.title-developer::before {
content: "";
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='200' viewBox='0 0 60 200'%3E%3Ctext fill='%2300FF41' font-family='monospace' font-size='16'%3E%3Ctspan x='3' y='16'%3E|%3C/tspan%3E%3Ctspan x='3' y='38'%3E1%3C/tspan%3E%3Ctspan x='3' y='60'%3E|%3C/tspan%3E%3Ctspan x='3' y='82'%3E0%3C/tspan%3E%3Ctspan x='3' y='104'%3E|%3C/tspan%3E%3Ctspan x='3' y='126'%3E1%3C/tspan%3E%3Ctspan x='3' y='148'%3E|%3C/tspan%3E%3Ctspan x='3' y='170'%3E0%3C/tspan%3E%3Ctspan x='3' y='192'%3E|%3C/tspan%3E%3C/text%3E%3Ctext fill='%2300FF41' font-family='monospace' font-size='16'%3E%3Ctspan x='17' y='26'%3E1%3C/tspan%3E%3Ctspan x='17' y='48'%3E|%3C/tspan%3E%3Ctspan x='17' y='70'%3E0%3C/tspan%3E%3Ctspan x='17' y='92'%3E|%3C/tspan%3E%3Ctspan x='17' y='114'%3E1%3C/tspan%3E%3Ctspan x='17' y='136'%3E|%3C/tspan%3E%3Ctspan x='17' y='158'%3E0%3C/tspan%3E%3Ctspan x='17' y='180'%3E|%3C/tspan%3E%3C/text%3E%3Ctext fill='%2300FF41' font-family='monospace' font-size='16'%3E%3Ctspan x='31' y='16'%3E|%3C/tspan%3E%3Ctspan x='31' y='38'%3E0%3C/tspan%3E%3Ctspan x='31' y='60'%3E|%3C/tspan%3E%3Ctspan x='31' y='82'%3E1%3C/tspan%3E%3Ctspan x='31' y='104'%3E|%3C/tspan%3E%3Ctspan x='31' y='126'%3E0%3C/tspan%3E%3Ctspan x='31' y='148'%3E|%3C/tspan%3E%3Ctspan x='31' y='170'%3E1%3C/tspan%3E%3Ctspan x='31' y='192'%3E|%3C/tspan%3E%3C/text%3E%3Ctext fill='%2300FF41' font-family='monospace' font-size='16'%3E%3Ctspan x='45' y='26'%3E0%3C/tspan%3E%3Ctspan x='45' y='48'%3E|%3C/tspan%3E%3Ctspan x='45' y='70'%3E1%3C/tspan%3E%3Ctspan x='45' y='92'%3E|%3C/tspan%3E%3Ctspan x='45' y='114'%3E0%3C/tspan%3E%3Ctspan x='45' y='136'%3E|%3C/tspan%3E%3Ctspan x='45' y='158'%3E1%3C/tspan%3E%3Ctspan x='45' y='180'%3E|%3C/tspan%3E%3C/text%3E%3C/svg%3E");
background-size: auto 100px;
background-repeat: repeat;
opacity: 0.7;
z-index: 2;
animation: matrix-fall-1 15s linear infinite;
}
/* Second Matrix animation layer, offset */
.achievement-header.title-developer::after {
content: "";
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='160' viewBox='0 0 40 160'%3E%3Ctext fill='%2300FF41' font-family='monospace' font-size='14'%3E%3Ctspan x='5' y='20'%3E1%3C/tspan%3E%3Ctspan x='5' y='40'%3E|%3C/tspan%3E%3Ctspan x='5' y='60'%3E1%3C/tspan%3E%3Ctspan x='5' y='80'%3E|%3C/tspan%3E%3Ctspan x='5' y='100'%3E0%3C/tspan%3E%3Ctspan x='5' y='120'%3E|%3C/tspan%3E%3Ctspan x='5' y='140'%3E1%3C/tspan%3E%3C/text%3E%3Ctext fill='%2300FF41' font-family='monospace' font-size='14'%3E%3Ctspan x='22' y='10'%3E|%3C/tspan%3E%3Ctspan x='22' y='30'%3E0%3C/tspan%3E%3Ctspan x='22' y='50'%3E|%3C/tspan%3E%3Ctspan x='22' y='70'%3E1%3C/tspan%3E%3Ctspan x='22' y='90'%3E|%3C/tspan%3E%3Ctspan x='22' y='110'%3E0%3C/tspan%3E%3Ctspan x='22' y='130'%3E|%3C/tspan%3E%3Ctspan x='22' y='150'%3E0%3C/tspan%3E%3C/text%3E%3C/svg%3E");
background-size: auto 160px;
background-repeat: repeat;
opacity: 0.5;
z-index: 1;
animation: matrix-fall-2 20s linear infinite;
}
/* Falling effects with background-position for seamless looping */
@keyframes matrix-fall-1 {
0% { background-position: 0 0; }
100% { background-position: 0 200%; }
}
@keyframes matrix-fall-2 {
0% { background-position: 0 0; }
100% { background-position: 0 200%; }
}
/* %%%%% ICANNWIKI STAFF %%%%% */
.achievement-header.title-icw-staff {
background: linear-gradient(
to right,
#33FF55,
#00AA2A,
#008822
);
}
/* %%%%% HERO %%%%% */
.achievement-header.title-hero {
background: linear-gradient(
to right,
rgb(123, 3, 144),
#600054,
#430038
);
}
/* REVIEW: %%%%% INTERVIEWEE %%%%% */
.achievement-header.title-interviewee {
background: linear-gradient(
to right,
#2af0b1,
#2ab3a1,
#166555
);
}
/* %%%%% KING %%%%% */
.achievement-header.title-king {
background: linear-gradient(
to right,
gold,
#f1c40f,
#d4af37
);
}
/* %%%%% REST IN PEACE %%%%% */
.achievement-header.title-rip {
background: grey;
}
/* %%%%% TRUSTED %%%%% */
.achievement-header.title-trusted {
position: relative;
background-color: #009EEB;
color: var(--light-text);
overflow: hidden;
z-index: 3;
}
/* First stars animation layer, faster */
.achievement-header.title-trusted::before {
content: "";
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='50' viewBox='0 0 300 50'%3E%3Ctext fill='gold' font-size='16'%3E%3Ctspan x='20' y='20'%3E★%3C/tspan%3E%3Ctspan x='80' y='35'%3E★%3C/tspan%3E%3Ctspan x='140' y='15'%3E★%3C/tspan%3E%3Ctspan x='200' y='30'%3E★%3C/tspan%3E%3Ctspan x='260' y='25'%3E★%3C/tspan%3E%3C/text%3E%3C/svg%3E");
background-repeat: repeat-x;
opacity: 0.7;
z-index: 2;
animation: stars-fly-1 15s linear infinite;
}
/* Second stars animation layer, slower, offset */
.achievement-header.title-trusted::after {
content: "";
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='50' viewBox='0 0 400 50'%3E%3Ctext fill='gold' font-size='14'%3E%3Ctspan x='50' y='25'%3E★%3C/tspan%3E%3Ctspan x='120' y='10'%3E★%3C/tspan%3E%3Ctspan x='190' y='30'%3E★%3C/tspan%3E%3Ctspan x='260' y='15'%3E★%3C/tspan%3E%3Ctspan x='330' y='20'%3E★%3C/tspan%3E%3C/text%3E%3C/svg%3E");
background-repeat: repeat-x;
opacity: 0.4;
z-index: 1;
animation: stars-fly-2 25s linear infinite;
}
/* Horizontal star animations with different speeds */
@keyframes stars-fly-1 {
0% { background-position: 300px 0; }
100% { background-position: 0 0; }
}
@keyframes stars-fly-2 {
0% { background-position: 400px 0; }
100% { background-position: 0 0; }
}
/* ========================= BADGE ACHIEVEMENTS ========================= */
/* ANCHOR: Badges */
/* BASE STYLING */
/* Container settings for "badge" achievements */
.achievement-badge {
color: var(--light-text);
display: inline-flex;
vertical-align: middle;
justify-content: center;
align-items: center;
width: 85px; /* Width based on 1.71 aspect ratio (50px height × 1.71) */
height: 50px;
border-radius: 2px;
margin: 0.1em;
position: relative;
}
/* Styling for the images within all pseudo-elements: MISSING WIDTH AND HEIGHT BECAUSE IT IS STILL TEXT AT THE MOMENT */
.achievement-badge::before {
content: "";
display: block;
background-size: contain; /* or cover, if needed */
background-position: center;
background-repeat: no-repeat;
text-align: center; /* Center text content within the pseudo-element */
}
/* ------------------------------------------------------------------------- */
/* SPECIFIC STYLES */
/* REVIEW: background-image: url('https://icannwiki.org/images/5/5a/IGF2025-logo.png'); add width and height 100%*/
/* ICANN Board */
.achievement-badge.badge-icann-board {
background-color: #ffc107;
}
.achievement-badge.badge-icann-board::before {
content: "Board";
}
/* ICANN CEO */
.achievement-badge.badge-icann-ceo {
background-color: #e5c100;
}
.achievement-badge.badge-icann-ceo::before {
content: "CEO";
}
/* ICANN Staff */
.achievement-badge.badge-icann-staff {
background-color: #1d3396;
}
.achievement-badge.badge-icann-staff::before {
content: "ICANN Staff";
}
/* ICANN Fellow */
.achievement-badge.badge-icann-fellow {
background-color: #007bff;
}
.achievement-badge.badge-icann-fellow::before {
content: "Fellow";
}
/* ICANN Interpreter */
.achievement-badge.badge-icann-interpreter {
background-color: #d944e8;
}
.achievement-badge.badge-icann-interpreter::before {
content: "Interpreter";
}
/* ICANN NextGen */
.achievement-badge.badge-icann-nextgen {
background-color: #5bc0de;
}
.achievement-badge.badge-icann-nextgen::before {
content: "NextGen";
}
/* ICANN NomCom */
.achievement-badge.badge-icann-nomcom {
background-color: #576972;
}
.achievement-badge.badge-icann-nomcom::before {
content: "NomCom";
}
/* Porkbun employee */
.achievement-badge.badge-porkbun {
background-color: #8E24AA;
}
.achievement-badge.badge-porkbun::before {
content: "Porkbun";
}
/* ICANNWiki past sponsor */
.achievement-badge.badge-past-sponsor {
background-color: #888;
}
.achievement-badge.badge-past-sponsor::before {
content: "Past sponsor";
}
/* ICANNWiki current sponsor */
.achievement-badge.badge-current-sponsor {
background-color: #b733a3;
}
.achievement-badge.badge-current-sponsor::before {
content: "Current Sponsor";
}
/* At-Large */
.achievement-badge.badge-atlarge {
background-color: #d9534f;
}
.achievement-badge.badge-atlarge::before {
content: "At-Large";
}
/* ASO */
.achievement-badge.badge-aso {
background-color: #576972;
}
.achievement-badge.badge-aso::before {
content: "ASO";
}
/* ICANNWiki Card Decks */
.achievement-badge.badge-icw-deck-41,
.achievement-badge.badge-icw-deck-42,
.achievement-badge.badge-icw-deck-45,
.achievement-badge.badge-icw-deck-47,
.achievement-badge.badge-icw-deck-48,
.achievement-badge.badge-icw-deck-49,
.achievement-badge.badge-icw-deck-50,
.achievement-badge.badge-icw-deck-51,
.achievement-badge.badge-icw-deck-52,
.achievement-badge.badge-icw-deck-53,
.achievement-badge.badge-icw-deck-54,
.achievement-badge.badge-icw-deck-57,
.achievement-badge.badge-icw-deck-60,
.achievement-badge.badge-icw-deck-76,
.achievement-badge.badge-icw-deck-78 {
background-color: #6f42c1;
}
.achievement-badge.badge-icw-deck-41::before { content: "Deck ICANN41"; }
.achievement-badge.badge-icw-deck-42::before { content: "Deck ICANN42"; }
.achievement-badge.badge-icw-deck-45::before { content: "Deck ICANN45"; }
.achievement-badge.badge-icw-deck-47::before { content: "Deck ICANN47"; }
.achievement-badge.badge-icw-deck-48::before { content: "Deck ICANN48"; }
.achievement-badge.badge-icw-deck-49::before { content: "Deck ICANN49"; }
.achievement-badge.badge-icw-deck-50::before { content: "Deck ICANN50"; }
.achievement-badge.badge-icw-deck-51::before { content: "Deck ICANN51"; }
.achievement-badge.badge-icw-deck-52::before { content: "Deck ICANN52"; }
.achievement-badge.badge-icw-deck-53::before { content: "Deck ICANN53"; }
.achievement-badge.badge-icw-deck-54::before { content: "Deck ICANN54"; }
.achievement-badge.badge-icw-deck-57::before { content: "Deck ICANN57"; }
.achievement-badge.badge-icw-deck-60::before { content: "Deck ICANN60"; }
.achievement-badge.badge-icw-deck-76::before { content: "Deck ICANN76"; }
.achievement-badge.badge-icw-deck-78::before { content: "Deck ICANN78"; }
/* ccNSO */
.achievement-badge.badge-ccnso {
background-color: #428bca;
}
.achievement-badge.badge-ccnso::before {
content: "ccNSO";
}
/* ICANN Fellowship Selection */
.achievement-badge.badge-icann-fellow-selection {
background-color: #3aa7c2;
}
.achievement-badge.badge-icann-fellow-selection::before {
content: "Fellowship Selection";
}
/* GAC */
.achievement-badge.badge-gac {
background-color: #428bca;
}
.achievement-badge.badge-gac::before {
content: "GAC";
}
/* GNSO */
.achievement-badge.badge-gnso {
background-color: #428bca;
}
.achievement-badge.badge-gnso::before {
content: "GNSO";
}
/* LACRALO */
.achievement-badge.badge-atlarge-lacralo {
background-color: #d9534f;
}
.achievement-badge.badge-atlarge-lacralo::before {
content: "LACRALO";
}
/* NARALO */
.achievement-badge.badge-atlarge-naralo {
background-color: #d9534f;
}
.achievement-badge.badge-atlarge-naralo::before {
content: "NARALO";
}
/* PTI Board */
.achievement-badge.badge-pti-board {
background-color: #777;
}
.achievement-badge.badge-pti-board::before {
content: "PTI Board";
}
/* RSSAC Caucus */
.achievement-badge.badge-rssac-caucus {
background-color: #576972;
}
.achievement-badge.badge-rssac-caucus::before {
content: "RSSAC Caucus";
}
/* SSAC */
.achievement-badge.badge-ssac {
background-color: #20c997;
}
.achievement-badge.badge-ssac::before {
content: "SSAC";
}