ui/notices/noticepanel.cs.scss
@import "/UI/Theme.scss";

$notice-bg: rgba( 38, 38, 38, 0.7 );
$notice-text: rgb( 230, 230, 230 );

NoticePanel
{
	flex-direction: column;
	width: 513px;
	background-color: $notice-bg;
	font-family: $body-font;
	font-weight: 500;
	font-size: 16px;
	color: $notice-text;
	overflow: hidden;
	animation: notice-in 0.3s ease-in-out;

	&.leaving
	{
		animation: notice-out 0.3s ease-in-out forwards;
	}

	.body
	{
		flex-direction: row;
		align-items: center;
		gap: 13px;
		padding: 9px 13px;
	}

	.icon
	{
		flex-shrink: 0;
		font-size: 25px;
		position: relative;
		top: 2px; 
		line-height: 15px;
		font-family: "Material Icons";
	}

	.text
	{
		flex-grow: 1;
		flex-shrink: 1;
		font-size: 16px;
		font-weight: 600;
		line-height: 15px;
	}

	.bar
	{
		height: 2px;
		flex-shrink: 0;
		background-color: rgba( black, 0.35 );
		overflow: hidden;
	}

	// remaining time, anchored left so it drains right to left. Width is set from code
	.fill
	{
		height: 100%;
		background-color: $hud-accent;
	}

	&.manual .fill
	{
		width: 100%;
		animation: progress-sweep 2s ease-in-out infinite;
	}
}

$slide-distance: 600px;

@keyframes notice-in
{
	from
	{
		transform: translateX( $slide-distance );
	}

	to
	{
		transform: translateX( 0px );
	}
}

@keyframes notice-out
{
	from
	{
		transform: translateX( 0px );
	}

	to
	{
		transform: translateX( $slide-distance );
	}
}

@keyframes progress-sweep
{
	0%
	{
		transform: translateX( -100% );
		opacity: 1;
	}

	50%
	{
		transform: translateX( 0% );
		opacity: 1;
	}

	85%
	{
		transform: translateX( 100% );
		opacity: 1;
	}

	100%
	{
		transform: translateX( 100% );
		opacity: 0;
	}
}