Toggle menu
4
4
2
384
MechaWiki
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

MediaWiki:Citizen.css: Difference between revisions

MediaWiki interface page
No edit summary
No edit summary
Line 1: Line 1:
/* =========================================
/* =========================================
   MECHA HOMEPAGE — SAFE VERSION
   MECHA HOMEPAGE — STABLE + TIGHT HERO
  DOES NOT BREAK CITIZEN
   ========================================= */
   ========================================= */
/* HERO */


.mecha-home {
.mecha-home {
 
  max-width: 1200px;
max-width:1200px;
  margin: 0 auto;
margin:auto;
  padding: 12px 18px 34px;
padding:20px;
 
}
}


/* Kill the huge whitespace */
.mecha-hero {
.mecha-hero {
  text-align: center;
  margin: 6px 0 14px;
  padding: 0;
}


text-align:center;
.mecha-logoLink {
margin-bottom:30px;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  margin: 0 0 6px;
}


.mecha-logo {
  width: 140px;
  height: auto;
  display: block;
}
}


.mecha-logo img {
/* Tighten title spacing */
 
.mecha-title {
width:140px;
  margin: 8px 0 6px;
  padding: 0;
  font-size: 34px;
  font-weight: 800;
  letter-spacing: -0.02em;
}


.mecha-subtitle {
  margin: 0;
  color: var(--color-base-subtle);
  font-size: 16px;
}
}


 
/* Buttons */
/* BUTTON ROW */
 
.mecha-actions {
.mecha-actions {
 
  display: flex;
display:flex;
  justify-content: center;
justify-content:center;
  gap: 14px;
gap:14px;
  flex-wrap: wrap;
flex-wrap:wrap;
  margin: 16px 0 0;
margin-top:20px;
  padding: 0;
 
}
}


.mecha-action {
.mecha-action {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 11px 16px;
  border-radius: 12px;
  background: var(--color-progressive);
  color: #fff !important;
  font-weight: 700;
  text-decoration: none !important;
  transition: transform 140ms ease, box-shadow 140ms ease;
}


display:flex;
.mecha-action:hover {
align-items:center;
  transform: translateY(-2px);
gap:10px;
  box-shadow: 0 10px 22px rgba(0,0,0,0.10);
 
padding:10px 18px;
 
border-radius:12px;
 
background:var(--color-progressive);
 
color:white !important;
 
font-weight:600;
 
text-decoration:none;
 
}
}
/* ICONS — FIXED */


.mecha-action::before {
.mecha-action::before {
  content: "";
  width: 18px;
  height: 18px;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  filter: brightness(0) invert(1); /* icons always white on blue buttons */
}


content:"";
.mecha-action--discord::before { background-image: url("https://cdn.simpleicons.org/discord"); }
 
.mecha-action--matrix::before  { background-image: url("https://cdn.simpleicons.org/matrix"); }
width:18px;
.mecha-action--website::before { background-image: url("https://cdn.simpleicons.org/firefoxbrowser"); }
height:18px;
.mecha-action--forums::before  { background-image: url("https://cdn.simpleicons.org/discourse"); }
 
background-size:contain;
background-repeat:no-repeat;
 
filter:brightness(0) invert(1);


/* Grid */
.mecha-grid {
  display: grid;
  grid-template-columns: 1fr 1.45fr 1fr;
  gap: 22px;
  margin-top: 26px;
  align-items: start;
}
}


 
/* Cards */
/* individual */
.mecha-card {
 
  background: var(--color-surface-2);
.mecha-action--discord::before {
  border: 1px solid var(--color-border);
 
  border-radius: 18px;
background-image:url("https://cdn.simpleicons.org/discord");
  padding: 18px;
 
}
}


.mecha-action--matrix::before {
.mecha-cardTitle {
 
  margin: 0;
background-image:url("https://cdn.simpleicons.org/matrix");
  font-size: 20px;
 
  font-weight: 800;
}
}


.mecha-action--website::before {
.mecha-cardDesc {
 
  margin: 8px 0 0;
background-image:url("https://cdn.simpleicons.org/firefoxbrowser");
  color: var(--color-base-subtle);
 
  font-size: 14px;
}
}


.mecha-action--forums::before {
/* List */
 
.mecha-list {
background-image:url("https://cdn.simpleicons.org/discourse");
  margin-top: 14px;
 
  display: grid;
  gap: 10px;
}
}


 
.mecha-listItem {
 
  background: var(--color-surface-1);
/* =========================================
  border: 1px solid var(--color-border);
  GRID
  border-radius: 12px;
  ========================================= */
  padding: 12px 12px;
 
  text-decoration: none !important;
 
  font-weight: 650;
.mecha-grid {
  display: flex;
 
  align-items: center;
display:grid;
  gap: 10px;
 
grid-template-columns:
 
1fr
1.4fr
1fr;
 
gap:20px;
 
margin-top:30px;
 
}
}


 
.mecha-listItem:hover {
/* CARDS */
  background: var(--color-progressive-subtle);
 
  border-color: var(--color-progressive);
.mecha-card {
 
background:var(--color-surface-2);
 
padding:20px;
 
border-radius:14px;
 
border:1px solid var(--color-border);
 
}
}


 
/* Ecosystem tiles */
/* =========================================
  ECOSYSTEM GRID
  ========================================= */
 
 
.mecha-ecosystem {
.mecha-ecosystem {
 
  margin-top: 14px;
display:grid;
  display: grid;
 
  grid-template-columns: repeat(2, minmax(0, 1fr));
grid-template-columns:1fr 1fr;
  gap: 12px;
 
gap:14px;
 
margin-top:10px;
 
}
}


.mecha-tile {
.mecha-tile {
  background: var(--color-surface-1);
  border: 1px solid var(--color-border);
  border-radius: 14px;
  padding: 14px;
  text-decoration: none !important;
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-height: 80px;
}


display:block;
.mecha-tile:hover {
 
  background: var(--color-progressive-subtle);
padding:12px;
  border-color: var(--color-progressive);
 
  transform: translateY(-1px);
border-radius:10px;
 
background:var(--color-surface-1);
 
text-decoration:none;
 
font-weight:600;
 
}
}


.mecha-tileTitle { font-weight: 800; }
.mecha-tileDesc  { color: var(--color-base-subtle); font-size: 13px; }


/* =========================================
/* Stats */
  STATS GRID
  ========================================= */
 
 
.mecha-stats {
.mecha-stats {
 
  margin-top: 14px;
display:grid;
  display: grid;
 
  grid-template-columns: 1fr 1fr;
grid-template-columns:1fr 1fr;
  gap: 10px;
 
gap:10px;
 
margin-top:10px;
 
}
}


.mecha-stat {
.mecha-stat {
  background: var(--color-surface-1);
  border: 1px solid var(--color-border);
  border-radius: 12px;
  padding: 10px 12px;
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: center;
}


background:var(--color-surface-1);
.mecha-stat span { color: var(--color-base-subtle); font-size: 13px; }
 
.mecha-stat b    { font-size: 14px; }
padding:10px;


border-radius:10px;
/* Icon system for list + tiles (theme-aware) */
.mecha-i::before {
  content: "";
  width: 18px;
  height: 18px;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  display: inline-block;
  flex: 0 0 auto;


  /* make icons readable in both modes */
  filter: var(--mecha-icon-filter);
}
}


:root { --mecha-icon-filter: none; }
.skin-theme-clientpref-night { --mecha-icon-filter: brightness(0) invert(1); }


/* =========================================
/* icon sources */
  MOBILE
.mecha-i--rocket::before { background-image: url("https://cdn.simpleicons.org/rocket"); }
  ========================================= */
.mecha-i--code::before  { background-image: url("https://cdn.simpleicons.org/code"); }
 
.mecha-i--book::before  { background-image: url("https://cdn.simpleicons.org/bookstack"); }
 
.mecha-i--chip::before  { background-image: url("https://cdn.simpleicons.org/microchip"); }
@media(max-width:900px){
.mecha-i--puzzle::before { background-image: url("https://cdn.simpleicons.org/puzzles"); }
 
.mecha-grid{
 
grid-template-columns:1fr;
 
}
 
.mecha-ecosystem{


grid-template-columns:1fr;
.mecha-i--linux::before  { background-image: url("https://cdn.simpleicons.org/linux"); }
.mecha-i--flutter::before{ background-image: url("https://cdn.simpleicons.org/flutter"); }
.mecha-i--box::before    { background-image: url("https://cdn.simpleicons.org/docker"); }
.mecha-i--github::before { background-image: url("https://cdn.simpleicons.org/github"); }
.mecha-i--arch::before  { background-image: url("https://cdn.simpleicons.org/archlinux"); }
.mecha-i--discord::before{ background-image: url("https://cdn.simpleicons.org/discord"); }
.mecha-i--matrix::before { background-image: url("https://cdn.simpleicons.org/matrix"); }


/* Mobile */
@media (max-width: 980px) {
  .mecha-grid { grid-template-columns: 1fr; }
  .mecha-ecosystem { grid-template-columns: 1fr; }
}
}


@media (max-width: 650px) {
  .mecha-title { font-size: 24px; }
  .mecha-action { width: 100%; justify-content: center; }
  .mecha-home { padding: 10px 12px 26px; }
}
}

Revision as of 14:16, 21 February 2026

/* =========================================
   MECHA HOMEPAGE — STABLE + TIGHT HERO
   ========================================= */

.mecha-home {
  max-width: 1200px;
  margin: 0 auto;
  padding: 12px 18px 34px;
}

/* Kill the huge whitespace */
.mecha-hero {
  text-align: center;
  margin: 6px 0 14px;
  padding: 0;
}

.mecha-logoLink {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  margin: 0 0 6px;
}

.mecha-logo {
  width: 140px;
  height: auto;
  display: block;
}

/* Tighten title spacing */
.mecha-title {
  margin: 8px 0 6px;
  padding: 0;
  font-size: 34px;
  font-weight: 800;
  letter-spacing: -0.02em;
}

.mecha-subtitle {
  margin: 0;
  color: var(--color-base-subtle);
  font-size: 16px;
}

/* Buttons */
.mecha-actions {
  display: flex;
  justify-content: center;
  gap: 14px;
  flex-wrap: wrap;
  margin: 16px 0 0;
  padding: 0;
}

.mecha-action {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 11px 16px;
  border-radius: 12px;
  background: var(--color-progressive);
  color: #fff !important;
  font-weight: 700;
  text-decoration: none !important;
  transition: transform 140ms ease, box-shadow 140ms ease;
}

.mecha-action:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 22px rgba(0,0,0,0.10);
}

.mecha-action::before {
  content: "";
  width: 18px;
  height: 18px;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  filter: brightness(0) invert(1); /* icons always white on blue buttons */
}

.mecha-action--discord::before { background-image: url("https://cdn.simpleicons.org/discord"); }
.mecha-action--matrix::before  { background-image: url("https://cdn.simpleicons.org/matrix"); }
.mecha-action--website::before { background-image: url("https://cdn.simpleicons.org/firefoxbrowser"); }
.mecha-action--forums::before  { background-image: url("https://cdn.simpleicons.org/discourse"); }

/* Grid */
.mecha-grid {
  display: grid;
  grid-template-columns: 1fr 1.45fr 1fr;
  gap: 22px;
  margin-top: 26px;
  align-items: start;
}

/* Cards */
.mecha-card {
  background: var(--color-surface-2);
  border: 1px solid var(--color-border);
  border-radius: 18px;
  padding: 18px;
}

.mecha-cardTitle {
  margin: 0;
  font-size: 20px;
  font-weight: 800;
}

.mecha-cardDesc {
  margin: 8px 0 0;
  color: var(--color-base-subtle);
  font-size: 14px;
}

/* List */
.mecha-list {
  margin-top: 14px;
  display: grid;
  gap: 10px;
}

.mecha-listItem {
  background: var(--color-surface-1);
  border: 1px solid var(--color-border);
  border-radius: 12px;
  padding: 12px 12px;
  text-decoration: none !important;
  font-weight: 650;
  display: flex;
  align-items: center;
  gap: 10px;
}

.mecha-listItem:hover {
  background: var(--color-progressive-subtle);
  border-color: var(--color-progressive);
}

/* Ecosystem tiles */
.mecha-ecosystem {
  margin-top: 14px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.mecha-tile {
  background: var(--color-surface-1);
  border: 1px solid var(--color-border);
  border-radius: 14px;
  padding: 14px;
  text-decoration: none !important;
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-height: 80px;
}

.mecha-tile:hover {
  background: var(--color-progressive-subtle);
  border-color: var(--color-progressive);
  transform: translateY(-1px);
}

.mecha-tileTitle { font-weight: 800; }
.mecha-tileDesc  { color: var(--color-base-subtle); font-size: 13px; }

/* Stats */
.mecha-stats {
  margin-top: 14px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.mecha-stat {
  background: var(--color-surface-1);
  border: 1px solid var(--color-border);
  border-radius: 12px;
  padding: 10px 12px;
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: center;
}

.mecha-stat span { color: var(--color-base-subtle); font-size: 13px; }
.mecha-stat b    { font-size: 14px; }

/* Icon system for list + tiles (theme-aware) */
.mecha-i::before {
  content: "";
  width: 18px;
  height: 18px;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  display: inline-block;
  flex: 0 0 auto;

  /* make icons readable in both modes */
  filter: var(--mecha-icon-filter);
}

:root { --mecha-icon-filter: none; }
.skin-theme-clientpref-night { --mecha-icon-filter: brightness(0) invert(1); }

/* icon sources */
.mecha-i--rocket::before { background-image: url("https://cdn.simpleicons.org/rocket"); }
.mecha-i--code::before   { background-image: url("https://cdn.simpleicons.org/code"); }
.mecha-i--book::before   { background-image: url("https://cdn.simpleicons.org/bookstack"); }
.mecha-i--chip::before   { background-image: url("https://cdn.simpleicons.org/microchip"); }
.mecha-i--puzzle::before { background-image: url("https://cdn.simpleicons.org/puzzles"); }

.mecha-i--linux::before  { background-image: url("https://cdn.simpleicons.org/linux"); }
.mecha-i--flutter::before{ background-image: url("https://cdn.simpleicons.org/flutter"); }
.mecha-i--box::before    { background-image: url("https://cdn.simpleicons.org/docker"); }
.mecha-i--github::before { background-image: url("https://cdn.simpleicons.org/github"); }
.mecha-i--arch::before   { background-image: url("https://cdn.simpleicons.org/archlinux"); }
.mecha-i--discord::before{ background-image: url("https://cdn.simpleicons.org/discord"); }
.mecha-i--matrix::before { background-image: url("https://cdn.simpleicons.org/matrix"); }

/* Mobile */
@media (max-width: 980px) {
  .mecha-grid { grid-template-columns: 1fr; }
  .mecha-ecosystem { grid-template-columns: 1fr; }
}

@media (max-width: 650px) {
  .mecha-title { font-size: 24px; }
  .mecha-action { width: 100%; justify-content: center; }
  .mecha-home { padding: 10px 12px 26px; }
}