hedera-web/js/htk/style/components.scss

705 lines
9.8 KiB
SCSS

@import "./variables";
/* Icon */
.htk-icon {}
/* Button */
.htk-button {
display: flex;
align-items: center;
gap: 8px;
& > .htk-icon {
display: block;
}
}
/* Grid */
.htk-grid {
margin: auto;
border-collapse: collapse;
& > thead > tr,
& > tfoot > tr {
background-color: $color-primary;
vertical-align: middle;
height: 3em;
}
th {
color: white;
cursor: pointer;
font-weight: normal;
padding: 0 0.4em;
}
th:hover {
background-color: rgba(1, 1, 1, 0.2);
}
tr {
height: 3.5em;
}
& > tfoot a,
& > thead a {
color: black;
}
tr.pair-row {
background-color: transparent;
}
& > tbody tr {
border-top: 1px solid #DDD;
}
& > tbody tr:first-child {
border-top: none;
}
& > tbody td {
margin: 0;
padding: 0 0.5em;
}
th,
td {
text-align: left;
}
td:first-child,
th:first-child {
padding-left: 1em;
}
td:last-child,
th:last-child {
padding-right: 1em;
}
.message {
padding: 1.5em;
text-align: center;
}
.message > * {
display: inline-block;
vertical-align: middle;
padding-right: .8em;
}
}
/* Repater */
.htk-repeater {
& > .message {
padding: 1.5em;
text-align: center;
& > * {
vertical-align: middle;
}
& > span,
& > .htk-spinner {
display: inline-block;
padding-right: 10px;
}
}
}
/* Grid cells */
th.cell-spin {
text-align: right;
}
td.cell-spin {
width: 2.5em;
text-align: right;
}
th.cell-check,
th.cell-radio {
text-align: center;
}
td.cell-button {
max-width: 20px;
text-align: center;
}
td.cell-button > button,
td.cell-button > a {
@extend %clickable;
display: block;
height: 44px;
width: 44px;
margin: 0 auto;
border-radius: 50%;
padding: 10px;
border: none;
background-color: transparent;
box-sizing: border-box;
& > .htk-icon {
display: block;
}
}
td.cell-button > button:hover,
td.cell-button > a:hover {
background-color: rgba(1, 1, 1, 0.1);
}
td.cell-button img {
height: 1.5em;
width: 1.5em;
display: block;
margin: auto;
padding: 0;
}
td.cell-image {
text-align: center;
}
td.cell-image .htk-image {
max-width: 2.5em;
max-height: 2.5em;
display: block;
margin: auto;
}
/* Select */
.htk-select,
.htk-date-chooser {
display: flex;
align-items: center;
font-weight: normal;
& > span {
flex: 1;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}
& > .htk-icon {
flex: none;
color: #666;
}
}
.htk-select {
width: 100%;
}
.htk-select-menu {
height: 100%;
max-height: 80em;
overflow: auto;
min-width: 14em;
tbody > tr {
border-top: none;
height: 2.5em;
}
td.message {
padding: 1em;
}
tr:hover {
background-color: rgba(1, 1, 1, 0.1);
cursor: pointer;
}
td {
max-width: 11em;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
}
/* List */
.htk-list {
a.item,
.item.clickable {
@extend %clickable;
}
.item {
padding: 20px;
border-bottom: 1px solid #DDD;
display: flex;
align-items: center;
& > .side {
flex: none;
}
& > .content {
flex: 1;
overflow: hidden;
& > .important {
font-weight: bold;
font-size: 1rem;
margin-bottom: .5em;
}
& > p {
margin: .1em 0;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}
}
& > .actions {
flex: none;
display: none;
align-items: center;
& > .htk-button {
margin: 0;
}
& > * {
display: inline-block;
vertical-align: middle;
}
& > input {
margin: .6em;
}
}
}
.item:hover > .actions {
display: flex;
}
.item:last-child {
border-bottom: none;
}
}
/* Calendar */
.htk-calendar {
@extend %box;
width: 20em;
table {
border-collapse: collapse;
}
thead tr,
tfoot tr {
font-weight: normal;
vertical-align: middle;
text-align: center;
height: 3em;
}
thead > tr {
&.weekdays > th {
font-weight: normal;
color: #999;
text-transform: lowercase;
}
& > th {
&.previous, &.next {
font-size: .8rem;
button {
border-radius: 50%;
padding: 10px;
display: block;
margin: 0 auto;
& > .htk-icon {
font-size: 1rem;
}
}
}
&.month-year {
font-size: 1.2rem;
text-transform: lowercase;
}
}
}
tfoot tr {
border-top: none;
}
th.button {
display: table-cell;
}
th.button:hover {
cursor: pointer;
background-color: rgba(1, 1, 1, 0.2);
}
col {
width: 14.2%;
}
tr {
height: 2em;
}
tbody td {
text-align: right;
}
tbody td > div {
height: 2em;
width: 2em;
line-height: 2em;
text-align: center;
border-radius: 2em;
padding: 0.3em;
margin: 0 auto;
color: #555;
}
div {
&.disabled {
color: #bbb;
}
&.today {
font-weight: bold;
color: black;
}
&.selected {
color: white;
background-color: $color-primary;
}
&.enabled {
@extend %clickable;
&:hover {
background-color: rgba(140, 198, 63, 0.8);
}
}
}
}
/* Image */
.htk-image {
position: relative;
overflow: hidden;
&.clickable:hover {
cursor: pointer;
opacity: 0.85;
}
& > img {
display: block;
height: 100%;
width: 100%;
}
& > button {
position: absolute;
top: 0;
left: 0;
margin: 0;
padding: .15em;
display: none;
}
&:hover > button {
display: block;
}
& > button > img {
display: block;
height: 1.2em;
height: 1.2em;
}
}
/* Full image */
.htk-full-image {
img {
display: block;
cursor: pointer;
}
.htk-spinner {
background-color: #FFF;
margin: .6em;
display: block;
}
}
/* Image editor */
.htk-image-editor {
width: 18em;
margin: 0 auto;
padding: 1.5em;
h2 {
color: white;
background-color: #009688;
text-align: left;
font-size: 1.3em;
line-height: 1.7em;
font-weight: normal;
padding: 0.6em 0.8em;
margin: 0;
}
iframe {
display: none;
}
.footer {
margin-top: 2em;
& > .htk-spinner {
padding-right: 1.2em;
height: 1.3em;
width: 1.3em;
}
& > .htk-spinner,
& > input {
float: right;
}
}
}
/* Toast */
.htk-toast {
z-index: 210;
display: block;
position: fixed;
left: 50%;
top: 4em;
width: 21em;
margin-left: -10.5em;
text-align: center;
overflow: auto;
max-height: 40em;
overflow: visible;
& > div {
margin: .5em 0;
padding: .5em 2%;
border-radius: 0.1em;
box-shadow: 0 0 0.4em rgba(1, 1, 1, 0.6);
width: 96%;
opacity: 0;
transform: translateZ(0) translateY(-1em);
-webkit-transform: translateZ(0) translateY(-1em);
transition-property: opacity, transform;
transition-duration: 200ms;
transition-timing-function: ease-out;
&.show {
opacity: 1;
transform: translateZ(0) translateY(0em);
-webkit-transform: translateZ(0) translateY(0em);
}
}
& > .message {
background-color: #BBFFBB;
color: #363;
}
& > .warning {
background-color: #FFE0B2;
color: #C30;
}
& > .error {
background-color: #FFCDD2;
color: #A00;
}
}
/* Popup */
.htk-background {
position: fixed;
left: 0;
right: 0;
top: 0;
bottom: 0;
z-index: 190;
background-color: rgba(1, 1, 1, 0.7);
opacity: 0;
transition: opacity 200ms ease-in-out;
}
.htk-popup {
z-index: 200;
display: block;
position: fixed;
overflow: hidden;
background-color: white;
border-radius: 10px;
box-shadow: 0 0 0.4em rgba(1, 1, 1, 0.6);
box-sizing: content-box;
&.modal {
position: absolute;
font-size: 1.2em;
top: 50%;
left: 50%;
}
& > * {
border-radius: 0.1em;
}
}
/* Dialog */
.htk-dialog {
padding: 1.5em;
max-width: 20em;
font-weight: normal;
color: #555;
p {
margin: 0;
}
img {
float: left;
height: 3em;
margin-top: 0;
margin-right: 1em;
}
p {
padding: 0;
}
.button-bar > button {
float: right;
margin-left: 1em;
margin-top: .5em;
}
}
/* Assistant */
.htk-assistant > div {
display: none;
& > h2 {
text-align: center;
font-weight: normal;
font-size: 1.5rem;
margin: 0;
padding: 0;
margin-bottom: 1em;
font-weight: bold;
}
}
/* Assistant bar */
.htk-assistant-bar {
position: relative;
padding: .8em;
display: flex;
align-items: center;
justify-content: space-between;
box-sizing: border-box;
width: 100%;
& > button {
border-radius: 50%;
padding: .5em;
margin: 0;
text-align: center;
& > img {
display: block;
width: 1.8em;
padding: .5em;
}
}
& > .end {
display: none;
color: #8cc63f;
& > .icon {
font-size: 1.6rem;
}
}
& > .steps {
display: flex;
align-items: center;
& > div {
background-color: #AAA;
width: .5em;
height: .5em;
cursor: pointer;
border-radius: 50%;
margin: .5em;
transition-property: width, height;
transition-duration: 100ms;
transition-timing-function: ease-in-out;
&.selected {
background-color: #666;
width: 1em;
height: 1em;
}
&:hover {
opacity: .7;
}
}
& > img {
width: 1.3em;
margin: 0 .2em;
cursor: pointer;
&:hover {
opacity: .7;
}
}
}
}
/* Search entry */
.htk-search-entry {
display: flex;
align-items: center;
gap: 10px;
background-color: white;
height: 40px;
border-radius: 20px;
padding: 0 15px;
overflow: hidden;
& > * {
display: inline-block;
vertical-align: middle;
}
& > .htk-icon {
display: block;
margin: 0;
color: gray;
}
& > .entry {
margin: 0;
border: none;
width: 100px;
box-shadow: none;
padding-right: 0;
padding-left: 0;
height: inherit;
}
& > .entry:focus {
background-color: initial;
}
}
/* Spinner */
.htk-spinner {
width: 1.8em;
height: 1.8em;
position: relative;
display: inline-block;
& > .spinner {
left: 0;
position: absolute;
width: inherit;
height: inherit;
box-sizing: border-box;
border-radius: 50%;
border: 2px solid transparent;
border-top-color: #666;
border-left-color: #666;
animation: spinner 1s linear infinite;
-webkit-animation: spinner 1s linear infinite;
}
&.dark > .spinner {
border-top-color: white;
border-left-color: white;
}
}
@keyframes spinner {
to {transform: rotate(360deg);}
}
@-webkit-keyframes spinner {
to {-webkit-transform: rotate(360deg);}
}
/* Loader */
.htk-loader > .spinner {
text-align: center;
}