Template:OOOInfoBoxTabber/styles.css: Difference between revisions
Appearance
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
/* | /* Template:OOOInfoBoxTabber/styles.css | ||
Only layout/sizing that TemplateStyles accepts. No CSS custom prop definitions here. */ | |||
*/ | |||
/* Wrapper (default right) */ | /* Wrapper (default right) */ | ||
Line 9: | Line 6: | ||
float: right; | float: right; | ||
clear: right; | clear: right; | ||
width: 300px; /* keep in sync with | width: 300px; /* keep in sync with {{OOOInfoBox}} default if needed */ | ||
margin: 0 0 1em 1em; | margin: 0 0 1em 1em; | ||
} | } | ||
Line 18: | Line 15: | ||
.ooo-infobox-tabwrap--center { float: none; display: block; margin: 0 auto 1em; } | .ooo-infobox-tabwrap--center { float: none; display: block; margin: 0 auto 1em; } | ||
/* ===== | /* ===== Wrap mode (default) ===== */ | ||
.ooo-infobox-tabwrap .tabber__tabs { | .ooo-infobox-tabwrap .tabber__tabs { | ||
display: flex; | display: flex; | ||
flex-wrap: wrap; | flex-wrap: wrap; | ||
gap: .35rem; | gap: .35rem; | ||
justify-content: flex-start; | justify-content: flex-start; | ||
align-content: flex-start; | align-content: flex-start; | ||
align-items: flex-end; | align-items: flex-end; | ||
Line 34: | Line 29: | ||
background: none; | background: none; | ||
} | } | ||
.ooo-infobox-tabwrap .tabber__tabs::after { content: none; } | .ooo-infobox-tabwrap .tabber__tabs::after { content: none; } | ||
.ooo-infobox-tabwrap .tabber__tab { | .ooo-infobox-tabwrap .tabber__tab { | ||
flex: 0 0 auto; | flex: 0 0 auto; | ||
min-width: 3.5ch; | min-width: 3.5ch; | ||
white-space: nowrap; | white-space: nowrap; | ||
text-align: center; | text-align: center; | ||
line-height: 1.2; | line-height: 1.2; | ||
font-weight: 700; | font-weight: 700; | ||
font-size: 90%; | font-size: 90%; | ||
padding: .3rem .55rem; | padding: .3rem .55rem; | ||
text-decoration: none; | text-decoration: none; | ||
background: var(--background-color-neutral, #f5f5f5); | background: var(--background-color-neutral, #f5f5f5); | ||
color: var(--color-base, #202122); | color: var(--color-base, #202122); | ||
Line 57: | Line 48: | ||
} | } | ||
.ooo-infobox-tabwrap .tabber__tab:hover { background: rgba(255,255,255,.06); } | .ooo-infobox-tabwrap .tabber__tab:hover { background: rgba(255,255,255,.06); } | ||
.ooo-infobox-tabwrap .tabber__tab:focus { | .ooo-infobox-tabwrap .tabber__tab:focus { | ||
Line 65: | Line 55: | ||
} | } | ||
.ooo-infobox-tabwrap .tabber__tab--active { | .ooo-infobox-tabwrap .tabber__tab--active { | ||
cursor: default; | cursor: default; | ||
Line 74: | Line 63: | ||
} | } | ||
.ooo-infobox-tabwrap .tabber__panel { | .ooo-infobox-tabwrap .tabber__panel { | ||
padding: 0; | padding: 0; | ||
Line 81: | Line 69: | ||
} | } | ||
/* ===== | /* ===== Scroll mode (opt-in) ===== */ | ||
.ooo-infobox-tabwrap.ooo-infobox-tabwrap--scroll { position: relative; } | .ooo-infobox-tabwrap.ooo-infobox-tabwrap--scroll { position: relative; } | ||
.ooo-infobox-tabwrap.ooo-infobox-tabwrap--scroll .tabber__tabs { | .ooo-infobox-tabwrap.ooo-infobox-tabwrap--scroll .tabber__tabs { | ||
display: flex; | display: flex; | ||
Line 94: | Line 78: | ||
overflow-x: auto; | overflow-x: auto; | ||
overflow-y: hidden; | overflow-y: hidden; | ||
padding: 0 .75rem; | padding: 0 .75rem; | ||
margin: 0 0 .25rem 0; | margin: 0 0 .25rem 0; | ||
border: 0; | border: 0; | ||
Line 100: | Line 84: | ||
} | } | ||
/* Simple edge fades | /* Simple edge fades (keep colors neutral; skins may override via vars) */ | ||
.ooo-infobox-tabwrap.ooo-infobox-tabwrap--scroll::before, | .ooo-infobox-tabwrap.ooo-infobox-tabwrap--scroll::before, | ||
.ooo-infobox-tabwrap.ooo-infobox-tabwrap--scroll::after { | .ooo-infobox-tabwrap.ooo-infobox-tabwrap--scroll::after { | ||
content: ""; | content: ""; | ||
position: absolute; | position: absolute; | ||
top: -2px; | top: -2px; | ||
height: 28px; | height: 28px; | ||
width: 10px; | width: 10px; | ||
} | } | ||
Line 118: | Line 102: | ||
} | } | ||
.ooo-infobox-tabwrap.ooo-infobox-tabwrap--scroll .tabber__tab { flex: 0 0 auto; } | |||
.ooo-infobox-tabwrap.ooo-infobox-tabwrap--scroll .tabber__tab { | |||
} | |||
/* Mobile */ | /* Mobile */ |
Revision as of 11:01, 13 October 2025
/* Template:OOOInfoBoxTabber/styles.css
Only layout/sizing that TemplateStyles accepts. No CSS custom prop definitions here. */
/* Wrapper (default right) */
.ooo-infobox-tabwrap {
float: right;
clear: right;
width: 300px; /* keep in sync with {{OOOInfoBox}} default if needed */
margin: 0 0 1em 1em;
}
/* Alignment overrides */
.ooo-infobox-tabwrap--left { float: left; clear: left; margin: 0 1em 1em 0; }
.ooo-infobox-tabwrap--none { float: none; margin: 0 0 1em 0; }
.ooo-infobox-tabwrap--center { float: none; display: block; margin: 0 auto 1em; }
/* ===== Wrap mode (default) ===== */
.ooo-infobox-tabwrap .tabber__tabs {
display: flex;
flex-wrap: wrap;
gap: .35rem;
justify-content: flex-start;
align-content: flex-start;
align-items: flex-end;
margin: 0 0 .25rem 0;
width: 100%;
box-sizing: border-box;
border: 0;
background: none;
}
.ooo-infobox-tabwrap .tabber__tabs::after { content: none; }
.ooo-infobox-tabwrap .tabber__tab {
flex: 0 0 auto;
min-width: 3.5ch;
white-space: nowrap;
text-align: center;
line-height: 1.2;
font-weight: 700;
font-size: 90%;
padding: .3rem .55rem;
text-decoration: none;
background: var(--background-color-neutral, #f5f5f5);
color: var(--color-base, #202122);
border: 1px solid #a2a9b1;
border-bottom: none;
border-radius: 12px 12px 0 0;
}
.ooo-infobox-tabwrap .tabber__tab:hover { background: rgba(255,255,255,.06); }
.ooo-infobox-tabwrap .tabber__tab:focus {
outline: 2px solid #cea141;
outline-offset: 2px;
border-radius: 12px;
}
.ooo-infobox-tabwrap .tabber__tab--active {
cursor: default;
background: var(--background-color-base, #ffffff);
color: var(--color-base, #202122);
margin-bottom: -1px;
box-shadow: inset 0 -1px 0 var(--background-color-base, #ffffff);
}
.ooo-infobox-tabwrap .tabber__panel {
padding: 0;
border: 0;
background: transparent;
}
/* ===== Scroll mode (opt-in) ===== */
.ooo-infobox-tabwrap.ooo-infobox-tabwrap--scroll { position: relative; }
.ooo-infobox-tabwrap.ooo-infobox-tabwrap--scroll .tabber__tabs {
display: flex;
flex-wrap: nowrap;
gap: .35rem;
overflow-x: auto;
overflow-y: hidden;
padding: 0 .75rem;
margin: 0 0 .25rem 0;
border: 0;
background: none;
}
/* Simple edge fades (keep colors neutral; skins may override via vars) */
.ooo-infobox-tabwrap.ooo-infobox-tabwrap--scroll::before,
.ooo-infobox-tabwrap.ooo-infobox-tabwrap--scroll::after {
content: "";
position: absolute;
top: -2px;
height: 28px;
width: 10px;
}
.ooo-infobox-tabwrap.ooo-infobox-tabwrap--scroll::before {
left: 0;
background: linear-gradient(to right, var(--background-color-base, #1f1f1f), transparent);
}
.ooo-infobox-tabwrap.ooo-infobox-tabwrap--scroll::after {
right: 0;
background: linear-gradient(to left, var(--background-color-base, #1f1f1f), transparent);
}
.ooo-infobox-tabwrap.ooo-infobox-tabwrap--scroll .tabber__tab { flex: 0 0 auto; }
/* Mobile */
@media (max-width: 640px) {
.ooo-infobox-tabwrap,
.ooo-infobox-tabwrap--left,
.ooo-infobox-tabwrap--none,
.ooo-infobox-tabwrap--center {
float: none;
width: 100%;
margin: 0 0 1em 0;
}
}