MediaWiki:Common.less/mainpage.less: Difference between revisions

From Brighter Shores Wiki
Jump to navigation Jump to search
Content added Content deleted
No edit summary
No edit summary
 
(12 intermediate revisions by the same user not shown)
Line 105: Line 105:
padding-right: 1.75em;
padding-right: 1.75em;
max-width: 100%;
max-width: 100%;
border: none;
}
}


Line 111: Line 112:
margin-bottom: 0;
margin-bottom: 0;
}
}

}
}


Line 118: Line 118:
gap: 0.9rem
gap: 0.9rem
}
}

/* remove this when we get a 6th thing to add on the mainpage "events" */
.mainpage-contents.tile-row {
display:flex;
.tile-top {
height: 6.5rem;
}
}
/* remove until above this line */


// left column
// left column
Line 180: Line 170:
wiki contents
wiki contents
-------------------- */
-------------------- */
@mp-contents-height: 4.5rem;
@mp-contents-height: 5.5rem;


.mainpage-contents {
.mainpage-contents {
grid-area: content;
grid-area: content;
grid-template-columns: repeat(6, 1fr);
grid-template-columns: repeat(5, 1fr);


.tile-halves {
.tile-halves {
flex: 1;
flex: 1;
background: none;
}
}


.tile-top {
.tile-top {
height: 4.5rem;
height: @mp-contents-height;
position: relative; // needed for ribbon
position: relative; // needed for ribbon
&.tile-image img {
height: auto;
}
}
}


Line 199: Line 194:
padding: 0;
padding: 0;
}
}
.tile-bottom {
box-shadow: inset 0 0 2px rgba(255,255,255,0.5);
h2 {
background: var(--body-darker);
box-shadow: @infobox-card-shadow;
margin: 3px !important;
}


.tile-bottom.link-button a {
&.link-button a {
padding: 0.75em 0.2em; // prevent grid gap misalignment
padding: 0.65em 0.2em; // prevent grid gap misalignment
}
}
}


Line 241: Line 246:


/* --------------------
/* --------------------
discord server
discord server & twitter/X
-------------------- */
-------------------- */
.mainpage-discord {
.mainpage-social {
border: none;
border: none;
box-shadow: @box-shadow-dark;
box-shadow: @box-shadow-dark;
Line 250: Line 255:
display: flex;
display: flex;
align-items: center;
align-items: center;
background: @discord-bg;
padding: 1em 1.5em;
padding: 1em 1.25em;


a {
a {
flex: 1;
flex: 1;
position: relative; // allow link to cover icon
position: relative;
text-decoration: none;
text-decoration: none;


Line 267: Line 271:


.tile-bottom {
.tile-bottom {
background: @discord-bg-dark;
border: none;
border: none;
padding: 1em 1.25em;
padding: 1em 1.75em;


p {
p {
Line 283: Line 286:
}
}


.partner-icon {
.social-icon {
margin-right: .75em;
margin-right: .75em;
text-align: center;
text-align: center;
Line 289: Line 292:
}
}


.server-name {
.social-header {
color: @white;
color: @white;
font-weight: bold;
font-weight: bold;
font-size: 1.25em;
font-size: 1.15em;
margin: .5em 0 -0.15em;
margin: .5em 0 -0.15em;
}
}
Line 310: Line 313:
transition: .3s ease-out;
transition: .3s ease-out;
}
}
// Discord colors
&.mainpage-discord {


.tile-top {
background: @discord-bg;
}

.tile-bottom {
background: @discord-bg-dark;
}

}

// X (Twitter) colors
&.mainpage-twitter {

.tile-top {
background: @twitter-bg;
}

.tile-bottom {
background: @twitter-bg-dark;
}
}
}
}


Line 322: Line 349:


.tile-top {
.tile-top {
background: @steel-blue;
background: var(--body-darker);
}
}



Latest revision as of 23:32, 24 April 2024

/* ===================
        MAIN PAGE
   =================== */
   
body.page-Main_Page.action-view .catlinks,
body.page-Main_Page.action-view #contentSub,
body.page-Main_Page.action-view #firstHeading,
body.page-Main_Page.action-view #siteNotice {
  display: none;
}


/* ===================
        variables
   =================== */

@mp-text-light: fade( @white, 90% );
@mp-gutter-width: .9rem;


/* ==========================
      page-specific styles
   ========================== */

body.page-Main_Page {

    // limit max width for readability
    // don't use #mw-content-text because it includes the editform
    .mw-parser-output {
        max-width: 75em;
        margin: 0 auto;
    }

    // not when editing
    &.action-view {

        .catlinks,
        #contentSub,
        // hide pagetitle in favor of .mainpage-header 
        // Note: as of mw1.38, this is not needed anymore
        // blanking both [[MediaWiki:Mainpage-title-loggedin]] &
        // [[MediaWiki:Mainpage-title]] applies an inline `display: none;`
        // #firstHeading,
        // anything listed in the sitenotice should already be on the main page
        #siteNotice {
            display: none;
        }

    }

}

/* ====================
      general styles
   ==================== */

.mainpage-header {
    display: flex;
    margin: 2.6em 1.75em 1.5em;

    .header-intro {
        flex: 2;

        h1 {
            font-size: 2.5em;
            font-weight: bold;
            border: none;
            margin: 0 0 .15em;
        }

        p {
            font-size: 1.1em;
            line-height: 1.7em;
        }

    }

    .header-stats {
        flex: 1;
        display: flex;
        justify-content: center;
        align-items: center;
        margin-top: -1em;
    }

}

// main sections
.mainpage-body {
	display: grid;
	grid-template-areas:
	"event event event" // for tbzr tile
	"update update update"
	"content content content"
	"left left right";
	gap: 0.9rem;
	grid-template-columns: repeat(3, 1fr);

    h2 a {
        color: var(--text-color);
    }

    .tile {
        padding-left: 1.75em;
        padding-right: 1.75em;
        max-width: 100%;
        border: none;
    }

    .tile-row {
        width: 100%;
        margin-bottom: 0;
    }
}

.mainpage-body .tile-row {
	display: grid;
	gap: 0.9rem
}

// left column
.mainpage-left {
	grid-area: left;
    flex: 2;
    display: flex;
    flex-flow: column wrap;

    > * {
        margin: 0 0 @mp-gutter-width;
    }

}

// right column
.mainpage-right {
	grid-area: right;
    flex: 1;
    display: flex;
    flex-flow: column wrap;

    > * {
        margin: 0 0 @mp-gutter-width;
    }

}

/* ====================
        components
   ==================== */

.arrow {
    background: url('filepath://White-chevron.svg') no-repeat;
    display: inline-block;
    height: .7rem;
    width: .45rem;
    vertical-align: middle;

    &.dark {
        filter: invert(80%);
    }

}

/* =============================
      section-specific styles
   ============================= */


/* --------------------
      wiki contents
   -------------------- */
@mp-contents-height: 5.5rem;

.mainpage-contents {
	grid-area: content;
	grid-template-columns: repeat(5, 1fr);

    .tile-halves {
        flex: 1;
        background: none;
    }

    .tile-top {
	    height: @mp-contents-height;
        position: relative; // needed for ribbon
        
        &.tile-image img {
        	height: auto;
        }
    }

    h2 {
        margin: 0;
        padding: 0;
    }
    
    .tile-bottom {
    	box-shadow: inset 0 0 2px rgba(255,255,255,0.5);
    	
    	h2 {
    		background: var(--body-darker);
    		box-shadow: @infobox-card-shadow;
    		margin: 3px !important;
    	}

    	&.link-button a {
    		padding: 0.65em 0.2em; // prevent grid gap misalignment
    	}
    }

}

/* --------------------
      popular pages
   -------------------- */

.popular-pages ul {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	grid-gap: .6em;
	margin: 1em 0 .7em 0;
}

.mp-popular-page-light {
	display: flex;
	align-items: center;
	background-color: var(--button-background);
	transition: 100ms;

    a {
    	flex: 1;
    	display: block;
        color: @white;
        font-weight: bold;
        text-align: center;
        text-decoration: none;
        padding: .7em 1em;
    }

    &:hover {
        filter: brightness(115%);
        transition: 100ms;
    }

}

/* --------------------
      discord server & twitter/X
   -------------------- */
.mainpage-social {
    border: none;
    box-shadow: @box-shadow-dark;

    .tile-top {
        display: flex;
        align-items: center;
        padding: 1em 1.5em;

        a {
            flex: 1;
            position: relative;
            text-decoration: none;

            &:hover .arrow {
                transform: translateX(50%);
            }

        }

    }

    .tile-bottom {
        border: none;
        padding: 1em 1.75em;

        p {
            color: @white;
            font-weight: bold;
            font-size: .9em;
            text-align: center;
            text-transform: uppercase;
            letter-spacing: .03em;
            margin: 0;
        }

    }

    .social-icon {
        margin-right: .75em;
        text-align: center;
        width: 60px;
    }

    .social-header {
        color: @white;
        font-weight: bold;
        font-size: 1.15em;
        margin: .5em 0 -0.15em;
    }

    .server-tagline {
        color: @mp-text-light;
        margin-bottom: .5em;
    }

    .arrow {
        position: absolute;
        top: ~"calc(50% - .5em)"; // center arrow on its point
        right: 0;
        height: 1em;
        width: .7em;
        background-size: .7em 1em;
        transition: .3s ease-out;
    }
	
	// Discord colors
    &.mainpage-discord  {

        .tile-top {
            background: @discord-bg;
        }

        .tile-bottom {
            background: @discord-bg-dark;
        }

    }

    // X (Twitter) colors
    &.mainpage-twitter  {

        .tile-top {
            background: @twitter-bg;
        }

        .tile-bottom {
            background: @twitter-bg-dark;
        }
    }
}

/* --------------------
      edit the wiki
   -------------------- */

.mainpage-editing {
    border: none;
    box-shadow: @box-shadow-dark;

    .tile-top {
        background: var(--body-darker);
    }

    .tile-bottom {
        background: saturate( darken( @steel-blue, 4% ), 4% );
        border: none;
        padding: .8rem 1.5rem .4rem;
    }

    h2,
    a {
        color: @white;
    }

    p {
        color: @mp-text-light;
    }

    ul {
        list-style-image: url('filepath://Transparent-chevron.svg');
    }

}

/* ==========================
          media queries
   ========================== */

@media only screen and (max-width: @width-breakpoint-desktop-wide) {

	// switch to two rows of three tiles
	.mainpage-contents {
		grid-template-columns: repeat(3, 1fr)
	}

}

@media only screen and (max-width: @width-breakpoint-desktop) {

	// mainpage-left and -right on one column now
	.mainpage-body {
		grid-template-areas:
		"event event event"
		"update update update"
		"content content content"
		"left left left"
		"right right right";
	}

    .mainpage-recent-updates {
		grid-template-columns: repeat(2, 1fr);

        .tile-halves {

            // hide third recent update
            &:last-child {
                display: none;
            }

        	// zoom on hover
			&:hover .tile-top img {
				transform: scale(1.04);
        	}

        }

        .tile-top {
            height: 18vw;
            min-height: 9em;
        }

    }

    // hide other things
    .mainpage-header .header-stats {
        display: none;
    }

    // kill margin as it duplicates grid's gap
    .mainpage-left > *:last-child,
    .mainpage-right > *:last-child {
        margin-bottom: 0;
    }

	.popular-pages ul {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media only screen and (max-width: @width-breakpoint-tablet) {
	.mainpage-recent-updates {
		// resulting in single column
		grid-template-columns: none;

		// revert display:none
		.tile-halves:last-child {
			display: flex;
		}
	}

	// switch to three rows of two tiles
	.mainpage-contents {
		grid-template-columns: repeat(2, 1fr);
	}
}