Difference between revisions of "MediaWiki:Common.css"
Jump to navigation
Jump to search
Line 1: | Line 1: | ||
/* CSS placed here will be applied to all skins */ | /* CSS placed here will be applied to all skins */ | ||
− | |||
:root { | :root { | ||
− | --tile-gap: 15px; /* Valor padrão */ | + | --tile-gap: 15px; /* Valor padrão (pode ser sobrescrito via template) */ |
} | } | ||
+ | /* ========== ESTILOS GERAIS ========== */ | ||
a { | a { | ||
text-underline-offset: 0px; | text-underline-offset: 0px; | ||
Line 86: | Line 86: | ||
} | } | ||
− | /* Feedback de copiado | + | /* Feedback de copiado */ |
.warp-copy.copied::after { | .warp-copy.copied::after { | ||
content: "Copied!" !important; | content: "Copied!" !important; | ||
Line 99: | Line 99: | ||
} | } | ||
− | /* ========== ESTILOS | + | /* ========== ESTILOS PARA NPCs ========== */ |
.tile-row { | .tile-row { | ||
display: flex; | display: flex; | ||
Line 134: | Line 134: | ||
overflow: visible; | overflow: visible; | ||
padding: 0; | padding: 0; | ||
− | height: 150px; | + | height: 150px; |
width: 100%; | width: 100%; | ||
box-sizing: border-box; | box-sizing: border-box; | ||
Line 157: | Line 157: | ||
} | } | ||
− | /* | + | /* Tamanhos personalizados */ |
.tile-top.tile-image img.custom-size { | .tile-top.tile-image img.custom-size { | ||
width: var(--custom-width, auto); | width: var(--custom-width, auto); | ||
Line 170: | Line 170: | ||
width: 100%; | width: 100%; | ||
padding: 1rem 1.5rem 0.6rem; | padding: 1rem 1.5rem 0.6rem; | ||
− | flex-grow: 1; | + | flex-grow: 1; |
− | display: flex; | + | display: flex; |
− | flex-direction: column; | + | flex-direction: column; |
} | } | ||
Line 183: | Line 183: | ||
} | } | ||
− | /* ========== LAYOUT PRINCIPAL | + | /* ========== LAYOUT PRINCIPAL (COM CONTROLE DE ESPAÇO) ========== */ |
.mainpage-contents.tile-row { | .mainpage-contents.tile-row { | ||
display: grid; | display: grid; | ||
grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); | grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); | ||
− | gap: | + | gap: var(--tile-gap); /* Usa a variável CSS definida no template */ |
justify-content: flex-start; | justify-content: flex-start; | ||
align-items: start; | align-items: start; | ||
Line 200: | Line 200: | ||
display: flex; | display: flex; | ||
flex-direction: column; | flex-direction: column; | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
} | } | ||
.mainpage-contents .tile-halves:hover .tile-top img { | .mainpage-contents .tile-halves:hover .tile-top img { | ||
transform: scale(1.04); | transform: scale(1.04); | ||
− | |||
− | |||
− | |||
− | |||
} | } | ||
Line 221: | Line 209: | ||
font-size: 0.8em; | font-size: 0.8em; | ||
color: #666; | color: #666; | ||
− | |||
text-align: center; | text-align: center; | ||
font-style: italic; | font-style: italic; | ||
line-height: 1.2; | line-height: 1.2; | ||
− | margin-top: auto; | + | margin-top: auto; |
} | } | ||
Line 240: | Line 227: | ||
position: relative; | position: relative; | ||
overflow: visible; | overflow: visible; | ||
− | min-height: 2.4em; | + | min-height: 2.4em; |
− | margin: 0.5em 0; | + | margin: 0.5em 0; |
− | line-height: 1.2; | + | line-height: 1.2; |
} | } | ||
− | /* Classes | + | /* Classes de tamanho */ |
.npc-image-small { | .npc-image-small { | ||
max-width: 150px !important; | max-width: 150px !important; | ||
Line 266: | Line 253: | ||
.mainpage-contents.tile-row { | .mainpage-contents.tile-row { | ||
grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); | grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); | ||
− | gap: | + | gap: calc(var(--tile-gap) * 0.75); /* Reduz o gap em mobile */ |
} | } | ||
− | |||
.tile-top.tile-image { | .tile-top.tile-image { | ||
height: 120px; | height: 120px; | ||
} | } | ||
} | } |
Revision as of 13:59, 2 May 2025
/* CSS placed here will be applied to all skins */ :root { --tile-gap: 15px; /* Valor padrão (pode ser sobrescrito via template) */ } /* ========== ESTILOS GERAIS ========== */ a { text-underline-offset: 0px; } .external { background: none !important; padding-right: 0 !important; } /* ========== WAR COPY (TEXTO E IMAGENS) ========== */ .warp-copy { color: #0066cc; cursor: pointer; text-decoration: underline dotted #0066cc; text-underline-offset: 2px; position: relative; display: inline-block; } /* Tooltip padrão */ .warp-copy::after { content: "Copy"; position: absolute; left: 50%; background-color: #333; color: white; padding: 2px 6px; border-radius: 3px; font-size: 12px; white-space: nowrap; z-index: 10; opacity: 0; visibility: hidden; pointer-events: none; transform: translateX(-50%); } /* Seta do tooltip */ .warp-copy::before { content: ""; position: absolute; left: 50%; border-width: 4px; border-style: solid; z-index: 10; opacity: 0; visibility: hidden; pointer-events: none; transform: translateX(-50%); } /* Tooltip PARA TEXTO */ .warp-copy:not(img)::after { bottom: calc(100% + 5px); } .warp-copy:not(img)::before { bottom: calc(100% + 1px); border-color: #333 transparent transparent transparent; } /* Tooltip PARA IMAGENS */ .tile-top.tile-image .warp-copy::after { bottom: -25px; top: auto !important; } .tile-top.tile-image .warp-copy::before { bottom: -18px; top: auto !important; border-color: #333 transparent transparent transparent !important; } /* Estados de hover */ .warp-copy:hover::after, .warp-copy:hover::before { opacity: 1; visibility: visible; } /* Feedback de copiado */ .warp-copy.copied::after { content: "Copied!" !important; background-color: #4CAF50 !important; opacity: 1 !important; visibility: visible !important; } .warp-copy.copied { color: #4CAF50 !important; text-decoration: underline dotted #4CAF50 !important; } /* ========== ESTILOS PARA NPCs ========== */ .tile-row { display: flex; flex-flow: row wrap; margin-bottom: 1em; } .tile-halves { display: flex; flex-flow: row wrap; border: 1px solid #e4eaee; background: #ffffff; box-shadow: 0 0.25rem 0.35rem -0.25rem rgba(0, 0, 0, 0.1); position: relative; } .tile-halves h2 { font-size: 1.4em; font-weight: bold; border: none; margin: 0 0 0.4em; } .tile-top { width: 100%; padding: 1.3rem 1.5rem 0.6rem; } .tile-top.tile-image { display: flex; align-items: center; justify-content: center; background-color: #949eaa; overflow: visible; padding: 0; height: 150px; width: 100%; box-sizing: border-box; } .tile-top.tile-image a { width: 100%; height: 100%; display: flex; justify-content: center; align-items: center; } .tile-top.tile-image img { display: block; max-width: 100%; width: auto; height: auto; margin: 0; transition: 0.4s ease-out; object-fit: contain; } /* Tamanhos personalizados */ .tile-top.tile-image img.custom-size { width: var(--custom-width, auto); height: var(--custom-height, auto); max-width: var(--custom-width, 100%); max-height: var(--custom-height, none); } .tile-bottom { background: #ffffff; border-top: 1px solid #e4eaee; width: 100%; padding: 1rem 1.5rem 0.6rem; flex-grow: 1; display: flex; flex-direction: column; } .tile-bottom.link-button { align-self: center; padding: 0; width: auto; margin: 0 auto; max-width: fit-content; } /* ========== LAYOUT PRINCIPAL (COM CONTROLE DE ESPAÇO) ========== */ .mainpage-contents.tile-row { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: var(--tile-gap); /* Usa a variável CSS definida no template */ justify-content: flex-start; align-items: start; } .mainpage-contents .contents-equipment.tile-halves { margin: 0; width: 100%; min-width: 0; max-width: none; height: 100%; display: flex; flex-direction: column; } .mainpage-contents .tile-halves:hover .tile-top img { transform: scale(1.04); } .npc-subtitle { font-size: 0.8em; color: #666; text-align: center; font-style: italic; line-height: 1.2; margin-top: auto; } /* Título do NPC */ .tile-bottom.link-button h2 .warp-copy { color: #000080; font-weight: bold; display: block; text-align: center; text-decoration: none; } .tile-bottom.link-button h2 { position: relative; overflow: visible; min-height: 2.4em; margin: 0.5em 0; line-height: 1.2; } /* Classes de tamanho */ .npc-image-small { max-width: 150px !important; } .npc-image-medium { max-width: 200px !important; } .npc-image-large { max-width: 250px !important; } /* ========== RESPONSIVIDADE ========== */ @media (max-width: 1200px) { .mainpage-contents.tile-row { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); } } @media (max-width: 768px) { .mainpage-contents.tile-row { grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: calc(var(--tile-gap) * 0.75); /* Reduz o gap em mobile */ } .tile-top.tile-image { height: 120px; } }