Jump to content

MediaWiki:Gadget-Infobox.css: Difference between revisions

From The Petit Planet Wiki
Adjusted grid-item styling
No edit summary
Line 221: Line 221:
}
}


.druid-section-container:last-of-type .druid-row:last-of-type {
.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;
     margin-bottom: 0;
}
}

Revision as of 10:29, 19 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: var(--border-color-base);
    --druid-link-color: var(--background-color-4);
    --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 {
    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;
}

.druid-infobox .druid-section {
    background: var(--druid-tertiary-background-color);
    color: var(--druid-tertiary-background-label-color);
    text-align: center;
    font-size: 1.5em;
}

.druid-infobox .druid-section {
    font-size: 1.25em;
    font-weight: 500;
    border-radius: var(--druid-inner-border-radius);
    margin-bottom: var(--druid-gap);
}

.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 {
	background: var(--druid-quinary-background-color);
    max-width: 320px;
    max-height: 500px;
    width: auto;
    height: auto;
    margin: calc(2px + var(--druid-gap)) 0;
    padding: var(--druid-gap);
    border-radius: var(--druid-inner-border-radius);
}

.druid-main-images-labels {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: space-evenly;
    padding: calc(2px + 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);
}

.druid-main-images-label:not(.focused):hover {
    background: var(--druid-quinary-background-color);
    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 .druid-title {
    font-weight: 700;
}

.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;
}

/*****************************************
   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.portable-infobox + p > br:first-child,
aside.pi-theme-dummy ~ aside.portable-infobox + p:empty + p > br:first-child {
    display: none;
}