mirror of
https://github.com/StarCitizenTools/mediawiki-skins-Citizen.git
synced 2024-11-25 06:47:16 +00:00
969cd787d6
The same font weight do not provide the same contrast in different themes. We should be able to change the scaling
354 lines
6.3 KiB
Plaintext
354 lines
6.3 KiB
Plaintext
.page-actions {
|
|
--size-button--page: 2.25rem;
|
|
display: flex;
|
|
font-size: 0.875rem;
|
|
font-weight: var( --font-weight-medium );
|
|
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 );
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|