extensions/MultimediaViewer/resources/mmv/ui/mmv.ui.truncatableTextField.less
@import 'mediawiki.skin.variables.less';
@import 'mediawiki.mixins.less';
@import '../mmv.variables.less';

.mw-mmv-ttf-container {
	position: relative;
	overflow: hidden; // need to create a block formatting context, otherwise adjacent floats would be problematic

	&.mw-mmv-ttf-small {
		font-size: 90%;
	}

	&.mw-mmv-ttf-smaller {
		font-size: 80%;
	}

	&.mw-mmv-ttf-smallest {
		font-size: 65%;
	}

	// used on containers which have been shortened and can be expanded
	&.mw-mmv-ttf-truncated {
		cursor: pointer;
	}

	// used on containers which have been expanded
	&.mw-mmv-ttf-untruncated {
		height: auto;
	}

	.mw-mmv-ttf-ellipsis {
		display: block;
		position: absolute;
		right: 0;
		bottom: 0;
		height: 1em; // make it scale with the font
		width: 1.5em; // SVG image has ~1.5 aspect ratio
		text-indent: -9999px;
		border-radius: @border-radius-base;
		background-size: contain;
		background-position: center center;
		background-repeat: no-repeat;
		.cdx-mixin-css-icon( @cdx-icon-ellipsis, @param-fill-color: @color-base );
		box-shadow: -4px 6px 0 0 @box-shadow-color-inverted;
		opacity: 0.5;

		// Hovering over .mw-mmv-ttf-ellipsis-container will make the ellipsis more visible to attract
		// attention to it. Since it has to be set on a parent element which is not under control of
		// TruncatableTextField, setting it is the caller's responsibility.
		.mw-mmv-ttf-ellipsis-container:hover & {
			opacity: 0.75;
		}

		// second rule + ordering needed for specificity
		&:hover,
		.mw-mmv-ttf-ellipsis-container &:hover {
			opacity: 1;
		}

		// Fade-out effect via gradient for the ellipsis.
		&::before {
			background-image: linear-gradient( to right, @background-color-transparent 0%, @background-color-base 100% );
			@fade-length: 2em;
			display: block;
			content: '';
			height: 1.6em; // 1em would not cover high glyphs
			width: @fade-length;
			margin-left: -@fade-length;
		}
	}
}
