nextcloud/apps/settings/css/settings.scss
Daniel Calviño Sánchez b677d3e27d Show loading spinner until share settings are fully loaded
The inputs of the sharing settings are generated in a template in the
server, but the listeners to react to changes in the elements and save
the values in the server are loaded in the client once the DOM finishes
loading. If the DOM takes long to load the user can start to interact
with the settings before the listeners were set up and, therefore, the
changes would not be saved in the server. However, as the inputs are
modified the user would think that the changes were already saved.

To address that now when the sharing settings are open a loading spinner
is shown instead of the contents of the sharing settings, and only once
the listeners to save the changes were set up the spinner is removed and
the contents shown.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
2023-05-10 03:00:37 +02:00

1650 lines
24 KiB
SCSS
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/* Copyright (c) 2011, Jan-Christoph Borchardt, http://jancborchardt.net
This file is licensed under the Affero General Public License version 3 or later.
See the COPYING-README file. */
@use 'variables';
@import 'functions';
input {
&#openid, &#webdav {
width: 20em;
}
}
/* PERSONAL */
.clear {
clear: both;
}
/* icons for sidebar */
.nav-icon-personal-settings {
@include icon-color('personal', 'settings', variables.$color-black);
}
.nav-icon-security {
@include icon-color('toggle-filelist', 'settings', variables.$color-black);
}
.nav-icon-clientsbox {
@include icon-color('change', 'settings', variables.$color-black);
}
.nav-icon-federated-cloud {
@include icon-color('share', 'settings', variables.$color-black);
}
.nav-icon-second-factor-backup-codes, .nav-icon-ssl-root-certificate {
@include icon-color('password', 'settings', variables.$color-black);
}
#personal-settings-avatar-container {
display: inline-grid;
grid-template-columns: 1fr;
grid-template-rows: 2fr 1fr 2fr;
vertical-align: top;
}
.profile-settings-container {
display: inline-grid;
grid-template-columns: 1fr 1fr 1fr;
}
.personal-show-container {
width: 100%;
}
.personal-settings-setting-box {
.section {
padding: 10px 30px;
.headerbar-label {
margin-bottom: 0;
}
input {
&[type='text'], &[type='email'], &[type='tel'], &[type='url'] {
width: 100%;
}
}
}
&-profile {
grid-row: 3/5;
}
&-detail {
grid-row: 5;
}
&-detail--without-profile {
grid-row: 3;
}
}
select {
&#timezone {
width: 100%;
}
}
#personal-settings {
display: grid;
padding: 20px;
max-width: 1700px;
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
grid-column-gap: 10px;
.section {
padding: 10px 10px;
border: 0;
h2 {
margin-bottom: 12px;
}
h3 {
> label {
font-weight: bold;
}
}
}
.personal-info {
margin-right: 10%;
margin-bottom: 12px;
margin-top: 12px;
}
.personal-info[class^='icon-'], .personal-info[class*=' icon-'] {
background-position: 0px 2px;
padding-left: 30px;
opacity: 0.7;
}
}
// Button for 'Reasons to use Nextcloud in your organization'
.development-notice {
text-align: center;
a:not(.link-button) {
text-decoration: underline;
&:hover {
background-color: var(--color-primary-element-hover);
}
}
}
.link-button {
display: inline-block;
margin: 16px;
padding: 14px 20px;
background-color: var(--color-primary);
color: #fff;
border-radius: var(--border-radius-pill);
border: 1px solid var(--color-primary);
box-shadow: 0 2px 9px var(--color-box-shadow);
&:active,
&:hover,
&:focus {
color: var(--color-primary);
background-color: var(--color-primary-text);
border-color: var(--color-primary) !important;
}
&.icon-file {
padding-left: 48px;
background-position: 24px;
}
}
.personal-settings-container {
display: inline-grid;
grid-template-columns: 1fr 1fr 1fr;
&:after {
clear: both;
}
> div {
h3 {
position: relative;
display: inline-flex;
flex-wrap: nowrap;
justify-content: flex-start;
width: 100%;
align-items: center;
gap: 8px;
> label {
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
}
}
> form span {
&[class^='icon-checkmark'], &[class^='icon-error'] {
position: relative;
right: 8px;
top: -28px;
pointer-events: none;
float: right;
}
}
}
.verify {
position: relative;
left: 100%;
top: 0;
height: 0;
img {
padding: 12px 7px 6px;
}
}
.verify-action {
cursor: pointer;
}
input:disabled {
background-color: white;
color: black;
border: none;
opacity: 100;
}
}
/* verify accounts */
/* only show pointer cursor when popup will be there */
.verification-dialog {
display: none;
right: -9px;
top: 40px;
width: 275px;
p {
padding: 10px;
}
.verificationCode {
font-family: monospace;
display: block;
overflow-wrap: break-word;
}
}
.federation-menu {
position: relative;
cursor: pointer;
width: 44px;
height: 44px;
padding: 10px;
margin: 0;
background: none;
border: none;
&:hover,
&:focus {
background-color: var(--color-background-hover);
border-radius: var(--border-radius-pill);
.icon-federation-menu {
opacity: 0.8;
}
}
.icon-federation-menu {
padding-left: 16px;
background-size: 16px;
background-position: left center;
opacity: .3;
cursor: inherit;
.icon-triangle-s {
display: inline-block;
vertical-align: middle;
cursor: inherit;
}
}
.federationScopeMenu {
top: 44px;
&.popovermenu {
.menuitem {
// override h3 heading font size
font-size: 12.8px;
line-height: 1.6em;
.menuitem-text-detail {
opacity: .75;
}
&.active {
box-shadow: inset 2px 0 var(--color-primary);
.menuitem-text {
font-weight: bold;
}
}
&.disabled {
opacity: .5;
cursor: default;
* {
cursor: default;
}
}
}
}
}
}
.clientsbox img {
height: 60px;
}
#sslCertificate {
tr.expired {
background-color: rgba(255, 0, 0, 0.5);
}
td {
padding: 5px;
}
}
#displaynameerror,
#displaynamechanged {
display: none;
}
input#identity {
width: 20em;
}
#showWizard {
display: inline-block;
}
.msg {
&.success {
color: #fff;
background-color: #47a447;
padding: 3px;
}
&.error {
color: #fff;
background-color: #d2322d;
padding: 3px;
}
}
table.nostyle {
label {
margin-right: 2em;
}
td {
padding: 0.2em 0;
}
}
#security-password {
#passwordform {
display: flex;
flex-wrap: wrap;
flex-direction: column;
gap: 1rem;
.input-control {
display: flex;
flex-wrap: wrap;
flex-direction: column;
label {
margin-bottom: 0.5rem;
}
}
#pass1, .personal-show-container {
flex-shrink: 1;
width: 300px;
min-width: 150px;
}
// Extremely fragile code, to be replaced by PasswordField component soon
.personal-show-container {
#pass2 {
position: relative;
top: 0.5rem;
}
.personal-show-label {
top: 34px !important;
margin-right: 0;
margin-top: 0 !important;
right: 3px;
}
}
#pass2 {
width: 100%;
}
.password-state {
display: inline-block;
}
.strengthify-wrapper {
position: absolute;
left: 0;
width: 100%;
border-radius: 0 0 2px 2px;
margin-top: 5px;
overflow: hidden;
height: 3px;
}
}
}
/* Two-Factor Authentication (2FA) */
#two-factor-auth {
h3 {
margin-top: 24px;
}
li > div {
margin-left: 20px;
}
.two-factor-provider-settings-icon {
width: 16px;
height: 16px;
vertical-align: sub;
filter: var(--background-invert-if-dark);
}
}
/* USERS */
.isgroup {
.groupname {
width: 85%;
display: block;
overflow: hidden;
text-overflow: ellipsis;
}
&.active .groupname {
width: 65%;
}
}
li.active {
.delete,
.rename {
display: block;
}
}
.app-navigation-entry-utils {
.delete,
.rename {
display: none;
}
}
#usersearchform {
position: absolute;
top: 2px;
right: 0;
input {
width: 150px;
}
label {
font-weight: bold;
}
}
/* display table at full width */
table.grid {
width: 100%;
th {
height: 2em;
color: #999;
border-bottom: 1px solid var(--color-border);
padding: 0 .5em;
padding-left: .8em;
text-align: left;
font-weight: normal;
}
td {
border-bottom: 1px solid var(--color-border);
padding: 0 .5em;
padding-left: .8em;
text-align: left;
font-weight: normal;
}
}
td, th {
&.name {
padding-left: .8em;
min-width: 5em;
max-width: 12em;
text-overflow: ellipsis;
overflow: hidden;
}
&.password {
padding-left: .8em;
> img {
visibility: hidden;
}
}
&.displayName > img {
visibility: hidden;
}
&.password,
&.mailAddress {
min-width: 5em;
max-width: 12em;
cursor: pointer;
span {
width: 90%;
display: inline-block;
text-overflow: ellipsis;
overflow: hidden;
}
}
&.mailAddress {
cursor: pointer;
}
&.password > span {
margin-right: 1.2em;
color: #C7C7C7;
}
}
span.usersLastLoginTooltip {
white-space: nowrap;
}
/* APPS */
#app-content > svg.app-filter {
float: left;
height: 0;
width: 0;
}
#app-category-app-bundles {
margin-bottom: 20px;
}
.appinfo {
margin: 1em 40px;
}
#app-navigation {
/* Navigation icons */
img {
margin-bottom: -3px;
margin-right: 6px;
width: 16px;
}
li span.no-icon {
padding-left: 32px;
}
ul li.active > span.utils {
.delete, .rename {
display: block;
}
}
.appwarning {
background: #fcc;
}
&.appwarning:hover {
background: #fbb;
}
.app-external {
color: var(--color-text-maxcontrast);
}
}
span.version {
margin-left: 1em;
margin-right: 1em;
color: var(--color-text-maxcontrast);
}
.app-version {
color: var(--color-text-maxcontrast);
}
.app-level {
span {
color: var(--color-text-maxcontrast);
background-color: transparent;
border: 1px solid var(--color-text-maxcontrast);
border-radius: var(--border-radius);
padding: 3px 6px;
}
a {
padding: 10px;
margin: -6px;
white-space: nowrap;
}
.official {
background-position: left center;
background-position: 5px center;
padding-left: 25px;
}
.supported {
border-color: var(--color-success);
background-position: left center;
background-position: 5px center;
padding-left: 25px;
color: var(--color-success);
}
}
.app-score {
position: relative;
top: 4px;
opacity: .5;
}
.app-settings-content {
#searchresults {
display: none;
}
}
#apps-list.store {
.section {
border: 0;
}
.app-name {
display: block;
margin: 5px 0;
}
.app-name, .app-image * {
cursor: pointer;
}
.app-summary {
opacity: .7;
}
.app-image-icon .icon-settings-dark {
width: 100%;
height: 150px;
background-size: 45px;
opacity: 0.5;
}
.app-score-image {
height: 14px;
}
.actions {
margin-top: 10px;
}
}
#app-sidebar #app-details-view {
h2 {
.icon-settings-dark,
svg {
display: inline-block;
width: 16px;
height: 16px;
margin-right: 10px;
opacity: .7;
}
}
.app-level {
clear: right;
width: 100%;
.supported,
.official {
vertical-align: top;
}
.app-score-image {
float: right;
}
}
.app-author, .app-licence {
color: var(--color-text-maxcontrast);
}
.app-dependencies {
margin: 10px 0;
}
.app-description p {
margin: 10px 0;
}
.close {
position: absolute;
top: 0;
right: 0;
padding: 14px;
opacity: 0.5;
z-index: 1;
width: 44px;
height: 44px;
}
.actions {
display: flex;
align-items: center;
.app-groups {
padding: 5px;
}
}
.appslink {
text-decoration: underline;
margin-right: 5px;
}
.app-level,
.actions,
.documentation,
.app-dependencies,
.app-description {
margin: 20px 0;
}
}
@media only screen and (min-width: 1601px) {
.store .section {
width: 25%;
}
.with-app-sidebar .store .section {
width: 33%;
}
}
@media only screen and (max-width: 1600px) {
.store .section {
width: 25%;
}
.with-app-sidebar .store .section {
width: 33%;
}
}
@media only screen and (max-width: 1400px) {
.store .section {
width: 33%;
}
.with-app-sidebar .store .section {
width: 50%;
}
}
@media only screen and (max-width: 900px) {
.store .section {
width: 50%;
}
.with-app-sidebar .store .section {
width: 100%;
}
}
@media only screen and (max-width: variables.$breakpoint-mobile) {
.store .section {
width: 50%;
}
}
@media only screen and (max-width: 480px) {
.store .section {
width: 100%;
}
}
/* hide app version and level on narrower screens */
@media only screen and (max-width: 900px) {
.apps-list.installed {
.app-version, .app-level {
display: none !important;
}
}
}
@media only screen and (max-width: 500px) {
.apps-list.installed .app-groups {
display: none !important;
}
}
.section {
margin-bottom: 0;
/* section divider lines, none needed for last one */
&:not(:last-child) {
border-bottom: 1px solid var(--color-border);
}
/* correctly display help icons next to headings */
h2 {
margin-bottom: 22px;
.icon-info {
padding: 6px 20px;
vertical-align: text-bottom;
display: inline-block;
}
}
}
.followupsection {
display: block;
padding: 0 30px 30px 30px;
}
.app-image {
position: relative;
height: 150px;
opacity: 1;
overflow: hidden;
}
.app-name, .app-version, .app-score, .app-level {
display: inline-block;
}
.app-description-toggle-show, .app-description-toggle-hide {
clear: both;
padding: 7px 0;
cursor: pointer;
opacity: .5;
}
.app-description-container {
clear: both;
position: relative;
top: 7px;
}
.app-description {
clear: both;
}
#app-category-1 {
margin-bottom: 18px;
}
/* capitalize 'Other' category */
#app-category-925 {
text-transform: capitalize;
}
.app-dependencies {
color: #ce3702;
}
.missing-dependencies {
list-style: initial;
list-style-type: initial;
list-style-position: inside;
}
.apps-list {
$toolbar-padding: 8px;
$toolbar-height: 44px + $toolbar-padding * 2;
.section {
cursor: pointer;
}
.app-list-move {
transition: transform 1s;
}
#app-list-update-all {
margin-left: 10px;
}
.toolbar {
height: $toolbar-height;
padding: $toolbar-padding;
// Leave room for app-navigation-toggle
padding-left: $toolbar-height;
width: 100%;
background-color: var(--color-main-background);
position: sticky;
top: 0;
z-index: 1;
display: flex;
align-items: center;
}
&.installed {
.apps-list-container {
display: table;
width: 100%;
height: auto;
margin-top: $toolbar-height;
}
margin-bottom: 100px;
.section {
display: table-row;
padding: 0;
margin: 0;
> * {
display: table-cell;
height: initial;
vertical-align: middle;
float: none;
border-bottom: 1px solid var(--color-border);
padding: 6px;
box-sizing: border-box;
}
&.selected {
background-color: var(--color-background-dark);
}
}
.groups-enable {
margin-top: 0;
label {
margin-right: 3px;
}
}
.app-image {
width: 44px;
height: auto;
text-align: right;
}
.app-image-icon svg,
.app-image-icon .icon-settings-dark {
margin-top: 5px;
width: 20px;
height: 20px;
opacity: .5;
background-size: cover;
display: inline-block;
}
.actions {
text-align: right;
.icon-loading-small {
display: inline-block;
top: 4px;
margin-right: 10px;
}
}
}
&:not(.installed) .app-image-icon svg {
position: absolute;
bottom: 43px;
/* position halfway vertically */
width: 64px;
height: 64px;
opacity: .1;
}
display: flex;
flex-wrap: wrap;
align-content: flex-start;
&.hidden {
display: none;
}
.section {
position: relative;
flex: 0 0 auto;
h2.app-name {
display: block;
margin: 8px 0;
}
&:hover {
background-color: var(--color-background-dark);
}
}
.app-description {
p {
margin: 10px 0;
}
ul {
list-style: disc;
}
ol {
list-style: decimal;
ol, ul {
padding-left: 15px;
}
}
> {
ul, ol {
margin-left: 19px;
}
}
ul {
ol, ul {
padding-left: 15px;
}
}
}
/* Bundle header */
.apps-header {
display: table-row;
position: relative;
div {
display: table-cell;
height: 70px;
}
h2 {
display: table-cell;
position: absolute;
padding-left: 6px;
padding-top: 15px;
.enable {
position: relative;
top: -1px;
margin-left: 12px;
}
+ .section {
margin-top: 50px;
}
}
}
}
#apps-list-search {
.section {
h2 {
margin-bottom: 0;
}
}
}
/* LOG */
#log {
white-space: normal;
margin-bottom: 14px;
}
#lessLog {
display: none;
}
table.grid td.date {
white-space: nowrap;
}
#log-section p {
margin-top: 20px;
}
#security-warning-state-ok,
#security-warning-state-warning,
#security-warning-state-failure,
#security-warning-state-loading {
span {
vertical-align: middle;
&.message {
padding: 12px;
}
&.icon {
width: 32px;
height: 32px;
background-position: center center;
display: inline-block;
border-radius: 50%;
}
&.icon-checkmark-white {
background-color: var(--color-success);
}
&.icon-error-white {
background-color: var(--color-warning);
}
&.icon-close-white {
background-color: var(--color-error);
}
}
}
#shareAPI {
&.loading > div {
display: none;
}
p {
padding-bottom: 0.8em;
}
input#shareapiExpireAfterNDays {
width: 40px;
}
.indent {
padding-left: 28px;
}
.double-indent {
padding-left: 56px;
}
.nocheckbox {
padding-left: 20px;
}
}
#shareApiDefaultPermissionsSection label {
margin-right: 20px;
}
#fileSharingSettings h3 {
display: inline-block;
}
#publicShareDisclaimerText {
width: calc(100% - 23px);
/* 20 px left margin, 3 px right margin */
max-width: 600px;
height: 150px;
margin-left: 20px;
box-sizing: border-box;
}
/* correctly display help icons next to headings */
.icon-info {
padding: 11px 20px;
vertical-align: text-bottom;
opacity: .5;
}
#two-factor-auth h2,
#shareAPI h2,
#mail_general_settings h2 {
display: inline-block;
}
.mail_settings p {
label:first-child {
display: inline-block;
width: 300px;
text-align: right;
}
select:nth-child(2),
input:not([type='button']) {
width: 143px;
}
}
#mail_smtpport {
width: 60px;
}
.cronlog {
margin-left: 10px;
}
.status {
display: inline-block;
height: 16px;
width: 16px;
vertical-align: text-bottom;
&.success {
border-radius: 50%;
}
}
#selectGroups select {
box-sizing: border-box;
display: inline-block;
height: 36px;
padding: 7px 10px;
}
#log .log-message {
word-break: break-all;
min-width: 180px;
}
span {
&.success {
background-color: var(--color-success);
border-radius: var(--border-radius);
}
&.error {
background-color: var(--color-error);
}
&.indeterminate {
background-color: var(--color-warning);
border-radius: 40% 0;
}
}
/* OPERA hack for strengthify*/
doesnotexist:-o-prefocus, .strengthify-wrapper {
left: 185px;
width: 129px;
}
.trusted-domain-warning {
color: #fff;
padding: 5px;
background: #ce3702;
border-radius: 5px;
font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;
}
#postsetupchecks {
ul {
margin-left: 44px;
list-style: disc;
li {
margin: 10px 0;
}
ul {
list-style: circle;
}
}
.loading {
height: 50px;
background-position: left center;
}
.errors, .errors a {
color: var(--color-error);
}
.warnings, .warnings a {
color: var(--color-warning);
}
.hint {
margin: 20px 0;
}
}
#security-warning {
a {
text-decoration: underline;
}
.extra-top-margin {
margin-top: 12px;
}
}
#admin-tips li {
list-style: initial;
a {
display: inline-block;
padding: 3px 0;
}
}
#warning {
color: red;
}
.settings-hint {
margin-top: -12px;
margin-bottom: 12px;
opacity: .7;
}
/* USERS LIST -------------------------------------------------------------- */
#body-settings {
$grid-row-height: 60px;
$grid-col-min-width: 160px;
#app-content.user-list-grid {
display: grid;
grid-column-gap: 20px;
grid-auto-rows: minmax(60px, max-content);
.row {
// TODO replace with css4 subgrid when available
// fallback for ie11 no grid
display: flex;
display: grid;
min-height: $grid-row-height;
grid-row-start: span 1;
grid-gap: 3px;
align-items: center;
/* let's define the column until storage path,
what follows will be manually defined */
grid-template-columns:
44px
minmax($grid-col-min-width + 30px, 1fr) // username, displayname
minmax($grid-col-min-width, 1fr) // password
minmax($grid-col-min-width, 1fr) // email
minmax(1.5*$grid-col-min-width, 1fr) // groups
minmax(1.5*$grid-col-min-width, 1fr) // group admins
repeat(auto-fit, minmax($grid-col-min-width, 1fr));
border-bottom: var(--color-border) 1px solid;
&.disabled {
opacity: .5;
}
/* grid col width */
.name,
.password,
.mailAddress,
.languages,
.storageLocation,
.userBackend,
.lastLogin {
min-width: $grid-col-min-width;
doesnotexist:-o-prefocus, .strengthify-wrapper {
color: var(--color-text-dark);
vertical-align: baseline;
text-overflow: ellipsis;
}
}
&:not(.row--editable) {
&.name,
&.password,
&.displayName,
&.mailAddress,
&.userBackend,
&.languages {
overflow: hidden;
}
}
// Scroll if too much groups
&:not(.row--editable) {
.groups,
.subadmins {
overflow: auto;
max-height: 100%;
}
}
.groups,
.subadmins,
.quota {
min-width: $grid-col-min-width;
.multiselect {
width: 100%;
color: var(--color-text-dark);
vertical-align: baseline;
}
progress {
max-width: 95%;
}
}
.obfuscated {
width: 400px;
opacity: .7;
}
.userActions {
display: flex;
justify-content: flex-end;
position: sticky;
right: 0px;
min-width: 88px;
background-color: var(--color-main-background);
}
&.row--editable .userActions {
z-index: 10;
}
.subtitle {
color: var(--color-text-maxcontrast);
vertical-align: baseline;
}
/* various */
&#grid-header {
position: sticky;
align-self: normal;
background-color: var(--color-main-background);
z-index: 100; /* above multiselect */
top: 0;
&.sticky {
box-shadow: 0 -2px 10px 1px var(--color-box-shadow);
}
}
&#grid-header {
color: var(--color-text-maxcontrast);
border-bottom-width: thin;
#headerDisplayName,
#headerPassword,
#headerAddress,
#headerGroups,
#headerSubAdmins,
#theHeaderUserBackend,
#theHeaderLastLogin,
#headerQuota,
#theHeaderStorageLocation,
#headerLanguages {
/* Line up header text with column content for when theres inputs */
padding-left: 7px;
text-transform: none;
color: var(--color-text-maxcontrast);
vertical-align: baseline;
}
}
&:hover {
input:not([type='submit']):not(:focus):not(:active) {
border-color: var(--color-border) !important;
}
&:not(#grid-header) {
box-shadow: 5px 0 0 var(--color-primary-element) inset;
}
}
> form {
width: 100%;
}
> div,
> .displayName > form,
> form {
grid-row: 1;
display: inline-flex;
color: var(--color-text-lighter);
flex-grow: 1;
> input:not(:focus):not(:active) {
border-color: transparent;
cursor: pointer;
}
> input:focus, > input:active {
+ .icon-confirm {
display: block !important;
}
}
/* inputs like mail, username, password */
&:not(.userActions) > input:not([type='submit']) {
width: 100%;
min-width: 0;
}
&.name {
word-break: break-all;
}
&.displayName,
&.mailAddress {
> input {
text-overflow: ellipsis;
flex-grow: 1;
}
}
&.name,
&.userBackend {
/* better multi-line visual */
line-height: 1.3em;
max-height: 100%;
overflow: hidden;
/* not supported by all browsers
so we keep the overflow hidden
as a fallback */
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}
&.name .subtitle {
color: var(--color-main-text);
}
&.quota {
display: flex;;
justify-content: left;
white-space: nowrap;
position: relative;
progress {
width: 150px;
margin-top: 35px;
height: 3px;
}
}
.icon-confirm {
flex: 0 0 auto;
cursor: pointer;
&:not(:active) {
display: none;
}
}
&.avatar {
height: 32px;
width: 32px;
margin: 6px;
img {
display: block;
}
}
&.userActions {
display: flex;
justify-content: flex-end;
#newsubmit {
width: 100%;
}
.toggleUserActions {
position: relative;
display: flex;
align-items: center;
background-color: var(--color-main-background);
.icon-more {
width: 44px;
height: 44px;
opacity: .5;
cursor: pointer;
&:focus,
&:hover,
&:active {
opacity: .7;
background-color: var(--color-background-dark)
}
}
}
.feedback {
display: flex;
align-items: center;
white-space: nowrap;
transition: opacity 200ms ease-in-out;
.icon-checkmark {
opacity: .5;
margin-right: 5px;
}
}
}
/* Fill the grid cell */
.multiselect.multiselect-vue {
min-width: 100%;
width: 100%;
}
}
}
.infinite-loading-container {
display: flex;
align-items: center;
justify-content: center;
grid-row-start: span 4;
}
.users-list-end {
opacity: .5;
user-select: none;
}
}
}
.animated {
animation: blink-animation 1s steps(5, start) 4;
}
@keyframes blink-animation {
to {
opacity: 0.6;
}
}
@-webkit-keyframes blink-animation {
to {
opacity: 1;
}
}