@import '../../common/variables.less';
@import 'mediawiki.mixins.less';
@import '../layouts/screen.less';
@import '../../skins.vector.styles.legacy/components/Sidebar.less';
@import './checkboxHack.less';

.mw-sidebar {
	width: @width-grid-column-one;
	// To avoid the white part of the gradient colliding with the sidebar links
	// we apply top and bottom padding.
	padding: 8px 0 40px @padding-left-sidebar;
	background-image: linear-gradient( to bottom, @background-color-base 0%, @background-color-secondary--modern 10%, @background-color-secondary--modern 90%, @background-color-base 100% );
	.box-sizing( border-box );
}

// Update styling when TOC is enabled
.vector-toc-enabled .mw-sidebar {
	width: @width-sidebar;
	// Temporary magic number, will be calculated after TOC specs are finalized
	padding: 12px 19px 12px 9px;
	background-image: none;
	background-color: @border-color-sidebar;
	border: @border-base;
}

.mw-sidebar-action {
	// Align with the portal heading/links
	// `.portal` + `.portal .body`
	margin: 8px @margin-end-portal 8px @margin-start-portal + @margin-start-portal-body;

	// Styles for SidebarAction template.
	.mw-sidebar-action-item {
		h3.mw-sidebar-action-heading {
			display: block;
			background-image: url( ../common/images/portal-separator.png ); // Support: IE 9, Fx 3.6-15, Safari 5.1-6, Chrome 10-25
			background-image: linear-gradient( to right, @border-color-portal-heading-transparent 0, @border-color-portal-heading 33%, @border-color-portal-heading 66%, @border-color-portal-heading-transparent 100% ); // Standard (Firefox 16+, IE 10+, Safari 6.1+, Chrome 26+)
			background-position: center bottom;
			background-repeat: no-repeat;
			background-size: 100% @border-width-base;
			color: @color-base--subtle;
			margin: 0.75em 0;
			border: 0;
			padding: 0.3em 0;
			font-size: @font-size-nav-main-heading;
			font-weight: normal;
			cursor: default;
		}

		.mw-sidebar-action-content {
			> * {
				font-size: @font-size-portal-list-item;
			}

			> a {
				font-weight: bold;
			}
		}

		// T295555 style overrides for temporary language switch alert (can be removed later ).
		.vector-language-sidebar-alert {
			padding: 0.75em;
		}
	}
}

#mw-sidebar-button {
	&:before {
		// Equals `#555`, closest to `#54595d` on background-color `#fff`.
		opacity: 0.67;
		/* @embed */
		background-image: url( images/chevronHorizontal-ltr.svg );

		#mw-sidebar-checkbox:not( :checked ) ~ .mw-header & {
			/* @embed */
			background-image: url( images/menu.svg );
		}
	}

	&:hover {
		&:before {
			opacity: 1;
		}
	}
}

// Use the MediaWiki checkbox hack class from checkboxHack.less. This class exists on the
// checkbox input for the menu panel.
#mw-sidebar-checkbox:not( :checked ) ~ .mw-workspace-container .mw-sidebar {
	// Turn off presentation so that screen readers get the same effect as visually hiding.
	// Visibility and opacity can be animated. If animation is unnecessary, use `display: none`
	// instead to avoid hidden rendering.
	visibility: hidden;
	opacity: 0;
	.transform( translateX( -100% ) );
}

@media ( min-width: ( @max-width-workspace-container + ( 2 * @padding-horizontal-page-container ) ) ) {
	.mw-sidebar {
		background: @background-color-page-container;
		border-right: 1px solid @border-color-sidebar;
	}
}

// Disable transitions on page load. No-JS users will unfortunately miss out. A similar pattern is
// used in Minerva's DropDownList. See enableCssAnimations() in skin.vector.js/index.js for context
// and additional details on how this class is added.
.vector-animations-ready {
	// Enable transition on all widths by default.
	.mw-sidebar {
		@timing: @transition-duration-base ease-out;
		.transition( transform @timing, opacity @timing, visibility @timing; );
	}

	@media ( max-width: @width-breakpoint-tablet ) {
		.mw-sidebar {
			transition: none;
		}
	}

	// Enable sidebar button transitions.
	#mw-sidebar-button {
		.transition(
			background-color @transition-duration-base,
			border-color @transition-duration-base,
			box-shadow @transition-duration-base;
		);
	}
}
