/* OOO Infobox — Tabber wrapper styles
Modes:
- default: wrap (tight-pack flex)
- opt-in: add class .ooo-infobox-tabwrap--scroll for horizontal scroll
*/
/* Wrapper (default right) */
.ooo-infobox-tabwrap {
float: right;
clear: right;
width: 300px; /* keep in sync with .ooo-infobox default */
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; /* both column + row gap */
justify-content: flex-start; /* pack left, no stretching */
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; }
/* Pills (shared base styles) */
.ooo-infobox-tabwrap .tabber__tab {
flex: 0 0 auto; /* natural width; don't shrink */
min-width: 3.5ch; /* floor so tiny labels don't collapse */
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;
}
/* Hover + focus */
.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;
}
/* Active tab sits flush with the panel */
.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);
}
/* Panels */
.ooo-infobox-tabwrap .tabber__panel {
padding: 0;
border: 0;
background: transparent;
}
/* =========================
SCROLL MODE (opt-in)
Add .ooo-infobox-tabwrap--scroll via |mode=scroll
========================= */
.ooo-infobox-tabwrap.ooo-infobox-tabwrap--scroll { position: relative; }
/* Make the tab row horizontally scrollable */
.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; /* room for edge fades / arrows */
margin: 0 0 .25rem 0;
border: 0;
background: none;
}
/* Simple edge fades using overlays (TemplateStyles-safe) */
.ooo-infobox-tabwrap.ooo-infobox-tabwrap--scroll::before,
.ooo-infobox-tabwrap.ooo-infobox-tabwrap--scroll::after {
content: "";
position: absolute;
top: -2px; /* align with top of pills */
height: 28px; /* approximate pill height */
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);
}
/* Tabs inside the scroller */
.ooo-infobox-tabwrap.ooo-infobox-tabwrap--scroll .tabber__tab {
flex: 0 0 auto; /* fixed-size items; no snapping props */
}
/* 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;
}
}