CitizenStyle.css

From Dudes Codex
Revision as of 05:51, 6 March 2024 by Perp (talk | contribs) (Created page with ".infobox { margin-bottom: var( --space-md ); width: 100%; max-width: 400px; border-radius: var( --border-radius--medium ); background-color: var( --color-surface-2 ); font-size: var( --font-size-small ); line-height: var( --line-height-sm ); } .infobox.mw-collapsed { background-color: transparent; box-shadow: inset 0 0 0 1px var( --border-color-base ); } .infobox__image img { →‎Prevent overflow: max-width: 100%; height...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

.infobox {

   margin-bottom: var( --space-md );
   width: 100%;
   max-width: 400px;
   border-radius: var( --border-radius--medium );
   background-color: var( --color-surface-2 );
   font-size: var( --font-size-small );
   line-height: var( --line-height-sm );

}

.infobox.mw-collapsed {

   background-color: transparent;
   box-shadow: inset 0 0 0 1px var( --border-color-base );

}

.infobox__image img {

   /* Prevent overflow */
   max-width: 100%;
   height: auto;

}

/* Provide background color for transparent SVGs */ .infobox__image img[src$=".svg"] {

   background: #eaecf0;

}

.infobox__snippet, .infobox__indicator, .infobox__header, .infobox__sectionHeader, .infobox__sectionContent {

   padding-left: var( --space-md );
   padding-right: var( --space-md );

}

.infobox__snippet, .infobox__indicator {

   padding-top: var( --space-sm );
   padding-bottom: var( --space-sm );

}

.infobox__snippet {

   display: flex;
   gap: var( --space-xs );
   align-items: center;
   white-space: nowrap;

}

.infobox__snippet.mw-collapsible-toggle {

   /* Disable default style */
   float: none;
   border-top-left-radius: var( --border-radius--medium );
   border-top-right-radius: var( --border-radius--medium );

}

.infobox__snippet.mw-collapsible-toggle.mw-collapsible-toggle-collapsed {

   border-bottom-left-radius: var( --border-radius--medium );
   border-bottom-right-radius: var( --border-radius--medium );

}

.infobox__snippet.mw-collapsible-toggle:hover {

   background-color: var( --background-color-quiet--hover );

}

/* Might as well steal from skin */ .infobox__snippet.mw-collapsible-toggle .mw-ui-icon-wikimedia-collapse {

   width: var( --font-size-small );
   height: var( --font-size-small );
   flex-shrink: 0;
   transition: var( --transition-menu );
   transition-property: transform;

}

/* Might as well steal from skin */ .infobox__snippet.mw-collapsible-toggle.mw-collapsible-toggle-collapsed .mw-ui-icon-wikimedia-collapse {

   transform: rotate( 180deg );

}

.infobox__snippet .infobox__desc {

   max-width: 100%;
   text-overflow: ellipsis;
   overflow: hidden;
   font-size: var( --font-size-small );

}

.infobox__indicator {

   background-color: var( --color-surface-3 );

}

.infobox__indicator.infobox__indicator--red {

   /* color-destructive */
   background-color: rgba( 221, 51, 51, 0.1 );
   color: rgba( 221, 51, 51, 1 );

}

.infobox__indicator.infobox__indicator--yellow {

   /* color-warning */
   background-color: rgba( 255, 204, 51, 0.1 );
   color: rgba( 255, 204, 51, 1 );

}

.infobox__indicator.infobox__indicator--green {

   /* color-success */
   background-color: rgba( 0, 175, 137, 0.1 );
   color: rgba( 0, 175, 137, 1 );

}

.infobox__header, .infobox__sectionHeader {

   line-height: var( --line-height-xs );

}

.infobox__header {

   margin-top: var( --space-lg );
   margin-bottom: var( --space-md );
   display: flex;
   gap: var( --space-sm );

}

.infobox__section, .infobox__sectionHeader, .infobox__sectionContent {

   margin-top: var( --space-md );

}

.infobox__title, .infobox__sectionTitle {

   color: var( --color-base--emphasized );
   font-weight: var( --font-weight-semibold );

}

.infobox__title {

   font-size: var( --font-size-x-large );

}

.infobox__sectionSubtitle {

   margin-top: 2px;

}

.infobox__section + .infobox__section:not( .infobox__section--noborder ) {

   border-top: 1px solid var( --border-color-base );

}

/* Use padding to prevent margin collapse when there is no footer */ .infobox__content > .infobox__section:last-child {

   margin-bottom: 0;
   padding-bottom: var( --space-md );

}

.infobox__sectionTitle {

   font-size: 1rem;

}

.infobox__sectionSubtitle {

   color: var( --color-base--subtle );

}

.infobox__sectionContent {

   display: grid;
   gap: var( --space-sm );

}

.infobox__item {

   display: grid;
   gap: 2px var( --space-xs );
   grid-auto-rows: max-content;

}

.infobox__item--hasIcon {

   display: flex;
   align-items: center;
   column-gap: var( --space-sm );

}

.infobox__badge {

   place-content: center;
   text-align: center;
   box-shadow: inset 0 0 0 1px var( --border-color-base );
   border-radius: var( --border-radius--medium );
   padding: var( --space-xs ) var( --space-sm );
   font-weight: var( --font-weight-medium );
   background-color: var( --color-surface-2--active );

}

.infobox__desc, .infobox__label {

   color: var( --color-base--subtle );
   font-size: var( --font-size-x-small );

}

.infobox__label {

   letter-spacing: 0.05em;

}

.infobox__grid--row .infobox__label, .infobox__grid--row .infobox__desc {

   font-size: var( --font-size-small );

}

.infobox__data {

   font-weight: var( --font-weight-medium );

}

.infobox__icon img {

   filter: var( --filter-invert );
   opacity: var( --opacity-icon-base );

}

.infobox__itemButton {

   position: relative;
   padding: var( --space-sm ) var( --space-md );
   line-height: var( --line-height-sm );
   gap: 0;

}

.infobox__itemButton:hover {

   background-color: var( --background-color-quiet--hover );

}

.infobox__itemButton:hover .infobox__itemButtonArrow {

   transform: rotate( 90deg ) translateY( -4px );

}

.infobox__itemButton:active {

   background-color: var( --background-color-quiet--active );

}

.infobox__itemButton .infobox__text {

   flex-grow: 1;

}

.infobox__itemButton .infobox__data {

   color: var( --color-base--emphasized );

}

.infobox__itemButtonLink a {

   position: absolute;
   inset: 0;
   opacity: 0;

}

.infobox__itemButton .infobox__icon {

   margin-right: var( --space-sm );

}

.infobox__itemButton .infobox__icon img {

   width: 1.25rem;
   height: 1.25rem;

}

.infobox__itemButtonArrow {

   width: 1rem;
   height: 1rem;
   transition: var( --transition-hover );
   transform: rotate( 90deg );

}

.infobox__footer {

   margin-top: var( --space-lg );
   border-top: 1px solid var( --border-color-base );
   background-color: var( --color-surface-2--active );
   border-bottom-left-radius: var( --border-radius--medium );
   border-bottom-right-radius: var( --border-radius--medium );

}

.infobox__footer > .infobox__section {

   margin: 0;
   padding: var( --space-md );
   display: grid;
   gap: var( --space-xxs );

}

.infobox__button {

   position: relative;
   border-bottom-left-radius: var( --border-radius--medium );
   border-bottom-right-radius: var( --border-radius--medium );
   padding: var( --space-sm ) var( --space-md );
   background-color: var( --color-primary );
   cursor: pointer;

}

.infobox__button:hover {

   background-color: var( --color-primary--hover );

}

.infobox__buttonLabel {

   display: flex;
   justify-content: center;
   align-items: center;
   gap: var( --space-xs );
   color: #fff;
   font-weight: var( --font-weight-medium );

}

/* Fake button with link element */ .infobox__buttonLink {

   position: absolute;
   top: 0;
   bottom: 0;
   left: 0;
   right: 0;

}

.infobox__buttonLink a {

   display: block;
   height: 100%;
   font-size: 0;

}

.infobox__buttonCard {

   position: absolute;
   top: 100%;
   left: 0;
   right: 0;
   z-index: -1;
   background-color: var( --color-surface-1 );
   border-radius: var( --border-radius--medium );
   box-shadow: var( --box-shadow-dialog );
   opacity: 0;
   transition: var( --transition-menu );
   transition-property: opacity, transform;
   visibility: hidden;
   transform: translateY( -20px );

}

.infobox__button:hover > .infobox__buttonCard {

   z-index: 10;
   opacity: 1;
   visibility: visible;
   transform: none;
   cursor: auto;

}

.infobox__linkButton a {

   padding: var( --space-xxs ) var( --space-xs );
   display: block;
   border-radius: var( --border-radius--small );
   text-decoration: none !important;

}

/* Hide external URL icon */ .infobox__linkButton a:after {

   content: none;

}

.infobox__linkButton a:hover {

   background-color: var( --background-color-quiet--hover );

}

.infobox__linkButton a:active {

   background-color: var( --background-color-quiet--active );

}

.infobox__section--linkButtons > .infobox__sectionContent {

   margin-bottom: var( --space-md );

}

.infobox__section--linkButtons .infobox__data {

   margin-top: var( --space-xxs );
   margin-left: -8px; /* negative space-xs */
   margin-right: -8px; /* negative space-xs */
   display: flex;
   flex-wrap: wrap;
   align-items: baseline;

}

.infobox__buttonLabel img[src$=".svg"] {

   filter: invert( 1 );

}

.infobox.mw-collapsible:before {

   /* Avoid collapse button flash */
   content: none !important;

}

@media only screen and ( max-width: 639px ) {

   .infobox {
       margin-right: auto;
       margin-left: auto;
   }

}

.infobox__section--actions .infobox__sectionContent {

   padding-left: 0;
   padding-right: 0;

}

/* TODO: Remove when footer is removed */ .infobox__section--hasBackground + .infobox__section--hasBackground, .infobox__section--hasBackground + .infobox__footer {

   margin-top: 0;

}

.infobox__section--hasBackground .infobox__sectionContent {

   margin: 0;

}

.infobox__section--metadata .infobox__sectionContent {

   padding: var( --space-md );
   background: var( --color-surface-2--active );
   gap: var( --space-xxs );

}

.infobox__section--metadata .infobox__label, .infobox__section--metadata .infobox__data {

   font-size: var( --font-size-x-small );

}

.infobox__section--metadata .infobox__data {

   word-break: break-word;

}

/* Tabber styles */ .infobox__section--tabber > .infobox__sectionHeader {

   margin-bottom: var( --space-xxs );

}

.infobox__section--tabber > .infobox__sectionContent {

   padding-left: 0;
   padding-right: 0;

}

/* Spacing is handled by tabber */ .infobox__section--tabber .infobox__sectionContent {

   margin-top: 0;
   margin-bottom: 0;

}

.infobox__section--tabber .tabber .infobox__section {

   margin-top: var( --space-sm );
   margin-bottom: 0;

}

/* Increase top margin for nested tabber section */ .infobox__section--tabber .infobox__section.infobox__section--tabber {

   margin-top: var( --space-xl );

}

/* Match padding in the rest of the infobox */ .infobox__section--tabber .tabber__tab {

   padding-left: var( --space-md );
   padding-right: var( --space-md );

}

/* CSS grid utility classes */ .infobox__grid--row {

   grid-auto-flow: column;

}

.infobox__grid--cols-2 {

   grid-template-columns: repeat( 2, minmax( 0, 1fr ) );

}

.infobox__grid--cols-3 {

   grid-template-columns: repeat( 3, minmax( 0, 1fr ) );

}

.infobox__grid--cols-4 {

   grid-template-columns: repeat( 4, minmax( 0, 1fr ) );

}

.infobox__grid--col-span-2 {

   grid-column: span 2;

}

.infobox__grid--col-span-3 {

   grid-column: span 3;

}

.infobox__grid--col-span-4 {

   grid-column: span 4;

}

.infobox__grid--space-between {

   justify-content: space-between;

}