Current File : /home/jvzmxxx/wiki/extensions/MobileFrontend/resources/mobile.startup/toast.less
@import 'minerva.variables';
@import 'minerva.mixins';

// Toast notifications
//
// Styleguide 3.

.drawer {
	background-color: @colorGray15;
	// needed for Android 4.x
	position: absolute;
	// needed for MSIE 9 (Windows Phone 7)
	width: 100%;
}

// Basic toast notification
//
// Toast must have visible class to be shown
//
// Markup:
// <div class="toast visible">
//  Notification for user.
// </div>
//
// Styleguide 3.1.
.mw-notification,
.toast,
.drawer {
	.box-sizing( border-box );
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	box-shadow: 0 -1px 8px 0 rgba( 0, 0, 0, 0.35 );
	word-wrap: break-word;
	// needs to be higher than for overlays to show on top of overlays
	z-index: @z-indexOverOverlay;
	// don't use visibility: hidden in old browsers that don't support animations
	display: none;

	&.visible, &.mw-notification-visible {
		display: block;
	}
}

.mw-notification,
.toast {
	font-size: 0.9em;
	padding: 0.9em 1em;
	background-color: @toastNotificationColor;
	color: #fff;
	margin: 0 10% 20px;
	width: 80%;
	text-align: center;
	border-radius: @borderRadius;

	// Toast notification error state
	//
	// When the toast message needs to convey that an error has occurred add the error class
	//
	// Markup:
	// <div class="toast visible error">
	//  An error occurred.
	// </div>
	//
	// Styleguide 3.2.
	&.mw-notification-type-error {
		.background-image( 'images/error.png' );
		background-position: 16px 50%;
		background-repeat: no-repeat;
		padding-left: 5%;
		width: 75%;
		border: 0; // FIXME: this is needed because a global .error adds border
	}

	a {
		color: @colorProgressive;

		&.new {
			color: @colorDestructive;
		}
	}
}

.mw-notification-area {
	z-index: @z-indexOverOverlay;
	position: fixed;
	bottom: 0;
	width: 100%;
}

.animations {
	.mw-notification,
	.drawer {
		@duration: 0.25s;
		display: block;
		visibility: hidden;
		/* we can't determine the actual size of the drawer in CSS, so this is
		 * an estimate; it doesn't have to be exact because it's used only for
		 * the sliding animation, not for hiding the drawer */
		.transform( translate( 0, 100px ) );
		// counter translate with bottom to avoid empty blank space at the bottom
		// especially on browsers that don't support position: fixed
		bottom: 100px;
		opacity: 0;

		// Only apply the transition when an animation is needed (when drawer/toast hidden/shown)
		&.animated, &.mw-notification-tag-toast {
			// delay visibility transition to make other transitions visible
			// http://fvsch.com/code/transition-fade/test5.html
			// need to assign to a temporary variable to preserve commas
			// https://github.com/leafo/lessphp/issues/105#issuecomment-2872598
			@transition: @duration, opacity @duration, visibility 0s @duration, bottom 0s @duration;
			.transition-transform( @transition );
		}

		&.visible, &.mw-notification-visible {
			bottom: 0;
			// need to assign to a temporary variable to preserve commas
			// https://github.com/leafo/lessphp/issues/105#issuecomment-2872598
			@transition: @duration, opacity @duration;
			.transition-transform( @transition );
			visibility: visible;
			opacity: 1;
			.transform( translate( 0, 0 ) );
		}
	}
}