/* * Citizen * * SkinStyles for Extension:VisualEditor * Module: ext.visualEditor.desktopArticleTarget.init * Version: REL1_35 cc3466a * * Date: 2021-08-04 * Note: VE has many modules so they are combined in one file for now */ .ve-activated { #page-tools { z-index: 1; // Fix collision opacity: 1; pointer-events: auto; } .mw-body-header { z-index: 0; // Reset z-index so toolbar won't clip margin-top: ~'calc( 46px - var( --space-xl ) )'; // Trim extra spacing // Reset VE disabled style to allow page action buttons to work opacity: 1; pointer-events: auto; user-select: auto; } .page-heading { opacity: 0.5; } .toc { display: none; // Hide ToC } } // Extra selector because I am lazy to break it down to proper RL stylesheets // TODO: Break down into RL stylesheets when my sins catch up to me .skin-citizen { .ve { &-ce { &-branchNode { &-blockSlug, &-newSlug { background-color: transparent; outline-color: var( --border-color-base ); } } &-linkAnnotation { &.ve-ce-annotation-active { background-color: var( --background-color-primary--active ); box-shadow: 0 0 0 1px var( --border-color-base ); } } } &-ui { &-toolbar { > .oo-ui-toolbar-bar { border-color: var( --border-color-base--darker ); background-color: var( --color-surface-0 ); .oo-ui-toolbar-bar { border: 0; background-color: transparent; } > .oo-ui-toolbar-tools { flex-basis: 50%; flex-grow: 1; overflow-x: auto; overflow-y: hidden; } > .oo-ui-toolbar-actions { order: 5; // Second order border-left: 1px solid var( --border-color-base ); } > .oo-ui-windowManager { order: 10; // Third order } .oo-ui-toolbar-tools { display: inline-block; white-space: nowrap; } /* Fix inline height */ .oo-ui-popupToolGroup-tools.oo-ui-popupToolGroup-active-tools { overflow: auto !important; height: auto !important; } } } &-surface { &-visual { .ve-ce-documentNode { font-size: 1rem; // So that same font size as the actual page } } } &-targetWidget { border-color: var( --border-color-input ); &:not( .oo-ui-pendingElement-pending ) { background: var( --color-surface-1 ); } } &-overlay { font-family: var( --font-family-base ); &-global { z-index: 100; } } &-desktopContext { .ve-ui-linkContextItem .ve-ui-linkContextItem-label { border-color: var( --border-color-base ); } } &-expandableContent { &-fade { background: linear-gradient( to right, rgba( 255, 255, 255, 0 ) 0, var( --color-surface-1 ) 90% ); } &-toggle { background-color: transparent; } } &-mwSaveDialog { &-summary { background-color: transparent; } &-options { border-color: var( --border-color-base ); background-color: var( --color-surface-2 ); } &--editSummary-count { border-color: var( --border-color-base ); } &-license { color: var( --color-base--subtle ); } // Preview and review change panels &-savePanel { ~ .oo-ui-panelLayout { background-color: var( --color-surface-0 ); } } // Give preview content a max width .mw-parser-output { max-width: var( --width-layout ); margin-right: auto; margin-left: auto; } } &-mwTransclusion { &Dialog-addParameterFieldset .ve-ui-mwParameterSearchWidget { border-color: var( --border-color-base ); } &Outline { &ButtonWidget { &.oo-ui-buttonElement-frameless.oo-ui-widget-enabled > .oo-ui-buttonElement-button:hover { background-color: var( --background-color-quiet--hover ); color: var( --color-base--emphasized ); } &.oo-ui-optionWidget-selected .oo-ui-buttonElement-button { background-color: var( --background-color-primary--active ); } } &TemplateWidget-sticky { background-color: var( --color-surface-1 ); } } } &--mwParameterResultWidget { &.oo-ui-optionWidget-highlighted { background-color: var( --background-color-primary--hover ); } &-description { color: var( --color-base--subtle ); } } &-mwTemplatePage-description { color: var( --color-base--subtle ); } } } .oo-ui-toolbar-position-top .ve-ui-toolbarDialog-position-above { border-color: var( --border-color-base--darker ); } } .ve-init { &-mw { &-desktopArticleTarget { &-toolbar { margin-right: var( --padding-page--negative ); margin-left: var( --padding-page--negative ); &Placeholder { height: 46px; // Correspond to VE toolbar height in Citizen border-bottom: 1px solid var( --border-color-base ); margin: 0 var( --padding-page--negative ); &-bar { border: 0; box-shadow: none; } &-floating { .ve-init-mw-desktopArticleTarget-toolbarPlaceholder-bar { background: var( --color-surface-0 ); } } } } } &-progressBarWidget { background-color: var( --color-surface-0 ); border-color: var( --color-primary) ; &-bar { background-color: var( --color-primary ); } } // Fix weird compressed text bug &-tempWikitextEditorWidget { width: 100% !important; background: transparent; } } } // Make toolbar more smaller screen friendly // Well at least I did by best @media ( max-width: 800px ) { .ve-ui-toolbar { > .oo-ui-toolbar-bar { display: flex; flex-wrap: wrap; } &-floating { z-index: 4; } } .ve-init-mw-desktopArticleTarget { &-toolbar { &.ve-ui-toolbar-floating > .oo-ui-toolbar-bar { top: 0; // stick to top } .ve-ui-toolbar-group { // Hide some dropdown tools in smaller screen // help - Help &-help { display: none; } } // Shorten save button // Use CSS magic to create an icon // Will change if I figure out a way to load the icon only for VE .ve-ui-toolbar-saveButton { width: 60px !important; height: 42px !important; padding: 0 !important; &:before { top: 12px; transform: rotate( -45deg ); } &:after { bottom: 12px; transform: rotate( 45deg ); } &:before, &:after { position: absolute; left: 30px; display: block; width: 2px; height: 11px; background: var( --color-base--subtle ); content: ''; } .oo-ui-tool-title { display: none !important; } } // Active state .oo-ui-widget-enabled { .ve-ui-toolbar-saveButton { &:before, &:after { background: var( --color-base--emphasized ); } } } } } // change save button icon from " > " to " < " for RTL language .rtl { .ve-init-mw-desktopArticleTarget-toolbar { .ve-ui-toolbar-saveButton { &:before { transform: rotate( 45deg ); } &:after { transform: rotate( -45deg ); } } } } } // HACK: Temp fix for mobile toolbar, will revisit when we move to 1.39+ .ve-ui-toolbar .oo-ui-toolbar-after { display: none !important; } .skin-citizen-dark { .oo-ui-iconElement-icon.mw-widget-titleOptionWidget-hasImage { filter: none; // fix inverted image } }