Jump to content

MediaWiki:Gadget-Infobox.css: Difference between revisions

From The Petit Planet Wiki
Adjusted some DRUID infobox styling and added styling for archive numbers and quality
Fixed styling when infobox has no image
 
(3 intermediate revisions by the same user not shown)
Line 44: Line 44:
}
}


.druid-infobox .druid-title {
.druid-infobox .druid-title,
.druid-infobox .druid-subtitle {
     background: var(--druid-secondary-background-color);
     background: var(--druid-secondary-background-color);
     color: var(--druid-secondary-background-label-color);
     color: var(--druid-secondary-background-label-color);
Line 52: Line 53:
     font-family: 'PetitPlanet', 'Montserrat', sans-serif;
     font-family: 'PetitPlanet', 'Montserrat', sans-serif;
     padding: 0.15em 0.6em;
     padding: 0.15em 0.6em;
}
/* Only when subtitle is immediately after title */
.druid-infobox > div:has(> .druid-title):has(+ div > .druid-subtitle) > .druid-title {
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
}
/* Only when no images */
.druid-infobox:not(:has(.druid-main-image, .druid-main-images)) .druid-title {
  margin-bottom: var(--druid-gap);
}
.druid-infobox .druid-subtitle {
    background: rgba(var(--color-accent--rgb), 0.8);
    font-size: 1.2em;
    border-top-left-radius: 0;
    border-top-right-radius: 0;
}
}


Line 94: Line 113:
     margin: calc(1px + var(--druid-gap)) 0;
     margin: calc(1px + var(--druid-gap)) 0;
     border-radius: var(--druid-inner-border-radius);
     border-radius: var(--druid-inner-border-radius);
}
/* Only if no image */
.druid-infobox div.druid-main-image:not(:has(*)) {
    height: var(--druid-gap);
}
}


Line 305: Line 329:
.quality-label.quality-gold::before { background: #C79D39; }
.quality-label.quality-gold::before { background: #C79D39; }


/*****************************************
/* Hide dummy infobox until extension is removed */
  TODO:
  Delete all Portable Infobox CSS after converting all Portable Infoboxes
  into DRUID Infoboxes
*****************************************/
 
.portable-infobox {
    min-width: 320px;
    background: var(--background-color-1);
    border-radius: 20px;
    padding: 10px;
}
 
.pi-title {
    background-color: var(--color-accent);
    text-align: center;
    border-radius: 10px;
    color: var(--color-accent-text);
    margin-bottom: 5px !important;
}
 
.pi-data {
    background-color: var(--background-color-2);
    border-radius: 10px;
    margin-bottom: 5px;
    border: none;
}
 
.pi-data:last-child {
    margin-bottom: 0;
}
 
.pi-data-label {
    color: var(--color-progressive);
    font-family: 'Inter' !important;
    font-weight: 700 !important;
}
 
.portable-infobox .pi-data-label {
    flex: 95px;
}
 
.pi-image img {
    border-radius: 10px;
    overflow: hidden;
    margin-bottom: 5px !important;
}
 
.pi-media-collection-tabs {
    gap: 5px;
    align-items: stretch !important;
    margin-bottom: 2px !important;
}
 
.pi-media-collection-tabs .current {
    background-color: var(--background-color-4) !important;
}
 
.pi-media-collection-tabs li {
    border-radius: 10px !important;
    background-color: var(--background-color-2) !important;
}
 
.pi-section-navigation .pi-section-tab, .pi-media-collection .pi-tab-link {
    max-width: none !important;
    flex-grow: 1;
}
 
.pi-media-collection .pi-tab-link {
    border: 0;
}
 
.pi-header {
    background-color: transparent !important;
    text-align: center;
    font-weight: 500 !important;
}
 
/* Group styling */
.pi-horizontal-group {
    margin-bottom: 5px;
    border: 1px solid transparent !important;
    border-spacing: 5px 0;
    border-collapse: collapse;
    border-radius: 10px;
    overflow: hidden;
}
 
.pi-horizontal-group {
    td,
    th {
        border-color: var(--background-color-1) !important;
        border-width: 5px !important;
        background-color: var(--background-color-2);
    }
}
 
.pi-group {
    border: none;
}
 
/* Hide dummy infobox */
aside.pi-theme-dummy,
aside.pi-theme-dummy,
aside.pi-theme-dummy ~ aside.portable-infobox + p > br:first-child,
aside.pi-theme-dummy ~ aside.portable-infobox + p > br:first-child,

Latest revision as of 23:33, 21 February 2026

:root,
.druid-container {
    --druid-background-color: var(--background-color-0b);
    --druid-secondary-background-color: var(--color-accent);
    --druid-secondary-background-label-color: var(--color-accent-text);
    --druid-tertiary-background-color: var(--background-color-3);
    --druid-tertiary-background-label-color: var(--color-base);
    --druid-quaternary-background-color: var(--background-color-2b);
    --druid-quinary-background-color: var(--background-color-1b);
    --druid-border-color: rgba(var(--color-accent--rgb), 0.5);
    --druid-link-color: rgba(var(--color-accent--rgb), 0.5);
    --druid-link-label-color: var(--color-base);
    --druid-outer-border-radius: 10px;
    --druid-inner-border-radius: 8px;
    --druid-gap: 4px;
}

.druid-container {
    border: 6px solid var(--druid-background-color);
    border-radius: var(--druid-outer-border-radius);
    background: var(--druid-background-color);
    float: right;
    clear: right;
    margin: 5px 0 1em 1em;
    width: 100%;
    max-width: 340px;
    box-sizing: border-box;
    border-collapse: collapse;
    font-size: 0.85em;
}

@media screen and (max-width: 720px) {
    .druid-container {
        float:none;
        margin: 0.5rem auto;
        width: max(100%, 340px);
        max-width: max(100%, 340px);
    }
}

.druid-main-images-file,
.druid-main-image {
    text-align: center;
}

.druid-infobox .druid-title,
.druid-infobox .druid-subtitle {
    background: var(--druid-secondary-background-color);
    color: var(--druid-secondary-background-label-color);
    border-radius: var(--druid-inner-border-radius);
    text-align: center;
    font-size: 1.5em;
    font-family: 'PetitPlanet', 'Montserrat', sans-serif;
    padding: 0.15em 0.6em;
}

/* Only when subtitle is immediately after title */
.druid-infobox > div:has(> .druid-title):has(+ div > .druid-subtitle) > .druid-title {
    border-bottom-left-radius: 0;
    border-bottom-right-radius: 0;
}

/* Only when no images */
.druid-infobox:not(:has(.druid-main-image, .druid-main-images)) .druid-title {
  margin-bottom: var(--druid-gap);
}

.druid-infobox .druid-subtitle {
    background: rgba(var(--color-accent--rgb), 0.8);
    font-size: 1.2em;
    border-top-left-radius: 0;
    border-top-right-radius: 0;
}

.druid-infobox .druid-section {
    background: var(--druid-tertiary-background-color);
    color: var(--druid-tertiary-background-label-color);
    text-align: center;
    font-size: 1.35em;
    font-family: 'PetitPlanet', 'Montserrat', sans-serif;
    border-radius: var(--druid-inner-border-radius);
    margin-bottom: var(--druid-gap);
    padding: 0.15em 0.6em;
}

.druid-infobox .druid-collapsible .druid-section {
    flex-grow: 1;
}

.druid-label {
    font-weight: bold;
    text-align: left;
    box-sizing: border-box;
}

.druid-row > .druid-label {
    width: 33%;
    flex-shrink: 0;
    margin-right: var(--druid-gap);
}

.druid-row > .druid-label,
.druid-row > .druid-data {
    padding: 0.3em 0.6em;
}

.druid-main-image img,
.druid-main-images img {
    max-width: 324px;
    max-height: 500px;
    width: auto;
    height: auto;
    margin: calc(1px + var(--druid-gap)) 0;
    border-radius: var(--druid-inner-border-radius);
}

/* Only if no image */
.druid-infobox div.druid-main-image:not(:has(*)) {
    height: var(--druid-gap);
}

.druid-main-images-labels {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: space-evenly;
    padding: calc(1px + var(--druid-gap)) 0 0 0;
    gap: var(--druid-gap);
}

.druid-main-images-label {
    cursor: pointer;
    flex: 1 1 auto;
    text-align: center;
    border: 1px solid var(--druid-border-color);
    border-radius: var(--druid-inner-border-radius);
    padding: 2px 0;
}

.druid-main-images-label.focused {
    background: var(--druid-link-color);
    color: var(--druid-link-label-color);
    border-color: transparent;
}

.druid-main-images-label:not(.focused):hover {
    background: rgba(var(--color-accent--rgb), 0.15);
    border-color: var(--druid-link-color);
}

.druid-toggleable-data:not(.focused),
.druid-main-images-file:not(.focused),
.druid-toggleable-heading:not(.focused),
.druid-row:not(:has(.druid-grid)):has(.druid-toggleable-data-empty.focused),
.druid-grid-item:has(.druid-toggleable-data-empty.focused),
.druid-section:has(.druid-toggleable-heading-empty.focused),
.druid-section-container:has(.druid-toggleable-data-empty.focused):not(:has(.druid-toggleable-data-nonempty.focused)):not(:has(.druid-data-nonempty)) {
    display: none;
    border-color: var(--druid-border-color);
}

.druid-grid {
    display: grid;
    gap: var(--druid-gap);
}

.druid-grid-item {
    background: var(--druid-quinary-background-color);
    border-radius: var(--druid-inner-border-radius);
    margin-bottom: var(--druid-gap);
    padding: var(--druid-gap);
}

.druid-section-container:last-of-type .druid-grid:last-of-type .druid-grid-item {
    margin-bottom: 0;
}

.druid-grid-item .druid-label,
.druid-grid-item .druid-data {
	padding: 0.3em 0.6em;
    text-align: center;
    border-radius: calc(var(--druid-inner-border-radius) - (var(--druid-gap)/2));
}

.druid-grid-item .druid-label {
    background: var(--druid-quaternary-background-color);
    margin-bottom: var(--druid-gap);
}

.druid-grid-item .druid-data {
    background: var(--druid-quinary-background-color);
}

.druid-data-wide {
    width: 100%;
}

.druid-section-container > .druid-collapsible {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.druid-collapsed {
    display: none !important;
}

.druid-collapsible {
    cursor: pointer;
    position: relative;
}

.druid-collapsible::after {
    content: "";
    display: block;
    position: absolute;
    right: 10px;
    width: 20px;
    height: 20px;
    --mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' class='icon icon-tabler icon-tabler-chevron-up' width='24' height='24' viewBox='0 0 24 24' stroke-width='2' stroke='currentColor' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath stroke='none' d='M0 0h24v24H0z' fill='none'%3E%3C/path%3E%3Cpath d='M6 15l6 -6l6 6'%3E%3C/path%3E%3C/svg%3E") no-repeat;
    -webkit-mask: var(--mask);
    mask: var(--mask);
    -webkit-mask-size: 100% 100%;
    mask-size: 100% 100%;
    -webkit-mask-position: center center;
    mask-position: center center;
    background-color: var(--druid-tertiary-background-label-color);
}

.druid-collapsible-collapsed::after {
    transform: rotate(180deg);
}

/*****************************************
Div support
*****************************************/

div.druid-row {
    display: flex;
    margin-bottom: var(--druid-gap);
    background: var(--druid-background-color);
    border-radius: var(--druid-inner-border-radius);
}

.druid-section-container:last-of-type .druid-row:last-of-type,
.druid-section-container:last-of-type .druid-collapsible-collapsed .druid-section {
    margin-bottom: 0;
}

div.druid-row + div.druid-row {
    margin-top: 0;
}

div.druid-row > .druid-label {
    background: var(--druid-quaternary-background-color);
    border-radius: var(--druid-inner-border-radius);
}

div.druid-data,
div.druid-row > div.druid-label + div.druid-data {
    width: 100%;
    background: var(--druid-quinary-background-color);
    border-radius: var(--druid-inner-border-radius);
    box-sizing: border-box;
}

.druid-infobox #toc {
    display: none;
}

/*****************************************
Custom display classes
*****************************************/

div.druid-stacked.druid-row,
.druid-stacked div.druid-row {
    flex-direction: column;
}

.druid-stacked.druid-row > .druid-label,
.druid-stacked .druid-row > .druid-label {
    text-align: left;
    width: 100%;
    flex-basis: unset;
}

.druid-stacked.druid-row > .druid-data,
.druid-stacked .druid-row > .druid-data {
    padding-left: 0.75em;
}

.archive-number {
    padding: calc(var(--druid-gap)/4) var(--druid-gap);
    border-radius: var(--druid-inner-border-radius);
    outline: 1px solid rgba(128, 128, 128, 0.3);
    margin-right: 0.25em;
}

.archive-number.quality-none { background: var(--druid-secondary-background-color); }
.archive-number.quality-gray { background: #C7CAB4; }
.archive-number.quality-green { background: #83D083; }
.archive-number.quality-blue { background: #95BFCC; }
.archive-number.quality-purple { background: #A680B1; }
.archive-number.quality-gold { background: #C79D39; }

.quality-label {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    border-radius: var(--druid-inner-border-radius);
    line-height: 1;
    vertical-align: middle;
}

.quality-label::before {
    content: "";
    width: 0.8rem;
    height: 0.8rem;
    border-radius: calc(var(--druid-inner-border-radius) - var(--druid-gap));
    display: inline-block;
    outline: 1px solid rgba(64, 64, 64, 0.3);
}

.quality-label.quality-none::before { background: var(--druid-quaternary-background-color); }
.quality-label.quality-gray::before { background: #C7CAB4; }
.quality-label.quality-green::before { background: #83D083; }
.quality-label.quality-blue::before { background: #95BFCC; }
.quality-label.quality-purple::before { background: #A680B1; }
.quality-label.quality-gold::before { background: #C79D39; }

/* Hide dummy infobox until extension is removed */
aside.pi-theme-dummy,
aside.pi-theme-dummy ~ aside.portable-infobox + p > br:first-child,
aside.pi-theme-dummy ~ aside.portable-infobox + p:empty + p > br:first-child {
    display: none;
}