mirror of
https://github.com/StarCitizenTools/mediawiki-skins-Citizen.git
synced 2024-11-27 15:50:34 +00:00
355 lines
6.3 KiB
Plaintext
355 lines
6.3 KiB
Plaintext
.page-actions {
|
|
--size-button--page: 2.25rem;
|
|
display: flex;
|
|
margin-left: -0.75rem; // To align with page padding
|
|
font-size: 0.875rem;
|
|
font-weight: 450;
|
|
gap: 0.25rem;
|
|
|
|
// TODO: Merge this with header__item
|
|
&__item {
|
|
display: flex;
|
|
}
|
|
|
|
// TODO: Merge this with header__button
|
|
&__button {
|
|
display: grid;
|
|
width: var( --size-button--page );
|
|
height: var( --size-button--page );
|
|
border-radius: var( --border-radius--medium );
|
|
place-items: center;
|
|
|
|
&--icon:after {
|
|
width: var( --size-icon );
|
|
height: var( --size-icon );
|
|
background-position: center;
|
|
background-repeat: no-repeat;
|
|
background-size: contain;
|
|
content: '';
|
|
opacity: var( --opacity-icon-base );
|
|
transition: @transition-opacity;
|
|
}
|
|
|
|
&:hover {
|
|
background-color: var( --background-color-quiet--hover );
|
|
|
|
&:after {
|
|
opacity: var( --opacity-icon-base--hover );
|
|
}
|
|
}
|
|
|
|
&:active {
|
|
background-color: var( --background-color-quiet--active );
|
|
|
|
&:after {
|
|
opacity: var( --opacity-icon-base--active );
|
|
}
|
|
}
|
|
}
|
|
|
|
&__card {
|
|
position: absolute;
|
|
z-index: @z-index-page-header; // So the popups inside will be higher than content
|
|
right: 0;
|
|
overflow: auto;
|
|
min-width: 200px;
|
|
max-height: 60vh;
|
|
padding: 0.5rem 0;
|
|
margin-top: ~'calc( var( --size-button--page ) + 0.5rem )';
|
|
font-size: 0.875rem;
|
|
.citizen-card;
|
|
.citizen-card-hide( top right );
|
|
|
|
a {
|
|
padding: 0.625rem 1.25rem;
|
|
.menu-item-link;
|
|
|
|
&:hover {
|
|
.menu-item-link-hover;
|
|
}
|
|
|
|
&:active {
|
|
.menu-item-link-active;
|
|
}
|
|
}
|
|
}
|
|
|
|
// Visible page tools styles
|
|
> .mw-portlet {
|
|
ul {
|
|
display: flex;
|
|
gap: 0.25rem;
|
|
}
|
|
|
|
li > a {
|
|
display: flex;
|
|
align-items: center;
|
|
padding: 0.5rem 0.75rem;
|
|
border-radius: var( --border-radius--medium );
|
|
color: var( --color-base );
|
|
font-size: 0;
|
|
transition: @transition-background, @transition-color;
|
|
|
|
&:after {
|
|
width: var( --size-icon );
|
|
height: var( --size-icon );
|
|
order: -1; // Move icon before the text
|
|
background-position: center;
|
|
background-repeat: no-repeat;
|
|
background-size: var( --size-icon );
|
|
content: '';
|
|
opacity: var( --opacity-icon-base );
|
|
transition: @transition-opacity;
|
|
}
|
|
|
|
&:hover {
|
|
background-color: var( --background-color-quiet--hover );
|
|
color: var( --color-base--emphasized );
|
|
|
|
&:after {
|
|
opacity: var( --opacity-icon-base--hover );
|
|
}
|
|
}
|
|
|
|
&:active {
|
|
background-color: var( --background-color-quiet--active );
|
|
color: var( --color-base--subtle );
|
|
|
|
&:after {
|
|
opacity: var( --opacity-icon-base--active );
|
|
}
|
|
}
|
|
|
|
span {
|
|
.mixin-screen-reader-text;
|
|
}
|
|
}
|
|
}
|
|
|
|
ul {
|
|
margin: 0;
|
|
list-style: none;
|
|
}
|
|
|
|
li {
|
|
margin: 0;
|
|
}
|
|
|
|
// TODO: Merge this with header styles
|
|
.mw-checkbox-hack-checkbox:checked ~ .page-actions__button {
|
|
background-color: var( --background-color-primary--active );
|
|
}
|
|
}
|
|
|
|
// Language counter badge
|
|
// TODO: Maybe this should be in a mixin
|
|
#citizen-languages__buttonCheckbox {
|
|
position: relative; // So that the badge doesn't take a stroll to the far left
|
|
|
|
&:before {
|
|
position: absolute;
|
|
z-index: 2;
|
|
top: 0;
|
|
left: 55%;
|
|
display: block;
|
|
padding: 0.1em 0.4em;
|
|
border-radius: 100px;
|
|
background: var( --color-primary );
|
|
color: #fff;
|
|
content: attr( data-counter-text );
|
|
font-size: 0.65rem;
|
|
}
|
|
}
|
|
|
|
.citizen-languages {
|
|
// Special handling for ULS
|
|
// ULS won't be triggered by the label button
|
|
// so we need to overlay the checkbox on top of it
|
|
.mw-interlanguage-selector {
|
|
position: absolute;
|
|
z-index: 1;
|
|
display: block;
|
|
width: var( --size-button--page );
|
|
height: var( --size-button--page );
|
|
padding: 0;
|
|
margin: 0;
|
|
cursor: pointer;
|
|
opacity: 0;
|
|
|
|
// Hover state needs to be define because the checkbox now overlays the label
|
|
&:hover {
|
|
~ .page-actions__button {
|
|
background-color: var( --background-color-quiet--hover );
|
|
|
|
&:after {
|
|
opacity: var( --opacity-icon-base--hover );
|
|
}
|
|
}
|
|
}
|
|
|
|
&:active {
|
|
~ .page-actions__button {
|
|
background-color: var( --background-color-quiet--active );
|
|
|
|
&:after {
|
|
opacity: var( --opacity-icon-base--active );
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// Handle icons
|
|
.page-actions-more {
|
|
a {
|
|
&:after {
|
|
.resource-loader-list-icon;
|
|
opacity: var( --opacity-icon-base );
|
|
}
|
|
|
|
&:hover {
|
|
&:after {
|
|
opacity: var( --opacity-icon-base--hover );
|
|
}
|
|
}
|
|
|
|
&:active {
|
|
&:after {
|
|
opacity: var( --opacity-icon-base--active );
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
.page-actions-more,
|
|
.citizen-languages {
|
|
position: relative;
|
|
}
|
|
|
|
#p-views {
|
|
// VE styles shouldn't be core but it is just a few lines :/
|
|
#ca-ve-edit:not( .selected ) {
|
|
order: 98; // Before source edit
|
|
|
|
> a {
|
|
padding-right: 1.5rem;
|
|
}
|
|
|
|
// Merge two buttons together
|
|
+ #ca-edit {
|
|
border-left: 1px solid var( --color-primary--hover );
|
|
margin-left: -1rem;
|
|
|
|
> a {
|
|
padding-left: 0.5rem;
|
|
border-radius: 0 var( --border-radius--medium ) var( --border-radius--medium ) 0;
|
|
font-size: 0; // hide edit source text
|
|
|
|
&:after {
|
|
margin-right: 0; // reset
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
#ca-edit {
|
|
order: 99; // Align to last
|
|
}
|
|
|
|
#ca-edit,
|
|
#ca-ve-edit {
|
|
> a {
|
|
background-color: var( --color-primary );
|
|
color: #fff;
|
|
|
|
&:after {
|
|
filter: invert( 1 );
|
|
// white icon
|
|
opacity: 1;
|
|
}
|
|
|
|
&:hover {
|
|
background-color: var( --color-primary--hover );
|
|
}
|
|
|
|
&:active {
|
|
background-color: var( --color-primary--active );
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
.skin-citizen-dark {
|
|
.page-actions {
|
|
&__button--icon:after {
|
|
filter: invert( 1 );
|
|
}
|
|
|
|
li > a:after {
|
|
filter: invert( 1 );
|
|
}
|
|
}
|
|
}
|
|
|
|
// Checkbox hack
|
|
#page-actions-more,
|
|
#citizen-languages {
|
|
&__checkbox:checked {
|
|
~ .page-actions__card {
|
|
.citizen-card-show();
|
|
}
|
|
}
|
|
}
|
|
|
|
.citizen-animations-ready {
|
|
.page-actions__card {
|
|
.citizen-card-transition();
|
|
}
|
|
}
|
|
|
|
@media ( max-width: @width-breakpoint-tablet ) {
|
|
.page-actions {
|
|
&__item {
|
|
position: unset;
|
|
}
|
|
|
|
&__card {
|
|
right: 0;
|
|
left: 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
@media ( min-width: @width-breakpoint-desktop ) {
|
|
.page-actions {
|
|
position: relative;
|
|
margin-right: 0;
|
|
|
|
> .mw-portlet {
|
|
li > a {
|
|
font-size: 0.875rem;
|
|
|
|
&:after {
|
|
margin-right: 0.5rem;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// Reset hover styles if it is a touch device
|
|
// This is dumb but hover:hover overrides active states
|
|
@media ( hover: none ) {
|
|
.page-actions {
|
|
&__button {
|
|
&:hover {
|
|
background-color: none;
|
|
|
|
&:after {
|
|
opacity: var( --opacity-icon-base );
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|