skins/Vector/skinStyles/ext.echo.styles.badge.less
@import 'mediawiki.skin.variables.less';

.mixin-notification-badge() {
	position: relative;
	background-position: center;
	background-repeat: no-repeat;

	// When 99+ allow counter so spill outside icon
	&.cdx-button {
		overflow: visible;
	}

	&::after {
		position: absolute;
		left: 55%;
		top: 43%;
		font-size: calc( ( 12 / 16 ) * @font-size-small );
		padding: 0 calc( ( 4 / 16 ) * @font-size-small );
		border: 1px solid #fff;
		border-radius: @border-radius-base;
		background-color: #72777d;
		content: attr( data-counter-text );
		color: #fff;
	}

	// The number of notifications shouldn't show if there are none.
	&[ data-counter-num='0' ]::after {
		content: none;
	}
}

.mw-echo-notification-badge-nojs {
	.mixin-notification-badge();
}

// Special colors for unseen notifications
#pt-notifications-alert .mw-echo-unseen-notifications::after {
	background-color: @color-destructive;
}

#pt-notifications-notice .mw-echo-unseen-notifications::after {
	background-color: @color-progressive;
}

// Override ULS enhanced buttons
#pt-notifications-notice .mw-echo-notifications-badge,
#pt-notifications-alert .mw-echo-notifications-badge {
	.mixin-notification-badge();
	display: inline-flex;
	margin: 0;
	opacity: 1;
	// Workaround T343838.
	// The OOUI icon uses the ::after pseudo element so will not work with mask image.
	// Because of this we disable the mask image rule.
	/* stylelint-disable declaration-no-important */
	-webkit-mask-image: none !important;
	mask-image: none !important;
	/* stylelint-enable declaration-no-important */
	// T341490 We are incorrectly applying Codex icon and button styles on the
	// same element because ULS frequently overwrites the contents of the element
	// so it is too difficult to maintain the correct markup. Because we are mixing
	// Codex styles, the proper styles are overridden, this corrects that.
	min-width: @min-size-interactive-pointer;
	min-height: @min-size-interactive-pointer;
}
