mediawiki-skins-Citizen/resources/mixins.less
2021-01-05 19:45:22 -05:00

186 lines
4.2 KiB
Plaintext

/*
* Citizen - Mixins
* https://starcitizen.tools
*/
// To hide objects, but keep them accessible for screen-readers
.hidden() {
position: absolute;
top: -9999px;
}
// Set content to be at the center
.content-center() {
max-width: @page-width;
margin-left: auto;
margin-right: auto;
}
// Prepare for RL icons
.resource-loader-icon-link() {
width: @icon-box-size;
height: @icon-box-size;
display: block;
}
.resource-loader-icon-link-small() {
width: @icon-size;
height: @icon-size;
display: block;
}
.resource-loader-icon() {
content: '';
position: absolute;
width: inherit;
height: inherit;
background-repeat: no-repeat;
background-position: center;
}
.resource-loader-menu-icon() {
content: '';
position: absolute;
width: @icon-box-size;
height: @icon-box-size;
background-repeat: no-repeat;
background-position: center;
}
.resource-loader-list-icon() {
content: '';
position: relative;
flex-shrink: 0;
align-self: center;
width: @icon-size;
height: @icon-size;
background-repeat: no-repeat;
background-position: center;
}
// Material-like menu
.menu-container() {
padding: 8px 0;
background-color: @menu-background;
border-radius: @border-radius-medium;
display: block;
}
.menu-item-link() {
display: flex;
color: @color-item-text !important;
transition: @transition-background-quick, @transition-color-quick;
}
.menu-item-link-hover() {
color: @color-item-text-hover !important;
background-color: @menu-item-link-hover;
}
.menu-item-link-active() {
color: @color-item-text-active !important;
background-color: @menu-item-link-active;
}
.menu-item-link-focus() {
color: @color-item-text-active !important;
background-color: @menu-item-link-active;
}
// Button Styles
.button-blue() {
background-color: @accent-50;
color: @base-80 !important;
transition: @transition-background-quick, @transition-color-quick;
}
.button-blue-active() {
background-color: @accent-10;
color: @base-100 !important;
}
.button-red() {
background-color: @red-50;
color: @base-80 !important;
transition: @transition-background-quick, @transition-color-quick;
}
.button-red-active() {
background-color: @red-30;
color: @base-100 !important;
}
// Link styles
.link-content-text(@color) {
background-image: linear-gradient( to right, @color 0, @color 100% );
background-repeat: no-repeat;
background-size: 0 100%;
transition: @transition-background-quick, @transition-color-quick;
/* stylelint-disable declaration-property-value-disallowed-list */
&:hover {
outline: none;
color: #fff !important;
background-size: 100% 100% !important;
}
/* stylelint-enable */
}
// Gradient overflow
.gradient-overflow(@position) {
content: '';
position: fixed;
z-index: 3;
width: 100%;
height: @margin-side * 2;
background: @position;
}
// Box-shadow
// https://codepen.io/sdthornton/pen/wBZdXq
.boxshadow(@level: 1) {
& when (@level = 1) {
box-shadow: 0 1px 3px rgba( 0, 0, 0, 0.03 ), 0 1px 2px rgba( 0, 0, 0, 0.06 ); // Cards
}
& when (@level = 2) {
box-shadow: 0 3px 6px rgba( 0, 0, 0, 0.04 ), 0 3px 6px rgba( 0, 0, 0, 0.0575 );
}
& when (@level = 3) {
box-shadow: 0 10px 20px rgba( 0, 0, 0, 0.0475 ), 0 6px 6px rgba( 0, 0, 0, 0.0575 ); // Drawer
}
& when (@level = 4) {
box-shadow: 0 14px 28px rgba( 0, 0, 0, 0.0625 ), 0 10px 10px rgba( 0, 0, 0, 0.055 ); // FAB, floating elements
}
& when (@level = 5) {
box-shadow: 0 19px 38px rgba( 0, 0, 0, 0.075 ), 0 15px 12px rgba( 0, 0, 0, 0.055 ); // Dialogs
}
}
// Borrowed from Mediawiki core 1.35
// “Clearfix Reloaded” Mixin
// The mixin is used on a container with floating children.
// Margin collapsing is a feature, not a bug, hence relying on `display: block` as default.
// With `.mixin-clearfix( @collapse: false; );` you call it to let `margin`s not collapse.
// See https://www.cssmojo.com/the-very-latest-clearfix-reloaded/
// In future we might replace the `&:after` pseudo-element with
// `display: flow-root;` altogether.
// Support: Firefox 3.5+, Safari 4+, Chrome, Opera 15+, IE 8+
.mixin-clearfix( @collapse: true ) {
&:after {
clear: both;
// Margin collapsing as feature. Apply it.
& when ( @collapse ) {
content: '';
display: block;
}
}
// Margin collapsing as bug. Prevent it.
& when not ( @collapse ) {
&:before,
&:after {
content: '';
display: table;
}
}
}