Skip to content
Snippets Groups Projects
base.less 69 KiB
Newer Older
Gabriel Engel's avatar
Gabriel Engel committed
.clearfix {
	clear: both;
Gabriel Engel's avatar
Gabriel Engel committed
	&::after {
		content: "";
		display: table;
*::before,
*::after {
bharathkkb's avatar
bharathkkb committed
}
bharathkkb's avatar
bharathkkb committed
*:not(input):not(textarea),
*:not(input):not(textarea)::before,
*:not(input):not(textarea)::after {
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
Rodrigo Nascimento's avatar
Rodrigo Nascimento committed
button {
	background: none;
	border-width: 0;
	padding: 0;
Rodrigo Nascimento's avatar
Rodrigo Nascimento committed
	text-align: left;
	cursor: pointer;
	text-transform: inherit;
	color: inherit;
	font-style: inherit;
}

	-webkit-user-select: text;
	-moz-user-select: text;
	-ms-user-select: text;
	user-select: text;
.text-right {
	text-align: right;
}

.no-scroll {
	overflow: hidden !important;
}

.page-settings,
.page-settings * {
	-webkit-user-select: text;
	-moz-user-select: text;
	-ms-user-select: text;
	user-select: text;
}

:focus {
	outline: 0 !important;
	outline-color: transparent;
	outline-style: none;
}

Gabriel Engel's avatar
Gabriel Engel committed
a {
	cursor: pointer;
Gabriel Engel's avatar
Gabriel Engel committed
	text-decoration: none;
Gabriel Engel's avatar
Gabriel Engel committed
code {
	border-radius: 4px;
	border-width: 1px;
Gabriel Engel's avatar
Gabriel Engel committed
	display: block;
Gabriel Engel's avatar
Gabriel Engel committed
	font-size: 13px;
	font-weight: 600;
Gabriel Engel's avatar
Gabriel Engel committed
	margin: 5px 0;
Gabriel Engel's avatar
Gabriel Engel committed
	padding: 0.5em;
Gabriel Engel's avatar
Gabriel Engel committed
	vertical-align: middle;
Gabriel Engel's avatar
Gabriel Engel committed
	word-wrap: break-word;
	text-align: left;
	font-family: Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
	&.inline {
		display: inline;
		padding: 0 0.5em;
		margin: 0 0.1em;
Gabriel Engel's avatar
Gabriel Engel committed
		line-height: 16px;
pre {
	display: inline-block;
	width: 100%;
}

	margin: 0.5em 0;
	&:first-child {
		margin-top: 0;
	}
	&:last-child {
		margin-bottom: 0;
	}
	padding-left: 10px;
	&::before {
		content: ' ';
		position: absolute;
Gabriel Engel's avatar
Gabriel Engel committed
	font-size: smaller;
	width: 520px;
	padding: 10px;
	max-width: 100%;
	a {
		font-weight: bold !important;
		text-decoration: underline;
	}
}

	.upload-preview-file {
		height: 200px;
		background-size: contain;
		background-repeat: no-repeat;
		background-position: center center;
	}
}

.upload-preview-title {
	padding: 3px;
	border-radius: 0 0 5px 5px;
}

	display: -webkit-flex;
	display: flex;
	-webkit-align-items: center;
	align-items: center;
}

.copyonly {
	float: left;
	display: inline-block;
	vertical-align: baseline;
	width: 0;
	height: 0;
	font-size: 0;
	-moz-box-orient: vertical;
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
}

.first-unread,
.cozy .first-unread,
.compact .first-unread {
	&.message,
	&.sequential.message {
		padding-top: 20px;
	}
Rodrigo Nascimento's avatar
Rodrigo Nascimento committed
	.body {
		&::before {
			content: "";
			display: block;
			position: absolute;
			right: 0;
			left: 0;
			top: 0;
			.transition(background-color, 0.5s, linear);
			height: 16px;
Rodrigo Nascimento's avatar
Rodrigo Nascimento committed
		}
Rodrigo Nascimento's avatar
Rodrigo Nascimento committed
		&::after {
			content: "unread messages";
			display: block;
			position: absolute;
			right: 0;
			top: 0;
Rodrigo Nascimento's avatar
Rodrigo Nascimento committed
			text-transform: uppercase;
			font-size: 12px;
			line-height: 16px;
			padding: 0 5px;
			.transition(color, 0.5s, linear);
			left: 0;
			text-align: center;
.text-center {
	text-align: center;
}

.connection-status > .alert {
	padding: 2px;
	position: absolute;
	width: 100%;
	border-radius: 0;
.alert {
	padding: 15px;
	margin-bottom: 20px;
	border-width: 1px;
	border-radius: 4px;
}

.full-page .hidden {
	visibility: hidden !important;
	display: none !important;
}
	display: none !important;
.small-title {
	font-size: 13px;
	text-transform: uppercase;
	margin-bottom: 5px;
	font-weight: 600;
}

.fill-all {
	position: absolute;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
}

.scrollable {
	&:extend(.fill-all);
	overflow-y: scroll;
	-webkit-overflow-scrolling: touch;
}

Diego Sampaio's avatar
Diego Sampaio committed
.page-container {
	&:extend(.fill-all);
	overflow-y: hidden;

Diego Sampaio's avatar
Diego Sampaio committed
	.content {
		&:extend(.fill-all);
		padding: 25px 40px;
		overflow-y: scroll;
		margin-top: 60px;
		-webkit-overflow-scrolling: touch;
		.calc(height, ~'100% - 60px');

		fieldset {
			margin-bottom: 1em;
		}

Diego Sampaio's avatar
Diego Sampaio committed
		.rocket-form {
			fieldset {
				margin: 1em 0 1.5em;
Diego Sampaio's avatar
Diego Sampaio committed
				small {
					font-size: 11px;
				}
			}
Diego Sampaio's avatar
Diego Sampaio committed
			legend {
				margin: 12px 0;
				position: relative;
				width: 100%;
				display: block;
				font-weight: bold;
Diego Sampaio's avatar
Diego Sampaio committed
				h3 {
					margin-bottom: 5px !important;
				}
			}
Diego Sampaio's avatar
Diego Sampaio committed
			.logoutOthers {
				text-align: right;
			}
Diego Sampaio's avatar
Diego Sampaio committed
			.submit {
Diego Sampaio's avatar
Diego Sampaio committed
				text-align: right;
			}
Diego Sampaio's avatar
Diego Sampaio committed
			&.request-password {
				margin: 0 auto;
Diego Sampaio's avatar
Diego Sampaio committed
				fieldset {
					margin-top: 20px;
Diego Sampaio's avatar
Diego Sampaio committed
					label {
						display: block;
						margin-top: 20px;
					}
				}
Diego Sampaio's avatar
Diego Sampaio committed
				.submit {
					text-align: center;
				}
Gabriel Engel's avatar
Gabriel Engel committed
	.clearfix;
	display: block;
Rafael Caferati's avatar
Rafael Caferati committed
	margin-bottom: 12px;
	&:nth-last-child(1) {
Rafael Caferati's avatar
Rafael Caferati committed
		margin-bottom: 0;
	}
			position: absolute;
			top: 10px;
		.icon-spin {
			right: 5px;
			left: auto;
			font-weight: 400;
			-webkit-animation-name: spin;
			-webkit-animation-duration: 2000ms;
			-webkit-animation-iteration-count: infinite;
			-webkit-animation-timing-function: linear;
			-moz-animation-name: spin;
			-moz-animation-duration: 2000ms;
			-moz-animation-iteration-count: infinite;
			-moz-animation-timing-function: linear;
			-ms-animation-name: spin;
			-ms-animation-duration: 2000ms;
			-ms-animation-iteration-count: infinite;
			-ms-animation-timing-function: linear;
			animation-name: spin;
			animation-duration: 2000ms;
			animation-iteration-count: infinite;
			animation-timing-function: linear;
		}
			padding-left: 30px;
	> label {
Rafael Caferati's avatar
Rafael Caferati committed
		display: block;
		margin-bottom: 4px;
	}
	> div {
		position: relative;
		.right {
			position: absolute;
			right: 10px;
			top: 10px;
			z-index: 10;
		}
	}
	> div.-autocomplete-container {
		position: absolute;
	}
	input[type='text'] {
Rafael Caferati's avatar
Rafael Caferati committed
		display: block;
	}
Gabriel Engel's avatar
Gabriel Engel committed
	&.double-col {
		> label {
			width: 30%;
			float: left;
			margin-bottom: 0;
			text-align: right;
			line-height: 15px;
			padding: 10px 20px 10px 0;
		}
Gabriel Engel's avatar
Gabriel Engel committed
		> div {
			float: left;
			width: 70%;
Gabriel Engel's avatar
Gabriel Engel committed
			label {
				display: inline-block;
				margin-right: 4px;
				line-height: 35px;
Gabriel Engel's avatar
Gabriel Engel committed
				&:nth-last-child(1) {
					margin-right: 0;
				}
Gabriel Engel's avatar
Gabriel Engel committed
				input {
					margin-right: 4px;
				}
			}
		}
	}
	from {
		-ms-transform: rotate(0deg);
	}
	to {
		-ms-transform: rotate(360deg);
	}
@-moz-keyframes spin {
	from {
		-moz-transform: rotate(0deg);
	}
	to {
		-moz-transform: rotate(360deg);
	}
@-webkit-keyframes spin {
	from {
		-webkit-transform: rotate(0deg);
	}
	to {
		-webkit-transform: rotate(360deg);
	}
		transform: rotate(0deg);
		transform: rotate(360deg);
.rocket-h2 {
	font-weight: 300;
	text-transform: uppercase;
	font-size: 20px;
	letter-spacing: -0.5px;
	margin: 18px 0;
}

Gabriel Engel's avatar
Gabriel Engel committed
.unselectable {
	-webkit-user-select: none;
	-moz-user-select: none;
	-ms-user-select: none;
	user-select: none;
}

.rocket-h3 {
	font-weight: 300;
	text-transform: uppercase;
	font-size: 16px;
	letter-spacing: -0.5px;
	margin: 18px 0;
}

html {
	font-size: 0.875rem;
	height: 100%;
	width: 100%;
	-webkit-font-smoothing: antialiased;
	line-height: 1rem;
	padding: 0;
	overflow: visible;
	position: relative;
input,
button,
select,
textarea {
	font-family: inherit;
	font-size: inherit;
	line-height: inherit;
}

input:focus {
	outline: none;
	box-shadow: 0 0 0;
input[type='url'],
	-webkit-appearance: none;
Fahad Alduraibi's avatar
Fahad Alduraibi committed
	-moz-appearance: none;
	appearance: none;
	border-width: 1px;
	border-radius: 5px;
	padding: 2px 8px;
	position: relative;
	width: 100%;
	outline: none;
	border-style: solid;
	.transition(width 0.5s ease-in);
}

input.input-forward.show {
	visibility: visible;
	.calc(width, ~'100% - 48px');
}

input.search {
	&::before {
		content: " ";
		width: 30px;
		height: 30px;
		display: block;
		position: absolute;
		top: 0;
		left: 0;
	}
}

Diego Sampaio's avatar
Diego Sampaio committed
form.inline {
	input[type='text'],
	input[type='number'],
	input[type='email'],
	input[type='url'],
	input[type='password'],
	select {
Diego Sampaio's avatar
Diego Sampaio committed
		width: auto;
	}
}

Rodrigo Nascimento's avatar
Rodrigo Nascimento committed
.search-form {
	position: relative;
}

.form-group {
	.input-group {
		padding: 2px 0;
	}
}

.form-horizontal .control-label {
	padding-top: 12px;
	font-weight: bold;
}

.-autocomplete-container {
	box-shadow: 1px 1px 0 rgba(0, 0, 0, 0.2);
	border-width: 0;
	border-radius: 0;
	width: 100%;
	top: auto !important;
		padding: 8px;
	.loading-animation {
		position: relative;
		min-height: 60px;
}

.-autocomplete-item {
	padding: 8px 5px;
	font-size: 12px;
	cursor: pointer;
}

label.required::after {
.btn-loading {
	pointer-events: none;
	cursor: not-allowed;
	box-shadow: none !important;
	border-width: 0;
Rafael Caferati's avatar
Rafael Caferati committed
	&:extend(.unselectable);
	border-width: 0;
	padding: 9px 12px;
	font-weight: 500;
Gabriel Engel's avatar
Gabriel Engel committed
	font-size: 14px;
Rodrigo Nascimento's avatar
Rodrigo Nascimento committed
	text-align: center;
	text-transform: uppercase;
	word-spacing: 0;
	line-height: 16px;
	position: relative;
Gabriel Engel's avatar
Gabriel Engel committed
	border-radius: 4px;
Gabriel Engel's avatar
Gabriel Engel committed
	span {
	&.button-block {
		display: block;
Gabriel Engel's avatar
Gabriel Engel committed
		margin-bottom: 4px;
Gabriel Engel's avatar
Gabriel Engel committed
.buttons-group {
Gabriel Engel's avatar
Gabriel Engel committed
	display: -webkit-flex;
	display: -moz-flex;
	display: flex;
	margin-bottom: 4px;
Gabriel Engel's avatar
Gabriel Engel committed
	.button {
Gabriel Engel's avatar
Gabriel Engel committed
		margin-left: 4px;
	}
Gabriel Engel's avatar
Gabriel Engel committed
	.button:first-child {
		margin-left: 0;
Gabriel Engel's avatar
Gabriel Engel committed
		flex-grow: 1;
	}
Karl Prieb's avatar
Karl Prieb committed
.oauth-panel {
	.buttons-group {
		.button:first-child {
			flex-grow: 0;
		}
	}
}

	> * {
		display: inline-table;
		width: auto;
		vertical-align: middle;
		line-height: 35px;
	}
	label {
		margin-left: 20px;
	}
}

.burger {
	padding: 12px;
	visibility: hidden;
	display: none;
	cursor: pointer;
	margin-left: 7px;
	position: absolute;
Gabriel Engel's avatar
Gabriel Engel committed
	top: 5px;
	i {
		display: block;
		height: 2px;
		width: 20px;
		margin: 5px 0;
		opacity: 0.8;
		.transition(transform .2s ease-out);
	.unread-burger-alert {
		border-radius: 20px;
		position: absolute;
		min-width: 18px;
		height: 18px;
		line-height: 18px;
		text-align: center;
		font-weight: bold;
		font-size: 12px;
		top: 8px;
		right: 4px;
		z-index: 3;
		padding: 0 4px;
	&.menu-opened {
		i {
			&:nth-child(1),
			&:nth-child(3) {
				opacity: 1;
				.transform-origin(50%, 50%, 0);
			}
			&:nth-child(1) {
				.transform(translate(-25%, 3px) rotate(-45deg) scale(0.5, 1));
			}
			&:nth-child(3) {
				.transform(translate(-25%, -3px) rotate(45deg) scale(0.5, 1));
			}
		}
	}
.arrow {
	display: block;
	width: 25px;
	height: 25px;
	z-index: 100;
	.calc(top, ~"50% - 13px");
	&::before,
	&::after {
		content: " ";
		display: block;
		width: 2px;
		height: 10px;
		position: absolute;
		.calc(top, ~"50% - 5px");
		.calc(left, ~"50% - 5px");
	&::before {
		.transform(rotate(135deg) translateX(-4px));
Gabriel Engel's avatar
Gabriel Engel committed
		.transition(transform .185s ease-out, background .15s ease-out);
	&::after {
		.transform(rotate(-135deg) translateX(-4px));
		.transition(transform .185s ease-out, background .15s ease-out);
		&::before {
			.transform(rotate(45deg) translateY(-4px));
		}
		&::after {
			.transform(rotate(-45deg) translateY(4px));
		}
	}
		&::before {
Gabriel Engel's avatar
Gabriel Engel committed
			.transform(rotate(-135deg) translateX(2px) translateY(-2px));
		&::after {
Gabriel Engel's avatar
Gabriel Engel committed
			.transform(rotate(135deg) translateX(-2px) translateY(-2px));
		&::before {
			.transform(rotate(-45deg) translateX(-2px) translateY(-2px));
		}
		&::after {
			.transform(rotate(45deg) translateX(2px) translateY(-2px));
		}
	}
		&::before {
Gabriel Engel's avatar
Gabriel Engel committed
			.transform(rotate(-135deg) translateX(0) translateY(0));
		&::after {
Gabriel Engel's avatar
Gabriel Engel committed
			.transform(rotate(135deg) translateX(0) translateY(0));
.avatar {
	height: 100%;
	width: 100%;
	overflow: hidden;
	position: relative;
Gabriel Engel's avatar
Gabriel Engel committed
	border-radius: 4px;
Gabriel Engel's avatar
Gabriel Engel committed
	.emoji,
		width: 100%;
		margin: 0;
	.avatar-image {
		height: 100%;
		width: 100%;
		background-size: cover;
		background-repeat: no-repeat;
		background-position: center;
	&[initials]::before {
		content: attr(initials);
		position: absolute;
		font-size: 22px;
		text-align: center;
		width: 100%;
		height: 100%;
		.flex-center;
		justify-content: center;
		text-transform: uppercase;
		font-weight: bold;
	}
Gabriel Engel's avatar
Gabriel Engel committed
	position: fixed;
Gabriel Engel's avatar
Gabriel Engel committed
	bottom: 0;
	left: 0;
	right: 0;
	width: auto;
	height: auto;
	opacity: 1;
	visibility: visible;
	.transition(opacity .2s ease-out);
	&.animated-hidden {
	> .alert {
		margin-bottom: 0;
		padding: 5px;
Rafael Caferati's avatar
Rafael Caferati committed
		position: absolute;
.account-box {
	position: relative;
	height: 100%;
	cursor: pointer;
	width: 100%;
		padding: 10px 0 10px 18px;
		z-index: 100;
			width: 42px;
			padding: 0;
			height: 42px;
			&::after {
Gabriel Engel's avatar
Gabriel Engel committed
				width: 8px;
				height: 8px;
Gabriel Engel's avatar
Gabriel Engel committed
				border-radius: 4px;
				top: 18px;
				left: -14px;
			.avatar-initials {
				line-height: 44px;
			}
			padding: 0 25px 0 10px;
			.flex-center;
			flex-flow: row nowrap;
			.calc(width, ~"100% - 60px");
		h4 {
			display: block;
			line-height: 18px;
			font-size: 16px;
			margin-top: 3px;
			font-weight: 400;
			overflow: hidden;
			text-overflow: ellipsis;
			position: relative;
			width: 130px;
			text-align: left;
	.options {
		position: fixed;
		top: @header-min-height;
		left: 0;
		padding-top: 15px;
		width: @rooms-box-width;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		direction: rtl;
		.calc(height, ~'100% - ' @header-min-height + @footer-min-height);
		.transition(transform .3s cubic-bezier(.5, 0, .1, 1));
		z-index: 99;
		&.animated-hidden {
			.transform(translateY(-100%) translateY(-50px));
		> .wrapper {
			direction: ltr;
		}
			padding-left: 38px;
			&::after {
				content: " ";
				display: block;
				width: 13px;
				height: 13px;
				border-width: 1px;
				border-radius: 50%;
				z-index: 5;
				position: absolute;
				left: 18px;
				.calc(top, ~"50% - 8px");