mediawiki-skins-Citizen/resources/skins.citizen.styles/components/Pagetools.less
alistair3149 fdc6eaee20
feat(Echo): upgrade Echo buttons for consistency
This is similiar to how it is handled in Vector.
We are forcing the Echo button to render in the same way as it was initially.
This took me so many hours sigh.
2024-07-05 20:37:52 -04:00

216 lines
4.3 KiB
Plaintext

.page-actions {
display: flex;
gap: var( --space-xxs );
align-items: center;
// TODO: Merge this with header__item
&__item {
display: flex;
}
.citizen-menu {
&__card {
position: absolute;
right: ~'calc( var( --space-xs ) * -1 )'; // counteract margin
z-index: @z-index-page-header; // So the popups inside will be higher than content
display: grid;
gap: var( --space-xs );
max-height: 60vh;
padding: var( --space-xs ) 0;
transform-origin: var( --transform-origin-offset-end ) var( --transform-origin-offset-end );
@media ( min-width: @min-width-breakpoint-desktop ) {
top: 100%;
transform-origin: var( --transform-origin-offset-end ) var( --transform-origin-offset-start );
}
}
}
.citizen-dropdown {
@media ( min-width: @min-width-breakpoint-desktop ) {
// Only attach dropdown menu to the button on desktop mode
position: relative;
}
&-summary {
display: grid;
place-items: center;
width: 2.5rem; // Same width as other buttons
height: 2.25rem; // Same height as other buttons
border-radius: var( --border-radius-medium );
}
}
// Visible page tools styles
> .mw-portlet {
ul {
display: flex;
gap: var( --space-xxs );
}
li > a {
gap: 0;
padding-right: var( --space-sm );
padding-left: var( --space-sm );
font-size: 0;
border-radius: var( --border-radius-medium );
&:hover {
background-color: var( --background-color-button-quiet--hover );
}
&:active {
background-color: var( --background-color-button-quiet--active );
}
}
}
li {
margin: 0;
}
// Hide menu labels
> .citizen-menu > .citizen-menu__heading {
.sr-only;
}
}
// Language counter badge
.citizen-page-languages {
.citizen-dropdown-summary {
position: relative; // So that the badge doesn't take a stroll to the far left
&::after {
position: absolute;
top: 0;
right: 0;
display: block;
padding: 0.1em 0.4em;
font-size: 0.65rem;
content: attr( data-counter-text );
background: var( --color-surface-0 );
border-radius: var( --border-radius-pill );
}
}
}
// Edit button
#ca-edit,
#ca-ve-edit {
> a {
color: var( --color-inverted-primary );
background-color: var( --color-progressive );
&:hover {
background-color: var( --color-progressive--hover );
}
&:active {
background-color: var( --color-progressive--active );
}
}
.citizen-ui-icon {
&::before {
filter: var( --filter-invert-fixed );
// white icon
opacity: 1;
}
}
}
// VE styles shouldn't be core but it is just a few lines :/
#ca-ve-edit {
order: 98; // Before source edit
}
#ca-edit {
order: 99; // Align to last
}
// Merge two buttons together
.client-js .citizen-ve-edit-merged {
&#ca-ve-edit {
> a {
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
}
&#ca-edit {
margin-left: ~'calc( var( --space-xxs ) * -1 )';
border-left: 1px solid var( --color-progressive--hover );
> a {
gap: 0;
font-size: 0; // hide edit source text
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
}
}
// To avoid more menu from overflow in narrow screen
@media ( max-width: @max-width-breakpoint-tablet ) {
.page-actions {
position: fixed;
right: 0;
bottom: ~'calc( var( --header-size ) + var( --space-xs ) )';
height: var( --toolbar-size );
margin: var( --space-xs );
background: var( --color-surface-1 );
border-radius: var( --border-radius-medium );
box-shadow: var( --box-shadow-dialog );
.citizen-scroll--down & {
box-shadow: none;
opacity: 0;
transform: translateY( 250% );
}
.citizen-scroll--up & {
opacity: 1;
transition: var( --transition-menu );
transition-delay: 250ms;
transition-property: opacity, transform;
}
:not( .citizen-menu__card ) .mw-list-item {
--size-icon: 1rem;
}
> .mw-portlet li > a {
height: var( --toolbar-size );
}
&__item {
position: unset;
}
.citizen-menu__card {
bottom: 100%;
}
}
.citizen-page-languages > .citizen-dropdown-summary::after {
// Blend with background
background: var( --color-surface-1 );
}
}
@media ( min-width: @min-width-breakpoint-desktop ) {
.page-actions {
> .mw-portlet {
li > a {
gap: var( --space-xs );
font-size: var( --font-size-small );
}
}
.citizen-menu__card {
// Expand the width on narrow screens might overflow the page
white-space: nowrap;
}
}
}