0
0
Fork 0
mirror of https://github.com/nextcloud/server.git synced 2025-04-26 01:54:17 +00:00

refactor(styles): Adjust code style in SCSS sources to match our stylelint config

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
This commit is contained in:
Ferdinand Thiessen 2024-11-18 12:25:05 +01:00 committed by skjnldsv
parent 212cac9469
commit f6e6ba4851
71 changed files with 582 additions and 458 deletions
apps
core
stylelint.config.js

View file

@ -507,7 +507,6 @@ export default {
.panel, .panels > div { .panel, .panels > div {
// Ensure the maxcontrast color is set for the background // Ensure the maxcontrast color is set for the background
--color-text-maxcontrast: var(--color-text-maxcontrast-background-blur, var(--color-main-text)); --color-text-maxcontrast: var(--color-text-maxcontrast-background-blur, var(--color-main-text));
width: 320px; width: 320px;
max-width: 100%; max-width: 100%;
margin: 16px; margin: 16px;
@ -532,7 +531,8 @@ export default {
padding: 16px; padding: 16px;
cursor: grab; cursor: grab;
&, ::v-deep * { &,
:deep(*) {
-webkit-touch-callout: none; -webkit-touch-callout: none;
-webkit-user-select: none; -webkit-user-select: none;
-khtml-user-select: none; -khtml-user-select: none;
@ -618,11 +618,10 @@ export default {
.button, .button,
.button-vue, .button-vue,
.edit-panels, .edit-panels,
.statuses ::v-deep .action-item .action-item__menutoggle, .statuses :deep(.action-item .action-item__menutoggle),
.statuses ::v-deep .action-item.action-item--open .action-item__menutoggle { .statuses :deep(.action-item.action-item--open .action-item__menutoggle) {
// Ensure the maxcontrast color is set for the background // Ensure the maxcontrast color is set for the background
--color-text-maxcontrast: var(--color-text-maxcontrast-background-blur, var(--color-main-text)); --color-text-maxcontrast: var(--color-text-maxcontrast-background-blur, var(--color-main-text));
background-color: var(--color-main-background-blur); background-color: var(--color-main-background-blur);
-webkit-backdrop-filter: var(--filter-background-blur); -webkit-backdrop-filter: var(--filter-background-blur);
backdrop-filter: var(--filter-background-blur); backdrop-filter: var(--filter-background-blur);

View file

@ -117,6 +117,3 @@ export default {
}, },
} }
</script> </script>
<style lang="scss" scoped>
</style>

View file

@ -261,7 +261,7 @@ export default {
&__picker { &__picker {
flex: 1 auto; flex: 1 auto;
::v-deep .native-datetime-picker--input { :deep(.native-datetime-picker--input) {
margin-bottom: 0; margin-bottom: 0;
} }
} }

View file

@ -139,30 +139,37 @@ export default {
padding: 0 10px 0 10px; padding: 0 10px 0 10px;
position: absolute; position: absolute;
} }
:deep(.availability-slots) { :deep(.availability-slots) {
display: flex; display: flex;
white-space: normal; white-space: normal;
} }
:deep(.availability-slot) { :deep(.availability-slot) {
display: flex; display: flex;
flex-direction: row; flex-direction: row;
align-items: center; align-items: center;
flex-wrap: wrap; flex-wrap: wrap;
} }
:deep(.availability-slot-group) { :deep(.availability-slot-group) {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
} }
:deep(.mx-input-wrapper) { :deep(.mx-input-wrapper) {
width: 85px; width: 85px;
} }
:deep(.mx-datepicker) { :deep(.mx-datepicker) {
width: 97px; width: 97px;
} }
:deep(.multiselect) { :deep(.multiselect) {
border: 1px solid var(--color-border-dark); border: 1px solid var(--color-border-dark);
width: 120px; width: 120px;
} }
.time-zone { .time-zone {
padding-block: 32px 12px; padding-block: 32px 12px;
padding-inline: 0 12px; padding-inline: 0 12px;
@ -175,6 +182,7 @@ export default {
font-weight: bold; font-weight: bold;
} }
} }
.grid-table { .grid-table {
display: grid; display: grid;
margin-bottom: 32px; margin-bottom: 32px;
@ -183,9 +191,11 @@ export default {
grid-template-columns: min-content auto min-content; grid-template-columns: min-content auto min-content;
max-width: 500px; max-width: 500px;
} }
.button { .button {
align-self: flex-end; align-self: flex-end;
} }
:deep(.label-weekday) { :deep(.label-weekday) {
position: relative; position: relative;
display: inline-flex; display: inline-flex;

View file

@ -156,6 +156,7 @@ export default {
* :deep(a) { * :deep(a) {
text-decoration: underline; text-decoration: underline;
} }
.settings-hint { .settings-hint {
margin-top: -.2em; margin-top: -.2em;
margin-bottom: 1em; margin-bottom: 1em;

View file

@ -350,7 +350,6 @@ export default defineComponent({
--icon-preview-size: 32px; --icon-preview-size: 32px;
--fixed-block-start-position: var(--default-clickable-area); --fixed-block-start-position: var(--default-clickable-area);
overflow: auto; overflow: auto;
height: 100%; height: 100%;
will-change: scroll-position; will-change: scroll-position;
@ -453,7 +452,6 @@ export default defineComponent({
display: flex; display: flex;
align-items: center; align-items: center;
width: 100%; width: 100%;
user-select: none;
border-block-end: 1px solid var(--color-border); border-block-end: 1px solid var(--color-border);
box-sizing: border-box; box-sizing: border-box;
user-select: none; user-select: none;
@ -764,7 +762,6 @@ tbody.files-list__tbody.files-list__tbody--grid {
--row-width: calc(var(--icon-preview-size) + var(--item-padding) * 2); --row-width: calc(var(--icon-preview-size) + var(--item-padding) * 2);
--row-height: calc(var(--icon-preview-size) + var(--name-height) + var(--mtime-height) + var(--item-padding) * 2); --row-height: calc(var(--icon-preview-size) + var(--name-height) + var(--mtime-height) + var(--item-padding) * 2);
--checkbox-padding: 0px; --checkbox-padding: 0px;
display: grid; display: grid;
grid-template-columns: repeat(auto-fill, var(--row-width)); grid-template-columns: repeat(auto-fill, var(--row-width));
@ -787,8 +784,8 @@ tbody.files-list__tbody.files-list__tbody--grid {
.files-list__row-checkbox { .files-list__row-checkbox {
position: absolute; position: absolute;
z-index: 9; z-index: 9;
top: calc(var(--item-padding)/2); top: calc(var(--item-padding) / 2);
inset-inline-start: calc(var(--item-padding)/2); inset-inline-start: calc(var(--item-padding) / 2);
overflow: hidden; overflow: hidden;
--checkbox-container-size: 44px; --checkbox-container-size: 44px;
width: var(--checkbox-container-size); width: var(--checkbox-container-size);

View file

@ -38,5 +38,3 @@ export default {
}, },
} }
</script> </script>
<style>
</style>

View file

@ -198,7 +198,7 @@ export default {
&__title { &__title {
overflow: hidden; overflow: hidden;
// also count preview border // also count preview border
max-width: calc(var(--width) + 2*2px); max-width: calc(var(--width) + 2 * 2px);
padding: var(--margin); padding: var(--margin);
white-space: nowrap; white-space: nowrap;
text-overflow: ellipsis; text-overflow: ellipsis;

View file

@ -206,10 +206,12 @@ export default {
.middle-align { .middle-align {
vertical-align: middle; vertical-align: middle;
} }
p { p {
margin-top: 12px; margin-top: 12px;
margin-bottom: 12px; margin-bottom: 12px;
} }
.new-owner-row { .new-owner-row {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
@ -229,6 +231,7 @@ p {
max-width: 280px; max-width: 280px;
} }
} }
.transfer-select-row { .transfer-select-row {
span { span {
margin-inline-end: 8px; margin-inline-end: 8px;

View file

@ -201,19 +201,15 @@ export default defineComponent({
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
// TODO: remove when https://github.com/nextcloud/nextcloud-vue/pull/3539 is in .app-navigation {
.app-navigation::v-deep .app-navigation-entry-icon { :deep(.app-navigation-entry.active .button-vue.icon-collapse:not(:hover)) {
background-repeat: no-repeat; color: var(--color-primary-element-text);
background-position: center; }
}
.app-navigation::v-deep .app-navigation-entry.active .button-vue.icon-collapse:not(:hover) { > ul.app-navigation__list {
color: var(--color-primary-element-text); // Use flex gap value for more elegant spacing
} padding-bottom: var(--default-grid-baseline, 4px);
}
.app-navigation > ul.app-navigation__list {
// Use flex gap value for more elegant spacing
padding-bottom: var(--default-grid-baseline, 4px);
} }
.app-navigation-entry__settings { .app-navigation-entry__settings {

View file

@ -612,7 +612,7 @@ export default {
} }
.svg-icon { .svg-icon {
::v-deep svg { :deep(svg) {
width: 20px; width: 20px;
height: 20px; height: 20px;
fill: currentColor; fill: currentColor;

View file

@ -313,7 +313,7 @@ export default defineComponent({
padding: calc(var(--margin) * 2) var(--margin); padding: calc(var(--margin) * 2) var(--margin);
position: sticky; position: sticky;
bottom: 0; bottom: 0;
background-image: linear-gradient(0, var(--gradient-main-background)); background-image: linear-gradient(0deg, var(--gradient-main-background));
button, input[type='submit'] { button, input[type='submit'] {
height: 44px; height: 44px;
@ -321,7 +321,7 @@ export default defineComponent({
} }
// Make sure we're relative for the loading emptycontent on top // Make sure we're relative for the loading emptycontent on top
::v-deep .modal-container { :deep(.modal-container) {
position: relative; position: relative;
} }

View file

@ -12,70 +12,82 @@
tr.externalStorageLoading > td { tr.externalStorageLoading > td {
text-align: center; text-align: center;
} }
}
#externalStorage td { td {
& > input:not(.applicableToAllUsers), & > select { height: 50px;
width: 100%;
}
}
#externalStorage .popovermenu li > .menuitem { &.mountOptionsToggle,
width: fit-content !important; &.remove,
} &.save {
position: relative;
#externalStorage td.status { padding: 0 !important;
/* overwrite conflicting core styles */
display: table-cell;
vertical-align: middle;
/* ensure width does not change even if internal span is not displayed */
width: 43px;
}
#externalStorage td.status > span {
display: inline-block;
height: 28px;
width: 28px;
vertical-align: text-bottom;
border-radius: 50%;
cursor: pointer;
}
#externalStorage {
td.mountPoint, td.backend, td.authentication, td.configuration {
min-width: 160px;
width: 15%;
}
}
#externalStorage td>img { padding-top:7px; opacity: 0.5; }
#externalStorage td>img:hover { padding-top:7px; cursor:pointer; opacity: 1; }
#addMountPoint>td { border:none; }
#addMountPoint>td.applicable { visibility:hidden; }
#addMountPoint>td.hidden { visibility:hidden; }
#externalStorage td {
height: 50px;
&.mountOptionsToggle,
&.remove,
&.save {
position: relative;
padding: 0 !important;
width: 44px;
[class^='icon-'],
[class*=' icon-'] {
width: 44px; width: 44px;
height: 44px; [class^='icon-'],
margin: 3px; [class*=' icon-'] {
width: 44px;
height: 44px;
margin: 3px;
opacity: 0.5;
padding: 14px;
vertical-align: text-bottom;
cursor: pointer;
&:hover {
opacity: 1;
}
}
}
&.mountPoint,
&.backend,
&.authentication,
&.configuration {
min-width: 160px;
width: 15%;
}
&.status {
/* overwrite conflicting core styles */
display: table-cell;
vertical-align: middle;
/* ensure width does not change even if internal span is not displayed */
width: 43px;
> span {
display: inline-block;
height: 28px;
width: 28px;
vertical-align: text-bottom;
border-radius: 50%;
cursor: pointer;
}
}
> input:not(.applicableToAllUsers), & > select {
width: 100%;
}
> img {
padding-top: 7px;
opacity: 0.5; opacity: 0.5;
padding: 14px;
vertical-align: text-bottom;
cursor: pointer;
&:hover { &:hover {
cursor:pointer;
opacity: 1; opacity: 1;
} }
} }
} }
.popovermenu li > .menuitem {
width: fit-content !important;
}
} }
#addMountPoint>td { border:none; }
#addMountPoint>td.applicable { visibility:hidden; }
#addMountPoint>td.hidden { visibility:hidden; }
#selectBackend { #selectBackend {
margin-inline-start: -10px; margin-inline-start: -10px;
width: 150px; width: 150px;
@ -85,6 +97,7 @@
#externalStorage td.backend { #externalStorage td.backend {
white-space: normal; white-space: normal;
} }
#externalStorage td.configuration > * { #externalStorage td.configuration > * {
white-space: nowrap; white-space: nowrap;
} }
@ -129,18 +142,22 @@
height: 32px; height: 32px;
padding: 3px; padding: 3px;
} }
.files-external-select2 .select2-results .select2-result-label > span { .files-external-select2 .select2-results .select2-result-label > span {
display: block; display: block;
position: relative; position: relative;
} }
.files-external-select2 .select2-results .select2-result-label .avatardiv { .files-external-select2 .select2-results .select2-result-label .avatardiv {
display:inline-block; display:inline-block;
} }
.files-external-select2 .select2-results .select2-result-label .avatardiv + span { .files-external-select2 .select2-results .select2-result-label .avatardiv + span {
position: absolute; position: absolute;
top: 5px; top: 5px;
margin-inline-start: 10px; margin-inline-start: 10px;
} }
.files-external-select2 .select2-results .select2-result-label .avatardiv[data-type="group"] + span { .files-external-select2 .select2-results .select2-result-label .avatardiv[data-type="group"] + span {
vertical-align: top; vertical-align: top;
top: 6px; top: 6px;

View file

@ -9,9 +9,11 @@
.icon-room { .icon-room {
background-image: var(--icon-talk-dark); background-image: var(--icon-talk-dark);
} }
.icon-circle { .icon-circle {
background-image: var(--icon-circles-dark); background-image: var(--icon-circles-dark);
} }
.icon-guests { .icon-guests {
background-image: var(--icon-user-dark); background-image: var(--icon-user-dark);
} }

View file

@ -63,10 +63,6 @@ $download-button-section-height: 200px;
margin-top: 400px; margin-top: 400px;
} }
#imgframe .plyr {
top: 0px !important;
}
#imgframe .text-preview { #imgframe .text-preview {
display: inline-block; display: inline-block;
position: relative; position: relative;
@ -88,10 +84,10 @@ $download-button-section-height: 200px;
} }
#imgframe .plyr { #imgframe .plyr {
top: 0px !important;
max-height: 100%; max-height: 100%;
} }
.app-files_sharing #app-content footer { .app-files_sharing #app-content footer {
position: sticky !important; position: sticky !important;
} }
@ -131,12 +127,14 @@ thead {
#details { #details {
display: inline-flex; display: inline-flex;
} }
#details button, #details button,
#details input, #details input,
#details .button { #details .button {
margin: 0 5px; margin: 0 5px;
line-height: normal; line-height: normal;
} }
#details button:hover, #details button:hover,
#details input:hover, #details input:hover,
#details .button:hover { #details .button:hover {

View file

@ -2,5 +2,5 @@
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later * SPDX-License-Identifier: AGPL-3.0-or-later
*/ */
@use 'public.scss'; @use 'public';
@use 'mobile.scss'; @use 'mobile';

View file

@ -917,7 +917,7 @@ export default {
} }
} }
::v-deep .avatar-link-share { :deep(.avatar-link-share) {
background-color: var(--color-primary-element); background-color: var(--color-primary-element);
} }

View file

@ -350,7 +350,7 @@ export default {
case this.SHARE_TYPES.SHARE_TYPE_USER: case this.SHARE_TYPES.SHARE_TYPE_USER:
return t('files_sharing', 'Share with {userName}', { userName: this.share.shareWithDisplayName }) return t('files_sharing', 'Share with {userName}', { userName: this.share.shareWithDisplayName })
case this.SHARE_TYPES.SHARE_TYPE_EMAIL: case this.SHARE_TYPES.SHARE_TYPE_EMAIL:
return t('files_sharing', 'Share with email {email}', { email: this.share.shareWith }) return t('files_sharing', 'Share with email {email}', { email: this.share.shareWith })
case this.SHARE_TYPES.SHARE_TYPE_LINK: case this.SHARE_TYPES.SHARE_TYPE_LINK:
return t('files_sharing', 'Share link') return t('files_sharing', 'Share link')
case this.SHARE_TYPES.SHARE_TYPE_GROUP: case this.SHARE_TYPES.SHARE_TYPE_GROUP:
@ -366,12 +366,12 @@ export default {
case this.SHARE_TYPES.SHARE_TYPE_GUEST: case this.SHARE_TYPES.SHARE_TYPE_GUEST:
return t('files_sharing', 'Share with guest') return t('files_sharing', 'Share with guest')
default: { default: {
if (this.share.id) { if (this.share.id) {
// Share already exists // Share already exists
return t('files_sharing', 'Update share') return t('files_sharing', 'Update share')
} else { } else {
return t('files_sharing', 'Create share') return t('files_sharing', 'Create share')
} }
} }
} }
}, },
@ -1104,12 +1104,9 @@ export default {
padding: 0.1em; padding: 0.1em;
} }
::v-deep label { :deep(label span) {
display: flex;
span { flex-direction: column;
display: flex;
flex-direction: column;
}
} }
/* Target component based style in NcCheckboxRadioSwitch slot content*/ /* Target component based style in NcCheckboxRadioSwitch slot content*/
@ -1154,20 +1151,18 @@ export default {
} }
/* /*
The following style is applied out of the component's scope The following style is applied out of the component's scope
to remove padding from the label.checkbox-radio-switch__label, to remove padding from the label.checkbox-radio-switch__label,
which is used to group radio checkbox items. The use of ::v-deep which is used to group radio checkbox items. The use of ::v-deep
ensures that the padding is modified without being affected by ensures that the padding is modified without being affected by
the component's scoping. the component's scoping.
Without this achieving left alignment for the checkboxes would not Without this achieving left alignment for the checkboxes would not
be possible. be possible.
*/ */
span { span :deep(label) {
::v-deep label { padding-inline-start: 0 !important;
padding-inline-start: 0 !important; background-color: initial !important;
background-color: initial !important; border: none !important;
border: none !important;
}
} }
section.custom-permissions-group { section.custom-permissions-group {
@ -1177,7 +1172,7 @@ export default {
} }
&__delete { &__delete {
>button:first-child { > button:first-child {
color: rgb(223, 7, 7); color: rgb(223, 7, 7);
} }
} }

View file

@ -148,10 +148,12 @@ export default {
min-height: 34px !important; min-height: 34px !important;
display: inline-flex !important; display: inline-flex !important;
} }
.oauth2-form { .oauth2-form {
display: flex; display: flex;
flex-direction: row; flex-direction: row;
} }
.oauth2-form--input { .oauth2-form--input {
max-width: 200px; max-width: 200px;
margin-inline-end: 10px; margin-inline-end: 10px;

View file

@ -90,13 +90,16 @@ export default {
display: flex; display: flex;
align-items: center; align-items: center;
} }
.action-secret code { .action-secret code {
padding-top: 5px; padding-top: 5px;
} }
td code { td code {
display: inline-block; display: inline-block;
vertical-align: middle; vertical-align: middle;
} }
table.inline td { table.inline td {
border: none; border: none;
padding: 5px; padding: 5px;

View file

@ -427,6 +427,7 @@ export default {
border-color: var(--color-error); border-color: var(--color-error);
background: var(--color-main-background); background: var(--color-main-background);
} }
.force:hover, .force:hover,
.force:active { .force:active {
color: var(--color-main-background); color: var(--color-main-background);

View file

@ -185,6 +185,7 @@ export default {
background-color: var(--color-error); background-color: var(--color-error);
width: initial; width: initial;
} }
.warning { .warning {
margin-top: 8px; margin-top: 8px;
padding: 5px; padding: 5px;
@ -193,6 +194,7 @@ export default {
background-color: var(--color-warning); background-color: var(--color-warning);
width: initial; width: initial;
} }
.ajaxSwitch { .ajaxSwitch {
margin-top: 1rem; margin-top: 1rem;
} }

View file

@ -80,6 +80,3 @@ export default {
}, },
} }
</script> </script>
<style lang="scss" scoped>
</style>

View file

@ -100,7 +100,7 @@ export default {
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.settings-markdown::v-deep { .settings-markdown :deep {
a { a {
text-decoration: underline; text-decoration: underline;
&::after { &::after {

View file

@ -257,6 +257,7 @@ section {
grid-row: 1/3; grid-row: 1/3;
padding: 10px 10px; padding: 10px 10px;
} }
.avatar { .avatar {
&__container { &__container {
margin: calc(var(--default-grid-baseline) * 2) auto 0 auto; margin: calc(var(--default-grid-baseline) * 2) auto 0 auto;
@ -296,7 +297,7 @@ section {
justify-content: space-between; justify-content: space-between;
} }
&::v-deep .cropper-view-box { :deep(.cropper-view-box) {
border-radius: 50%; border-radius: 50%;
} }
} }

View file

@ -118,7 +118,7 @@ export default {
section { section {
padding: 10px 10px; padding: 10px 10px;
&::v-deep button:disabled { :deep(button:disabled) {
cursor: default; cursor: default;
} }

View file

@ -104,7 +104,7 @@ export default {
box-shadow: 0 0 3px var(--color-box-shadow); box-shadow: 0 0 3px var(--color-box-shadow);
& *, & *,
&::v-deep * { &:deep(*) {
cursor: default; cursor: default;
} }
} }

View file

@ -82,7 +82,7 @@ export default {
section { section {
padding: 10px 10px; padding: 10px 10px;
&::v-deep button:disabled { &:deep(button:disabled) {
cursor: default; cursor: default;
} }
} }

View file

@ -118,7 +118,7 @@ section {
pointer-events: none; pointer-events: none;
& *, & *,
&::v-deep * { &:deep(*) {
cursor: default; cursor: default;
pointer-events: none; pointer-events: none;
} }

View file

@ -142,7 +142,7 @@ export default {
pointer-events: none; pointer-events: none;
& *, & *,
&::v-deep * { &:deep(*) {
cursor: default; cursor: default;
pointer-events: none; pointer-events: none;
} }

View file

@ -398,7 +398,7 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import './Users/shared/styles.scss'; @use './Users/shared/styles' as *;
.empty { .empty {
:deep { :deep {

View file

@ -84,11 +84,11 @@ export default Vue.extend({
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import './shared/styles.scss'; @use './shared/styles';
.footer { .footer {
@include row; @include styles.row;
@include cell; @include styles.cell;
&__cell { &__cell {
position: sticky; position: sticky;

View file

@ -140,12 +140,12 @@ export default Vue.extend({
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import './shared/styles.scss'; @use './shared/styles';
.header { .header {
border-bottom: 1px solid var(--color-border); border-bottom: 1px solid var(--color-border);
@include row; @include styles.row;
@include cell; @include styles.cell;
} }
</style> </style>

View file

@ -907,10 +907,10 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import './shared/styles.scss'; @use './shared/styles';
.user-list__row { .user-list__row {
@include row; @include styles.row;
&:hover { &:hover {
background-color: var(--color-background-hover); background-color: var(--color-background-hover);
@ -927,7 +927,7 @@ export default {
} }
.row { .row {
@include cell; @include styles.cell;
&__cell { &__cell {
border-bottom: 1px solid var(--color-border); border-bottom: 1px solid var(--color-border);

View file

@ -301,7 +301,7 @@ export default {
} }
// Proper highlight for links and focus feedback // Proper highlight for links and focus feedback
&::v-deep a { :deep(a) {
font-weight: bold; font-weight: bold;
&:hover, &:hover,
@ -312,7 +312,6 @@ export default {
&__preview-list { &__preview-list {
--gap: 30px; --gap: 30px;
display: grid; display: grid;
margin-top: var(--gap); margin-top: var(--gap);
column-gap: var(--gap); column-gap: var(--gap);

View file

@ -339,7 +339,6 @@ export default {
background-size: cover; background-size: cover;
&__filepicker { &__filepicker {
background-color: var(--color-main-text);
background-color: var(--color-background-dark); background-color: var(--color-background-dark);
&.background--active { &.background--active {

View file

@ -117,7 +117,6 @@ export default {
.theming__preview { .theming__preview {
// We make previews on 16/10 screens // We make previews on 16/10 screens
--ratio: 16; --ratio: 16;
position: relative; position: relative;
display: flex; display: flex;
justify-content: flex-start; justify-content: flex-start;

View file

@ -115,6 +115,7 @@ export default defineComponent({
h3, h4 { h3, h4 {
font-weight: bold; font-weight: bold;
} }
h4, h5 { h4, h5 {
margin-block-start: 12px; margin-block-start: 12px;
} }

View file

@ -75,7 +75,7 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import './shared/field.scss'; @use './shared/field' as *;
.field { .field {
&__description { &__description {

View file

@ -136,7 +136,8 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import './shared/field.scss'; @use './shared/field' as *;
.description { .description {
color: var(--color-text-maxcontrast); color: var(--color-text-maxcontrast);
} }

View file

@ -209,7 +209,7 @@ export default {
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import './shared/field.scss'; @use './shared/field' as *;
.field { .field {
&__loading-icon { &__loading-icon {

View file

@ -94,6 +94,7 @@ export default {
} }
} }
} }
.backup-status { .backup-status {
&__reset-button { &__reset-button {
justify-content: flex-end; justify-content: flex-end;

View file

@ -570,6 +570,7 @@ export default {
align-items: center; align-items: center;
justify-content: center; justify-content: center;
} }
.weather-image { .weather-image {
width: calc(var(--default-clickable-area) - 2 * var(--default-grid-baseline)); width: calc(var(--default-clickable-area) - 2 * var(--default-grid-baseline));
} }

View file

@ -190,9 +190,11 @@ export default {
margin-bottom: 5px; margin-bottom: 5px;
} }
} }
input[type=text] { input[type=text] {
margin: 0; margin: 0;
} }
.invalid { .invalid {
border-color: var(--color-error) !important; border-color: var(--color-error) !important;
} }

View file

@ -49,7 +49,3 @@ export default {
}, },
} }
</script> </script>
<style scoped>
</style>

View file

@ -109,7 +109,7 @@ export default {
margin-bottom: 5px; margin-bottom: 5px;
} }
.multiselect::v-deep .multiselect__tags:not(:hover):not(:focus):not(:active) { .multiselect:deep(.multiselect__tags:not(:hover):not(:focus):not(:active)) {
border: 1px solid transparent; border: 1px solid transparent;
} }

View file

@ -117,6 +117,7 @@ export default {
input[type='text'] { input[type='text'] {
width: 100%; width: 100%;
} }
input[type='text'] { input[type='text'] {
min-height: 48px; min-height: 48px;
} }

View file

@ -109,6 +109,7 @@ export default {
input[type='text'] { input[type='text'] {
width: 100%; width: 100%;
} }
input[type='text'] { input[type='text'] {
min-height: 48px; min-height: 48px;
} }

View file

@ -94,6 +94,7 @@ export default {
max-width: 550px; max-width: 550px;
} }
} }
.isComplex { .isComplex {
img { img {
vertical-align: text-top; vertical-align: text-top;

View file

@ -40,5 +40,5 @@ export default {
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
@import "./../styles/operation"; @use "./../styles/operation" as *;
</style> </style>

View file

@ -233,6 +233,7 @@ export default {
margin-inline-end: 20px; margin-inline-end: 20px;
} }
} }
.trigger p, .action p { .trigger p, .action p {
min-height: 34px; min-height: 34px;
display: flex; display: flex;
@ -249,9 +250,11 @@ export default {
max-width: 300px; max-width: 300px;
} }
} }
.trigger p:first-child span { .trigger p:first-child span {
padding-top: 3px; padding-top: 3px;
} }
.trigger p:last-child { .trigger p:last-child {
padding-top: 8px; padding-top: 8px;
} }

View file

@ -140,9 +140,12 @@ export default {
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
@use "./../styles/operation";
#workflowengine { #workflowengine {
border-bottom: 1px solid var(--color-border); border-bottom: 1px solid var(--color-border);
} }
.section { .section {
max-width: 100vw; max-width: 100vw;
@ -151,6 +154,7 @@ export default {
margin-bottom: 0; margin-bottom: 0;
} }
} }
.actions { .actions {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
@ -160,6 +164,7 @@ export default {
flex-basis: 250px; flex-basis: 250px;
} }
} }
.actions__more { .actions__more {
margin-bottom: 10px; margin-bottom: 10px;
} }
@ -198,8 +203,6 @@ export default {
padding-bottom: 0; padding-bottom: 0;
} }
@import "./../styles/operation";
.actions__item.more { .actions__item.more {
background-color: var(--color-background-dark); background-color: var(--color-background-dark);
} }

View file

@ -12,6 +12,7 @@
margin-inline: -1px 20px; margin-inline: -1px 20px;
margin-bottom: 20px; margin-bottom: 20px;
} }
.actions__item .icon { .actions__item .icon {
display: block; display: block;
width: 100%; width: 100%;
@ -22,6 +23,7 @@
margin-bottom: 10px; margin-bottom: 10px;
background-repeat: no-repeat; background-repeat: no-repeat;
} }
.actions__item__description { .actions__item__description {
text-align: center; text-align: center;
flex-grow: 1; flex-grow: 1;
@ -29,20 +31,24 @@
flex-direction: column; flex-direction: column;
align-items: center; align-items: center;
} }
.actions__item_options { .actions__item_options {
width: 100%; width: 100%;
margin-top: 10px; margin-top: 10px;
padding-inline-start: 60px; padding-inline-start: 60px;
} }
h3, small { h3, small {
padding: 6px; padding: 6px;
display: block; display: block;
} }
h3 { h3 {
margin: 0; margin: 0;
padding: 0; padding: 0;
font-weight: 600; font-weight: 600;
} }
small { small {
font-size: 10pt; font-size: 10pt;
flex-grow: 1; flex-grow: 1;

View file

@ -114,7 +114,6 @@ kbd {
#app-navigation:not(.vue) { #app-navigation:not(.vue) {
// Ensure the maxcontrast color is set for the background // Ensure the maxcontrast color is set for the background
--color-text-maxcontrast: var(--color-text-maxcontrast-background-blur, var(--color-main-text)); --color-text-maxcontrast: var(--color-text-maxcontrast-background-blur, var(--color-main-text));
width: variables.$navigation-width; width: variables.$navigation-width;
z-index: 500; z-index: 500;
overflow-y: auto; overflow-y: auto;
@ -454,7 +453,6 @@ kbd {
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: center; background-position: center;
border: none; border: none;
border-radius: 0;
outline: none !important; outline: none !important;
box-shadow: none; box-shadow: none;
content: ' '; content: ' ';
@ -677,6 +675,7 @@ body[dir='ltr'] {
} }
} }
} }
body[dir='rtl'] { body[dir='rtl'] {
.app-navigation-personal, .app-navigation-personal,
.app-navigation-administration { .app-navigation-administration {
@ -912,6 +911,7 @@ body[dir='ltr'] #app-settings-header .settings-button {
background-position: left 12px center; background-position: left 12px center;
} }
} }
body[dir='rtl'] #app-settings-header .settings-button { body[dir='rtl'] #app-settings-header .settings-button {
&::before { &::before {
background-position: right 14px center; background-position: right 14px center;
@ -937,6 +937,7 @@ body[dir='rtl'] #app-settings-header .settings-button {
} }
} }
} }
.sub-section { .sub-section {
position: relative; position: relative;
margin-top: 10px; margin-top: 10px;
@ -1016,6 +1017,7 @@ body[dir='rtl'] #app-settings-header .settings-button {
} }
} }
} }
.tabsContainer { .tabsContainer {
.tab { .tab {
padding: 0 15px 15px; padding: 0 15px 15px;
@ -1026,6 +1028,7 @@ body[dir='rtl'] #app-settings-header .settings-button {
body[dir='ltr'] .tabsContainer { body[dir='ltr'] .tabsContainer {
clear: left; clear: left;
} }
body[dir='rtl'] .tabsContainer { body[dir='rtl'] .tabsContainer {
clear: right; clear: right;
} }
@ -1486,6 +1489,7 @@ $outter-margin: math.div($popoveritem-height - $popovericon-size, 2);
display: flex; display: flex;
} }
} }
.button.primary.skip-navigation:focus-visible { .button.primary.skip-navigation:focus-visible {
box-shadow: 0 0 0 4px var(--color-main-background) !important; box-shadow: 0 0 0 4px var(--color-main-background) !important;
outline: 2px solid var(--color-main-text) !important; outline: 2px solid var(--color-main-text) !important;

View file

@ -3,24 +3,36 @@
* SPDX-FileCopyrightText: 2016 ownCloud, Inc. * SPDX-FileCopyrightText: 2016 ownCloud, Inc.
* SPDX-License-Identifier: AGPL-3.0-or-later * SPDX-License-Identifier: AGPL-3.0-or-later
*/ */
@use 'animations.scss'; @use 'animations';
/* Default and reset */ /* Default and reset */
html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, code, del, dfn, em, img, q, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, dialog, figure, footer, header, hgroup, nav, section { margin:0; padding:0; border:0; outline:0; font-weight:inherit; font-size:100%; font-family:inherit; vertical-align:baseline; cursor:default; } html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, code, del, dfn, em, img, q, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, dialog, figure, footer, header, hgroup, nav, section { margin:0; padding:0; border:0; outline:0; font-weight:inherit; font-size:100%; font-family:inherit; vertical-align:baseline; cursor:default; }
html { height:100%; } html { height:100%; }
article, aside, dialog, figure, footer, header, hgroup, nav, section { display:block; } article, aside, dialog, figure, footer, header, hgroup, nav, section { display:block; }
body { line-height:1.5; }
table { border-collapse:separate; border-spacing:0; white-space:nowrap; } table { border-collapse:separate; border-spacing:0; white-space:nowrap; }
caption, th, td { text-align:left; font-weight:normal; }
caption, th, td { text-align:start; font-weight:normal; }
table, td, th { vertical-align:middle; } table, td, th { vertical-align:middle; }
a { border:0; color: var(--color-main-text); text-decoration:none;} a { border:0; color: var(--color-main-text); text-decoration:none;}
a, a *, input, input *, select, .button span, label { cursor:pointer; } a, a *, input, input *, select, .button span, label { cursor:pointer; }
ul { list-style:none; } ul { list-style:none; }
body { body {
font-weight: normal; /* Guest content uses flexbox */
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
/* bring the default font size up to 14px */ /* bring the default font size up to 14px */
font-size: .875em; font-size: .875em;
font-weight: normal;
line-height: 1.6em; line-height: 1.6em;
font-family: system-ui, -apple-system, "Segoe UI", Roboto, Oxygen-Sans, Cantarell, Ubuntu, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-family: system-ui, -apple-system, "Segoe UI", Roboto, Oxygen-Sans, Cantarell, Ubuntu, "Helvetica Neue", "Noto Sans", "Liberation Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
color: var(--color-background-plain-text, #ffffff); color: var(--color-background-plain-text, #ffffff);
@ -73,19 +85,13 @@ h2 {
margin-bottom: 12px; margin-bottom: 12px;
line-height: 140%; line-height: 140%;
} }
h3 { h3 {
font-size: 15px; font-size: 15px;
margin: 12px 0; margin: 12px 0;
} }
/* Global content */ /* Global content */
body {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
#header { #header {
.logo { .logo {
background-image: var(--image-logo, url('../../core/img/logo/logo.svg')); background-image: var(--image-logo, url('../../core/img/logo/logo.svg'));
@ -112,6 +118,7 @@ form {
margin: auto; margin: auto;
padding: 0; padding: 0;
} }
form.install-form { form.install-form {
max-width: 300px; max-width: 300px;
} }
@ -120,6 +127,7 @@ form.install-form fieldset,
form.install-form fieldset input { form.install-form fieldset input {
width: 100%; width: 100%;
} }
form.install-form .strengthify-wrapper { form.install-form .strengthify-wrapper {
bottom: 17px; bottom: 17px;
width: calc(100% - 8px); width: calc(100% - 8px);
@ -135,24 +143,30 @@ form #sqliteInformation {
margin-top: 0.5rem; margin-top: 0.5rem;
margin-bottom: 20px; margin-bottom: 20px;
} }
form #adminaccount, form #use_other_db { form #adminaccount, form #use_other_db {
margin-bottom: 15px; margin-bottom: 15px;
text-align: start; text-align: start;
} }
form #adminaccount > legend, form #adminaccount > legend,
form #adminlogin { form #adminlogin {
margin-bottom: 1rem; margin-bottom: 1rem;
} }
form #advancedHeader { form #advancedHeader {
width: 100%; width: 100%;
} }
form fieldset legend, #datadirContent label { form fieldset legend, #datadirContent label {
width: 100%; width: 100%;
} }
#datadirContent label { #datadirContent label {
display: block; display: block;
margin: 0; margin: 0;
} }
form #datadirField legend { form #datadirField legend {
margin-bottom: 15px; margin-bottom: 15px;
} }
@ -161,19 +175,12 @@ form #datadirField legend {
#showAdvanced { #showAdvanced {
padding: 13px; /* increase clickable area of Advanced dropdown */ padding: 13px; /* increase clickable area of Advanced dropdown */
} }
#showAdvanced img { #showAdvanced img {
vertical-align: middle; /* adjust position of Advanced dropdown arrow */ vertical-align: middle; /* adjust position of Advanced dropdown arrow */
} }
/* Buttons and input */ /* Buttons and input */
#submit-wrapper {
display: flex;
align-items: center;
justify-content: center;
padding: 10px 5px;
position: relative; /* Make the wrapper the containing block of its
absolutely positioned descendant icons */
}
@media only screen and (max-width: 1024px) { @media only screen and (max-width: 1024px) {
.wrapper { .wrapper {
@ -181,10 +188,14 @@ form #datadirField legend {
} }
} }
#submit-wrapper { #submit-wrapper {
margin: 0 auto; margin: 0 auto;
display: flex;
align-items: center;
justify-content: center;
padding: 10px 5px;
position: relative; /* Make the wrapper the containing block of its
absolutely positioned descendant icons */
.submit-icon { .submit-icon {
position: absolute; position: absolute;
@ -245,6 +256,7 @@ select {
input[type='submit']:focus { input[type='submit']:focus {
box-shadow: 0 0 0 2px inset var(--color-main-text) !important; box-shadow: 0 0 0 2px inset var(--color-main-text) !important;
} }
input[type='text'], input[type='text'],
input[type='tel'], input[type='tel'],
input[type='password'], input[type='password'],
@ -257,15 +269,18 @@ input[type='email'] {
font-weight: normal; font-weight: normal;
margin-inline: 0; margin-inline: 0;
} }
input[type='password'].password-with-toggle, input[type='text'].password-with-toggle { input[type='password'].password-with-toggle, input[type='text'].password-with-toggle {
width: 238px; width: 238px;
padding-inline-end: 40px !important; padding-inline-end: 40px !important;
} }
input.login { input.login {
width: 260px; width: 260px;
height: 50px; height: 50px;
background-position: right 16px center; background-position: right 16px center;
} }
input[type='submit'], input[type='submit'],
input[type='submit'].icon-confirm, input[type='submit'].icon-confirm,
input.updateButton, input.updateButton,
@ -307,13 +322,16 @@ input[type='checkbox'].checkbox {
height: 1px; height: 1px;
overflow: hidden; overflow: hidden;
} }
input[type='checkbox'].checkbox + label { input[type='checkbox'].checkbox + label {
user-select: none; user-select: none;
} }
input[type='checkbox'].checkbox:disabled + label, input[type='checkbox'].checkbox:disabled + label,
input[type='checkbox'].checkbox:disabled + label:before { input[type='checkbox'].checkbox:disabled + label:before {
cursor: default; cursor: default;
} }
input[type='checkbox'].checkbox + label:before { input[type='checkbox'].checkbox + label:before {
content: ''; content: '';
display: inline-block; display: inline-block;
@ -326,25 +344,26 @@ input[type='checkbox'].checkbox + label:before {
width: 10px; width: 10px;
background-position: center; background-position: center;
} }
input[type='checkbox'].checkbox--white + label:before { input[type='checkbox'].checkbox--white + label:before {
border-color: #ddd; border-color: #ddd;
} }
input[type='checkbox'].checkbox--white:not(:disabled):not(:checked) + label:hover:before, input[type='checkbox'].checkbox--white:not(:disabled):not(:checked) + label:hover:before,
input[type='checkbox'].checkbox--white:focus + label:before { input[type='checkbox'].checkbox--white:focus + label:before {
border-color: #fff; border-color: #fff;
} }
input[type='checkbox'].checkbox--white:checked + label:before {
background-color: #eee;
border-color: #eee;
}
input[type='checkbox'].checkbox--white:disabled + label:before { input[type='checkbox'].checkbox--white:disabled + label:before {
background-color: #666 !important; background-color: #666 !important;
border-color: #999 !important; border-color: #999 !important;
} }
input[type='checkbox'].checkbox--white:checked:disabled + label:before { input[type='checkbox'].checkbox--white:checked:disabled + label:before {
border-color: #666; border-color: #666;
background-color: #222; background-color: #222;
} }
input[type='checkbox'].checkbox--white:checked + label:before { input[type='checkbox'].checkbox--white:checked + label:before {
background-color: transparent !important; background-color: transparent !important;
border-color: #fff !important; border-color: #fff !important;
@ -364,6 +383,7 @@ input[type='checkbox'].checkbox--white:checked + label:before {
overflow: hidden; overflow: hidden;
height: 3px; height: 3px;
} }
.tooltip-inner { .tooltip-inner {
font-weight: bold; font-weight: bold;
padding: 3px 6px; padding: 3px 6px;
@ -386,12 +406,14 @@ input[type='checkbox'].checkbox--white:checked + label:before {
padding: .6em 2.5em .4em .4em; padding: .6em 2.5em .4em .4em;
width: 8em; width: 8em;
} }
#personal-show + label { #personal-show + label {
height: 14px; height: 14px;
margin-top: -25px; margin-top: -25px;
inset-inline-start: 295px; inset-inline-start: 295px;
display: block; display: block;
} }
#passwordbutton { #passwordbutton {
margin-inline-start: .5em; margin-inline-start: .5em;
} }
@ -416,6 +438,7 @@ form .warning input[type='checkbox']+label {
width: 320px; width: 320px;
box-sizing: border-box; box-sizing: border-box;
} }
.two-factor-provider { .two-factor-provider {
display: flex; display: flex;
border-radius: 3px; /* --border-radius */ border-radius: 3px; /* --border-radius */
@ -445,11 +468,13 @@ form .warning input[type='checkbox']+label {
font-weight: normal; font-weight: normal;
} }
} }
.two-factor-icon { .two-factor-icon {
width: 100px; width: 100px;
display: block; display: block;
margin: 0 auto; margin: 0 auto;
} }
.two-factor-submit { .two-factor-submit {
width: 100%; width: 100%;
padding: 10px; padding: 10px;
@ -457,11 +482,13 @@ form .warning input[type='checkbox']+label {
border-radius: 100px; /* --border-radius-pill */ border-radius: 100px; /* --border-radius-pill */
font-size: 20px; font-size: 20px;
} }
.two-factor-primary { .two-factor-primary {
/* Fix for 'Use backup codes' button not taking correct styles */ /* Fix for 'Use backup codes' button not taking correct styles */
padding: 14px !important; padding: 14px !important;
width: 226px; width: 226px;
} }
.two-factor-secondary { .two-factor-secondary {
display: inline-block; display: inline-block;
padding: 12px; padding: 12px;
@ -519,15 +546,19 @@ form #selectDbType {
position: relative; position: relative;
user-select: none; user-select: none;
} }
.grouptop, .groupmiddle { .grouptop, .groupmiddle {
margin-bottom: 8px !important; margin-bottom: 8px !important;
} }
.groupbottom { .groupbottom {
margin-bottom: 13px; margin-bottom: 13px;
} }
.groupbottom input[type=submit] { .groupbottom input[type=submit] {
box-shadow: none !important; box-shadow: none !important;
} }
.grouptop.groupbottom input { .grouptop.groupbottom input {
border-radius: 3px !important; border-radius: 3px !important;
margin: 5px 0 !important; margin: 5px 0 !important;
@ -567,9 +598,11 @@ form #selectDbType {
.infogroup { .infogroup {
margin: 8px 0; margin: 8px 0;
} }
.infogroup:last-child { .infogroup:last-child {
margin-bottom: 0; margin-bottom: 0;
} }
p.info { p.info {
margin: 20px auto; margin: 20px auto;
-webkit-user-select: none; -webkit-user-select: none;
@ -598,6 +631,7 @@ p.info {
body[dir='ltr'] .update img.float-spinner { body[dir='ltr'] .update img.float-spinner {
float: left; float: left;
} }
body[dir='rtl'] .update img.float-spinner { body[dir='rtl'] .update img.float-spinner {
float: right; float: right;
} }
@ -606,6 +640,7 @@ body[dir='rtl'] .update img.float-spinner {
text-align: start; text-align: start;
margin-bottom: 12px; margin-bottom: 12px;
} }
.update-show-detailed { .update-show-detailed {
padding: 12px; padding: 12px;
display: block; display: block;
@ -628,18 +663,23 @@ body[dir='rtl'] .update img.float-spinner {
.icon-info-white { .icon-info-white {
background-image: url('../img/actions/info-white.svg?v=2'); background-image: url('../img/actions/info-white.svg?v=2');
} }
.icon-error-white { .icon-error-white {
background-image: url('../img/actions/error-white.svg?v=1'); background-image: url('../img/actions/error-white.svg?v=1');
} }
.icon-caret-white { .icon-caret-white {
background-image: url('../img/actions/caret-white.svg?v=1'); background-image: url('../img/actions/caret-white.svg?v=1');
} }
.icon-confirm { .icon-confirm {
background-image: url('../img/actions/confirm.svg?v=2'); background-image: url('../img/actions/confirm.svg?v=2');
} }
.icon-confirm-white { .icon-confirm-white {
background-image: url('../img/actions/confirm-white.svg?v=2'); background-image: url('../img/actions/confirm-white.svg?v=2');
} }
.icon-checkmark-white { .icon-checkmark-white {
background-image: url('../img/actions/checkmark-white.svg?v=1'); background-image: url('../img/actions/checkmark-white.svg?v=1');
} }
@ -652,17 +692,24 @@ body[dir='rtl'] .update img.float-spinner {
height: 32px; height: 32px;
display: none; display: none;
} }
[class^='icon-'], [class*=' icon-'] { [class^='icon-'], [class*=' icon-'] {
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: center; background-position: center;
min-width: 16px; min-width: 16px;
min-height: 16px; min-height: 16px;
} }
.loading, .loading-small, .icon-loading, .icon-loading-dark, .icon-loading-small, .icon-loading-small-dark { .loading, .loading-small, .icon-loading, .icon-loading-dark, .icon-loading-small, .icon-loading-small-dark {
position: relative; position: relative;
filter: var(--background-invert-if-dark) filter: var(--background-invert-if-dark)
} }
.loading:after, .loading-small:after, .icon-loading:after, .icon-loading-dark:after, .icon-loading-small:after, .icon-loading-small-dark:after { .loading:after, .loading-small:after, .icon-loading:after, .icon-loading-dark:after, .icon-loading-small:after, .icon-loading-small-dark:after {
border: 2px solid rgba(150, 150, 150, 0.5);
border-radius: 100%;
border-top-color: #646464;
z-index: 2; z-index: 2;
content: ''; content: '';
height: 32px; height: 32px;
@ -671,24 +718,22 @@ body[dir='rtl'] .update img.float-spinner {
position: absolute; position: absolute;
top: 50%; top: 50%;
inset-inline-start: 50%; inset-inline-start: 50%;
border-radius: 100%;
-webkit-animation: rotate .8s infinite linear; -webkit-animation: rotate .8s infinite linear;
animation: rotate .8s infinite linear; animation: rotate .8s infinite linear;
-webkit-transform-origin: center; -webkit-transform-origin: center;
-ms-transform-origin: center; -ms-transform-origin: center;
transform-origin: center; transform-origin: center;
} }
.primary .loading,.primary+.loading,.primary .loading-small,.primary+.loading-small,.primary .icon-loading,.primary+.icon-loading,.primary .icon-loading-dark,.primary+.icon-loading-dark,.primary .icon-loading-small,.primary+.icon-loading-small,.primary .icon-loading-small-dark,.primary+.icon-loading-small-dark { .primary .loading,.primary+.loading,.primary .loading-small,.primary+.loading-small,.primary .icon-loading,.primary+.icon-loading,.primary .icon-loading-dark,.primary+.icon-loading-dark,.primary .icon-loading-small,.primary+.icon-loading-small,.primary .icon-loading-small-dark,.primary+.icon-loading-small-dark {
filter: var(--primary-invert-if-bright) filter: var(--primary-invert-if-bright)
} }
.loading:after, .loading-small:after, .icon-loading:after, .icon-loading-dark:after, .icon-loading-small:after, .icon-loading-small-dark:after {
border: 2px solid rgba(150, 150, 150, 0.5);
border-top-color: #646464;
}
.icon-loading-dark:after, .icon-loading-small-dark:after { .icon-loading-dark:after, .icon-loading-small-dark:after {
border: 2px solid rgba(187, 187, 187, 0.5); border: 2px solid rgba(187, 187, 187, 0.5);
border-top-color: #bbb; border-top-color: #bbb;
} }
.icon-loading-small:after, .icon-loading-small-dark:after { .icon-loading-small:after, .icon-loading-small-dark:after {
height: 16px; height: 16px;
width: 16px; width: 16px;
@ -698,12 +743,15 @@ body[dir='rtl'] .update img.float-spinner {
img.icon-loading, object.icon-loading, video.icon-loading, button.icon-loading, textarea.icon-loading, input.icon-loading, select.icon-loading, div[contenteditable=true].icon-loading { img.icon-loading, object.icon-loading, video.icon-loading, button.icon-loading, textarea.icon-loading, input.icon-loading, select.icon-loading, div[contenteditable=true].icon-loading {
background-image: url('../img/loading.gif'); background-image: url('../img/loading.gif');
} }
img.icon-loading-dark, object.icon-loading-dark, video.icon-loading-dark, button.icon-loading-dark, textarea.icon-loading-dark, input.icon-loading-dark, select.icon-loading-dark, div[contenteditable=true].icon-loading-dark { img.icon-loading-dark, object.icon-loading-dark, video.icon-loading-dark, button.icon-loading-dark, textarea.icon-loading-dark, input.icon-loading-dark, select.icon-loading-dark, div[contenteditable=true].icon-loading-dark {
background-image: url('../img/loading-dark.gif'); background-image: url('../img/loading-dark.gif');
} }
img.icon-loading-small, object.icon-loading-small, video.icon-loading-small, button.icon-loading-small, textarea.icon-loading-small, input.icon-loading-small, select.icon-loading-small, div[contenteditable=true].icon-loading-small { img.icon-loading-small, object.icon-loading-small, video.icon-loading-small, button.icon-loading-small, textarea.icon-loading-small, input.icon-loading-small, select.icon-loading-small, div[contenteditable=true].icon-loading-small {
background-image: url('../img/loading-small.gif'); background-image: url('../img/loading-small.gif');
} }
img.icon-loading-small-dark, object.icon-loading-small-dark, video.icon-loading-small-dark, button.icon-loading-small-dark, textarea.icon-loading-small-dark, input.icon-loading-small-dark, select.icon-loading-small-dark, div[contenteditable=true].icon-loading-small-dark { img.icon-loading-small-dark, object.icon-loading-small-dark, video.icon-loading-small-dark, button.icon-loading-small-dark, textarea.icon-loading-small-dark, input.icon-loading-small-dark, select.icon-loading-small-dark, div[contenteditable=true].icon-loading-small-dark {
background-image: url('../img/loading-small-dark.gif'); background-image: url('../img/loading-small-dark.gif');
} }
@ -798,7 +846,6 @@ a.legal {
.guest-box, .body-login-container { .guest-box, .body-login-container {
// Ensure the maxcontrast color is set for the background // Ensure the maxcontrast color is set for the background
--color-text-maxcontrast: var(--color-text-maxcontrast-background-blur, var(--color-main-text)); --color-text-maxcontrast: var(--color-text-maxcontrast-background-blur, var(--color-main-text));
color: var(--color-main-text); color: var(--color-main-text);
background-color: var(--color-main-background-blur); background-color: var(--color-main-background-blur);
padding: calc(3 * var(--default-grid-baseline)); padding: calc(3 * var(--default-grid-baseline));

View file

@ -116,4 +116,6 @@ audio, canvas, embed, iframe, img, input, object, video {
* or have some additional styling like drop shadows * or have some additional styling like drop shadows
*/ */
@import url('../../dist/icons.css'); // plain CSS import and not SCSS so disable the `@import` rule
/* stylelint-disable-next-line no-invalid-position-at-import-rule */
@import '../../dist/icons.css';

View file

@ -11,9 +11,11 @@
input, textarea, select, button, div[contenteditable=true], div[contenteditable=false] { input, textarea, select, button, div[contenteditable=true], div[contenteditable=false] {
font-family: var(--font-face); font-family: var(--font-face);
} }
.select2-container-multi .select2-choices .select2-search-field input, .select2-search input, .ui-widget { .select2-container-multi .select2-choices .select2-search-field input, .select2-search input, .ui-widget {
font-family: var(--font-face) !important; font-family: var(--font-face) !important;
} }
.select2-container.select2-drop-above .select2-choice { .select2-container.select2-drop-above .select2-choice {
background-image: unset !important; background-image: unset !important;
} }
@ -69,7 +71,6 @@ button:not(
.button, .button,
.pager li a { .pager li a {
padding: 7px 14px; padding: 7px 14px;
font-size: 13px;
background-color: var(--color-main-background); background-color: var(--color-main-background);
color: var(--color-main-text); color: var(--color-main-text);
border: 1px solid var(--color-border-dark); border: 1px solid var(--color-border-dark);
@ -158,8 +159,6 @@ div[contenteditable=false] {
margin-inline-start: 0; margin-inline-start: 0;
padding: 7px 6px; padding: 7px 6px;
font-size: 13px; font-size: 13px;
background-color: var(--color-main-background);
color: var(--color-text-maxcontrast);
border: 1px solid var(--color-background-darker); border: 1px solid var(--color-background-darker);
outline: none; outline: none;
border-radius: var(--border-radius); border-radius: var(--border-radius);
@ -339,6 +338,7 @@ input[type='reset'] {
} }
} }
} }
button:not( button:not(
.button-vue, .button-vue,
.action-button, .action-button,
@ -357,58 +357,56 @@ button:not(
} }
/* Confirm inputs */ /* Confirm inputs */
input { input[type='text'],
&[type='text'], input[type='password'],
&[type='password'], input[type='email'] {
&[type='email'] { + .icon-confirm {
+ .icon-confirm { margin-inline-start: -13px !important;
margin-inline-start: -13px !important; border-inline-start-color: transparent !important;
border-inline-start-color: transparent !important; border-radius: 0 var(--border-radius-large) var(--border-radius-large) 0 !important;
border-radius: 0 var(--border-radius-large) var(--border-radius-large) 0 !important; border-width: 2px;
border-width: 2px; background-clip: padding-box;
background-clip: padding-box; /* Avoid background under border */
/* Avoid background under border */ background-color: var(--color-main-background) !important;
background-color: var(--color-main-background) !important; opacity: 1;
opacity: 1; height: var(--default-clickable-area);
height: var(--default-clickable-area); width: var(--default-clickable-area);
width: var(--default-clickable-area); padding: 7px 6px;
padding: 7px 6px; cursor: pointer;
cursor: pointer; margin-inline-end: 0;
margin-inline-end: 0; &:disabled {
&:disabled { cursor: default;
cursor: default; @include functions.icon-color('confirm-fade', 'actions', variables.$color-black, 2, true);
@include functions.icon-color('confirm-fade', 'actions', variables.$color-black, 2, true);
}
} }
}
/* only show confirm borders if input is not focused */ /* only show confirm borders if input is not focused */
&:not(:active):not(:hover):not(:focus){ &:not(:active):not(:hover):not(:focus){
&:invalid { &:invalid {
+ .icon-confirm {
border-color: var(--color-error);
}
}
+ .icon-confirm { + .icon-confirm {
&:active, border-color: var(--color-error);
&:hover, }
&:focus { }
border-color: var(--color-primary-element) !important; + .icon-confirm {
border-radius: var(--border-radius) !important; &:active,
&:disabled { &:hover,
border-color: var(--color-background-darker) !important; &:focus {
} border-color: var(--color-primary-element) !important;
border-radius: var(--border-radius) !important;
&:disabled {
border-color: var(--color-background-darker) !important;
} }
} }
} }
&:active, }
&:hover, &:active,
&:focus { &:hover,
+ .icon-confirm { &:focus {
border-color: var(--color-primary-element) !important; + .icon-confirm {
border-inline-start-color: transparent !important; border-color: var(--color-primary-element) !important;
/* above previous input */ border-inline-start-color: transparent !important;
z-index: 2; /* above previous input */
} z-index: 2;
} }
} }
} }
@ -419,6 +417,7 @@ button img,
.button img { .button img {
cursor: pointer; cursor: pointer;
} }
select, select,
.button.multiselect { .button.multiselect {
font-weight: normal; font-weight: normal;
@ -428,124 +427,122 @@ select,
$checkbox-radio-size: 14px; $checkbox-radio-size: 14px;
$color-checkbox-radio-white: #fff; $color-checkbox-radio-white: #fff;
input { input[type='checkbox'],
&[type='checkbox'], input[type='radio'] {
&[type='radio'] { &.radio,
&.radio, &.checkbox {
&.checkbox { position: absolute;
position: absolute; inset-inline-start: -10000px;
inset-inline-start: -10000px; top: auto;
top: auto; width: 1px;
width: 1px; height: 1px;
height: 1px; overflow: hidden;
overflow: hidden; + label {
+ label { user-select: none;
user-select: none;
}
&:disabled + label,
&:disabled + label:before {
cursor: default;
}
+ label:before {
content: '';
display: inline-block;
height: $checkbox-radio-size;
width: $checkbox-radio-size;
vertical-align: middle;
border-radius: 50%;
margin: 0 3px;
margin-inline: 3px 6px;
border: 1px solid var(--color-text-maxcontrast);
}
&:not(:disabled):not(:checked) + label:hover:before,
&:focus + label:before {
border-color: var(--color-primary-element);
}
&:focus-visible + label {
outline-style: solid;
outline-color: var(--color-main-text);
outline-width: 1px;
outline-offset: 2px;
}
&:checked + label:before,
&.checkbox:indeterminate + label:before {
/* ^ :indeterminate have a strange behavior on radio,
so we respecified the checkbox class again to be safe */
box-shadow: inset 0px 0px 0px 2px var(--color-main-background);
background-color: var(--color-primary-element);
border-color: var(--color-primary-element);
}
&:disabled + label:before {
border: 1px solid var(--color-text-maxcontrast);
background-color: var(--color-text-maxcontrast) !important; /* override other status */
}
&:checked:disabled + label:before {
background-color: var(--color-text-maxcontrast);
}
// Detail description below label of checkbox or radio button
& + label ~ em {
display: inline-block;
margin-inline-start: 25px;
}
& + label ~ em:last-of-type {
margin-bottom: $checkbox-radio-size;
}
} }
&.checkbox { &:disabled + label,
+ label:before { &:disabled + label:before {
border-radius: 1px; cursor: default;
height: $checkbox-radio-size; }
width: $checkbox-radio-size; + label:before {
box-shadow: none !important; content: '';
background-position: center; display: inline-block;
} height: $checkbox-radio-size;
&:checked + label:before { width: $checkbox-radio-size;
background-image: url('../img/actions/checkbox-mark.svg'); vertical-align: middle;
} border-radius: 50%;
&:indeterminate + label:before { margin: 0 3px;
background-image: url('../img/actions/checkbox-mixed.svg'); margin-inline: 3px 6px;
} border: 1px solid var(--color-text-maxcontrast);
}
&:not(:disabled):not(:checked) + label:hover:before,
&:focus + label:before {
border-color: var(--color-primary-element);
}
&:focus-visible + label {
outline-style: solid;
outline-color: var(--color-main-text);
outline-width: 1px;
outline-offset: 2px;
}
&:checked + label:before,
&.checkbox:indeterminate + label:before {
/* ^ :indeterminate have a strange behavior on radio,
so we respecified the checkbox class again to be safe */
box-shadow: inset 0px 0px 0px 2px var(--color-main-background);
background-color: var(--color-primary-element);
border-color: var(--color-primary-element);
}
&:disabled + label:before {
border: 1px solid var(--color-text-maxcontrast);
background-color: var(--color-text-maxcontrast) !important; /* override other status */
}
&:checked:disabled + label:before {
background-color: var(--color-text-maxcontrast);
} }
/* We do not use the variables as we keep the colours as white for this variant */ // Detail description below label of checkbox or radio button
&.radio--white, & + label ~ em {
&.checkbox--white { display: inline-block;
+ label:before, margin-inline-start: 25px;
&:focus + label:before {
border-color: color.adjust($color-checkbox-radio-white, $lightness: -27%, $space: hsl);
}
&:not(:disabled):not(:checked) + label:hover:before {
border-color: $color-checkbox-radio-white;
}
&:checked + label:before {
box-shadow: inset 0px 0px 0px 2px var(--color-main-background);
background-color: color.adjust($color-checkbox-radio-white, $lightness: -14%, $space: hsl);
border-color: color.adjust($color-checkbox-radio-white, $lightness: -14%, $space: hsl);
}
&:disabled + label:before {
background-color: color.adjust($color-checkbox-radio-white, $lightness: -27%, $space: hsl) !important; /* override other status */
border-color: rgba($color-checkbox-radio-white, 0.4) !important; /* override other status */
}
&:checked:disabled + label:before {
box-shadow: inset 0px 0px 0px 2px var(--color-main-background);
border-color: rgba($color-checkbox-radio-white, 0.4) !important; /* override other status */
background-color: color.adjust($color-checkbox-radio-white, $lightness: -27%, $space: hsl);
}
} }
&.checkbox--white { & + label ~ em:last-of-type {
&:checked + label:before, margin-bottom: $checkbox-radio-size;
&:indeterminate + label:before { }
background-color: transparent !important; /* Override default checked */ }
border-color: $color-checkbox-radio-white !important; /* Override default checked */ &.checkbox {
background-image: url('../img/actions/checkbox-mark-white.svg'); + label:before {
} border-radius: 1px;
&:indeterminate + label:before { height: $checkbox-radio-size;
background-image: url('../img/actions/checkbox-mixed-white.svg'); width: $checkbox-radio-size;
} box-shadow: none !important;
&:disabled + label:before { background-position: center;
opacity: 0.7; /* No other choice for white background image */ }
} &:checked + label:before {
background-image: url('../img/actions/checkbox-mark.svg');
}
&:indeterminate + label:before {
background-image: url('../img/actions/checkbox-mixed.svg');
}
}
/* We do not use the variables as we keep the colours as white for this variant */
&.radio--white,
&.checkbox--white {
+ label:before,
&:focus + label:before {
border-color: color.adjust($color-checkbox-radio-white, $lightness: -27%, $space: hsl);
}
&:not(:disabled):not(:checked) + label:hover:before {
border-color: $color-checkbox-radio-white;
}
&:checked + label:before {
box-shadow: inset 0px 0px 0px 2px var(--color-main-background);
background-color: color.adjust($color-checkbox-radio-white, $lightness: -14%, $space: hsl);
border-color: color.adjust($color-checkbox-radio-white, $lightness: -14%, $space: hsl);
}
&:disabled + label:before {
background-color: color.adjust($color-checkbox-radio-white, $lightness: -27%, $space: hsl) !important; /* override other status */
border-color: rgba($color-checkbox-radio-white, 0.4) !important; /* override other status */
}
&:checked:disabled + label:before {
box-shadow: inset 0px 0px 0px 2px var(--color-main-background);
border-color: rgba($color-checkbox-radio-white, 0.4) !important; /* override other status */
background-color: color.adjust($color-checkbox-radio-white, $lightness: -27%, $space: hsl);
}
}
&.checkbox--white {
&:checked + label:before,
&:indeterminate + label:before {
background-color: transparent !important; /* Override default checked */
border-color: $color-checkbox-radio-white !important; /* Override default checked */
background-image: url('../img/actions/checkbox-mark-white.svg');
}
&:indeterminate + label:before {
background-image: url('../img/actions/checkbox-mixed-white.svg');
}
&:disabled + label:before {
opacity: 0.7; /* No other choice for white background image */
} }
} }
} }
@ -623,6 +620,7 @@ body[dir='rtl'] div.select2-drop .select2-search input {
cursor: pointer; cursor: pointer;
} }
} }
div.select2-container-multi { div.select2-container-multi {
.select2-choices, .select2-choices,
&.select2-container-active .select2-choices { &.select2-container-active .select2-choices {
@ -667,6 +665,7 @@ div.select2-container-multi {
} }
} }
} }
div.select2-container { div.select2-container {
margin: 3px; margin: 3px;
margin-inline-start: 0; margin-inline-start: 0;
@ -858,6 +857,7 @@ progress:not(.vue) {
transform: translate(4px); transform: translate(4px);
} }
} }
.shake { .shake {
animation-name: shake; animation-name: shake;
animation-duration: .7s; animation-duration: .7s;

View file

@ -4,7 +4,7 @@
*/ */
@use 'variables'; @use 'variables';
@media only screen and (width < variables.$breakpoint-mobile) { @media only screen and (width < #{variables.$breakpoint-mobile}) {
/* position share dropdown */ /* position share dropdown */
#dropdown { #dropdown {

View file

@ -2,15 +2,15 @@
* SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later * SPDX-License-Identifier: AGPL-3.0-or-later
*/ */
@use 'styles.scss'; @use 'styles';
@use 'inputs.scss'; @use 'inputs';
@use 'header.scss'; @use 'header';
@use 'icons.scss'; @use 'icons';
@use 'apps.scss'; @use 'apps';
@use 'global.scss'; @use 'global';
@use 'fixes.scss'; @use 'fixes';
@use 'mobile.scss'; @use 'mobile';
@use 'tooltip.scss'; @use 'tooltip';
// If you include .css, it will be imported as url // If you include .css, it will be imported as url
@use '../../node_modules/@nextcloud/dialogs/dist/style'; @use '../../node_modules/@nextcloud/dialogs/dist/style';
@use 'public.scss'; @use 'public';

View file

@ -43,10 +43,6 @@ article, aside, dialog, figure, footer, header, hgroup, nav, section {
display: block; display: block;
} }
body {
line-height: 1.5;
}
table { table {
border-collapse: separate; border-collapse: separate;
border-spacing: 0; border-spacing: 0;
@ -267,6 +263,7 @@ body[dir='rtl'] #dbpassword {
#show:checked + label, #dbpassword:checked + label, #personal-show:checked + label { #show:checked + label, #dbpassword:checked + label, #personal-show:checked + label {
opacity: .8; opacity: .8;
} }
#show:focus-visible + label, #dbpassword-toggle:focus-visible + label, #personal-show:focus-visible + label { #show:focus-visible + label, #dbpassword-toggle:focus-visible + label, #personal-show:focus-visible + label {
box-shadow: var(--color-primary-element) 0 0 0 2px; box-shadow: var(--color-primary-element) 0 0 0 2px;
opacity: 1; opacity: 1;
@ -308,6 +305,7 @@ body[dir='rtl'] #dbpassword {
display: inline-block; display: inline-block;
margin-inline-end: 6px; margin-inline-end: 6px;
} }
#personal-show + label { #personal-show + label {
display: block; display: block;
inset-inline-end: 0; inset-inline-end: 0;
@ -385,6 +383,16 @@ tr .action:not(.permanent), .selectedActions > a {
} }
tr { tr {
.action {
width: 16px;
height: 16px;
}
&:hover .action:hover,
&:focus .action:focus {
opacity: 1;
}
&:hover .action:not(.menuitem), &:hover .action:not(.menuitem),
&:focus .action:not(.menuitem), &:focus .action:not(.menuitem),
.action.permanent:not(.menuitem) { .action.permanent:not(.menuitem) {
@ -402,21 +410,6 @@ tr {
} }
} }
tr .action {
width: 16px;
height: 16px;
}
.header-action {
opacity: .8;
}
tr {
&:hover .action:hover, &:focus .action:focus {
opacity: 1;
}
}
.selectedActions a { .selectedActions a {
&:hover, &:focus { &:hover, &:focus {
opacity: 1; opacity: 1;
@ -424,6 +417,8 @@ tr {
} }
.header-action { .header-action {
opacity: .8;
&:hover, &:focus { &:hover, &:focus {
opacity: 1; opacity: 1;
} }
@ -718,6 +713,7 @@ span.ui-icon {
display: inline-flex; display: inline-flex;
height: 50px; height: 50px;
} }
li.crumb { li.crumb {
display: inline-flex; display: inline-flex;
background-image: url('../img/breadcrumb.svg?v=1'); background-image: url('../img/breadcrumb.svg?v=1');
@ -786,8 +782,7 @@ li.crumb {
padding: 0; padding: 0;
width: 44px; width: 44px;
} }
&:not(:first-child) a {
}
&:last-child { &:last-child {
font-weight: bold; font-weight: bold;
margin-inline-end: 10px; margin-inline-end: 10px;

View file

@ -6,6 +6,8 @@
.systemtags-select2-dropdown { .systemtags-select2-dropdown {
.select2-result-label { .select2-result-label {
height: 25px;
.checkmark { .checkmark {
visibility: hidden; visibility: hidden;
margin-inline: -5px 5px; margin-inline: -5px 5px;
@ -57,9 +59,6 @@
height: 25px; height: 25px;
width: 100%; width: 100%;
} }
.select2-result-label {
height: 25px;
}
} }
.systemtags-select2-container { .systemtags-select2-container {

View file

@ -38,6 +38,7 @@
} }
} }
} }
.toastify.toastify-top { .toastify.toastify-top {
inset-inline-end: 10px; inset-inline-end: 10px;
} }
@ -45,12 +46,15 @@
.toast-error { .toast-error {
border-inline-start: 3px solid var(--color-error); border-inline-start: 3px solid var(--color-error);
} }
.toast-info { .toast-info {
border-inline-start: 3px solid var(--color-primary-element); border-inline-start: 3px solid var(--color-primary-element);
} }
.toast-warning { .toast-warning {
border-inline-start: 3px solid var(--color-warning); border-inline-start: 3px solid var(--color-warning);
} }
.toast-success { .toast-success {
border-inline-start: 3px solid var(--color-success); border-inline-start: 3px solid var(--color-success);
} }

View file

@ -6,7 +6,7 @@
*/ */
// SCSS darken/lighten function override // SCSS darken/lighten function override
@function nc-darken($color, $value) { @function nc-darken($color, $value) {
@return color.adjust($color, $lightness: -$value, $space: hsl); @return color.adjust($color, $lightness: - $value, $space: hsl);
} }
@function nc-lighten($color, $value) { @function nc-lighten($color, $value) {

View file

@ -106,68 +106,67 @@ $clickable-area: 44px;
$margin: 10px; $margin: 10px;
.result-items { .result-items {
&__item { &__item:deep {
::v-deep a { a {
border-radius: 12px; border: 2px solid transparent;
border: 2px solid transparent; border-radius: var(--border-radius-large) !important;
border-radius: var(--border-radius-large) !important;
&--focused { &--focused {
background-color: var(--color-background-hover); background-color: var(--color-background-hover);
} }
&:active, &:active,
&:hover, &:hover,
&:focus { &:focus {
background-color: var(--color-background-hover); background-color: var(--color-background-hover);
border: 2px solid var(--color-border-maxcontrast); border: 2px solid var(--color-border-maxcontrast);
} }
* { * {
cursor: pointer; cursor: pointer;
} }
} }
&-icon { &-icon {
overflow: hidden; overflow: hidden;
width: $clickable-area; width: $clickable-area;
height: $clickable-area; height: $clickable-area;
border-radius: var(--border-radius); border-radius: var(--border-radius);
background-repeat: no-repeat; background-repeat: no-repeat;
background-position: center center; background-position: center center;
background-size: 32px; background-size: 32px;
&--rounded { &--rounded {
border-radius: math.div($clickable-area, 2); border-radius: math.div($clickable-area, 2);
} }
&--no-preview { &--no-preview {
background-size: 32px; background-size: 32px;
} }
&--with-thumbnail { &--with-thumbnail {
background-size: cover; background-size: cover;
} }
&--with-thumbnail:not(&--rounded) { &--with-thumbnail:not(&--rounded) {
// compensate for border // compensate for border
max-width: $clickable-area - 2px; max-width: $clickable-area - 2px;
max-height: $clickable-area - 2px; max-height: $clickable-area - 2px;
border: 1px solid var(--color-border); border: 1px solid var(--color-border);
} }
img { img {
// Make sure to keep ratio // Make sure to keep ratio
width: 100%; width: 100%;
height: 100%; height: 100%;
object-fit: cover; object-fit: cover;
object-position: center; object-position: center;
} }
} }
} }
} }
</style> </style>

View file

@ -93,7 +93,6 @@ function clearAndCloseSearch() {
<style scoped lang="scss"> <style scoped lang="scss">
.local-unified-search { .local-unified-search {
--local-search-width: min(calc(250px + v-bind('searchGlobalButtonCSSWidth')), 95vw); --local-search-width: min(calc(250px + v-bind('searchGlobalButtonCSSWidth')), 95vw);
box-sizing: border-box; box-sizing: border-box;
position: relative; position: relative;
height: var(--header-height); height: var(--header-height);

View file

@ -9,14 +9,17 @@
background: var(--color-main-background) none; background: var(--color-main-background) none;
color: var(--color-main-text); color: var(--color-main-text);
} }
.ui-widget-content a { .ui-widget-content a {
color: var(--color-main-text); color: var(--color-main-text);
} }
.ui-widget-header { .ui-widget-header {
border: none; border: none;
color: var(--color-main-text); color: var(--color-main-text);
background-image: none; background-image: none;
} }
.ui-widget-header a { .ui-widget-header a {
color: var(--color-main-text); color: var(--color-main-text);
} }
@ -31,11 +34,13 @@
font-weight: bold; font-weight: bold;
color: #555; color: #555;
} }
.ui-state-default a, .ui-state-default a,
.ui-state-default a:link, .ui-state-default a:link,
.ui-state-default a:visited { .ui-state-default a:visited {
color: #555; color: #555;
} }
.ui-state-hover, .ui-state-hover,
.ui-widget-content .ui-state-hover, .ui-widget-content .ui-state-hover,
.ui-widget-header .ui-state-hover, .ui-widget-header .ui-state-hover,
@ -47,12 +52,14 @@
font-weight: bold; font-weight: bold;
color: var(--color-main-text); color: var(--color-main-text);
} }
.ui-state-hover a, .ui-state-hover a,
.ui-state-hover a:hover, .ui-state-hover a:hover,
.ui-state-hover a:link, .ui-state-hover a:link,
.ui-state-hover a:visited { .ui-state-hover a:visited {
color: var(--color-main-text); color: var(--color-main-text);
} }
.ui-state-active, .ui-state-active,
.ui-widget-content .ui-state-active, .ui-widget-content .ui-state-active,
.ui-widget-header .ui-state-active { .ui-widget-header .ui-state-active {
@ -61,6 +68,7 @@
font-weight: bold; font-weight: bold;
color: var(--color-main-text); color: var(--color-main-text);
} }
.ui-state-active a, .ui-state-active a,
.ui-state-active a:link, .ui-state-active a:link,
.ui-state-active a:visited { .ui-state-active a:visited {
@ -77,11 +85,13 @@
color: var(--color-text-light); color: var(--color-text-light);
font-weight: 600; font-weight: 600;
} }
.ui-state-highlight a, .ui-state-highlight a,
.ui-widget-content .ui-state-highlight a, .ui-widget-content .ui-state-highlight a,
.ui-widget-header .ui-state-highlight a { .ui-widget-header .ui-state-highlight a {
color: var(--color-text-lighter); color: var(--color-text-lighter);
} }
.ui-state-error, .ui-state-error,
.ui-widget-content .ui-state-error, .ui-widget-content .ui-state-error,
.ui-widget-header .ui-state-error { .ui-widget-header .ui-state-error {
@ -89,11 +99,13 @@
background: var(--color-error) none; background: var(--color-error) none;
color: #ffffff; color: #ffffff;
} }
.ui-state-error a, .ui-state-error a,
.ui-widget-content .ui-state-error a, .ui-widget-content .ui-state-error a,
.ui-widget-header .ui-state-error a { .ui-widget-header .ui-state-error a {
color: #ffffff; color: #ffffff;
} }
.ui-state-error-text, .ui-state-error-text,
.ui-widget-content .ui-state-error-text, .ui-widget-content .ui-state-error-text,
.ui-widget-header .ui-state-error-text { .ui-widget-header .ui-state-error-text {
@ -105,20 +117,25 @@
.ui-state-default .ui-icon { .ui-state-default .ui-icon {
background-image: url('images/ui-icons_1d2d44_256x240.png'); background-image: url('images/ui-icons_1d2d44_256x240.png');
} }
.ui-state-hover .ui-icon, .ui-state-hover .ui-icon,
.ui-state-focus .ui-icon { .ui-state-focus .ui-icon {
background-image: url('images/ui-icons_1d2d44_256x240.png'); background-image: url('images/ui-icons_1d2d44_256x240.png');
} }
.ui-state-active .ui-icon { .ui-state-active .ui-icon {
background-image: url('images/ui-icons_1d2d44_256x240.png'); background-image: url('images/ui-icons_1d2d44_256x240.png');
} }
.ui-state-highlight .ui-icon { .ui-state-highlight .ui-icon {
background-image: url('images/ui-icons_ffffff_256x240.png'); background-image: url('images/ui-icons_ffffff_256x240.png');
} }
.ui-state-error .ui-icon, .ui-state-error .ui-icon,
.ui-state-error-text .ui-icon { .ui-state-error-text .ui-icon {
background-image: url('images/ui-icons_ffd27a_256x240.png'); background-image: url('images/ui-icons_ffd27a_256x240.png');
} }
.ui-icon.ui-icon-none { .ui-icon.ui-icon-none {
display: none; display: none;
} }
@ -130,6 +147,7 @@
background: #666666 url('images/ui-bg_diagonals-thick_20_666666_40x40.png') 50% 50% repeat; background: #666666 url('images/ui-bg_diagonals-thick_20_666666_40x40.png') 50% 50% repeat;
opacity: .5; opacity: .5;
} }
.ui-widget-shadow { .ui-widget-shadow {
margin: -5px 0 0 -5px; margin: -5px 0 0 -5px;
padding: 5px; padding: 5px;

View file

@ -19,14 +19,16 @@
max-width: calc(100% - 20px); max-width: calc(100% - 20px);
overflow: auto; overflow: auto;
} }
.oc-dialog-title { .oc-dialog-title {
background: var(--color-main-background); background: var(--color-main-background);
} }
.oc-dialog-buttonrow { .oc-dialog-buttonrow {
position: relative; position: relative;
display: flex; display: flex;
background: transparent; background: transparent;
right: 0; inset-inline-end: 0;
bottom: 0; bottom: 0;
padding: 0; padding: 0;
padding-top: 10px; padding-top: 10px;
@ -57,7 +59,7 @@
width: 44px !important; width: 44px !important;
height: 44px !important; height: 44px !important;
top: 4px; top: 4px;
right: 4px; inset-inline-end: 4px;
padding: 25px; padding: 25px;
background: var(--icon-close-dark) no-repeat center; background: var(--icon-close-dark) no-repeat center;
opacity: .5; opacity: .5;
@ -76,7 +78,7 @@
z-index: 100001; z-index: 100001;
position: fixed; position: fixed;
top: 0; top: 0;
left: 0; inset-inline-start: 0;
width: 100%; width: 100%;
height: 100%; height: 100%;
} }

View file

@ -728,16 +728,6 @@ $input-padding: 10px;
} }
} }
&__form-input {
margin: 0 !important;
&:focus,
&:focus-visible,
&:active {
border-color: 2px solid var(--color-main-text) !important;
box-shadow: 0 0 0 2px var(--color-main-background) !important;
}
}
&__input-row { &__input-row {
display: flex; display: flex;
width: 100%; width: 100%;
@ -774,6 +764,13 @@ $input-padding: 10px;
height: $input-height; height: $input-height;
padding: $input-padding; padding: $input-padding;
&:focus,
&:focus-visible,
&:active {
border-color: 2px solid var(--color-main-text) !important;
box-shadow: 0 0 0 2px var(--color-main-background) !important;
}
&, &,
&[placeholder], &[placeholder],
&::placeholder { &::placeholder {
@ -791,7 +788,8 @@ $input-padding: 10px;
} }
} }
&-reset, &-submit { &-reset,
&-submit {
position: absolute; position: absolute;
top: 0; top: 0;
inset-inline-end: 4px; inset-inline-end: 4px;
@ -832,16 +830,16 @@ $input-padding: 10px;
} }
} }
.unified-search__result-more::v-deep { :deep(.unified-search__result-more) {
color: var(--color-text-maxcontrast); color: var(--color-text-maxcontrast);
} }
.empty-content { .empty-content {
margin: 10vh 0; margin: 10vh 0;
::v-deep .empty-content__title { :deep(.empty-content__title) {
font-weight: normal; font-weight: normal;
font-size: var(--default-font-size); font-size: var(--default-font-size);
text-align: center; text-align: center;
} }
} }

View file

@ -196,6 +196,7 @@ body {
.fade-enter-active, .fade-leave-active { .fade-enter-active, .fade-leave-active {
transition: opacity .3s; transition: opacity .3s;
} }
.fade-enter, .fade-leave-to /* .fade-leave-active below version 2.1.8 */ { .fade-enter, .fade-leave-to /* .fade-leave-active below version 2.1.8 */ {
opacity: 0; opacity: 0;
} }

View file

@ -164,7 +164,8 @@ $spacing: 30px;
.empty-content { .empty-content {
margin: 0; margin: 0;
&::v-deep .empty-content__icon {
:deep(.empty-content__icon) {
opacity: 1; opacity: 1;
} }
} }

View file

@ -19,6 +19,28 @@ const config = {
}, },
], ],
}, },
overrides: [
{
files: ['**/*.vue'],
// Override the nextcloud rules to also allow :global (we should put this into the config...)
rules: {
'selector-pseudo-element-no-unknown': [
true,
{
// Vue deep and global pseudo-element
ignorePseudoElements: ['deep', 'global'],
},
],
'selector-pseudo-class-no-unknown': [
true,
{
// vue deep and global pseudo-class
ignorePseudoClasses: ['deep', 'global'],
},
],
}
}
],
} }
module.exports = config module.exports = config