dsql-admin/dsql-app/less/ui-elements.less
2024-11-05 12:12:42 +01:00

1011 lines
21 KiB
Plaintext
Executable File

////////////////////////////////////////
////////////// - Imports - /////////////
////////////////////////////////////////
@import "constants";
////////////////////////////////////////
//////////// - Variables - /////////////
////////////////////////////////////////
////////////////////////////////////////
////////////// - Cards - ///////////////
////////////////////////////////////////
.card {
padding: 20px;
border-radius: 3px;
background-color: white;
display: flex;
flex-direction: row;
align-items: flex-start;
gap: 15px;
transition: all 0.2s ease-out;
border: 1px solid fade(@slate_200, 90%);
position: relative;
opacity: 1;
////////////////////////////////////////
////////////////////////////////////////
&:hover {
box-shadow: 0 0 20px -10px fade(@slate_500, 50%);
border: 1px solid fade(@slate_400, 30%);
}
&.col {
flex-direction: column;
}
&.no-hover:hover {
box-shadow: none;
border: 1px solid fade(@slate_200, 90%);
}
////////////////////////////////////////
////////////////////////////////////////
&.primary-bg {
background-color: fade(@main_color, 5%);
border-color: fade(@main_color, 20%);
.title {
color: darken(@main_color, 20%);
}
}
&.green-bg {
background-color: fade(@sec_color, 5%);
border-color: fade(@sec_color, 20%);
.title {
color: darken(@sec_color, 20%);
}
}
&.blue-bg {
background-color: fade(@blue_color, 5%);
border-color: fade(@blue_color, 20%);
.title {
color: darken(@blue_color, 20%);
}
}
&.gray-bg {
background-color: fade(@slate_500, 5%);
border-color: fade(@slate_500, 20%);
}
&.light-gray-bg {
background-color: fade(@slate_300, 10%);
border-color: fade(@slate_300, 40%);
}
////////////////////////////////////////
////////////////////////////////////////
&.primary {
border-left: 5px solid @main_color;
.title {
color: darken(@main_color, 20%);
}
&:hover {
border-left: 5px solid @main_color;
}
}
&.green {
border-left: 5px solid @sec_color;
.title {
color: darken(@sec_color, 20%);
}
&:hover {
border-left: 5px solid @sec_color;
}
}
&.blue {
border-left: 5px solid @blue_color;
.title {
color: darken(@blue_color, 20%);
}
&:hover {
border-left: 5px solid rgb(37 99 35);
}
}
&.gray {
border-left: 5px solid @slate_500;
.title {
color: darken(@slate_500, 20%);
}
&:hover {
border-left: 5px solid @slate_500;
}
}
&.light-gray {
border-left: 5px solid @slate_300;
.title {
color: darken(@slate_300, 20%);
}
&:hover {
border-left: 5px solid @slate_300;
}
}
////////////////////////////////////////
////////////////////////////////////////
.content-block,
.card-content,
.content {
display: flex;
flex-direction: column;
gap: 10px;
align-items: flex-start;
}
.title {
font-weight: 600;
color: @slate_800;
font-size: 20px;
color: @slate_800;
}
////////////////////////////////////////
////////////////////////////////////////
@media @media_md {
& {
flex-wrap: wrap;
}
&.col {
flex-wrap: nowrap;
}
}
@media @media_sm {
& {
padding: 10px;
}
}
}
////////////////////////////////////////
////////////////////////////////////////
html.dark .card {
background-color: @slate_800;
border: 1px solid fade(@slate_200, 10%);
color: @slate_400;
////////////////////////////////////////
////////////////////////////////////////
&:hover {
box-shadow: 0 0 20px -10px @slate_900;
border: 1px solid fade(@slate_200, 30%);
}
&.no-hover:hover {
box-shadow: none;
border: 1px solid fade(@slate_400, 10%);
}
////////////////////////////////////////
////////////////////////////////////////
&.primary-bg {
background-color: fade(@main_color, 5%);
border-color: fade(@main_color, 20%);
.title {
color: lighten(@main_color, 20%);
}
}
&.green-bg {
background-color: fade(@sec_color, 5%);
border-color: fade(@sec_color, 20%);
.title {
color: lighten(@sec_color, 20%);
}
}
&.blue-bg {
background-color: fade(@blue_color, 5%);
border-color: fade(@blue_color, 20%);
.title {
color: lighten(@blue_color, 20%);
}
}
&.gray-bg {
background-color: fade(@slate_500, 5%);
border-color: fade(@slate_500, 20%);
.title {
color: lighten(@slate_500, 20%);
}
}
&.light-gray-bg {
background-color: fade(@slate_300, 10%);
border-color: fade(@slate_300, 40%);
.title {
color: lighten(@slate_300, 20%);
}
}
////////////////////////////////////////
////////////////////////////////////////
&.primary {
border-left: 5px solid @main_color;
.title {
color: lighten(@main_color, 20%);
}
&:hover {
border-left: 5px solid @main_color;
}
}
&.green {
border-left: 5px solid @sec_color;
.title {
color: lighten(@sec_color, 20%);
}
&:hover {
border-left: 5px solid @sec_color;
}
}
&.blue {
border-left: 5px solid @blue_color;
.title {
color: lighten(@blue_color, 20%);
}
&:hover {
border-left: 5px solid rgb(37 99 35);
}
}
&.gray {
border-left: 5px solid @slate_500;
.title {
color: lighten(@slate_500, 20%);
}
&:hover {
border-left: 5px solid @slate_500;
}
}
&.light-gray {
border-left: 5px solid fade(@slate_300, 30%);
.title {
color: lighten(@slate_300, 20%);
}
&:hover {
border-left: 5px solid fade(@slate_300, 30%);
}
}
////////////////////////////////////////
////////////////////////////////////////
.title {
color: white;
}
&.svg-inherit svg {
color: fade(white, 60%);
}
// &.svg-main svg {
// color: lighten(@main_color, 15%);
// }
}
////////////////////////////////////////
///////////// - Avatars - //////////////
////////////////////////////////////////
.avatar {
width: 40px;
height: 40px;
border-radius: 50%;
object-fit: cover;
background-color: @slate_100;
position: relative;
&.small {
width: 30px;
height: 30px;
}
&.large {
width: 60px;
height: 60px;
}
&.outlined {
outline: 5px solid fade(@slate_400, 50%);
}
////////////////////////////////////////
////////////////////////////////////////
.sub-img {
width: 14px;
height: 14px;
overflow: hidden;
position: absolute;
z-index: 200;
bottom: -2px;
right: -2px;
background-color: white;
outline: 3px solid white;
border-radius: 50%;
}
.sub-img img,
img.sub-img {
width: 14px;
height: 14px;
overflow: hidden;
object-fit: cover;
}
}
html.dark .avatar {
background-color: @slate_300;
&.outlined {
outline: 5px solid fade(@slate_100, 5%);
}
.sub-img {
background-color: @slate_800;
outline-color: @slate_800;
}
}
////////////////////////////////////////
///////////// - Sections - /////////////
////////////////////////////////////////
.paper {
padding: 20px;
border-radius: 5px;
background-color: white;
display: flex;
flex-direction: column;
align-items: flex-start;
justify-content: flex-start;
gap: 20px;
border: 1px solid fade(@slate_400, 30%);
////////////////////////////////////////
////////////////////////////////////////
&.primary-bg {
background-color: fade(@main_color, 5%);
border-color: fade(@main_color, 20%);
.title {
color: darken(@main_color, 20%);
}
}
&.green-bg {
background-color: fade(@sec_color, 5%);
border-color: fade(@sec_color, 20%);
.title {
color: darken(@sec_color, 20%);
}
}
&.blue-bg {
background-color: fade(@blue_color, 5%);
border-color: fade(@blue_color, 20%);
.title {
color: darken(@blue_color, 20%);
}
}
&.gray-bg {
background-color: fade(@slate_500, 5%);
border-color: fade(@slate_500, 20%);
.title {
color: darken(@slate_500, 20%);
}
}
&.light-gray-bg {
background-color: fade(@slate_300, 10%);
border-color: fade(@slate_300, 40%);
.title {
color: darken(@slate_300, 20%);
}
}
////////////////////////////////////////
////////////////////////////////////////
&.primary {
border-left: 5px solid @main_color;
.title {
color: darken(@main_color, 20%);
}
}
&.green {
border-left: 5px solid @sec_color;
.title {
color: darken(@sec_color, 20%);
}
}
&.blue {
border-left: 5px solid @blue_color;
.title {
color: darken(@blue_color, 20%);
}
}
&.gray {
border-left: 5px solid @slate_500;
.title {
color: darken(@slate_500, 20%);
}
}
&.light-gray {
border-left: 5px solid @slate_300;
.title {
color: darken(@slate_300, 20%);
}
}
////////////////////////////////////////
////////////////////////////////////////
@media @media_sm {
padding: 15px 10px;
}
}
////////////////////////////////////////
////////////////////////////////////////
html.dark .paper {
background-color: @slate_800;
border: 1px solid fade(@slate_400, 20%);
color: white;
////////////////////////////////////////
////////////////////////////////////////
&.primary-bg {
background-color: fade(@main_color, 5%);
border-color: fade(@main_color, 20%);
.title {
color: lighten(@main_color, 50%);
}
}
&.green-bg {
background-color: fade(@sec_color, 5%);
border-color: fade(@sec_color, 20%);
.title {
color: lighten(@sec_color, 50%);
}
}
&.blue-bg {
background-color: fade(@blue_color, 5%);
border-color: fade(@blue_color, 20%);
.title {
color: lighten(@blue_color, 20%);
}
}
&.gray-bg {
background-color: fade(@slate_500, 5%);
border-color: fade(@slate_500, 20%);
.title {
color: lighten(@slate_500, 20%);
}
}
&.light-gray-bg {
background-color: fade(@slate_300, 10%);
border-color: fade(@slate_300, 40%);
.title {
color: lighten(@slate_300, 20%);
}
}
////////////////////////////////////////
////////////////////////////////////////
&.primary {
border-left: 5px solid @main_color;
.title {
color: lighten(@main_color, 20%);
}
}
&.green {
border-left: 5px solid @sec_color;
.title {
color: lighten(@sec_color, 20%);
}
}
&.blue {
border-left: 5px solid @blue_color;
.title {
color: lighten(@blue_color, 20%);
}
}
&.gray {
border-left: 5px solid @slate_500;
.title {
color: lighten(@slate_500, 20%);
}
}
&.light-gray {
border-left: 5px solid @slate_300;
.title {
color: lighten(@slate_300, 20%);
}
}
////////////////////////////////////////
////////////////////////////////////////
svg {
color: white;
}
}
////////////////////////////////////////
////////// - Colored Circles - /////////
////////////////////////////////////////
.notification {
width: 10px;
height: 10px;
border-radius: 50%;
background-color: @slate_300;
&.success {
background-color: @sec_color;
}
}
////////////////////////////////////////
////////////// - Symbols - /////////////
////////////////////////////////////////
.symbol {
line-height: 0;
font-size: 28px;
color: inherit;
font-weight: 300;
}
////////////////////////////////////////
/////////////// - Logo - ///////////////
////////////////////////////////////////
.logo {
display: flex;
align-items: center;
gap: 10px;
.logo-text {
font-size: 19px;
font-weight: 700;
}
}
html.dark .logo {
.logo-text {
color: white;
}
}
////////////////////////////////////////
/////////////// - Popup - //////////////
////////////////////////////////////////
.popup-bg {
display: none;
align-items: flex-start;
justify-content: center;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 800;
background-color: rgba(9, 16, 37, 0.8);
padding: 20px;
overflow-y: auto;
@media @media_md {
& {
align-items: flex-start;
}
}
}
.popup-content-container {
padding: 20px;
background-color: white;
border-radius: 3px;
max-width: 450px;
width: 100%;
display: flex;
flex-direction: column;
align-items: center;
position: relative;
z-index: 10;
margin-top: auto;
margin-bottom: auto;
max-height: calc(100vh - 40px);
overflow-y: auto;
}
html.dark .popup-content-container {
background-color: @slate_800;
}
.popup-canceller {
position: absolute;
z-index: 0;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
.popup-cancel-button {
position: absolute;
top: 15px;
right: 15px;
width: 30px;
height: 30px;
padding: 0;
border-radius: 50%;
z-index: 2000;
&:hover {
opacity: 0.6;
background-color: transparent;
}
}
////////////////////////////////////////
//////////// - Info Block - ////////////
////////////////////////////////////////
.info {
display: flex;
align-items: center;
flex-direction: row;
gap: 10px;
justify-content: flex-start;
padding: 7px 15px;
background-color: fade(@main_color, 10%);
border: 1px solid fade(@main_color, 40%);
border-radius: 3px;
color: darken(@main_color, 10%);
width: 100%;
font-weight: 600;
font-size: 13px;
////////////////////////////////////////
////////////////////////////////////////
.icon {
width: 20px;
height: 20px;
object-fit: cover;
}
////////////////////////////////////////
////////////////////////////////////////
&.green {
background-color: fade(@sec_color, 10%);
border: 1px solid fade(@sec_color, 40%);
color: darken(@sec_color, 10%);
}
&.gray {
background-color: fade(@slate_300, 10%);
border: 1px solid fade(@slate_300, 40%);
color: @slate_700;
}
&.warning,
&.orange {
background-color: fade(@warning_color, 10%);
border: 1px solid fade(@warning_color, 40%);
color: darken(@warning_color, 30%);
}
////////////////////////////////////////
////////////////////////////////////////
&.small {
font-size: 12px;
padding: 5px 10px;
}
&.tiny {
font-size: 10px;
padding: 5px 10px;
}
}
html.dark .info {
background-color: fade(@main_color, 10%);
border: 1px solid fade(@main_color, 40%);
color: lighten(@main_color, 10%);
////////////////////////////////////////
////////////////////////////////////////
&.green {
background-color: fade(@sec_color, 10%);
border: 1px solid fade(@sec_color, 40%);
color: lighten(@sec_color, 10%);
}
&.gray {
background-color: fade(@slate_600, 30%);
border: 1px solid fade(@slate_600, 70%);
color: @slate_300;
}
&.warning,
&.orange {
background-color: fade(@warning_color, 10%);
border: 1px solid fade(@warning_color, 40%);
color: lighten(@warning_color, 5%);
}
}
////////////////////////////////////////
//////////// - Color Card - ////////////
////////////////////////////////////////
.color-card {
padding: 40px;
background-color: lighten(@main_color, 52%);
border-radius: 10px;
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 20px;
overflow: hidden;
position: relative;
text-align: left;
.image-block {
width: 100%;
height: 250px;
position: relative;
overflow: hidden;
margin-bottom: -40px;
border-radius: 10px 10px 0 0;
box-shadow: 0px 5px 40px rgba(0, 0, 0, 0.2);
margin-top: 20px;
img {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
object-fit: cover;
object-position: top left;
}
}
&.green {
background-color: lighten(@sec_color_2, 50%);
}
@media (@media_md) {
padding: 20px;
.image-block {
height: 250px !important;
}
}
}
html.dark .color-card {
h2,
h3,
h4 {
color: black;
}
span,
p {
color: @slate_600;
}
}
////////////////////////////////////////
//////////// - Contained Section - ////////////
////////////////////////////////////////
.contained-section {
padding: 60px;
background-color: @slate_900;
border-radius: 10px;
display: flex;
align-items: center;
justify-content: space-between;
gap: 20px;
overflow: hidden;
position: relative;
height: 400px;
width: 100%;
.content {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 10px;
width: 40%;
}
.image-block {
position: relative;
height: calc(100% + 40px);
overflow: hidden;
bottom: -40px;
border-radius: 10px 10px 0 0;
width: 500px;
img {
position: absolute;
top: 0;
left: 0;
width: 100%;
object-fit: cover;
}
}
& > div {
position: relative;
z-index: 10;
}
&.purple {
background-color: rgb(43, 5, 61);
}
@media (@media_xl) {
flex-direction: column;
height: auto !important;
padding: 30px;
.content {
width: 100%;
}
.image-block {
width: 100%;
height: 300px;
}
}
@media (@media_xs) {
padding: 20px;
}
}
html.dark .contained-section {
background-color: @slate_800;
}
////////////////////////////////////////
////////////// - Modal - ///////////////
////////////////////////////////////////
.modal-wrapper {
.stack;
position: fixed;
z-index: 2000000;
align-items: center;
justify-content: center;
width: 100%;
height: 100%;
top: 0;
left: 0;
.modal-cancel {
background-color: fade(@slate_800, 90%);
width: 100%;
height: 100%;
z-index: 0;
position: absolute;
top: 0;
left: 0;
}
.modal-content {
.stack;
background-color: white;
padding: 20px;
position: relative;
z-index: 10;
border-radius: 5px;
max-width: 400px;
width: 100%;
.modal-cancel-button {
position: absolute;
top: 10px;
right: 10px;
padding: 5px;
}
}
}