initial public commit
This commit is contained in:
@@ -0,0 +1,146 @@
|
||||
.accordion {
|
||||
$handlerSize: 25px;
|
||||
$spacing: 20px;
|
||||
|
||||
@extend %block;
|
||||
outline: 0;
|
||||
position: relative;
|
||||
border-radius: var(--baseRadius);
|
||||
background: var(--baseColor);
|
||||
border: 1px solid var(--baseAlt2Color);
|
||||
transition: box-shadow var(--baseAnimationSpeed),
|
||||
margin var(--baseAnimationSpeed);
|
||||
|
||||
// header
|
||||
.accordion-header {
|
||||
outline: 0;
|
||||
position: relative;
|
||||
display: flex;
|
||||
min-height: 52px;
|
||||
align-items: center;
|
||||
row-gap: 10px;
|
||||
column-gap: var(--smSpacing);
|
||||
padding: ($spacing - 8) $spacing ($spacing - 10);
|
||||
width: 100%;
|
||||
user-select: none;
|
||||
color: var(--txtPrimaryColor);
|
||||
border-radius: inherit;
|
||||
transition: background var(--baseAnimationSpeed),
|
||||
box-shadow var(--baseAnimationSpeed);
|
||||
.icon {
|
||||
width: 18px;
|
||||
text-align: center;
|
||||
i {
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
font-size: 1.1rem;
|
||||
}
|
||||
}
|
||||
&.interactive {
|
||||
padding-right: ($spacing + $handlerSize + 5) ;
|
||||
cursor: pointer;
|
||||
&:after { // expand/collapse indicator
|
||||
content: '\ea4e';
|
||||
position: absolute;
|
||||
right: $spacing - 5;
|
||||
top: 50%;
|
||||
margin-top: -($handlerSize * 0.5);
|
||||
width: $handlerSize;
|
||||
height: $handlerSize;
|
||||
line-height: $handlerSize;
|
||||
color: var(--txtHintColor);
|
||||
font-family: var(--iconFontFamily);
|
||||
font-size: 1.3em;
|
||||
text-align: center;
|
||||
transition: color var(--baseAnimationSpeed);
|
||||
}
|
||||
}
|
||||
&:hover,
|
||||
&:focus-visible {
|
||||
&:after {
|
||||
color: var(--txtPrimaryColor);
|
||||
}
|
||||
}
|
||||
&:active {
|
||||
transition-duration: var(--activeAnimationSpeed);
|
||||
}
|
||||
}
|
||||
|
||||
// content
|
||||
.accordion-content {
|
||||
@extend %block;
|
||||
padding: $spacing;
|
||||
}
|
||||
|
||||
// states
|
||||
&:hover,
|
||||
&:focus-visible,
|
||||
&.active {
|
||||
z-index: 9;
|
||||
.accordion-header.interactive {
|
||||
background: var(--baseAlt1Color);
|
||||
}
|
||||
}
|
||||
&.active {
|
||||
@include shadowize();
|
||||
.accordion-header {
|
||||
color: var(--baseColor);
|
||||
box-shadow: 0px 0px 0px 1px var(--primaryColor);
|
||||
border-bottom-left-radius: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
background: var(--primaryColor);
|
||||
&.interactive{
|
||||
background: var(--primaryColor);
|
||||
&:after {
|
||||
color: inherit;
|
||||
content: '\ea78';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
&.disabled {
|
||||
z-index: 0;
|
||||
border-color: var(--baseAlt1Color);
|
||||
.accordion-header {
|
||||
color: var(--txtDisabledColor);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// wrapper
|
||||
.accordions {
|
||||
.accordion {
|
||||
border-radius: 0;
|
||||
margin: -1px 0 0;
|
||||
&.active {
|
||||
border-radius: var(--baseRadius);
|
||||
margin: var(--smSpacing) 0;
|
||||
+ .accordion {
|
||||
border-top-left-radius: var(--baseRadius);
|
||||
border-top-right-radius: var(--baseRadius);
|
||||
}
|
||||
}
|
||||
&:first-child {
|
||||
margin-top: 0;
|
||||
border-top-left-radius: var(--baseRadius);
|
||||
border-top-right-radius: var(--baseRadius);
|
||||
}
|
||||
&:last-child {
|
||||
margin-bottom: 0;
|
||||
border-bottom-left-radius: var(--baseRadius);
|
||||
border-bottom-right-radius: var(--baseRadius);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.field-accordion {
|
||||
&.active {
|
||||
.accordion-header {
|
||||
padding-right: var(--smSpacing);
|
||||
&:after {
|
||||
content: none;
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,115 @@
|
||||
.alert {
|
||||
$gap: 15px;
|
||||
$padding: 15px;
|
||||
position: relative;
|
||||
display: flex;
|
||||
column-gap: $gap;
|
||||
align-items: center;
|
||||
width: 100%;
|
||||
min-height: 50px;
|
||||
max-width: 100%;
|
||||
word-break: break-word;
|
||||
margin: 0 0 var(--baseSpacing);
|
||||
border-radius: var(--baseRadius);
|
||||
padding: ($padding - 3) $padding;
|
||||
background: var(--baseAlt1Color);
|
||||
color: var(--txtAltColor);
|
||||
.content {
|
||||
flex-grow: 1;
|
||||
}
|
||||
.icon, .close {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
flex-grow: 0;
|
||||
flex-shrink: 0;
|
||||
text-align: center;
|
||||
}
|
||||
.icon {
|
||||
align-self: stretch;
|
||||
font-size: 1.2em;
|
||||
padding-right: $gap;
|
||||
font-weight: normal;
|
||||
border-right: 1px solid rgba(#000, 0.05);
|
||||
color: var(--txtHintColor);
|
||||
}
|
||||
.close {
|
||||
$size: 30px;
|
||||
display: inline-flex;
|
||||
margin-right: -5px;
|
||||
width: $size;
|
||||
height: $size;
|
||||
outline: 0;
|
||||
cursor: pointer;
|
||||
text-align: center;
|
||||
font-size: var(--smFontSize);
|
||||
line-height: $size;
|
||||
border-radius: $size;
|
||||
text-decoration: none;
|
||||
color: inherit;
|
||||
opacity: 0.5;
|
||||
transition: opacity var(--baseAnimationSpeed),
|
||||
background var(--baseAnimationSpeed);
|
||||
&:hover,
|
||||
&:focus {
|
||||
opacity: 1;
|
||||
background: rgba(#fff, 0.2);
|
||||
}
|
||||
&:active {
|
||||
opacity: 1;
|
||||
background: rgba(#fff, 0.3);
|
||||
transition-duration: var(--activeAnimationSpeed);
|
||||
}
|
||||
}
|
||||
|
||||
code,
|
||||
hr {
|
||||
background: rgba(#000, 0.1);
|
||||
}
|
||||
|
||||
// styles
|
||||
&.alert-info {
|
||||
background: var(--infoAltColor);
|
||||
.icon {
|
||||
color: var(--infoColor);
|
||||
}
|
||||
}
|
||||
&.alert-warning {
|
||||
background: var(--warningAltColor);
|
||||
.icon {
|
||||
color: var(--warningColor);
|
||||
}
|
||||
}
|
||||
&.alert-success {
|
||||
background: var(--successAltColor);
|
||||
.icon {
|
||||
color: var(--successColor);
|
||||
}
|
||||
}
|
||||
&.alert-danger {
|
||||
background: var(--dangerAltColor);
|
||||
.icon {
|
||||
color: var(--dangerColor);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// toast alerts
|
||||
.toasts-wrapper {
|
||||
position: fixed;
|
||||
z-index: 999999;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
padding: 0 var(--smSpacing);
|
||||
width: 100%;
|
||||
display: block;
|
||||
text-align: center;
|
||||
pointer-events: none;
|
||||
.alert {
|
||||
text-align: left;
|
||||
pointer-events: auto;
|
||||
width: var(--smWrapperWidth);
|
||||
margin: var(--baseSpacing) auto;
|
||||
@include shadowize();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
@keyframes rotate {
|
||||
100% {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes expand {
|
||||
0% {
|
||||
transform: rotateY(90deg);
|
||||
}
|
||||
100% {
|
||||
opacity: 1;
|
||||
transform: rotateY(0deg);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes slideIn {
|
||||
0% {
|
||||
opacity: 0;
|
||||
transform: translateY(5px);
|
||||
}
|
||||
100% {
|
||||
opacity: 1;
|
||||
transform: translateY(0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@keyframes fadeIn {
|
||||
0% {
|
||||
opacity: 0;
|
||||
}
|
||||
100% {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes shine {
|
||||
100% {
|
||||
background-position-x: -200%;
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes loaderShow {
|
||||
0% {
|
||||
opacity: 0;
|
||||
transform: scale(0);
|
||||
}
|
||||
100% {
|
||||
opacity: 1;
|
||||
transform: scale(1);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,638 @@
|
||||
@include scrollbar();
|
||||
|
||||
:focus-visible {
|
||||
outline-color: var(--primaryColor);
|
||||
outline-style: solid;
|
||||
}
|
||||
|
||||
html,
|
||||
body {
|
||||
line-height: var(--baseLineHeight);
|
||||
font-family: var(--baseFontFamily);
|
||||
font-size: var(--baseFontSize);
|
||||
color: var(--txtPrimaryColor);
|
||||
background: var(--bodyColor);
|
||||
}
|
||||
|
||||
#app {
|
||||
overflow: auto;
|
||||
display: block;
|
||||
width: 100%;
|
||||
height: 100vh;
|
||||
}
|
||||
|
||||
%block {
|
||||
display: block;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
// headings
|
||||
%h {
|
||||
margin: 0;
|
||||
font-weight: normal;
|
||||
}
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
@extend %h;
|
||||
}
|
||||
h1 {
|
||||
font-size: 22px;
|
||||
line-height: 28px;
|
||||
}
|
||||
h2 {
|
||||
font-size: 20px;
|
||||
line-height: 26px;
|
||||
}
|
||||
h3 {
|
||||
font-size: 19px;
|
||||
line-height: 24px;
|
||||
}
|
||||
h4 {
|
||||
font-size: 18px;
|
||||
line-height: 24px;
|
||||
}
|
||||
h5 {
|
||||
font-size: 17px;
|
||||
line-height: 24px;
|
||||
}
|
||||
h6 {
|
||||
font-size: 16px;
|
||||
line-height: 22px;
|
||||
}
|
||||
|
||||
em {
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
strong {
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
small {
|
||||
font-size: var(--smFontSize);
|
||||
line-height: var(--smLineHeight);
|
||||
}
|
||||
|
||||
sub,
|
||||
sup {
|
||||
position: relative;
|
||||
font-size: 0.75em;
|
||||
line-height: 1;
|
||||
}
|
||||
sup {
|
||||
vertical-align: top;
|
||||
}
|
||||
sub {
|
||||
vertical-align: bottom;
|
||||
}
|
||||
|
||||
p {
|
||||
@extend %block;
|
||||
margin: 5px 0;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
@extend %block;
|
||||
position: relative;
|
||||
padding-left: var(--smSpacing);
|
||||
font-style: italic;
|
||||
color: var(--txtHintColor);
|
||||
&:before {
|
||||
content: "";
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 2px;
|
||||
height: 100%;
|
||||
background: var(--baseColor);
|
||||
}
|
||||
}
|
||||
|
||||
code {
|
||||
display: inline-block;
|
||||
font-family: var(--monospaceFontFamily);
|
||||
font-size: 15px;
|
||||
line-height: 1.379rem;
|
||||
padding: 0px 4px;
|
||||
white-space: nowrap;
|
||||
color: var(--txtPrimaryColor);
|
||||
background: var(--baseAlt2Color);
|
||||
border-radius: var(--baseRadius);
|
||||
}
|
||||
|
||||
ol,
|
||||
ul {
|
||||
margin: 10px 0;
|
||||
list-style: decimal;
|
||||
padding-left: var(--baseSpacing);
|
||||
li {
|
||||
margin-top: 5px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
}
|
||||
ul {
|
||||
list-style: disc;
|
||||
}
|
||||
|
||||
img {
|
||||
max-width: 100%;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
hr {
|
||||
display: block;
|
||||
border: 0;
|
||||
height: 1px;
|
||||
width: 100%;
|
||||
background: var(--baseAlt1Color);
|
||||
margin: var(--baseSpacing) 0;
|
||||
}
|
||||
|
||||
a {
|
||||
color: inherit;
|
||||
&:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
i, .txt {
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
}
|
||||
}
|
||||
|
||||
// text helpers
|
||||
.txt-mono {
|
||||
font-family: var(--monospaceFontFamily);
|
||||
}
|
||||
.txt-nowrap {
|
||||
white-space: nowrap;
|
||||
}
|
||||
.txt-ellipsis {
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
flex-shrink: 0;
|
||||
max-width: 100%;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
.txt-base {
|
||||
font-size: var(--baseFontSize) !important;
|
||||
}
|
||||
.txt-xs {
|
||||
font-size: var(--xsFontSize) !important;
|
||||
line-height: var(--smLineHeight);
|
||||
}
|
||||
.txt-sm {
|
||||
font-size: var(--smFontSize) !important;
|
||||
line-height: var(--smLineHeight);
|
||||
}
|
||||
.txt-lg {
|
||||
font-size: var(--lgFontSize) !important;
|
||||
}
|
||||
.txt-xl {
|
||||
font-size: var(--xlFontSize) !important;
|
||||
}
|
||||
.txt-bold {
|
||||
font-weight: 600 !important;
|
||||
}
|
||||
.txt-strikethrough {
|
||||
text-decoration: line-through !important;
|
||||
}
|
||||
.txt-break {
|
||||
white-space: pre-wrap !important;
|
||||
}
|
||||
.txt-center {
|
||||
text-align: center !important;
|
||||
}
|
||||
.txt-left {
|
||||
text-align: left !important;
|
||||
}
|
||||
.txt-right {
|
||||
text-align: right !important;
|
||||
}
|
||||
.txt-main {
|
||||
color: var(--txtPrimaryColor) !important;
|
||||
}
|
||||
.txt-hint {
|
||||
color: var(--txtHintColor) !important;
|
||||
}
|
||||
.txt-disabled {
|
||||
color: var(--txtDisabledColor) !important;
|
||||
}
|
||||
.link-hint {
|
||||
user-select: none;
|
||||
cursor: pointer;
|
||||
color: var(--txtHintColor) !important;
|
||||
text-decoration: none;
|
||||
transition: color var(--baseAnimationSpeed);
|
||||
&:hover,
|
||||
&:focus-visible,
|
||||
&:active {
|
||||
color: var(--txtPrimaryColor) !important;
|
||||
}
|
||||
}
|
||||
.link-fade {
|
||||
opacity: 1;
|
||||
user-select: none;
|
||||
cursor: pointer;
|
||||
text-decoration: none;
|
||||
color: var(--txtPrimaryColor);
|
||||
transition: opacity var(--baseAnimationSpeed);
|
||||
&:focus-visible,
|
||||
&:hover,
|
||||
&:active {
|
||||
opacity: 0.8;
|
||||
}
|
||||
}
|
||||
|
||||
// color helpers
|
||||
@each $name, $color in $colorsMap {
|
||||
.txt-#{$name} {
|
||||
color: $color !important;
|
||||
}
|
||||
.bg-#{$name} {
|
||||
background: $color !important;
|
||||
}
|
||||
.link-#{$name} {
|
||||
cursor: pointer;
|
||||
color: $color !important;
|
||||
text-decoration: none;
|
||||
user-select: none;
|
||||
transition: opacity var(--baseAnimationSpeed);
|
||||
&:hover {
|
||||
opacity: 0.8;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.fade {
|
||||
opacity: 0.6;
|
||||
}
|
||||
a,
|
||||
.btn,
|
||||
[tabindex],
|
||||
[class*="link-"],
|
||||
.handle {
|
||||
&.fade {
|
||||
transition: all var(--baseAnimationSpeed);
|
||||
&:hover {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.noborder {
|
||||
border: 0px !important;
|
||||
}
|
||||
|
||||
.hidden {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.hidden-empty {
|
||||
&:empty {
|
||||
display: none !important;
|
||||
}
|
||||
}
|
||||
|
||||
.block {
|
||||
@extend %block;
|
||||
}
|
||||
|
||||
.content {
|
||||
@extend %block;
|
||||
& > :first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
& > :last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.panel {
|
||||
@extend .content;
|
||||
background: var(--baseColor);
|
||||
border-radius: var(--lgRadius);
|
||||
padding: calc(var(--baseSpacing) - 5px) var(--baseSpacing);
|
||||
@include shadowize();
|
||||
}
|
||||
|
||||
.clearfix {
|
||||
@extend %block;
|
||||
clear: both;
|
||||
&:after {
|
||||
content: '';
|
||||
display: table;
|
||||
clear: both;
|
||||
}
|
||||
}
|
||||
|
||||
// flex helpers
|
||||
.flex {
|
||||
position: relative;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
width: 100%;
|
||||
gap: var(--smSpacing);
|
||||
}
|
||||
.flex-fill {
|
||||
flex: 1 1 auto !important;
|
||||
}
|
||||
.flex-wrap {
|
||||
flex-wrap: wrap !important;
|
||||
}
|
||||
.flex-nowrap {
|
||||
flex-wrap: nowrap !important;
|
||||
}
|
||||
.inline-flex {
|
||||
position: relative;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
flex-wrap: wrap;
|
||||
min-width: 0;
|
||||
gap: 10px;
|
||||
}
|
||||
@for $i from 0 through 6 {
|
||||
.flex-order-#{$i} {
|
||||
order: $i;
|
||||
}
|
||||
}
|
||||
|
||||
// flex gap helpers
|
||||
@each $sizeAlias, $size in $sizesMap {
|
||||
.flex-gap-#{$sizeAlias} {
|
||||
gap: $size !important;
|
||||
}
|
||||
}
|
||||
@for $i from 0 through 12 {
|
||||
$spacing: 5 * $i;
|
||||
.flex-gap-#{$spacing} {
|
||||
gap: $spacing * 1px !important;
|
||||
}
|
||||
}
|
||||
|
||||
// spacing helpers
|
||||
@each $sizeAlias, $size in $sizesMap {
|
||||
.m-#{$sizeAlias} { margin: $size !important; }
|
||||
.p-#{$sizeAlias} { padding: $size !important; }
|
||||
}
|
||||
@each $sideAlias, $side in $sidesMap {
|
||||
.m-#{$sideAlias}-auto { margin-#{$side}: auto !important; }
|
||||
.p-#{$sideAlias}-auto { padding-#{$side}: auto !important; }
|
||||
@each $sizeAlias, $size in $sizesMap {
|
||||
.m-#{$sideAlias}-#{$sizeAlias} { margin-#{$side}: $size !important; }
|
||||
.p-#{$sideAlias}-#{$sizeAlias} { padding-#{$side}: $size !important; }
|
||||
}
|
||||
}
|
||||
@for $i from 0 through 12 {
|
||||
$spacing: 5 * $i;
|
||||
.m-#{$spacing} { margin: $spacing * 1px !important; }
|
||||
.p-#{$spacing} { padding: $spacing * 1px !important; }
|
||||
@each $sideAlias, $side in $sidesMap {
|
||||
.m-#{$sideAlias}-#{$spacing} { margin-#{$side}: $spacing * 1px !important; }
|
||||
.p-#{$sideAlias}-#{$spacing} { padding-#{$side}: $spacing * 1px !important; }
|
||||
}
|
||||
}
|
||||
|
||||
.wrapper {
|
||||
position: relative;
|
||||
width: var(--wrapperWidth);
|
||||
margin: 0 auto;
|
||||
max-width: 100%;
|
||||
&.wrapper-sm {
|
||||
width: var(--smWrapperWidth);
|
||||
}
|
||||
&.wrapper-lg {
|
||||
width: var(--lgWrapperWidth);
|
||||
}
|
||||
}
|
||||
|
||||
.label {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 5px;
|
||||
line-height: 1;
|
||||
padding: 3px 8px;
|
||||
min-height: 23px;
|
||||
text-align: center;
|
||||
font-size: var(--smFontSize);
|
||||
border-radius: 30px;
|
||||
background: var(--baseAlt2Color);
|
||||
color: var(--txtPrimaryColor);
|
||||
white-space: nowrap;
|
||||
&.label-primary {
|
||||
color: var(--baseColor);
|
||||
background: var(--primaryColor);
|
||||
}
|
||||
&.label-info {
|
||||
background: var(--infoAltColor);
|
||||
}
|
||||
&.label-success {
|
||||
background: var(--successAltColor);
|
||||
}
|
||||
&.label-danger {
|
||||
background: var(--dangerAltColor);
|
||||
}
|
||||
&.label-warning {
|
||||
background: var(--warningAltColor);
|
||||
}
|
||||
}
|
||||
|
||||
.thumb {
|
||||
--thumbSize: 44px;
|
||||
|
||||
flex-shrink: 0;
|
||||
position: relative;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
line-height: 1;
|
||||
width: var(--thumbSize);
|
||||
height: var(--thumbSize);
|
||||
background: var(--baseAlt2Color);
|
||||
border-radius: var(--baseRadius);
|
||||
color: var(--txtPrimaryColor);
|
||||
font-size: 1.2rem;
|
||||
@include shadowize();
|
||||
i {
|
||||
font-size: inherit;
|
||||
}
|
||||
img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border-radius: inherit;
|
||||
}
|
||||
&.thumb-sm {
|
||||
--thumbSize: 32px;
|
||||
font-size: 0.85rem;
|
||||
}
|
||||
&.thumb-lg {
|
||||
--thumbSize: 60px;
|
||||
font-size: 1.3rem;
|
||||
}
|
||||
&.thumb-xl {
|
||||
--thumbSize: 80px;
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
&.thumb-circle {
|
||||
border-radius: 50%;
|
||||
}
|
||||
&.thumb-active {
|
||||
box-shadow: 0px 0px 0px 2px var(--primaryColor);
|
||||
}
|
||||
}
|
||||
|
||||
.section-title {
|
||||
display: flex;
|
||||
width: 100%;
|
||||
column-gap: 10px;
|
||||
row-gap: 5px;
|
||||
margin: 0 0 var(--xsSpacing);
|
||||
font-weight: 600;
|
||||
font-size: var(--smFontSize);
|
||||
line-height: var(--smLineHeight);
|
||||
color: var(--txtHintColor);
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.drag-handle {
|
||||
outline: 0;
|
||||
cursor: pointer;
|
||||
display: inline-flex;
|
||||
align-items: left;
|
||||
color: var(--txtDisabledColor);
|
||||
transition: color var(--baseAnimationSpeed);
|
||||
&:before,
|
||||
&:after {
|
||||
content: '\ef77';
|
||||
font-family: var(--iconFontFamily);
|
||||
font-size: 18px;
|
||||
line-height: 1;
|
||||
width: 7px;
|
||||
text-align: center;
|
||||
}
|
||||
&:focus-visible,
|
||||
&:hover,
|
||||
&:active {
|
||||
color: var(--txtPrimaryColor);
|
||||
}
|
||||
}
|
||||
|
||||
.logo {
|
||||
position: relative;
|
||||
vertical-align: top;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
gap: 10px;
|
||||
font-size: 23px;
|
||||
text-decoration: none;
|
||||
color: inherit;
|
||||
user-select: none;
|
||||
strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
.version {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: -5px;
|
||||
line-height: 1;
|
||||
font-size: 10px;
|
||||
font-weight: normal;
|
||||
padding: 2px 4px;
|
||||
border-radius: var(--baseRadius);
|
||||
background: var(--dangerAltColor);
|
||||
color: var(--txtPrimaryColor);
|
||||
}
|
||||
|
||||
&.logo-sm {
|
||||
font-size: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
.loader {
|
||||
--loaderSize: 32px;
|
||||
|
||||
position: relative;
|
||||
display: inline-flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
row-gap: 10px;
|
||||
margin: 0;
|
||||
color: var(--txtDisabledColor);
|
||||
text-align: center;
|
||||
font-weight: normal;
|
||||
&:before {
|
||||
content: "\eec4";
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
clear: both;
|
||||
width: var(--loaderSize);
|
||||
height: var(--loaderSize);
|
||||
line-height: var(--loaderSize);
|
||||
font-size: var(--loaderSize);
|
||||
font-weight: normal;
|
||||
font-family: var(--iconFontFamily);
|
||||
color: inherit;
|
||||
text-align: center;
|
||||
animation: loaderShow var(--baseAnimationSpeed),
|
||||
rotate 0.9s var(--baseAnimationSpeed) infinite linear;
|
||||
}
|
||||
|
||||
// styles
|
||||
@each $name, $color in $colorsMap {
|
||||
&.loader-#{$name} {
|
||||
color: $color;
|
||||
}
|
||||
}
|
||||
|
||||
// sizes
|
||||
&.loader-sm {
|
||||
--loaderSize: 24px;
|
||||
}
|
||||
&.loader-lg {
|
||||
--loaderSize: 42px;
|
||||
}
|
||||
}
|
||||
|
||||
.skeleton-loader {
|
||||
@extend %block;
|
||||
position: relative;
|
||||
height: 12px;
|
||||
margin: 5px 0;
|
||||
border-radius: var(--baseRadius);
|
||||
background: var(--baseAlt1Color);
|
||||
animation: fadeIn 0.4s;
|
||||
&:before {
|
||||
content: "";
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: block;
|
||||
border-radius: inherit;
|
||||
background: linear-gradient(90deg, var(--baseAlt1Color) 8%, var(--bodyColor) 18%, var(--baseAlt1Color) 33%);
|
||||
background-size: 200% 100%;
|
||||
animation: shine 1s linear infinite;
|
||||
}
|
||||
}
|
||||
|
||||
.placeholder-section {
|
||||
display: flex;
|
||||
width: 100%;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
text-align: center;
|
||||
flex-direction: column;
|
||||
gap: var(--smSpacing);
|
||||
color: var(--txtHintColor);
|
||||
.icon {
|
||||
$size: 50px;
|
||||
font-size: $size;
|
||||
height: $size;
|
||||
line-height: 1;
|
||||
opacity: 0.3;
|
||||
i {
|
||||
font-size: inherit;
|
||||
vertical-align: top;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
.bulkbar {
|
||||
position: sticky;
|
||||
bottom: -10px;
|
||||
z-index: 101;
|
||||
gap: 10px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
width: var(--smWrapperWidth);
|
||||
max-width: 100%;
|
||||
margin: var(--smSpacing) auto;
|
||||
padding: 10px var(--smSpacing);
|
||||
border-radius: var(--btnHeight);
|
||||
background: var(--baseColor);
|
||||
border: 1px solid var(--baseAlt2Color);
|
||||
@include shadowize();
|
||||
}
|
||||
@@ -0,0 +1,131 @@
|
||||
.dropdown {
|
||||
$spacing: 5px;
|
||||
position: absolute;
|
||||
z-index: 99;
|
||||
right: 0;
|
||||
left: auto;
|
||||
top: 100%;
|
||||
cursor: default;
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
padding: $spacing;
|
||||
margin: 10px 0 0;
|
||||
width: auto;
|
||||
min-width: 140px;
|
||||
max-width: 350px;
|
||||
max-height: 330px;
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
background: var(--baseColor);
|
||||
border-radius: var(--baseRadius);
|
||||
border: 1px solid var(--baseAlt2Color);
|
||||
@include shadowize();
|
||||
hr {
|
||||
margin: $spacing 0;
|
||||
}
|
||||
.dropdown-item {
|
||||
outline: 0;
|
||||
border: 0;
|
||||
background: none;
|
||||
position: relative;
|
||||
outline: 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
column-gap: 8px;
|
||||
width: 100%;
|
||||
height: auto;
|
||||
min-height: 0;
|
||||
text-align: left;
|
||||
padding: 8px 10px;
|
||||
margin: 0 0 $spacing;
|
||||
cursor: pointer;
|
||||
color: var(--txtPrimaryColor);
|
||||
font-weight: normal;
|
||||
font-size: var(--baseFontSize);
|
||||
font-family: var(--baseFontFamily);
|
||||
line-height: var(--baseLineHeight);
|
||||
border-radius: var(--baseRadius);
|
||||
text-decoration: none;
|
||||
word-break: break-word;
|
||||
user-select: none;
|
||||
transition: background var(--baseAnimationSpeed),
|
||||
color var(--baseAnimationSpeed);
|
||||
&:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
// states
|
||||
&:focus,
|
||||
&:hover {
|
||||
background: var(--baseAlt1Color);
|
||||
}
|
||||
&.selected {
|
||||
background: var(--baseAlt2Color);
|
||||
}
|
||||
&:active {
|
||||
transition-duration: var(--activeAnimationSpeed);
|
||||
background: var(--baseAlt2Color);
|
||||
}
|
||||
&.disabled {
|
||||
color: var(--txtDisabledColor);
|
||||
background: none;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
// styles
|
||||
&.separator {
|
||||
cursor: default;
|
||||
background: none;
|
||||
text-transform: uppercase;
|
||||
padding-top: 0;
|
||||
padding-bottom: 0;
|
||||
margin-top: 15px;
|
||||
color: var(--txtDisabledColor);
|
||||
font-weight: 600;
|
||||
font-size: var(--smFontSize);
|
||||
}
|
||||
}
|
||||
|
||||
// positions
|
||||
&.dropdown-upside {
|
||||
top: auto;
|
||||
bottom: 100%;
|
||||
margin: 0 0 10px;
|
||||
}
|
||||
&.dropdown-left {
|
||||
right: auto;
|
||||
left: 0;
|
||||
}
|
||||
&.dropdown-center {
|
||||
right: auto;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
}
|
||||
|
||||
// styles
|
||||
&.dropdown-sm {
|
||||
margin-top: 5px;
|
||||
min-width: 100px;
|
||||
.dropdown-item {
|
||||
column-gap: 7px;
|
||||
font-size: var(--smFontSize);
|
||||
margin: 0 0 2px;
|
||||
padding: 5px 7px;
|
||||
&:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
&.dropdown-upside {
|
||||
margin-top: 0;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
}
|
||||
&.dropdown-block {
|
||||
width: 100%;
|
||||
min-width: 130px;
|
||||
max-width: 100%;
|
||||
}
|
||||
&.dropdown-nowrap {
|
||||
white-space: nowrap;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,734 @@
|
||||
// slightly modified version of https://npmcdn.com/flatpickr@4.6.9/dist/flatpickr.css
|
||||
.flatpickr-calendar {
|
||||
opacity: 0;
|
||||
display: none;
|
||||
text-align: center;
|
||||
visibility: hidden;
|
||||
padding: 0;
|
||||
animation: none;
|
||||
direction: ltr;
|
||||
border: 0;
|
||||
font-size: 1rem;
|
||||
line-height: 24px;
|
||||
position: absolute;
|
||||
width: 298px;
|
||||
box-sizing: border-box;
|
||||
user-select: none;
|
||||
color: var(--txtPrimaryColor);
|
||||
background: var(--baseColor);
|
||||
border-radius: var(--baseRadius);
|
||||
@include shadowize(0px 0px 0px 1px var(--baseAlt2Color));
|
||||
input, select {
|
||||
box-shadow: none;
|
||||
min-height: 0;
|
||||
height: var(--inputHeight);
|
||||
border-radius: var(--baseRadius);
|
||||
border: 1px solid var(--baseAlt1Color);
|
||||
}
|
||||
}
|
||||
.flatpickr-calendar.open,
|
||||
.flatpickr-calendar.inline {
|
||||
opacity: 1;
|
||||
visibility: visible;
|
||||
}
|
||||
.flatpickr-calendar.open {
|
||||
display: inline-block;
|
||||
z-index: 99999;
|
||||
}
|
||||
.flatpickr-calendar.animate.open {
|
||||
-webkit-animation: fpFadeInDown 300ms cubic-bezier(0.23, 1, 0.32, 1);
|
||||
animation: fpFadeInDown 300ms cubic-bezier(0.23, 1, 0.32, 1);
|
||||
}
|
||||
.flatpickr-calendar.inline {
|
||||
display: block;
|
||||
position: relative;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
}
|
||||
.flatpickr-calendar.static {
|
||||
position: absolute;
|
||||
top: 100%;
|
||||
margin-top: 2px;
|
||||
margin-bottom: 10px;
|
||||
width: 100%;
|
||||
.flatpickr-days {
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
.flatpickr-calendar.static.open {
|
||||
z-index: 999;
|
||||
display: block;
|
||||
}
|
||||
.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7) {
|
||||
-webkit-box-shadow: none !important;
|
||||
box-shadow: none !important;
|
||||
}
|
||||
.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1) {
|
||||
-webkit-box-shadow: -2px 0 0 var(--baseAlt2Color), 5px 0 0 var(--baseAlt2Color);
|
||||
box-shadow: -2px 0 0 var(--baseAlt2Color), 5px 0 0 var(--baseAlt2Color);
|
||||
}
|
||||
.flatpickr-calendar .hasWeeks .dayContainer,
|
||||
.flatpickr-calendar .hasTime .dayContainer {
|
||||
border-bottom: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
border-bottom-left-radius: 0;
|
||||
}
|
||||
.flatpickr-calendar .hasWeeks .dayContainer {
|
||||
border-left: 0;
|
||||
}
|
||||
.flatpickr-calendar.hasTime .flatpickr-time {
|
||||
height: 40px;
|
||||
border-top: 1px solid var(--baseAlt2Color);
|
||||
}
|
||||
.flatpickr-calendar.noCalendar.hasTime .flatpickr-time {
|
||||
height: auto;
|
||||
}
|
||||
.flatpickr-calendar:before,
|
||||
.flatpickr-calendar:after {
|
||||
position: absolute;
|
||||
display: block;
|
||||
pointer-events: none;
|
||||
border: solid transparent;
|
||||
content: '';
|
||||
height: 0;
|
||||
width: 0;
|
||||
left: 22px;
|
||||
}
|
||||
.flatpickr-calendar.rightMost:before,
|
||||
.flatpickr-calendar.arrowRight:before,
|
||||
.flatpickr-calendar.rightMost:after,
|
||||
.flatpickr-calendar.arrowRight:after {
|
||||
left: auto;
|
||||
right: 22px;
|
||||
}
|
||||
.flatpickr-calendar.arrowCenter:before,
|
||||
.flatpickr-calendar.arrowCenter:after {
|
||||
left: 50%;
|
||||
right: 50%;
|
||||
}
|
||||
.flatpickr-calendar:before {
|
||||
border-width: 5px;
|
||||
margin: 0 -5px;
|
||||
}
|
||||
.flatpickr-calendar:after {
|
||||
border-width: 4px;
|
||||
margin: 0 -4px;
|
||||
}
|
||||
.flatpickr-calendar.arrowTop:before,
|
||||
.flatpickr-calendar.arrowTop:after {
|
||||
bottom: 100%;
|
||||
}
|
||||
.flatpickr-calendar.arrowTop:before {
|
||||
border-bottom-color: var(--baseColor);
|
||||
}
|
||||
.flatpickr-calendar.arrowTop:after {
|
||||
border-bottom-color: var(--baseColor);
|
||||
}
|
||||
.flatpickr-calendar.arrowBottom:before,
|
||||
.flatpickr-calendar.arrowBottom:after {
|
||||
top: 100%;
|
||||
}
|
||||
.flatpickr-calendar.arrowBottom:before {
|
||||
border-top-color: var(--baseColor);
|
||||
}
|
||||
.flatpickr-calendar.arrowBottom:after {
|
||||
border-top-color: var(--baseColor);
|
||||
}
|
||||
.flatpickr-calendar:focus {
|
||||
outline: 0;
|
||||
}
|
||||
.flatpickr-wrapper {
|
||||
position: relative;
|
||||
}
|
||||
.flatpickr-months {
|
||||
display: flex;
|
||||
margin: 0 0 4px;
|
||||
}
|
||||
.flatpickr-months .flatpickr-month {
|
||||
background: transparent;
|
||||
color: var(--txtPrimaryColor);
|
||||
fill: var(--txtPrimaryColor);
|
||||
height: 34px;
|
||||
line-height: 1;
|
||||
text-align: center;
|
||||
position: relative;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
overflow: hidden;
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
-ms-flex: 1;
|
||||
flex: 1;
|
||||
}
|
||||
.flatpickr-months .flatpickr-prev-month,
|
||||
.flatpickr-months .flatpickr-next-month {
|
||||
text-decoration: none;
|
||||
cursor: pointer;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
height: 34px;
|
||||
padding: 10px;
|
||||
z-index: 3;
|
||||
color: var(--txtPrimaryColor);
|
||||
fill: var(--txtPrimaryColor);
|
||||
}
|
||||
.flatpickr-months .flatpickr-prev-month.flatpickr-disabled,
|
||||
.flatpickr-months .flatpickr-next-month.flatpickr-disabled {
|
||||
display: none;
|
||||
}
|
||||
.flatpickr-months .flatpickr-prev-month i,
|
||||
.flatpickr-months .flatpickr-next-month i {
|
||||
position: relative;
|
||||
}
|
||||
.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month,
|
||||
.flatpickr-months .flatpickr-next-month.flatpickr-prev-month {
|
||||
left: 0;
|
||||
}
|
||||
.flatpickr-months .flatpickr-prev-month.flatpickr-next-month,
|
||||
.flatpickr-months .flatpickr-next-month.flatpickr-next-month {
|
||||
right: 0;
|
||||
}
|
||||
.flatpickr-months .flatpickr-prev-month:hover,
|
||||
.flatpickr-months .flatpickr-next-month:hover,
|
||||
.flatpickr-months .flatpickr-prev-month:hover svg,
|
||||
.flatpickr-months .flatpickr-next-month:hover svg {
|
||||
fill: var(--txtHintColor);
|
||||
}
|
||||
.flatpickr-months .flatpickr-prev-month svg,
|
||||
.flatpickr-months .flatpickr-next-month svg {
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
}
|
||||
.flatpickr-months .flatpickr-prev-month svg path,
|
||||
.flatpickr-months .flatpickr-next-month svg path {
|
||||
-webkit-transition: fill 0.1s;
|
||||
transition: fill 0.1s;
|
||||
fill: inherit;
|
||||
}
|
||||
.numInputWrapper {
|
||||
position: relative;
|
||||
height: auto;
|
||||
}
|
||||
.numInputWrapper input,
|
||||
.numInputWrapper span {
|
||||
display: inline-block;
|
||||
}
|
||||
.numInputWrapper input {
|
||||
width: 100%;
|
||||
}
|
||||
.numInputWrapper input::-ms-clear {
|
||||
display: none;
|
||||
}
|
||||
.numInputWrapper input::-webkit-outer-spin-button,
|
||||
.numInputWrapper input::-webkit-inner-spin-button {
|
||||
margin: 0;
|
||||
-webkit-appearance: none;
|
||||
}
|
||||
.numInputWrapper span {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
width: 14px;
|
||||
padding: 0 4px 0 2px;
|
||||
height: 50%;
|
||||
line-height: 50%;
|
||||
opacity: 0;
|
||||
cursor: pointer;
|
||||
border: 1px solid rgba(57,57,57,0.15);
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.numInputWrapper span:hover {
|
||||
background: rgba(0,0,0,0.1);
|
||||
}
|
||||
.numInputWrapper span:active {
|
||||
background: rgba(0,0,0,0.2);
|
||||
}
|
||||
.numInputWrapper span:after {
|
||||
display: block;
|
||||
content: "";
|
||||
position: absolute;
|
||||
}
|
||||
.numInputWrapper span.arrowUp {
|
||||
top: 0;
|
||||
border-bottom: 0;
|
||||
}
|
||||
.numInputWrapper span.arrowUp:after {
|
||||
border-left: 4px solid transparent;
|
||||
border-right: 4px solid transparent;
|
||||
border-bottom: 4px solid rgba(57,57,57,0.6);
|
||||
top: 26%;
|
||||
}
|
||||
.numInputWrapper span.arrowDown {
|
||||
top: 50%;
|
||||
}
|
||||
.numInputWrapper span.arrowDown:after {
|
||||
border-left: 4px solid transparent;
|
||||
border-right: 4px solid transparent;
|
||||
border-top: 4px solid rgba(57,57,57,0.6);
|
||||
top: 40%;
|
||||
}
|
||||
.numInputWrapper span svg {
|
||||
width: inherit;
|
||||
height: auto;
|
||||
}
|
||||
.numInputWrapper span svg path {
|
||||
fill: rgba(0,0,0,0.5);
|
||||
}
|
||||
.numInputWrapper:hover {
|
||||
background: var(--baseAlt2Color);
|
||||
}
|
||||
.numInputWrapper:hover span {
|
||||
opacity: 1;
|
||||
}
|
||||
.flatpickr-current-month {
|
||||
line-height: inherit;
|
||||
color: inherit;
|
||||
position: absolute;
|
||||
width: 75%;
|
||||
left: 12.5%;
|
||||
padding: 1px 0;
|
||||
line-height: 1;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
text-align: center;
|
||||
}
|
||||
.flatpickr-current-month span.cur-month {
|
||||
font-family: inherit;
|
||||
font-weight: 700;
|
||||
color: inherit;
|
||||
display: inline-block;
|
||||
margin-left: 0.5ch;
|
||||
padding: 0;
|
||||
}
|
||||
.flatpickr-current-month span.cur-month:hover {
|
||||
background: var(--baseAlt2Color);
|
||||
}
|
||||
.flatpickr-current-month .numInputWrapper {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 63px;
|
||||
margin: 0 5px;
|
||||
}
|
||||
.flatpickr-current-month .numInputWrapper span.arrowUp:after {
|
||||
border-bottom-color: var(--txtPrimaryColor);
|
||||
}
|
||||
.flatpickr-current-month .numInputWrapper span.arrowDown:after {
|
||||
border-top-color: var(--txtPrimaryColor);
|
||||
}
|
||||
.flatpickr-current-month input.cur-year {
|
||||
background: transparent;
|
||||
box-sizing: border-box;
|
||||
color: inherit;
|
||||
cursor: text;
|
||||
margin: 0;
|
||||
display: inline-block;
|
||||
font-size: inherit;
|
||||
font-family: inherit;
|
||||
line-height: inherit;
|
||||
vertical-align: initial;
|
||||
-webkit-appearance: textfield;
|
||||
-moz-appearance: textfield;
|
||||
appearance: textfield;
|
||||
}
|
||||
.flatpickr-current-month input.cur-year:focus {
|
||||
outline: 0;
|
||||
}
|
||||
.flatpickr-current-month input.cur-year[disabled],
|
||||
.flatpickr-current-month input.cur-year[disabled]:hover {
|
||||
color: var(--txtDisabledColor);
|
||||
background: transparent;
|
||||
pointer-events: none;
|
||||
}
|
||||
.flatpickr-current-month .flatpickr-monthDropdown-months {
|
||||
appearance: menulist;
|
||||
box-sizing: border-box;
|
||||
color: inherit;
|
||||
cursor: pointer;
|
||||
font-size: inherit;
|
||||
line-height: inherit;
|
||||
outline: none;
|
||||
position: relative;
|
||||
vertical-align: initial;
|
||||
-webkit-box-sizing: border-box;
|
||||
-webkit-appearance: menulist;
|
||||
-moz-appearance: menulist;
|
||||
width: auto;
|
||||
}
|
||||
.flatpickr-current-month .flatpickr-monthDropdown-months:focus,
|
||||
.flatpickr-current-month .flatpickr-monthDropdown-months:active {
|
||||
outline: none;
|
||||
}
|
||||
.flatpickr-current-month .flatpickr-monthDropdown-months:hover {
|
||||
background: var(--baseAlt2Color);
|
||||
}
|
||||
.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month {
|
||||
background-color: transparent;
|
||||
outline: none;
|
||||
padding: 0;
|
||||
}
|
||||
.flatpickr-weekdays {
|
||||
background: transparent;
|
||||
text-align: center;
|
||||
overflow: hidden;
|
||||
width: 100%;
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-webkit-box-align: center;
|
||||
-webkit-align-items: center;
|
||||
-ms-flex-align: center;
|
||||
align-items: center;
|
||||
height: 28px;
|
||||
}
|
||||
.flatpickr-weekdays .flatpickr-weekdaycontainer {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
-ms-flex: 1;
|
||||
flex: 1;
|
||||
}
|
||||
span.flatpickr-weekday {
|
||||
display: block;
|
||||
flex: 1;
|
||||
margin: 0;
|
||||
cursor: default;
|
||||
line-height: 1;
|
||||
background: transparent;
|
||||
color: var(--txtHintColor);
|
||||
text-align: center;
|
||||
font-weight: bolder;
|
||||
font-size: var(--smFontSize);
|
||||
}
|
||||
.dayContainer,
|
||||
.flatpickr-weeks {
|
||||
padding: 1px 0 0 0;
|
||||
}
|
||||
.flatpickr-days {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-webkit-box-align: start;
|
||||
-webkit-align-items: flex-start;
|
||||
-ms-flex-align: start;
|
||||
align-items: flex-start;
|
||||
}
|
||||
.flatpickr-days:focus {
|
||||
outline: 0;
|
||||
}
|
||||
.dayContainer {
|
||||
padding: 0;
|
||||
outline: 0;
|
||||
text-align: left;
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
display: inline-block;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
transform: translate3d(0px, 0px, 0px);
|
||||
opacity: 1;
|
||||
}
|
||||
.dayContainer + .dayContainer {
|
||||
-webkit-box-shadow: -1px 0 0 var(--baseAlt2Color);
|
||||
box-shadow: -1px 0 0 var(--baseAlt2Color);
|
||||
}
|
||||
.flatpickr-day {
|
||||
background: none;
|
||||
border: 1px solid transparent;
|
||||
border-radius: var(--baseRadius);
|
||||
box-sizing: border-box;
|
||||
color: var(--txtPrimaryColor);
|
||||
cursor: pointer;
|
||||
font-weight: 400;
|
||||
width: calc(14.2857143% - 2px);
|
||||
flex-basis: calc(14.2857143% - 2px);
|
||||
height: 39px;
|
||||
margin: 1px;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
position: relative;
|
||||
text-align: center;
|
||||
flex-direction: column;
|
||||
&.weekend,
|
||||
&:nth-child(7n+6),
|
||||
&:nth-child(7n+7) {
|
||||
color: var(--dangerColor);
|
||||
}
|
||||
}
|
||||
.flatpickr-day.inRange,
|
||||
.flatpickr-day.prevMonthDay.inRange,
|
||||
.flatpickr-day.nextMonthDay.inRange,
|
||||
.flatpickr-day.today.inRange,
|
||||
.flatpickr-day.prevMonthDay.today.inRange,
|
||||
.flatpickr-day.nextMonthDay.today.inRange,
|
||||
.flatpickr-day:hover,
|
||||
.flatpickr-day.prevMonthDay:hover,
|
||||
.flatpickr-day.nextMonthDay:hover,
|
||||
.flatpickr-day:focus,
|
||||
.flatpickr-day.prevMonthDay:focus,
|
||||
.flatpickr-day.nextMonthDay:focus {
|
||||
cursor: pointer;
|
||||
outline: 0;
|
||||
background: var(--baseAlt2Color);
|
||||
border-color: var(--baseAlt2Color);
|
||||
}
|
||||
.flatpickr-day.today {
|
||||
border-color: var(--baseColor);
|
||||
}
|
||||
.flatpickr-day.today:hover,
|
||||
.flatpickr-day.today:focus {
|
||||
border-color: var(--primaryColor);
|
||||
background: var(--primaryColor);
|
||||
color: var(--txtPrimaryColor);
|
||||
}
|
||||
.flatpickr-day.selected,
|
||||
.flatpickr-day.startRange,
|
||||
.flatpickr-day.endRange,
|
||||
.flatpickr-day.selected.inRange,
|
||||
.flatpickr-day.startRange.inRange,
|
||||
.flatpickr-day.endRange.inRange,
|
||||
.flatpickr-day.selected:focus,
|
||||
.flatpickr-day.startRange:focus,
|
||||
.flatpickr-day.endRange:focus,
|
||||
.flatpickr-day.selected:hover,
|
||||
.flatpickr-day.startRange:hover,
|
||||
.flatpickr-day.endRange:hover,
|
||||
.flatpickr-day.selected.prevMonthDay,
|
||||
.flatpickr-day.startRange.prevMonthDay,
|
||||
.flatpickr-day.endRange.prevMonthDay,
|
||||
.flatpickr-day.selected.nextMonthDay,
|
||||
.flatpickr-day.startRange.nextMonthDay,
|
||||
.flatpickr-day.endRange.nextMonthDay {
|
||||
background: var(--primaryColor);
|
||||
-webkit-box-shadow: none;
|
||||
box-shadow: none;
|
||||
color: #fff;
|
||||
border-color: var(--primaryColor);
|
||||
}
|
||||
.flatpickr-day.selected.startRange,
|
||||
.flatpickr-day.startRange.startRange,
|
||||
.flatpickr-day.endRange.startRange {
|
||||
border-radius: 50px 0 0 50px;
|
||||
}
|
||||
.flatpickr-day.selected.endRange,
|
||||
.flatpickr-day.startRange.endRange,
|
||||
.flatpickr-day.endRange.endRange {
|
||||
border-radius: 0 50px 50px 0;
|
||||
}
|
||||
.flatpickr-day.selected.startRange + .endRange:not(:nth-child(7n+1)),
|
||||
.flatpickr-day.startRange.startRange + .endRange:not(:nth-child(7n+1)),
|
||||
.flatpickr-day.endRange.startRange + .endRange:not(:nth-child(7n+1)) {
|
||||
-webkit-box-shadow: -10px 0 0 var(--primaryColor);
|
||||
box-shadow: -10px 0 0 var(--primaryColor);
|
||||
}
|
||||
.flatpickr-day.selected.startRange.endRange,
|
||||
.flatpickr-day.startRange.startRange.endRange,
|
||||
.flatpickr-day.endRange.startRange.endRange {
|
||||
border-radius: 50px;
|
||||
}
|
||||
.flatpickr-day.inRange {
|
||||
border-radius: 0;
|
||||
box-shadow: -5px 0 0 var(--baseAlt2Color), 5px 0 0 var(--baseAlt2Color);
|
||||
}
|
||||
.flatpickr-day.flatpickr-disabled,
|
||||
.flatpickr-day.flatpickr-disabled:hover,
|
||||
.flatpickr-day.prevMonthDay,
|
||||
.flatpickr-day.nextMonthDay,
|
||||
.flatpickr-day.notAllowed,
|
||||
.flatpickr-day.notAllowed.prevMonthDay,
|
||||
.flatpickr-day.notAllowed.nextMonthDay {
|
||||
color: var(--txtDisabledColor);
|
||||
background: transparent;
|
||||
border-color: transparent;
|
||||
cursor: default;
|
||||
}
|
||||
.flatpickr-day.flatpickr-disabled,
|
||||
.flatpickr-day.flatpickr-disabled:hover {
|
||||
cursor: not-allowed;
|
||||
color: var(--txtDisabledColor);
|
||||
background: var(--baseAlt2Color);
|
||||
}
|
||||
.flatpickr-day.week.selected {
|
||||
border-radius: 0;
|
||||
box-shadow: -5px 0 0 var(--primaryColor), 5px 0 0 var(--primaryColor);
|
||||
}
|
||||
.flatpickr-day.hidden {
|
||||
visibility: hidden;
|
||||
}
|
||||
.rangeMode .flatpickr-day {
|
||||
margin-top: 1px;
|
||||
}
|
||||
.flatpickr-weekwrapper {
|
||||
float: left;
|
||||
}
|
||||
.flatpickr-weekwrapper .flatpickr-weeks {
|
||||
padding: 0 12px;
|
||||
-webkit-box-shadow: 1px 0 0 var(--baseAlt2Color);
|
||||
box-shadow: 1px 0 0 var(--baseAlt2Color);
|
||||
}
|
||||
.flatpickr-weekwrapper .flatpickr-weekday {
|
||||
float: none;
|
||||
width: 100%;
|
||||
line-height: 28px;
|
||||
}
|
||||
.flatpickr-weekwrapper span.flatpickr-day,
|
||||
.flatpickr-weekwrapper span.flatpickr-day:hover {
|
||||
display: block;
|
||||
width: 100%;
|
||||
max-width: none;
|
||||
color: var(--txtHintColor);
|
||||
background: transparent;
|
||||
cursor: default;
|
||||
border: none;
|
||||
}
|
||||
.flatpickr-innerContainer {
|
||||
display: flex;
|
||||
box-sizing: border-box;
|
||||
overflow: hidden;
|
||||
padding: 5px;
|
||||
}
|
||||
.flatpickr-rContainer {
|
||||
display: inline-block;
|
||||
padding: 0;
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.flatpickr-time {
|
||||
text-align: center;
|
||||
outline: 0;
|
||||
display: block;
|
||||
height: 0;
|
||||
line-height: 40px;
|
||||
max-height: 40px;
|
||||
box-sizing: border-box;
|
||||
overflow: hidden;
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
}
|
||||
.flatpickr-time:after {
|
||||
content: "";
|
||||
display: table;
|
||||
clear: both;
|
||||
}
|
||||
.flatpickr-time .numInputWrapper {
|
||||
-webkit-box-flex: 1;
|
||||
-webkit-flex: 1;
|
||||
-ms-flex: 1;
|
||||
flex: 1;
|
||||
width: 40%;
|
||||
height: 40px;
|
||||
float: left;
|
||||
}
|
||||
.flatpickr-time .numInputWrapper span.arrowUp:after {
|
||||
border-bottom-color: var(--txtPrimaryColor);
|
||||
}
|
||||
.flatpickr-time .numInputWrapper span.arrowDown:after {
|
||||
border-top-color: var(--txtPrimaryColor);
|
||||
}
|
||||
.flatpickr-time.hasSeconds .numInputWrapper {
|
||||
width: 26%;
|
||||
}
|
||||
.flatpickr-time.time24hr .numInputWrapper {
|
||||
width: 49%;
|
||||
}
|
||||
.flatpickr-time input {
|
||||
background: transparent;
|
||||
box-shadow: none;
|
||||
border: 0;
|
||||
text-align: center;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
height: inherit;
|
||||
line-height: inherit;
|
||||
color: var(--txtPrimaryColor);
|
||||
font-size: 14px;
|
||||
position: relative;
|
||||
box-sizing: border-box;
|
||||
background: var(--baseColor);
|
||||
-webkit-appearance: textfield;
|
||||
-moz-appearance: textfield;
|
||||
appearance: textfield;
|
||||
}
|
||||
.flatpickr-time input.flatpickr-hour {
|
||||
font-weight: bold;
|
||||
}
|
||||
.flatpickr-time input.flatpickr-minute,
|
||||
.flatpickr-time input.flatpickr-second {
|
||||
font-weight: normal;
|
||||
}
|
||||
.flatpickr-time input:focus {
|
||||
outline: 0;
|
||||
border: 0;
|
||||
}
|
||||
.flatpickr-time .flatpickr-time-separator,
|
||||
.flatpickr-time .flatpickr-am-pm {
|
||||
height: inherit;
|
||||
float: left;
|
||||
line-height: inherit;
|
||||
color: var(--txtPrimaryColor);
|
||||
font-weight: bold;
|
||||
width: 2%;
|
||||
user-select: none;
|
||||
align-self: center;
|
||||
}
|
||||
.flatpickr-time .flatpickr-am-pm {
|
||||
outline: 0;
|
||||
width: 18%;
|
||||
cursor: pointer;
|
||||
text-align: center;
|
||||
font-weight: 400;
|
||||
}
|
||||
.flatpickr-time input:hover,
|
||||
.flatpickr-time .flatpickr-am-pm:hover,
|
||||
.flatpickr-time input:focus,
|
||||
.flatpickr-time .flatpickr-am-pm:focus {
|
||||
background: var(--baseAlt1Color);
|
||||
}
|
||||
.flatpickr-input[readonly] {
|
||||
cursor: pointer;
|
||||
}
|
||||
@keyframes fpFadeInDown {
|
||||
from {
|
||||
opacity: 0;
|
||||
transform: translate3d(0, 10px, 0);
|
||||
}
|
||||
to {
|
||||
opacity: 1;
|
||||
transform: translate3d(0, 0, 0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Hide prev and next month dates
|
||||
.flatpickr-hide-prev-next-month-days {
|
||||
.flatpickr-calendar .prevMonthDay {
|
||||
visibility: hidden;
|
||||
}
|
||||
.flatpickr-calendar .nextMonthDay {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.flatpickr-inline-container {
|
||||
@extend %block;
|
||||
.flatpickr-input {
|
||||
display: none;
|
||||
}
|
||||
.flatpickr-calendar {
|
||||
margin: 0;
|
||||
box-shadow: none;
|
||||
border: 1px solid var(--baseAlt2Color);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,89 @@
|
||||
/* remixicon */
|
||||
@font-face {
|
||||
font-family: 'remixicon';
|
||||
src: url('../fonts/remixicon/remixicon.woff2?v=1') format('woff2'),
|
||||
url('../fonts/remixicon/remixicon.woff?v=1') format('woff'),
|
||||
url('../fonts/remixicon/remixicon.ttf?v=1') format('truetype'),
|
||||
url('../fonts/remixicon/remixicon.svg?v=1#remixicon') format('svg'); /* iOS 4.1- */
|
||||
font-display: swap;
|
||||
}
|
||||
|
||||
/* source-sans-pro-regular - latin_cyrillic */
|
||||
@font-face {
|
||||
font-family: 'Source Sans Pro';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local(''),
|
||||
url('../fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-regular.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
|
||||
url('../fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-regular.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
|
||||
}
|
||||
|
||||
/* source-sans-pro-italic - latin_cyrillic */
|
||||
@font-face {
|
||||
font-family: 'Source Sans Pro';
|
||||
font-style: italic;
|
||||
font-weight: 400;
|
||||
src: local(''),
|
||||
url('../fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-italic.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
|
||||
url('../fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-italic.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
|
||||
}
|
||||
|
||||
/* source-sans-pro-600 - latin_cyrillic */
|
||||
@font-face {
|
||||
font-family: 'Source Sans Pro';
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
src: local(''),
|
||||
url('../fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-600.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
|
||||
url('../fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-600.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
|
||||
}
|
||||
|
||||
/* source-sans-pro-600italic - latin_cyrillic */
|
||||
@font-face {
|
||||
font-family: 'Source Sans Pro';
|
||||
font-style: italic;
|
||||
font-weight: 600;
|
||||
src: local(''),
|
||||
url('../fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-600italic.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
|
||||
url('../fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-600italic.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
|
||||
}
|
||||
|
||||
/* source-sans-pro-700 - latin_cyrillic */
|
||||
@font-face {
|
||||
font-family: 'Source Sans Pro';
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
src: local(''),
|
||||
url('../fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-700.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
|
||||
url('../fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-700.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
|
||||
}
|
||||
|
||||
/* source-sans-pro-700italic - latin_cyrillic */
|
||||
@font-face {
|
||||
font-family: 'Source Sans Pro';
|
||||
font-style: italic;
|
||||
font-weight: 700;
|
||||
src: local(''),
|
||||
url('../fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-700italic.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
|
||||
url('../fonts/source-sans-pro/source-sans-pro-v18-latin_cyrillic-700italic.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
|
||||
}
|
||||
|
||||
/* jetbrains-mono-regular - latin */
|
||||
@font-face {
|
||||
font-family: 'JetBrains Mono';
|
||||
font-style: normal;
|
||||
font-weight: 400;
|
||||
src: local(''),
|
||||
url('../fonts/jetbrains-mono/jetbrains-mono-v12-latin-regular.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
|
||||
url('../fonts/jetbrains-mono/jetbrains-mono-v12-latin-regular.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
|
||||
}
|
||||
|
||||
/* jetbrains-mono-600 - latin */
|
||||
@font-face {
|
||||
font-family: 'JetBrains Mono';
|
||||
font-style: normal;
|
||||
font-weight: 600;
|
||||
src: local(''),
|
||||
url('../fonts/jetbrains-mono/jetbrains-mono-v12-latin-600.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
|
||||
url('../fonts/jetbrains-mono/jetbrains-mono-v12-latin-600.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,79 @@
|
||||
@use "sass:math";
|
||||
|
||||
$gridSizesMap: (
|
||||
"sm": 576px,
|
||||
"md": 768px,
|
||||
"lg": 992px,
|
||||
"xl": 1200px,
|
||||
"xxl": 1400px,
|
||||
);
|
||||
|
||||
.grid {
|
||||
--gridGap: var(--baseSpacing);
|
||||
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-grow: 1;
|
||||
flex-wrap: wrap;
|
||||
row-gap: var(--gridGap);
|
||||
margin: 0 calc(-0.5 * var(--gridGap));
|
||||
&.grid-center {
|
||||
align-items: center;
|
||||
}
|
||||
&.grid-sm {
|
||||
--gridGap: var(--smSpacing);
|
||||
}
|
||||
.form-field {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
> * {
|
||||
margin: 0 calc(0.5 * var(--gridGap));
|
||||
}
|
||||
}
|
||||
|
||||
%col {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
min-height: 1px;
|
||||
}
|
||||
|
||||
// grid
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
@mixin colsWidthGenerator($prefix: '') {
|
||||
// normalize prefix
|
||||
@if $prefix != '' and str-index($prefix, '-') != 1 {
|
||||
$prefix: '-#{$prefix}';
|
||||
}
|
||||
|
||||
.col#{$prefix}-auto {
|
||||
flex: 0 0 auto;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
@for $i from 12 through 1 {
|
||||
.col#{$prefix}-#{$i} {
|
||||
width: calc(math.div(100%, math.div(12, $i)) - var(--gridGap));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// base screen size cols
|
||||
@for $i from 12 through 1 {
|
||||
.col-#{$i} {
|
||||
@extend %col;
|
||||
}
|
||||
}
|
||||
@include colsWidthGenerator();
|
||||
|
||||
// screen size specific cols
|
||||
@each $name, $size in $gridSizesMap {
|
||||
@for $i from 12 through 1 {
|
||||
.col-#{$name}-#{$i} {
|
||||
@extend %col;
|
||||
}
|
||||
}
|
||||
@media (min-width: #{$size}) {
|
||||
@include colsWidthGenerator($name);
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,331 @@
|
||||
// footer
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
.app-footer {
|
||||
display: flex;
|
||||
width: 100%;
|
||||
align-items: center;
|
||||
justify-content: right;
|
||||
column-gap: var(--smSpacing);
|
||||
font-size: var(--smFontSize);
|
||||
line-height: var(--smLineHeight);
|
||||
color: var(--txtHintColor);
|
||||
.footer-item {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
column-gap: 5px;
|
||||
img {
|
||||
width: 16px;
|
||||
}
|
||||
}
|
||||
a {
|
||||
color: inherit;
|
||||
text-decoration: none;
|
||||
transition: color var(--baseAnimationSpeed);
|
||||
&:focus-visible,
|
||||
&:hover,
|
||||
&:active {
|
||||
color: var(--txtPrimaryColor);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// sidebar
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
.main-menu {
|
||||
--menuItemSize: 45px;
|
||||
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
row-gap: var(--smSpacing);
|
||||
font-size: 16px;
|
||||
color: var(--txtPrimaryColor);
|
||||
i {
|
||||
font-size: 24px;
|
||||
line-height: 1;
|
||||
}
|
||||
.menu-item {
|
||||
position: relative;
|
||||
outline: 0;
|
||||
cursor: pointer;
|
||||
text-decoration: none;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
justify-content: center;
|
||||
user-select: none;
|
||||
color: inherit;
|
||||
min-width: var(--menuItemSize);
|
||||
min-height: var(--menuItemSize);
|
||||
border: 2px solid transparent;
|
||||
border-radius: var(--lgRadius);
|
||||
transition: background var(--baseAnimationSpeed),
|
||||
border var(--baseAnimationSpeed);
|
||||
&:focus-visible,
|
||||
&:hover {
|
||||
background: var(--baseAlt1Color);
|
||||
}
|
||||
&:active {
|
||||
background: var(--baseAlt2Color);
|
||||
transition-duration: var(--activeAnimationSpeed);
|
||||
}
|
||||
&.active,
|
||||
&.current-route {
|
||||
background: var(--baseColor);
|
||||
border-color: var(--primaryColor);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.app-sidebar {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
display: flex;
|
||||
flex-grow: 0;
|
||||
flex-shrink: 0;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
width: var(--appSidebarWidth);
|
||||
padding: var(--smSpacing) 0px var(--smSpacing);
|
||||
background: var(--baseColor);
|
||||
border-right: 1px solid var(--baseAlt2Color);
|
||||
.main-menu {
|
||||
flex-grow: 1;
|
||||
justify-content: flex-start;
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto; /* fallback */
|
||||
overflow-y: overlay;
|
||||
// "visual" vertical alignment
|
||||
margin-top: 34px;
|
||||
margin-bottom: var(--baseSpacing);
|
||||
}
|
||||
}
|
||||
|
||||
// layout container
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
.app-layout {
|
||||
display: flex;
|
||||
width: 100%;
|
||||
height: 100vh;
|
||||
overflow-x: overlay;
|
||||
.app-body {
|
||||
flex-grow: 1;
|
||||
min-width: 0;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
align-items: stretch;
|
||||
}
|
||||
.app-sidebar ~ .app-body {
|
||||
min-width: 650px;
|
||||
}
|
||||
}
|
||||
|
||||
// page elements
|
||||
// -------------------------------------------------------------------
|
||||
|
||||
.page-sidebar {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
width: var(--pageSidebarWidth);
|
||||
flex-shrink: 0;
|
||||
flex-grow: 0;
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
background: var(--baseColor);
|
||||
padding: calc(var(--baseSpacing) - 5px) 0 var(--smSpacing);
|
||||
border-right: 1px solid var(--baseAlt2Color);
|
||||
& > * {
|
||||
padding: 0 var(--smSpacing);
|
||||
}
|
||||
.sidebar-content {
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto; /* fallback */
|
||||
overflow-y: overlay;
|
||||
& > :first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
& > :last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
.sidebar-footer {
|
||||
margin-top: var(--smSpacing);
|
||||
}
|
||||
.search {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
width: auto;
|
||||
column-gap: 5px;
|
||||
margin: 0 0 var(--xsSpacing);
|
||||
color: var(--txtHintColor);
|
||||
opacity: 0.7;
|
||||
transition: opacity var(--baseAnimationSpeed),
|
||||
color var(--baseAnimationSpeed);
|
||||
input {
|
||||
border: 0;
|
||||
background: var(--baseColor);
|
||||
transition: box-shadow var(--baseAnimationSpeed),
|
||||
background var(--baseAnimationSpeed);
|
||||
}
|
||||
.btn-clear {
|
||||
margin-right: -8px;
|
||||
}
|
||||
&:hover,
|
||||
&:focus-within,
|
||||
&.active {
|
||||
opacity: 1;
|
||||
color: var(--txtPrimaryColor);
|
||||
input {
|
||||
background: var(--baseAlt2Color);
|
||||
}
|
||||
}
|
||||
}
|
||||
.sidebar-title {
|
||||
@extend %block;
|
||||
margin: var(--baseSpacing) 0 var(--xsSpacing);
|
||||
font-weight: 600;
|
||||
font-size: 1rem;
|
||||
line-height: var(--smLineHeight);
|
||||
color: var(--txtHintColor);
|
||||
}
|
||||
.sidebar-list-item {
|
||||
cursor: pointer;
|
||||
outline: 0;
|
||||
text-decoration: none;
|
||||
position: relative;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
column-gap: 10px;
|
||||
margin: 10px 0;
|
||||
padding: 3px 10px;
|
||||
font-size: 16px;
|
||||
min-height: var(--btnHeight);
|
||||
min-width: 0;
|
||||
color: var(--txtHintColor);
|
||||
border-radius: var(--baseRadius);
|
||||
user-select: none;
|
||||
transition: background var(--baseAnimationSpeed),
|
||||
color var(--baseAnimationSpeed);
|
||||
i {
|
||||
font-size: 18px;
|
||||
}
|
||||
.txt {
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
// states
|
||||
&:focus-visible,
|
||||
&:hover,
|
||||
&:active,
|
||||
&.active {
|
||||
color: var(--txtPrimaryColor);
|
||||
background: var(--baseAlt1Color);
|
||||
}
|
||||
&:active {
|
||||
background: var(--baseAlt2Color);
|
||||
transition-duration: var(--activeAnimationSpeed);
|
||||
}
|
||||
}
|
||||
|
||||
// responsive
|
||||
@media screen and (max-width: 1100px) {
|
||||
--pageSidebarWidth: 190px;
|
||||
& > * {
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.page-header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
width: 100%;
|
||||
min-height: var(--btnHeight);
|
||||
gap: var(--xsSpacing);
|
||||
margin: 0 0 var(--baseSpacing);
|
||||
.btns-group {
|
||||
margin-left: auto;
|
||||
justify-content: end;
|
||||
}
|
||||
// responsive
|
||||
@media screen and (max-width: 1050px) {
|
||||
flex-wrap: wrap;
|
||||
.btns-group {
|
||||
width: 100%;
|
||||
.btn {
|
||||
flex-grow: 1;
|
||||
flex-basis: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.page-header-wrapper {
|
||||
background: var(--baseColor);
|
||||
width: auto;
|
||||
margin-top: calc(-1*(var(--baseSpacing) - 5px));
|
||||
margin-left: calc(-1* var(--baseSpacing));
|
||||
margin-right: calc(-1* var(--baseSpacing));
|
||||
margin-bottom: var(--baseSpacing);
|
||||
padding: calc(var(--baseSpacing) - 5px) var(--baseSpacing);
|
||||
border-bottom: 1px solid var(--baseAlt2Color);
|
||||
}
|
||||
|
||||
.breadcrumbs {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 30px;
|
||||
user-select: none;
|
||||
color: var(--txtDisabledColor);
|
||||
.breadcrumb-item {
|
||||
@extend h2;
|
||||
position: relative;
|
||||
margin: 0;
|
||||
line-height: 1;
|
||||
font-weight: normal;
|
||||
&:after {
|
||||
content: '/';
|
||||
position: absolute;
|
||||
right: -20px;
|
||||
top: 0;
|
||||
width: 10px;
|
||||
text-align: center;
|
||||
pointer-events: none;
|
||||
opacity: 0.4;
|
||||
}
|
||||
&:last-child {
|
||||
word-break: break-word;
|
||||
color: var(--txtPrimaryColor);
|
||||
&:after {
|
||||
content: none;
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
a {
|
||||
text-decoration: none;;
|
||||
color: inherit;
|
||||
transition: color var(--baseAnimationSpeed);
|
||||
&:hover {
|
||||
color: var(--txtPrimaryColor);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.page-wrapper {
|
||||
position: relative;
|
||||
display: block;
|
||||
width: 100%;
|
||||
flex-grow: 1;
|
||||
padding: calc(var(--baseSpacing) - 5px) var(--baseSpacing);
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto; /* fallback */
|
||||
overflow-y: overlay;
|
||||
}
|
||||
@@ -0,0 +1,58 @@
|
||||
@mixin hide() {
|
||||
opacity: 0;
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
@mixin show() {
|
||||
opacity: 1;
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
@mixin shadowize($value...) {
|
||||
box-shadow: 0px 2px 5px 0px var(--shadowColor), $value;
|
||||
}
|
||||
|
||||
@mixin scrollbar($width: 8px) {
|
||||
$trackColor: transparent;
|
||||
|
||||
@media screen and (min-width: 550px) {
|
||||
// chrome scrollbar styles
|
||||
::-webkit-scrollbar {
|
||||
width: $width;
|
||||
height: $width;
|
||||
border-radius: var(--baseRadius);
|
||||
}
|
||||
::-webkit-scrollbar-track {
|
||||
background: $trackColor;
|
||||
border-radius: var(--baseRadius);
|
||||
}
|
||||
::-webkit-scrollbar-thumb {
|
||||
background-color: var(--baseAlt2Color);
|
||||
border-radius: 15px;
|
||||
border: 2px solid transparent;
|
||||
background-clip: padding-box;
|
||||
&:hover,
|
||||
&:active {
|
||||
background-color: var(--baseAlt3Color);
|
||||
}
|
||||
}
|
||||
|
||||
@if & {
|
||||
// firefox scrollbar
|
||||
scrollbar-color: var(--baseAlt2Color) $trackColor;
|
||||
scrollbar-width: thin;
|
||||
scroll-behavior: smooth;
|
||||
} @else {
|
||||
html {
|
||||
// firefox scrollbar
|
||||
scrollbar-color: var(--baseAlt2Color) $trackColor;
|
||||
scrollbar-width: thin;
|
||||
scroll-behavior: smooth;
|
||||
|
||||
* {
|
||||
scrollbar-width: inherit;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,254 @@
|
||||
.overlay-panel {
|
||||
$padding: var(--baseSpacing);
|
||||
$compactPadding: calc(#{$padding} - 7px);
|
||||
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-self: flex-end;
|
||||
margin-left: auto; // push to right edge
|
||||
background: var(--baseColor);
|
||||
height: 100%;
|
||||
width: 580px;
|
||||
max-width: 100%;
|
||||
word-wrap: break-word;
|
||||
@include shadowize();
|
||||
|
||||
.overlay-panel-section {
|
||||
position: relative;
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
padding: $padding;
|
||||
transition: box-shadow var(--baseAnimationSpeed);
|
||||
&:empty {
|
||||
display: none;
|
||||
}
|
||||
&:first-child {
|
||||
border-top-left-radius: inherit;
|
||||
border-top-right-radius: inherit;
|
||||
}
|
||||
&:last-child {
|
||||
border-bottom-left-radius: inherit;
|
||||
border-bottom-right-radius: inherit;
|
||||
}
|
||||
.btn {
|
||||
flex-grow: 0;
|
||||
}
|
||||
}
|
||||
|
||||
img {
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
hr {
|
||||
background: var(--baseAlt2Color);
|
||||
}
|
||||
|
||||
// header
|
||||
.panel-header {
|
||||
position: relative;
|
||||
z-index: 2;
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-items:center;
|
||||
column-gap: 10px;
|
||||
row-gap: var(--baseSpacing);
|
||||
padding: $compactPadding $padding;
|
||||
& > * {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.btn-back {
|
||||
margin-left: -10px; // visual alignment
|
||||
}
|
||||
.overlay-close {
|
||||
$size: 35px;
|
||||
z-index: 3;
|
||||
outline: 0;
|
||||
position: absolute;
|
||||
right: 100%;
|
||||
top: 20px;
|
||||
margin: 0;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: $size;
|
||||
height: $size;
|
||||
cursor: pointer;
|
||||
text-align: center;
|
||||
font-size: 1.6rem;
|
||||
line-height: 1;
|
||||
border-top-left-radius: $size;
|
||||
border-bottom-left-radius: $size;
|
||||
border-top-right-radius: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
color: #fff;
|
||||
background: var(--primaryColor);
|
||||
opacity: 0.5;
|
||||
transition: opacity var(--baseAnimationSpeed);
|
||||
user-select: none;
|
||||
i {
|
||||
font-size: inherit;
|
||||
}
|
||||
&:hover,
|
||||
&:focus-visible,
|
||||
&:active {
|
||||
opacity: 0.7;
|
||||
}
|
||||
&:active {
|
||||
transition-duration: var(--activeAnimationSpeed);
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
.btn-close {
|
||||
margin-right: -10px;
|
||||
}
|
||||
.tabs-header {
|
||||
margin-bottom: -23px;
|
||||
}
|
||||
}
|
||||
|
||||
// content
|
||||
.panel-content {
|
||||
@extend .content;
|
||||
z-index: auto; // not fixed to allow overlapping
|
||||
flex-grow: 1;
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto; /* fallback */
|
||||
overflow-y: overlay;
|
||||
}
|
||||
.panel-header ~ .panel-content {
|
||||
padding-top: 5px;
|
||||
}
|
||||
|
||||
// footer
|
||||
.panel-footer {
|
||||
z-index: 2;
|
||||
column-gap: var(--smSpacing);
|
||||
display: flex;
|
||||
align-items:center;
|
||||
justify-content: flex-end;
|
||||
border-top: 1px solid var(--baseAlt2Color);
|
||||
padding: $compactPadding $padding;
|
||||
}
|
||||
|
||||
// scroll markers
|
||||
&.scrollable {
|
||||
.panel-header {
|
||||
box-shadow: 0px 4px 5px 0px rgba(#000, 0.05);
|
||||
}
|
||||
.panel-footer {
|
||||
box-shadow: 0px -4px 5px 0px rgba(#000, 0.05);
|
||||
}
|
||||
&.scroll-top-reached .panel-header {
|
||||
box-shadow: none;
|
||||
}
|
||||
&.scroll-bottom-reached .panel-footer {
|
||||
box-shadow: none;
|
||||
}
|
||||
}
|
||||
|
||||
// sizes
|
||||
&.overlay-panel-xl {
|
||||
width: 850px;
|
||||
}
|
||||
&.overlay-panel-lg {
|
||||
width: 650px;
|
||||
}
|
||||
&.overlay-panel-sm {
|
||||
width: 460px;
|
||||
}
|
||||
|
||||
// popup style
|
||||
&.popup {
|
||||
height: auto;
|
||||
max-height: 100%;
|
||||
align-self: center;
|
||||
border-radius: var(--baseRadius);
|
||||
margin: 0 auto;
|
||||
.panel-footer {
|
||||
background: var(--bodyColor);
|
||||
}
|
||||
}
|
||||
&.hide-content {
|
||||
.panel-content {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
&.colored-header {
|
||||
.panel-header {
|
||||
background: var(--bodyColor);
|
||||
border-bottom: 1px solid var(--baseAlt1Color);
|
||||
.tabs-header {
|
||||
border-bottom: 0;
|
||||
}
|
||||
}
|
||||
.panel-header ~ .panel-content {
|
||||
padding-top: calc(var(--baseSpacing) - 5px);
|
||||
}
|
||||
}
|
||||
&.image-preview {
|
||||
width: auto;
|
||||
min-width: 300px;
|
||||
max-width: 70%;
|
||||
.panel-header {
|
||||
position: absolute;
|
||||
z-index: 99;
|
||||
}
|
||||
.panel-header,
|
||||
.panel-footer {
|
||||
padding: 10px 15px;
|
||||
}
|
||||
.panel-content {
|
||||
padding: 0;
|
||||
text-align: center;
|
||||
}
|
||||
img {
|
||||
max-width: 100%;
|
||||
border-top-left-radius: var(--baseRadius);
|
||||
border-top-right-radius: var(--baseRadius);
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 900px) {
|
||||
.overlay-panel-section {
|
||||
padding: var(--smSpacing);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.overlay-panel-container {
|
||||
display: flex;
|
||||
position: fixed;
|
||||
z-index: 1000;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
outline: 0;
|
||||
.overlay {
|
||||
position: absolute;
|
||||
z-index: 0;
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
user-select: none;
|
||||
background: var(--overlayColor);
|
||||
}
|
||||
&.padded {
|
||||
padding: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
.overlay-panel-wrapper {
|
||||
position: relative;
|
||||
z-index: 1000;
|
||||
outline: 0;
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
html, body, div, span, applet, object, iframe,
|
||||
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
|
||||
a, abbr, acronym, address, big, cite, code,
|
||||
del, dfn, em, img, ins, kbd, q, s, samp,
|
||||
small, strike, strong, sub, sup, tt, var,
|
||||
b, u, i, center,
|
||||
dl, dt, dd, ol, ul, li,
|
||||
fieldset, form, label, legend,
|
||||
table, caption, tbody, tfoot, thead, tr, th, td,
|
||||
article, aside, canvas, details, embed,
|
||||
figure, figcaption, footer, header, hgroup,
|
||||
menu, nav, output, ruby, section, summary,
|
||||
time, mark, audio, video {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
border: 0;
|
||||
font-size: 100%;
|
||||
font: inherit;
|
||||
vertical-align: baseline;
|
||||
}
|
||||
/* HTML5 display-role reset for older browsers */
|
||||
article, aside, details, figcaption, figure,
|
||||
footer, header, hgroup, menu, nav, section {
|
||||
display: block;
|
||||
}
|
||||
body {
|
||||
line-height: 1;
|
||||
}
|
||||
ol, ul {
|
||||
list-style: none;
|
||||
}
|
||||
blockquote, q {
|
||||
quotes: none;
|
||||
}
|
||||
blockquote:before, blockquote:after,
|
||||
q:before, q:after {
|
||||
content: '';
|
||||
content: none;
|
||||
}
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
border-spacing: 0;
|
||||
}
|
||||
|
||||
html {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
*, *:before, *:after {
|
||||
box-sizing: inherit;
|
||||
}
|
||||
@@ -0,0 +1,71 @@
|
||||
.searchbar {
|
||||
--searchHeight: 44px;
|
||||
|
||||
outline: 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
height: var(--searchHeight);
|
||||
width: 100%;
|
||||
flex-grow: 1;
|
||||
padding: 5px 7px;
|
||||
margin: 0 0 var(--smSpacing);
|
||||
white-space: nowrap;
|
||||
color: var(--txtHintColor);
|
||||
background: var(--baseAlt1Color);
|
||||
border-radius: var(--btnHeight);
|
||||
transition: color var(--baseAnimationSpeed),
|
||||
background var(--baseAnimationSpeed),
|
||||
box-shadow var(--baseAnimationSpeed);
|
||||
& > :first-child {
|
||||
border-top-left-radius: var(--btnHeight);
|
||||
border-bottom-left-radius: var(--btnHeight);
|
||||
}
|
||||
& > :last-child {
|
||||
border-top-right-radius: var(--btnHeight);
|
||||
border-bottom-right-radius: var(--btnHeight);
|
||||
}
|
||||
.btn {
|
||||
border-radius: var(--btnHeight);
|
||||
}
|
||||
.code-editor,
|
||||
input,
|
||||
input:focus {
|
||||
font-size: var(--baseFontSize);
|
||||
font-family: var(--monospaceFontFamily);
|
||||
border: 0;
|
||||
background: none;
|
||||
}
|
||||
label > i {
|
||||
line-height: inherit;
|
||||
}
|
||||
.search-options {
|
||||
flex-shrink: 0;
|
||||
width: 90px;
|
||||
.selected-container {
|
||||
border-radius: inherit;
|
||||
background: none;
|
||||
padding-right: 25px !important;
|
||||
}
|
||||
&:not(:focus-within) .selected-container {
|
||||
color: var(--txtHintColor);
|
||||
}
|
||||
}
|
||||
&:focus-within {
|
||||
color: var(--txtPrimaryColor);
|
||||
background: var(--baseAlt2Color);
|
||||
}
|
||||
}
|
||||
|
||||
.searchbar-wrapper {
|
||||
position: relative;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
width: 100%;;
|
||||
min-width: var(--btnHeight);
|
||||
min-height: var(--btnHeight);
|
||||
.search-toggle {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,258 @@
|
||||
table {
|
||||
border-collapse: separate;
|
||||
min-width: 100%;
|
||||
transition: opacity var(--baseAnimationSpeed);
|
||||
.form-field {
|
||||
margin: 0;
|
||||
line-height: 1;
|
||||
}
|
||||
td, th {
|
||||
outline: 0;
|
||||
vertical-align: middle;
|
||||
position: relative;
|
||||
text-align: left;
|
||||
padding: 10px;
|
||||
border-bottom: 1px solid var(--baseAlt2Color);
|
||||
&:first-child {
|
||||
padding-left: 20px;
|
||||
}
|
||||
&:last-child {
|
||||
padding-right: 20px;
|
||||
}
|
||||
}
|
||||
th {
|
||||
color: var(--txtHintColor);
|
||||
font-weight: 600;
|
||||
font-size: 1rem;
|
||||
user-select: none;
|
||||
height: 50px;
|
||||
line-height: var(--smLineHeight);
|
||||
i {
|
||||
font-size: inherit;
|
||||
}
|
||||
}
|
||||
td {
|
||||
height: 60px;
|
||||
word-break: break-word;
|
||||
}
|
||||
|
||||
.min-width {
|
||||
width: 1% !important;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.nowrap {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.col-sort {
|
||||
$pos: 10px;
|
||||
$iconSize: 25px;
|
||||
cursor: pointer;
|
||||
border-top-left-radius: var(--baseRadius);
|
||||
border-top-right-radius: var(--baseRadius);
|
||||
padding-right: $iconSize + $pos - 5;
|
||||
transition: color var(--baseAnimationSpeed),
|
||||
background var(--baseAnimationSpeed);
|
||||
&:after {
|
||||
// content: '\ea74';
|
||||
content: '\ea4c';
|
||||
position: absolute;
|
||||
right: $pos;
|
||||
top: 50%;
|
||||
margin-top: -($iconSize * 0.5);
|
||||
line-height: $iconSize;
|
||||
height: $iconSize;
|
||||
font-family: var(--iconFontFamily);
|
||||
font-weight: normal;
|
||||
color: var(--txtHintColor);
|
||||
opacity: 0;
|
||||
transition: color var(--baseAnimationSpeed),
|
||||
opacity var(--baseAnimationSpeed);
|
||||
}
|
||||
&.sort-desc:after {
|
||||
content: '\ea4c';
|
||||
}
|
||||
&.sort-asc:after {
|
||||
content: '\ea76';
|
||||
}
|
||||
&.sort-active {
|
||||
&:after {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
&:hover,
|
||||
&:focus-visible {
|
||||
background: var(--baseAlt1Color);
|
||||
&:after {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
&:active {
|
||||
transition-duration: var(--activeAnimationSpeed);
|
||||
background: var(--baseAlt2Color);
|
||||
}
|
||||
&.col-sort-disabled {
|
||||
cursor: default;
|
||||
background: none;
|
||||
&:after {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.col-header-content {
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
flex-wrap: nowrap;
|
||||
gap: 5px;
|
||||
.txt {
|
||||
max-width: 140px;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
}
|
||||
|
||||
// column types
|
||||
%minColWidth {
|
||||
width: 1% !important;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.col-type-action {
|
||||
@extend %minColWidth;
|
||||
white-space: nowrap;
|
||||
text-align: right;
|
||||
color: var(--txtHintColor);
|
||||
i {
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
transition: transform var(--baseAnimationSpeed);
|
||||
}
|
||||
}
|
||||
td.col-type-json {
|
||||
font-family: monospace;
|
||||
font-size: var(--smFontSize);
|
||||
line-height: var(--smLineHeight);
|
||||
max-width: 300px;
|
||||
}
|
||||
.col-type-text {
|
||||
max-width: 300px;
|
||||
}
|
||||
.col-type-select {
|
||||
min-width: 150px;
|
||||
}
|
||||
.col-type-email {
|
||||
min-width: 120px;
|
||||
}
|
||||
.col-type-file {
|
||||
min-width: 100px;
|
||||
}
|
||||
|
||||
// field name specific columns
|
||||
td.col-field-id {
|
||||
width: 0;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.col-field-created,
|
||||
.col-field-updated {
|
||||
@extend %minColWidth;
|
||||
}
|
||||
|
||||
tr {
|
||||
outline: 0;
|
||||
background: var(--bodyColor);
|
||||
transition: background var(--baseAnimationSpeed);
|
||||
}
|
||||
tr.row-handle {
|
||||
cursor: pointer;
|
||||
user-select: none;
|
||||
&:focus-visible,
|
||||
&:hover,
|
||||
&:active {
|
||||
background: var(--baseAlt1Color);
|
||||
.action-col {
|
||||
color: var(--txtPrimaryColor);
|
||||
i {
|
||||
transform: translateX(3px);
|
||||
}
|
||||
}
|
||||
}
|
||||
&:active {
|
||||
transition-duration: var(--activeAnimationSpeed);
|
||||
}
|
||||
}
|
||||
|
||||
// styles
|
||||
&.table-compact {
|
||||
td, th {
|
||||
height: auto;
|
||||
}
|
||||
}
|
||||
&.table-border {
|
||||
border: 1px solid var(--baseAlt2Color);
|
||||
tr {
|
||||
background: var(--baseColor);
|
||||
}
|
||||
th {
|
||||
background: var(--baseAlt1Color);
|
||||
}
|
||||
> :last-child > :last-child {
|
||||
th, td {
|
||||
border-bottom: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// states
|
||||
&.table-loading {
|
||||
pointer-events: none;
|
||||
}
|
||||
}
|
||||
|
||||
.table-wrapper {
|
||||
width: auto;
|
||||
padding: 0;
|
||||
overflow-x: auto;
|
||||
max-width: calc(100% + 2*var(--baseSpacing));
|
||||
margin-left: calc(var(--baseSpacing) * -1);
|
||||
margin-right: calc(var(--baseSpacing) * -1);
|
||||
.bulk-select-col {
|
||||
input[type="checkbox"] ~ label {
|
||||
opacity: 0.7;
|
||||
}
|
||||
label:hover,
|
||||
label:focus-within,
|
||||
input[type="checkbox"]:checked ~ label {
|
||||
opacity: 1 !important;
|
||||
}
|
||||
}
|
||||
td, th {
|
||||
&:first-child {
|
||||
padding-left: calc(var(--baseSpacing) + 3px);
|
||||
}
|
||||
&:last-child {
|
||||
padding-right: calc(var(--baseSpacing) + 3px);
|
||||
}
|
||||
}
|
||||
|
||||
// horizontal scrolling
|
||||
.bulk-select-col,
|
||||
.col-type-action {
|
||||
position: sticky;
|
||||
z-index: 99;
|
||||
}
|
||||
.bulk-select-col {
|
||||
left: 0px;
|
||||
}
|
||||
.col-type-action {
|
||||
right: 0;
|
||||
}
|
||||
.bulk-select-col,
|
||||
.col-type-action {
|
||||
background: inherit;
|
||||
}
|
||||
th.bulk-select-col,
|
||||
th.col-type-action {
|
||||
background: var(--bodyColor);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,129 @@
|
||||
$tabHeaderAnimationSpeed: 0.25s;
|
||||
$tabContentAnimationSpeed: 0.3s;
|
||||
|
||||
@keyframes tabChange {
|
||||
0% {
|
||||
opacity: 0.5;
|
||||
}
|
||||
100% {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.tabs-header {
|
||||
display: flex;
|
||||
align-items: stretch;
|
||||
justify-content: flex-start;
|
||||
column-gap: 10px;
|
||||
width: 100%;
|
||||
min-height: 50px;
|
||||
user-select: none;
|
||||
margin: 0 0 var(--baseSpacing);
|
||||
border-bottom: 1px solid var(--baseAlt2Color);
|
||||
.tab-item {
|
||||
position: relative;
|
||||
outline: 0;
|
||||
border: 0;
|
||||
background: none;
|
||||
display: inline-flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
min-width: 50px;
|
||||
gap: 5px;
|
||||
padding: 10px 10px;
|
||||
margin: 0;
|
||||
font-size: var(--lgFontSize);
|
||||
line-height: var(--baseLineHeight);
|
||||
font-family: var(--baseFontFamily);
|
||||
color: var(--txtHintColor);
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
cursor: pointer;
|
||||
border-top-left-radius: var(--baseRadius);
|
||||
border-top-right-radius: var(--baseRadius);
|
||||
transition: color var(--baseAnimationSpeed),
|
||||
background var(--baseAnimationSpeed);
|
||||
&:after { // active border
|
||||
content: "";
|
||||
position: absolute;
|
||||
display: block;
|
||||
left: 0;
|
||||
bottom: -1px;
|
||||
width: 100%;
|
||||
height: 2px;
|
||||
border-top-left-radius: var(--baseRadius);
|
||||
border-top-right-radius: var(--baseRadius);
|
||||
background: var(--primaryColor);
|
||||
transform: rotateY(90deg);
|
||||
transition: transform $tabHeaderAnimationSpeed;
|
||||
}
|
||||
.txt, i {
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
}
|
||||
&:hover,
|
||||
&:focus-visible,
|
||||
&:active {
|
||||
color: var(--txtPrimaryColor);
|
||||
}
|
||||
&:focus-visible,
|
||||
&:active {
|
||||
transition-duration: var(--activeAnimationSpeed);
|
||||
background: var(--baseAlt2Color);
|
||||
}
|
||||
&.active {
|
||||
color: var(--txtPrimaryColor);
|
||||
&:after {
|
||||
transform: rotateY(0deg);
|
||||
}
|
||||
}
|
||||
&.disabled {
|
||||
pointer-events: none;
|
||||
color: var(--txtDisabledColor);
|
||||
&:after {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
&.right {
|
||||
justify-content: flex-end;
|
||||
}
|
||||
&.center {
|
||||
justify-content: center;
|
||||
}
|
||||
&.stretched {
|
||||
.tab-item {
|
||||
flex-grow: 1;
|
||||
flex-basis: 0;
|
||||
}
|
||||
}
|
||||
&.compact {
|
||||
min-height: 30px;
|
||||
margin-bottom: var(--smSpacing);
|
||||
}
|
||||
}
|
||||
|
||||
.tabs-content {
|
||||
@extend %block;
|
||||
position: relative;
|
||||
> .tab-item {
|
||||
width: 100%;
|
||||
display: none;
|
||||
&.active {
|
||||
display: block;
|
||||
opacity: 0;
|
||||
animation: tabChange $tabContentAnimationSpeed forwards;
|
||||
}
|
||||
& > :first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
& > :last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.tabs {
|
||||
@extend %block;
|
||||
position: relative;
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
@keyframes tooltipHide {
|
||||
100% {
|
||||
opacity: 0;
|
||||
visibility: hidden;
|
||||
transform: scale(0.9);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes tooltipShow {
|
||||
0% {
|
||||
opacity: 0;
|
||||
visibility: hidden;
|
||||
transform: scale(0.9);
|
||||
}
|
||||
100% {
|
||||
opacity: 1;
|
||||
visibility: visible;
|
||||
transform: scale(1);
|
||||
}
|
||||
}
|
||||
|
||||
.app-tooltip {
|
||||
position: fixed;
|
||||
z-index: 999999;
|
||||
top: 0;
|
||||
left: 0;
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
max-width: 275px;
|
||||
padding: 3px 5px;
|
||||
color: #fff;
|
||||
text-align: center;
|
||||
font-family: var(--baseFontFamily);
|
||||
font-size: var(--smFontSize);
|
||||
line-height: var(--smLineHeight);
|
||||
border-radius: var(--baseRadius);
|
||||
background: var(--tooltipColor);
|
||||
pointer-events: none;
|
||||
user-select: none;
|
||||
transition: opacity var(--baseAnimationSpeed),
|
||||
visibility var(--baseAnimationSpeed),
|
||||
transform var(--baseAnimationSpeed);
|
||||
transform: scale(0.9);
|
||||
white-space: pre-line;
|
||||
@include hide();
|
||||
&.active {
|
||||
transform: scale(1);
|
||||
@include show();
|
||||
}
|
||||
&.code {
|
||||
font-family: monospace;
|
||||
white-space: pre-wrap;
|
||||
text-align: left;
|
||||
min-width: 150px;
|
||||
max-width: 340px;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,101 @@
|
||||
:root {
|
||||
--baseFontFamily: 'Source Sans Pro', sans-serif, emoji;
|
||||
--monospaceFontFamily: 'Ubuntu Mono', monospace, emoji;
|
||||
--iconFontFamily: 'remixicon';
|
||||
|
||||
--txtPrimaryColor: #16161a;
|
||||
--txtHintColor: #666f75;
|
||||
--txtDisabledColor: #adb3b8;
|
||||
|
||||
--primaryColor: #16161a;
|
||||
|
||||
--bodyColor: #f8f9fa;
|
||||
|
||||
--baseColor: #ffffff;
|
||||
--baseAlt1Color: #edf0f3;
|
||||
--baseAlt2Color: #dee3e8;
|
||||
--baseAlt3Color: #a9b4bc;
|
||||
--baseAlt4Color: #7c868d;
|
||||
|
||||
--infoColor: #3da9fc;
|
||||
--infoAltColor: #d8eefe;
|
||||
--successColor: #2cb67d;
|
||||
--successAltColor: #daf6ea;
|
||||
--dangerColor: #ef4565;
|
||||
--dangerAltColor: #fcdee4;
|
||||
--warningColor: #ff8e3c;
|
||||
--warningAltColor: #ffe7d6;
|
||||
|
||||
--overlayColor: rgba(88, 95, 101, 0.3);
|
||||
--tooltipColor: rgba(0, 0, 0, 0.85);
|
||||
--shadowColor: rgba(0, 0, 0, 0.05);
|
||||
|
||||
--baseFontSize: 14.5px;
|
||||
--xsFontSize: 12px;
|
||||
--smFontSize: 13px;
|
||||
--lgFontSize: 15px;
|
||||
--xlFontSize: 16px;
|
||||
|
||||
--baseLineHeight: 22px;
|
||||
--smLineHeight: 16px;
|
||||
--lgLineHeight: 24px;
|
||||
|
||||
--inputHeight: 34px;
|
||||
|
||||
--btnHeight: 40px;
|
||||
--xsBtnHeight: 24px;
|
||||
--smBtnHeight: 30px;
|
||||
--lgBtnHeight: 54px;
|
||||
|
||||
--baseSpacing: 30px;
|
||||
--xsSpacing: 15px;
|
||||
--smSpacing: 20px;
|
||||
--lgSpacing: 50px;
|
||||
--xlSpacing: 60px;
|
||||
|
||||
--wrapperWidth: 850px;
|
||||
--smWrapperWidth: 420px;
|
||||
--lgWrapperWidth: 1200px;
|
||||
|
||||
--appSidebarWidth: 75px;
|
||||
--pageSidebarWidth: 220px;
|
||||
|
||||
--baseAnimationSpeed: 150ms;
|
||||
--activeAnimationSpeed: 70ms;
|
||||
|
||||
--baseRadius: 3px;
|
||||
--lgRadius: 12px;
|
||||
--btnRadius: 3px;
|
||||
|
||||
// https://developer.mozilla.org/en-US/docs/Web/CSS/accent-color
|
||||
accent-color: var(--primaryColor);
|
||||
}
|
||||
|
||||
// Maps
|
||||
// ----
|
||||
$colorsMap: (
|
||||
"primary": var(--primaryColor),
|
||||
"info": var(--infoColor),
|
||||
"info-alt": var(--infoAltColor),
|
||||
"success": var(--successColor),
|
||||
"success-alt": var(--successAltColor),
|
||||
"danger": var(--dangerColor),
|
||||
"danger-alt": var(--dangerAltColor),
|
||||
"warning": var(--warningColor),
|
||||
"warning-alt": var(--warningAltColor),
|
||||
);
|
||||
|
||||
$sidesMap: (
|
||||
"t": "top",
|
||||
"r": "right",
|
||||
"b": "bottom",
|
||||
"l": "left",
|
||||
);
|
||||
|
||||
$sizesMap: (
|
||||
"base": var(--baseSpacing),
|
||||
"xs": var(--xsSpacing),
|
||||
"sm": var(--smSpacing),
|
||||
"lg": var(--lgSpacing),
|
||||
"xl": var(--xlSpacing),
|
||||
);
|
||||
@@ -0,0 +1,39 @@
|
||||
@import 'fonts';
|
||||
|
||||
@import 'vars';
|
||||
|
||||
@import 'mixins';
|
||||
|
||||
@import 'reset';
|
||||
|
||||
@import 'icons';
|
||||
|
||||
@import 'animations';
|
||||
|
||||
@import 'base';
|
||||
|
||||
@import 'grid';
|
||||
|
||||
@import 'tooltip';
|
||||
|
||||
@import 'dropdown';
|
||||
|
||||
@import 'overlay_panel';
|
||||
|
||||
@import 'alert';
|
||||
|
||||
@import 'form';
|
||||
|
||||
@import 'layout';
|
||||
|
||||
@import 'tabs';
|
||||
|
||||
@import 'accordion';
|
||||
|
||||
@import 'table';
|
||||
|
||||
@import 'searchbar';
|
||||
|
||||
@import 'bulkbar';
|
||||
|
||||
@import 'flatpickr';
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user