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

Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
pull/49342/head
Ferdinand Thiessen 6 days ago committed by skjnldsv
parent 212cac9469
commit f6e6ba4851
  1. 9
      apps/dashboard/src/DashboardApp.vue
  2. 3
      apps/dashboard/src/components/ApiDashboardWidget.vue
  3. 2
      apps/dav/src/components/AbsenceForm.vue
  4. 10
      apps/dav/src/components/AvailabilityForm.vue
  5. 1
      apps/dav/src/views/CalDavSettings.vue
  6. 7
      apps/files/src/components/FilesListVirtual.vue
  7. 2
      apps/files/src/components/LegacyView.vue
  8. 2
      apps/files/src/components/TemplatePreview.vue
  9. 3
      apps/files/src/components/TransferOwnershipDialogue.vue
  10. 20
      apps/files/src/views/Navigation.vue
  11. 2
      apps/files/src/views/Sidebar.vue
  12. 4
      apps/files/src/views/TemplatePicker.vue
  13. 119
      apps/files_external/css/settings.scss
  14. 2
      apps/files_sharing/css/icons.scss
  15. 8
      apps/files_sharing/css/public.scss
  16. 4
      apps/files_sharing/css/publicView.scss
  17. 2
      apps/files_sharing/src/components/SharingEntryLink.vue
  18. 51
      apps/files_sharing/src/views/SharingDetailsTab.vue
  19. 2
      apps/oauth2/src/App.vue
  20. 3
      apps/oauth2/src/components/OAuthItem.vue
  21. 1
      apps/settings/src/components/AppStoreSidebar/AppDetailsTab.vue
  22. 2
      apps/settings/src/components/BasicSettings/BackgroundJob.vue
  23. 3
      apps/settings/src/components/BasicSettings/ProfileSettings.vue
  24. 2
      apps/settings/src/components/Markdown.vue
  25. 3
      apps/settings/src/components/PersonalInfo/AvatarSection.vue
  26. 2
      apps/settings/src/components/PersonalInfo/BirthdaySection.vue
  27. 2
      apps/settings/src/components/PersonalInfo/ProfileSection/ProfilePreviewCard.vue
  28. 2
      apps/settings/src/components/PersonalInfo/ProfileSection/ProfileSection.vue
  29. 2
      apps/settings/src/components/PersonalInfo/ProfileVisibilitySection/ProfileVisibilitySection.vue
  30. 2
      apps/settings/src/components/PersonalInfo/ProfileVisibilitySection/VisibilityDropdown.vue
  31. 2
      apps/settings/src/components/UserList.vue
  32. 6
      apps/settings/src/components/Users/UserListFooter.vue
  33. 6
      apps/settings/src/components/Users/UserListHeader.vue
  34. 6
      apps/settings/src/components/Users/UserRow.vue
  35. 3
      apps/theming/src/UserTheming.vue
  36. 1
      apps/theming/src/components/BackgroundSettings.vue
  37. 1
      apps/theming/src/components/ItemPreview.vue
  38. 1
      apps/theming/src/components/admin/AppMenuSection.vue
  39. 2
      apps/theming/src/components/admin/CheckboxField.vue
  40. 3
      apps/theming/src/components/admin/ColorPickerField.vue
  41. 2
      apps/theming/src/components/admin/FileInputField.vue
  42. 1
      apps/user_status/src/components/PreviousStatus.vue
  43. 1
      apps/weather_status/src/App.vue
  44. 2
      apps/workflowengine/src/components/Check.vue
  45. 4
      apps/workflowengine/src/components/Checks/FileSystemTag.vue
  46. 2
      apps/workflowengine/src/components/Checks/RequestTime.vue
  47. 1
      apps/workflowengine/src/components/Checks/RequestURL.vue
  48. 1
      apps/workflowengine/src/components/Checks/RequestUserAgent.vue
  49. 1
      apps/workflowengine/src/components/Event.vue
  50. 2
      apps/workflowengine/src/components/Operation.vue
  51. 3
      apps/workflowengine/src/components/Rule.vue
  52. 7
      apps/workflowengine/src/components/Workflow.vue
  53. 6
      apps/workflowengine/src/styles/operation.scss
  54. 8
      core/css/apps.scss
  55. 109
      core/css/guest.scss
  56. 4
      core/css/icons.scss
  57. 322
      core/css/inputs.scss
  58. 2
      core/css/mobile.scss
  59. 20
      core/css/server.scss
  60. 37
      core/css/styles.scss
  61. 5
      core/css/systemtags.scss
  62. 4
      core/css/toast.scss
  63. 2
      core/css/variables.scss
  64. 125
      core/src/components/UnifiedSearch/SearchResult.vue
  65. 1
      core/src/components/UnifiedSearch/UnifiedSearchLocalSearchBar.vue
  66. 18
      core/src/jquery/css/jquery-ui-fixes.scss
  67. 8
      core/src/jquery/css/jquery.ocdialog.scss
  68. 26
      core/src/views/LegacyUnifiedSearch.vue
  69. 1
      core/src/views/Login.vue
  70. 3
      core/src/views/UnsupportedBrowser.vue
  71. 22
      stylelint.config.js

@ -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);

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

@ -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;
} }
} }

@ -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;

@ -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;

@ -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);

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

@ -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;

@ -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;

@ -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) {
color: var(--color-primary-element-text);
}
.app-navigation > ul.app-navigation__list { > ul.app-navigation__list {
// Use flex gap value for more elegant spacing // Use flex gap value for more elegant spacing
padding-bottom: var(--default-grid-baseline, 4px); padding-bottom: var(--default-grid-baseline, 4px);
}
} }
.app-navigation-entry__settings { .app-navigation-entry__settings {

@ -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;

@ -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;
} }

@ -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;
padding: 0 !important;
width: 44px;
[class^='icon-'],
[class*=' icon-'] {
width: 44px;
height: 44px;
margin: 3px;
opacity: 0.5;
padding: 14px;
vertical-align: text-bottom;
cursor: pointer;
&:hover {
opacity: 1;
}
}
}
#externalStorage td.status { &.mountPoint,
/* overwrite conflicting core styles */ &.backend,
display: table-cell; &.authentication,
vertical-align: middle; &.configuration {
/* ensure width does not change even if internal span is not displayed */ min-width: 160px;
width: 43px; width: 15%;
} }
#externalStorage td.status > span { &.status {
display: inline-block; /* overwrite conflicting core styles */
height: 28px; display: table-cell;
width: 28px; vertical-align: middle;
vertical-align: text-bottom; /* ensure width does not change even if internal span is not displayed */
border-radius: 50%; width: 43px;
cursor: pointer;
} > span {
#externalStorage { display: inline-block;
td.mountPoint, td.backend, td.authentication, td.configuration { height: 28px;
min-width: 160px; width: 28px;
width: 15%; vertical-align: text-bottom;
} border-radius: 50%;
} cursor: pointer;
#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 { > input:not(.applicableToAllUsers), & > select {
height: 50px; width: 100%;
&.mountOptionsToggle, }
&.remove,
&.save { > img {
position: relative; padding-top: 7px;
padding: 0 !important;
width: 44px;
[class^='icon-'],
[class*=' icon-'] {
width: 44px;
height: 44px;
margin: 3px;
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;

@ -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);
} }

@ -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 {

@ -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';

@ -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);
} }

@ -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);
} }
} }

@ -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;

@ -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;

@ -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);

@ -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;
} }

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

@ -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 {

@ -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%;
} }
} }

@ -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;
} }

@ -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;
} }
} }

@ -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;
} }
} }

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

@ -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;
} }

@ -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 {

@ -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;

@ -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>

@ -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);

@ -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);

@ -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 {

@ -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;

@ -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;
} }

@ -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 {

@ -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);
} }

@ -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 {

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

@ -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));
} }

@ -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;
} }

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

@ -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;
} }

@ -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;
} }

@ -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;
} }

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

@ -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>

@ -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;
} }

@ -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);
} }

@ -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;

@ -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;

@ -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));

@ -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';

@ -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,60 +357,58 @@ 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;
border-radius: var(--border-radius) !important;
&:disabled {
border-color: var(--color-background-darker) !important;
}
}
} }
} }
&:active, + .icon-confirm {
&:hover, &:active,
&:focus { &:hover,
+ .icon-confirm { &:focus {
border-color: var(--color-primary-element) !important; border-color: var(--color-primary-element) !important;
border-inline-start-color: transparent !important; border-radius: var(--border-radius) !important;
/* above previous input */ &:disabled {
z-index: 2; border-color: var(--color-background-darker) !important;
}
} }
} }
} }
&:active,
&:hover,
&:focus {
+ .icon-confirm {
border-color: var(--color-primary-element) !important;
border-inline-start-color: transparent !important;
/* 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, &:disabled + label:before {
&:disabled + label:before { cursor: default;
cursor: default; }
} + label:before {
+ label:before { content: '';
content: ''; display: inline-block;
display: inline-block; height: $checkbox-radio-size;
height: $checkbox-radio-size; width: $checkbox-radio-size;
width: $checkbox-radio-size; vertical-align: middle;
vertical-align: middle; border-radius: 50%;
border-radius: 50%; margin: 0 3px;
margin: 0 3px; margin-inline: 3px 6px;
margin-inline: 3px 6px; border: 1px solid var(--color-text-maxcontrast);
border: 1px solid var(--color-text-maxcontrast); }
} &:not(:disabled):not(:checked) + label:hover:before,
&:not(:disabled):not(:checked) + label:hover:before, &:focus + label:before {
&:focus + label:before { border-color: var(--color-primary-element);
border-color: var(--color-primary-element); }
} &:focus-visible + label {
&:focus-visible + label { outline-style: solid;
outline-style: solid; outline-color: var(--color-main-text);
outline-color: var(--color-main-text); outline-width: 1px;
outline-width: 1px; outline-offset: 2px;
outline-offset: 2px; }
} &:checked + label:before,
&:checked + label:before, &.checkbox:indeterminate + label:before {
&.checkbox:indeterminate + label:before { /* ^ :indeterminate have a strange behavior on radio,
/* ^ :indeterminate have a strange behavior on radio, so we respecified the checkbox class again to be safe */
so we respecified the checkbox class again to be safe */ box-shadow: inset 0px 0px 0px 2px var(--color-main-background);
box-shadow: inset 0px 0px 0px 2px var(--color-main-background); background-color: var(--color-primary-element);
background-color: var(--color-primary-element); border-color: var(--color-primary-element);
border-color: var(--color-primary-element); }
} &:disabled + label:before {
&:disabled + label:before { border: 1px solid var(--color-text-maxcontrast);
border: 1px solid var(--color-text-maxcontrast); background-color: var(--color-text-maxcontrast) !important; /* override other status */
background-color: var(--color-text-maxcontrast) !important; /* override other status */ }
} &:checked:disabled + label:before {
&:checked:disabled + label:before { background-color: var(--color-text-maxcontrast);
background-color: var(--color-text-maxcontrast); }
}
// Detail description below label of checkbox or radio button // Detail description below label of checkbox or radio button
& + label ~ em { & + label ~ em {
display: inline-block; display: inline-block;
margin-inline-start: 25px; margin-inline-start: 25px;
}
& + label ~ em:last-of-type {
margin-bottom: $checkbox-radio-size;
}
} }
&.checkbox { & + label ~ em:last-of-type {
+ label:before { margin-bottom: $checkbox-radio-size;
border-radius: 1px; }
height: $checkbox-radio-size; }
width: $checkbox-radio-size; &.checkbox {
box-shadow: none !important; + label:before {
background-position: center; border-radius: 1px;
} height: $checkbox-radio-size;
&:checked + label:before { width: $checkbox-radio-size;
background-image: url('../img/actions/checkbox-mark.svg'); box-shadow: none !important;
} background-position: center;
&:indeterminate + label:before { }
background-image: url('../img/actions/checkbox-mixed.svg'); &: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 */ /* We do not use the variables as we keep the colours as white for this variant */
&.radio--white, &.radio--white,
&.checkbox--white { &.checkbox--white {
+ label:before, + label:before,
&:focus + label:before { &:focus + label:before {
border-color: color.adjust($color-checkbox-radio-white, $lightness: -27%, $space: hsl); 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 { &:not(:disabled):not(:checked) + label:hover:before {
&:checked + label:before, border-color: $color-checkbox-radio-white;
&:indeterminate + label:before { }
background-color: transparent !important; /* Override default checked */ &:checked + label:before {
border-color: $color-checkbox-radio-white !important; /* Override default checked */ box-shadow: inset 0px 0px 0px 2px var(--color-main-background);
background-image: url('../img/actions/checkbox-mark-white.svg'); background-color: color.adjust($color-checkbox-radio-white, $lightness: -14%, $space: hsl);
} border-color: color.adjust($color-checkbox-radio-white, $lightness: -14%, $space: hsl);
&:indeterminate + label:before { }
background-image: url('../img/actions/checkbox-mixed-white.svg'); &:disabled + label:before {
} background-color: color.adjust($color-checkbox-radio-white, $lightness: -27%, $space: hsl) !important; /* override other status */
&:disabled + label:before { border-color: rgba($color-checkbox-radio-white, 0.4) !important; /* override other status */
opacity: 0.7; /* No other choice for white background image */ }
} &: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;

@ -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 {

@ -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';

@ -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;

@ -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 {

@ -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);
} }

@ -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) {

@ -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>

@ -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);

@ -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;

@ -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%;
} }

@ -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;
} }
} }

@ -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;
} }

@ -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;
} }
} }

@ -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

Loading…
Cancel
Save