Various style tweaks (#449)

* secondary action button style

will apply to other modules if we like this

* card styling

filled grid
static gaps
improved selections/hovering

* action button colors

* dialog styling

* updated pagination

* choose layout name

* move page count to footer

* card footer

* correct list group icon orientation

* move card size to header

* header icon color

* radios are not labels

* clean up projcet chooser styling

* don’t collapse pagination when empty

* logout style and tooltips

* correct css variable

* layout translation key

* use general “per page” translation
This commit is contained in:
Ben Haynes
2020-04-22 13:19:20 -04:00
committed by GitHub
parent 4b2a43aa9d
commit ae64f20578
31 changed files with 414 additions and 254 deletions

View File

@@ -253,8 +253,8 @@ export default defineComponent({
--v-button-height: 28px;
--v-button-font-size: 12px;
--v-button-font-weight: 600;
--v-button-min-width: 60px;
min-width: 60px;
padding: 0 12px;
border-radius: 4px;
}
@@ -262,23 +262,23 @@ export default defineComponent({
&.small {
--v-button-height: 36px;
--v-button-font-size: 14px;
--v-button-min-width: 120px;
min-width: 120px;
padding: 0 12px;
}
&.large {
--v-button-height: 52px;
--v-button-min-width: 154px;
min-width: 154px;
padding: 0 12px;
}
&.x-large {
--v-button-height: 64px;
--v-button-font-size: 18px;
--v-button-min-width: 180px;
min-width: 180px;
padding: 0 12px;
}

View File

@@ -9,7 +9,7 @@
padding: var(--v-card-padding);
& ::v-deep > .v-button + .v-button {
margin-left: 8px;
margin-left: 12px;
}
}
</style>

View File

@@ -6,5 +6,6 @@
.v-card-text {
padding: var(--v-card-padding);
padding-top: 0;
padding-bottom: 12px;
}
</style>

View File

@@ -79,6 +79,7 @@ export default defineComponent({
::v-deep .v-card {
--v-card-min-width: 540px;
--v-card-padding: 20px;
--v-card-background-color: var(--background-page);
}
::v-deep .v-sheet {

View File

@@ -4,7 +4,7 @@
<slot name="activator" :active="groupActive" />
<v-list-item-icon class="activator-icon" :class="{ active: groupActive }">
<v-icon name="chevron_left" @click.stop.prevent="toggle" />
<v-icon name="chevron_right" @click.stop.prevent="toggle" />
</v-list-item-icon>
</v-list-item>
@@ -64,7 +64,7 @@ export default defineComponent({
transition: transform var(--medium) var(--transition);
&.active {
transform: rotate(-90deg);
transform: rotate(90deg);
}
}

View File

@@ -1,58 +1,49 @@
<template>
<div class="v-pagination">
<v-button v-if="value !== 1" :disabled="disabled" secondary icon small @click="toPrev">
<v-icon name="chevron_left" />
</v-button>
<v-button
class="double"
v-if="showFirstLast"
:disabled="disabled || value === 1"
secondary
outlined
icon
small
v-if="showFirstLast && value > Math.ceil(totalVisible / 2)"
@click="toPage(1)"
secondary
small
:disabled="disabled"
>
<v-icon name="chevron_left" />
<v-icon name="chevron_left" />
1
</v-button>
<v-button :disabled="disabled || value === 1" secondary outlined icon small @click="toPrev">
<v-icon name="chevron_left" />
</v-button>
<span v-if="showFirstLast && value > Math.ceil(totalVisible / 2) + 1" class="gap">...</span>
<v-button
icon
small
v-for="page in visiblePages"
:key="page"
:class="{ active: value === page }"
@click="toPage(page)"
secondary
small
:disabled="disabled"
>
{{ page }}
</v-button>
<v-button
:disabled="disabled || value === length"
secondary
outlined
icon
small
@click="toNext"
>
<v-icon name="chevron_right" />
</v-button>
<span v-if="showFirstLast && value < length - Math.ceil(totalVisible / 2)" class="gap">
...
</span>
<v-button
v-if="showFirstLast"
:disabled="disabled || value === length"
class="double"
secondary
outlined
icon
small
v-if="showFirstLast && value < length - Math.ceil(totalVisible / 2)"
:class="{ active: value === length }"
@click="toPage(length)"
secondary
small
:disabled="disabled"
>
<v-icon name="chevron_right" />
{{ length }}
</v-button>
<v-button v-if="value !== length" :disabled="disabled" secondary icon small @click="toNext">
<v-icon name="chevron_right" />
</v-button>
</div>
@@ -136,41 +127,38 @@ export default defineComponent({
.v-pagination {
--v-pagination-active-color: var(--primary);
.gap {
margin: 0 4px;
color: var(--foreground-subdued);
}
.v-button {
--v-button-background-color-hover: var(--background-subdued);
--v-button-background-color: var(--background-subdued);
--v-button-color: var(--foreground-subdued);
margin: 0 2px;
vertical-align: middle;
&:not(:first-child):not(:last-child) {
margin: 0 2px;
}
&.double {
position: relative;
& ::v-deep {
.content {
display: grid;
grid-template-rows: 1fr;
grid-template-columns: 1fr;
}
.v-icon {
grid-row: 1;
grid-column: 1;
&:first-child {
left: -4px;
}
&:last-child {
right: -4px;
}
}
& ::v-deep {
.small {
--v-button-min-width: 32px;
}
}
&:first-child {
margin-left: 0;
}
&:last-child {
margin-right: 0;
}
&.active {
--v-button-background-color: var(--v-pagination-active-color);
--v-button-color: var(--foreground-inverted);
--v-button-background-color-hover: var(--primary-25);
--v-button-color-hover: var(--primary);
--v-button-background-color: var(--primary-25);
--v-button-color: var(--primary);
}
}
}

View File

@@ -8,7 +8,7 @@
@click="emitValue"
>
<v-icon :name="icon" />
<span class="label type-label">
<span class="label type-text">
<slot name="label">{{ label }}</slot>
</span>
</button>

View File

@@ -240,7 +240,7 @@
"upload_file_indeterminate": "Uploading File | Uploading files {done}/{total}",
"upload_file_success": "File Uploaded | {count} Files Uploaded",
"upload_file_failed": "Couldn't Upload File | Couldn't Upload Files",
"view_type": "View As...",
"layout_type": "Layout Type",
"setup": "Setup",
"none": "None",

View File

@@ -1,17 +1,6 @@
<template>
<div class="layout-cards" :style="{ '--size': size + 'px' }">
<portal to="drawer">
<drawer-detail icon="crop_square" :title="$t('layouts.cards.size')">
<v-slider v-model="size" :min="100" :max="200" :step="1" />
</drawer-detail>
<drawer-detail icon="format_list_numbered" :title="$t('per_page')">
<v-select
full-width
@input="limit = +$event"
:value="`${limit}`"
:items="['10', '25', '50', '100', '250']"
/>
</drawer-detail>
<drawer-detail icon="settings" :title="$t('setup')">
<div class="setting">
<div class="label type-text">{{ $t('layouts.cards.image_source') }}</div>
@@ -61,7 +50,12 @@
</drawer-detail>
</portal>
<cards-header :fields="availableFields" :selection.sync="_selection" :sort.sync="sort" />
<cards-header
:fields="availableFields"
:size.sync="size"
:selection.sync="_selection"
:sort.sync="sort"
/>
<div class="grid">
<template v-if="loading">
@@ -89,14 +83,26 @@
</card>
</div>
<div class="pagination" v-if="totalPages > 1">
<v-pagination
:length="totalPages"
:total-visible="5"
show-first-last
:value="page"
@input="toPage"
/>
<div class="footer">
<div class="pagination">
<v-pagination
v-if="totalPages > 1"
:length="totalPages"
:total-visible="7"
show-first-last
:value="page"
@input="toPage"
/>
</div>
<div class="per-page">
<span>{{ $t('layouts.tabular.per_page') }}</span>
<v-select
@input="limit = +$event"
:value="`${limit}`"
:items="['10', '25', '50', '100', '250']"
/>
</div>
</div>
<v-info
@@ -343,8 +349,10 @@ export default defineComponent({
.grid {
display: grid;
grid-gap: calc(0.1666666667 * var(--size)) 24px;
grid-template-columns: repeat(auto-fit, var(--size));
grid-gap: 32px 24px;
grid-template-columns: repeat(auto-fit, minmax(var(--size), 1fr));
justify-content: stretch;
justify-items: stretch;
}
.v-info {
@@ -359,11 +367,27 @@ export default defineComponent({
margin-bottom: 12px;
}
.pagination {
position: sticky;
left: 0;
width: 100%;
padding: 32px;
text-align: center;
.footer {
display: flex;
align-items: center;
justify-content: space-between;
padding-top: 40px;
.pagination {
display: inline-block;
}
.per-page {
display: flex;
align-items: center;
justify-content: flex-end;
width: 240px;
color: var(--foreground-subdued);
span {
width: auto;
margin-right: 4px;
}
}
}
</style>

View File

@@ -2,7 +2,7 @@
<div class="card" :class="{ loading }" @click="handleClick">
<div class="header" :class="{ selected: value.includes(item) }">
<div class="selection-indicator" :class="{ 'select-mode': selectMode }">
<v-icon :name="selectionIcon" @click.stop="toggleSelection" />
<v-icon class="selector" :name="selectionIcon" @click.stop="toggleSelection" />
</div>
<v-skeleton-loader v-if="loading" />
<template v-else>
@@ -151,94 +151,119 @@ export default defineComponent({
</script>
<style lang="scss" scoped>
.card {
cursor: pointer;
.loading {
.header {
margin-bottom: 8px;
}
}
.header {
position: relative;
display: flex;
align-items: center;
justify-content: center;
width: var(--size);
height: var(--size);
overflow: hidden;
background-color: var(--background-normal);
border-radius: var(--border-radius);
.card {
cursor: pointer;
&.selected {
background-color: var(--background-normal-alt);
}
.image {
position: absolute;
top: 0;
left: 0;
.header {
position: relative;
display: flex;
align-items: center;
justify-content: center;
width: 100%;
height: 100%;
object-fit: contain;
}
overflow: hidden;
background-color: var(--background-normal);
border-radius: var(--border-radius);
.svg {
width: 50%;
height: 50%;
object-fit: contain;
}
.type {
color: var(--foreground-subdued);
text-transform: uppercase;
}
.v-icon {
--v-icon-color: var(--foreground-subdued);
}
::v-deep .v-skeleton-loader {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
.selection-indicator {
position: absolute;
top: 0;
left: 0;
z-index: 1;
width: 100%;
height: 30%;
opacity: 0;
transition: opacity var(--fast) var(--transition);
&:hover,
&.select-mode {
opacity: 1;
&::after {
display: block;
padding-bottom: 100%;
content: '';
}
.v-icon {
--v-icon-color: var(--white);
margin: 5%;
}
&::before {
.image {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-image: linear-gradient(-180deg, #263238 10%, rgba(38, 50, 56, 0));
opacity: 0.3;
content: '';
object-fit: contain;
}
.svg {
width: 50%;
height: 50%;
object-fit: contain;
}
.type {
color: var(--foreground-subdued);
text-transform: uppercase;
}
.v-icon {
--v-icon-color: var(--foreground-subdued);
}
::v-deep .v-skeleton-loader {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
.selection-indicator {
position: absolute;
top: 0;
left: 0;
z-index: 1;
width: 100%;
height: 48px;
opacity: 0;
transition: opacity var(--fast) var(--transition);
&.select-mode {
opacity: 1;
}
.selector {
--v-icon-color: var(--white);
margin: 8px;
opacity: 0.5;
transition: opacity var(--fast) var(--transition);
&:hover {
opacity: 1;
}
}
&::before {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-image: linear-gradient(
-180deg,
rgba(38, 50, 56, 0.2) 10%,
rgba(38, 50, 56, 0)
);
content: '';
}
}
&.selected {
.selection-indicator {
.selector {
opacity: 1;
}
}
}
}
}
.loading {
.header {
margin-bottom: 8px;
&:hover {
.header {
.selection-indicator {
opacity: 1;
}
}
}
}

View File

@@ -7,6 +7,7 @@
</div>
</div>
<div class="end">
<v-slider class="size-selector" v-model="_size" :min="100" :max="200" :step="1" />
<v-menu show-arrow placement="bottom">
<template #activator="{ toggle }">
<div class="sort-selector" @click="toggle">
@@ -46,6 +47,10 @@ export default defineComponent({
type: Array as PropType<Field[]>,
required: true,
},
size: {
type: Number,
required: true,
},
sort: {
type: String,
required: true,
@@ -57,6 +62,7 @@ export default defineComponent({
},
},
setup(props, { emit }) {
const _size = useSync(props, 'size', emit);
const _sort = useSync(props, 'sort', emit);
const _selection = useSync(props, 'selection', emit);
const descending = computed(() => props.sort.startsWith('-'));
@@ -77,6 +83,7 @@ export default defineComponent({
descending,
toggleDescending,
sortField,
_size,
_sort,
_selection,
sortKey,
@@ -117,6 +124,10 @@ export default defineComponent({
align-items: center;
color: var(--foreground-subdued);
.size-selector {
margin-right: 16px;
}
.sort-selector {
margin-right: 8px;
}

View File

@@ -48,15 +48,6 @@
]"
/>
</drawer-detail>
<drawer-detail icon="format_list_numbered" :title="$t('layouts.tabular.per_page')">
<v-select
full-width
@input="limit = +$event"
:value="`${limit}`"
:items="['10', '25', '50', '100', '250']"
/>
</drawer-detail>
</portal>
<v-table
@@ -78,14 +69,26 @@
@update:sort="onSortChange"
>
<template #footer>
<div class="pagination" v-if="totalPages > 1">
<v-pagination
:length="totalPages"
:total-visible="5"
show-first-last
:value="page"
@input="toPage"
/>
<div class="footer">
<div class="pagination">
<v-pagination
v-if="totalPages > 1"
:length="totalPages"
:total-visible="7"
show-first-last
:value="page"
@input="toPage"
/>
</div>
<div class="per-page">
<span>{{ $t('per_page') }}</span>
<v-select
@input="limit = +$event"
:value="`${limit}`"
:items="['10', '25', '50', '100', '250']"
/>
</div>
</div>
</template>
</v-table>
@@ -413,12 +416,28 @@ export default defineComponent({
display: contents;
}
.pagination {
position: sticky;
left: 0;
width: 100%;
padding: 32px;
text-align: center;
.footer {
display: flex;
align-items: center;
justify-content: space-between;
padding: 32px 0;
.pagination {
display: inline-block;
}
.per-page {
display: flex;
align-items: center;
justify-content: flex-end;
width: 240px;
color: var(--foreground-subdued);
span {
width: auto;
margin-right: 4px;
}
}
}
.v-info {

View File

@@ -2,7 +2,7 @@
<collections-not-found v-if="!currentCollection || collection.startsWith('directus_')" />
<private-view v-else :title="currentCollection.name">
<template #title-outer:prepend>
<v-button rounded icon secondary :to="collectionsLink">
<v-button class="header-icon" rounded icon secondary :to="collectionsLink">
<v-icon :name="currentCollection.icon" />
</v-button>
</template>
@@ -230,13 +230,23 @@ export default defineComponent({
<style lang="scss" scoped>
.action-delete {
--v-button-background-color: var(--danger);
--v-button-background-color-hover: var(--danger-dark);
--v-button-background-color: var(--danger-25);
--v-button-color: var(--danger);
--v-button-background-color-hover: var(--danger-50);
--v-button-color-hover: var(--danger);
}
.action-batch {
--v-button-background-color: var(--warning);
--v-button-background-color-hover: var(--warning-150);
--v-button-background-color: var(--warning-25);
--v-button-color: var(--warning);
--v-button-background-color-hover: var(--warning-50);
--v-button-color-hover: var(--warning);
}
.header-icon.secondary {
--v-button-background-color: var(--background-normal);
--v-button-background-color-activated: var(--background-normal);
--v-button-background-color-hover: var(--background-normal-alt);
}
.layout {

View File

@@ -9,10 +9,17 @@
"
>
<template #title-outer:prepend>
<v-button v-if="collectionInfo.single" rounded icon secondary disabled>
<v-button
v-if="collectionInfo.single"
class="header-icon"
rounded
icon
secondary
disabled
>
<v-icon :name="collectionInfo.icon" />
</v-button>
<v-button v-else rounded icon secondary exact :to="backLink">
<v-button v-else class="header-icon" rounded icon secondary exact :to="backLink">
<v-icon name="arrow_back" />
</v-button>
</template>
@@ -235,8 +242,16 @@ export default defineComponent({
<style lang="scss" scoped>
.action-delete {
--v-button-background-color: var(--danger);
--v-button-background-color-hover: var(--danger-dark);
--v-button-background-color: var(--danger-25);
--v-button-color: var(--danger);
--v-button-background-color-hover: var(--danger-50);
--v-button-color-hover: var(--danger);
}
.header-icon.secondary {
--v-button-background-color: var(--background-normal);
--v-button-color-disabled: var(--foreground-normal);
--v-button-color-activated: var(--foreground-normal);
}
.v-form {

View File

@@ -1,7 +1,9 @@
<template>
<private-view class="collections-overview" :title="$tc('collection', 2)">
<template #title-outer:prepend>
<v-button rounded disabled icon secondary><v-icon name="box" /></v-button>
<v-button class="header-icon" rounded disabled icon secondary>
<v-icon name="box" />
</v-button>
</template>
<template #navigation>
@@ -65,6 +67,10 @@ export default defineComponent({
}
}
.header-icon {
--v-button-color-disabled: var(--foreground-normal);
}
.v-table {
padding: var(--content-padding);
padding-top: 0;

View File

@@ -76,9 +76,9 @@ export default defineComponent({
<style lang="scss" scoped>
.add-new {
--v-button-background-color: var(--primary-alt);
--v-button-background-color: var(--primary-25);
--v-button-color: var(--primary);
--v-button-background-color-hover: var(--primary);
--v-button-color-hover: var(--foreground-inverted);
--v-button-background-color-hover: var(--primary-50);
--v-button-color-hover: var(--primary);
}
</style>

View File

@@ -1,7 +1,7 @@
<template>
<private-view :title="$t('files')">
<template #title-outer:prepend>
<v-button rounded disabled icon secondary>
<v-button class="header-icon" rounded disabled icon secondary>
<v-icon name="folder" />
</v-button>
</template>
@@ -226,13 +226,21 @@ export default defineComponent({
<style lang="scss" scoped>
.action-delete {
--v-button-background-color: var(--danger);
--v-button-background-color-hover: var(--danger-dark);
--v-button-background-color: var(--danger-25);
--v-button-color: var(--danger);
--v-button-background-color-hover: var(--danger-50);
--v-button-color-hover: var(--danger);
}
.action-batch {
--v-button-background-color: var(--warning);
--v-button-background-color-hover: var(--warning-150);
--v-button-background-color: var(--warning-25);
--v-button-color: var(--warning);
--v-button-background-color-hover: var(--warning-50);
--v-button-color-hover: var(--warning);
}
.header-icon {
--v-button-color-disabled: var(--foreground-normal);
}
.layout {

View File

@@ -1,7 +1,7 @@
<template>
<private-view :title="$t('editing', { collection: $t('files') })">
<template #title-outer:prepend>
<v-button rounded icon secondary exact :to="breadcrumb[0].to">
<v-button class="header-icon" rounded icon secondary exact :to="breadcrumb[0].to">
<v-icon name="arrow_back" />
</v-button>
</template>
@@ -187,8 +187,14 @@ export default defineComponent({
<style lang="scss" scoped>
.action-delete {
--v-button-background-color: var(--danger);
--v-button-background-color-hover: var(--danger-dark);
--v-button-background-color: var(--danger-25);
--v-button-color: var(--danger);
--v-button-background-color-hover: var(--danger-50);
--v-button-color-hover: var(--danger);
}
.header-icon.secondary {
--v-button-background-color: var(--background-normal);
}
.v-form {

View File

@@ -234,6 +234,6 @@ export default defineComponent({
.header-icon {
--v-button-color-disabled: var(--warning);
--v-button-background-color-disabled: var(--warning-alt);
--v-button-background-color-disabled: var(--warning-25);
}
</style>

View File

@@ -179,11 +179,13 @@ export default defineComponent({
.header-icon {
--v-button-color-disabled: var(--warning);
--v-button-background-color-disabled: var(--warning-alt);
--v-button-background-color-disabled: var(--warning-25);
}
.action-delete {
--v-button-background-color: var(--danger);
--v-button-background-color-hover: var(--danger-dark);
--v-button-background-color: var(--danger-25);
--v-button-color: var(--danger);
--v-button-background-color-hover: var(--danger-50);
--v-button-color-hover: var(--danger);
}
</style>

View File

@@ -65,6 +65,6 @@ export default defineComponent({
.header-icon {
--v-button-color-disabled: var(--warning);
--v-button-background-color-disabled: var(--warning-alt);
--v-button-background-color-disabled: var(--warning-25);
}
</style>

View File

@@ -163,13 +163,17 @@ export default defineComponent({
<style lang="scss" scoped>
.action-delete {
--v-button-background-color: var(--danger);
--v-button-background-color-hover: var(--danger-dark);
--v-button-background-color: var(--danger-25);
--v-button-color: var(--danger);
--v-button-background-color-hover: var(--danger-50);
--v-button-color-hover: var(--danger);
}
.action-batch {
--v-button-background-color: var(--warning);
--v-button-background-color-hover: var(--warning-150);
--v-button-background-color: var(--warning-25);
--v-button-color: var(--warning);
--v-button-background-color-hover: var(--warning-50);
--v-button-color-hover: var(--warning);
}
.layout {
@@ -178,6 +182,6 @@ export default defineComponent({
.header-icon {
--v-button-color-disabled: var(--warning);
--v-button-background-color-disabled: var(--warning-alt);
--v-button-background-color-disabled: var(--warning-25);
}
</style>

View File

@@ -1,7 +1,7 @@
<template>
<private-view :title="$t('editing', { collection: $t('roles') })">
<template #title-outer:prepend>
<v-button class="header-icon" rounded icon secondary exact :to="breadcrumb[0].to">
<v-button class="header-icon" rounded icon exact :to="breadcrumb[0].to">
<v-icon name="arrow_back" />
</v-button>
</template>
@@ -197,8 +197,10 @@ export default defineComponent({
<style lang="scss" scoped>
.action-delete {
--v-button-background-color: var(--danger);
--v-button-background-color-hover: var(--danger-dark);
--v-button-background-color: var(--danger-25);
--v-button-color: var(--danger);
--v-button-background-color-hover: var(--danger-50);
--v-button-color-hover: var(--danger);
}
.roles {
@@ -206,8 +208,10 @@ export default defineComponent({
}
.header-icon {
--v-button-color-disabled: var(--warning);
--v-button-background-color-disabled: var(--warning-alt);
--v-button-background-color: var(--warning-25);
--v-button-color: var(--warning);
--v-button-background-color-hover: var(--warning-50);
--v-button-color-hover: var(--warning);
}
.title {

View File

@@ -163,13 +163,17 @@ export default defineComponent({
<style lang="scss" scoped>
.action-delete {
--v-button-background-color: var(--danger);
--v-button-background-color-hover: var(--danger-dark);
--v-button-background-color: var(--danger-25);
--v-button-color: var(--danger);
--v-button-background-color-hover: var(--danger-50);
--v-button-color-hover: var(--danger);
}
.action-batch {
--v-button-background-color: var(--warning);
--v-button-background-color-hover: var(--warning-150);
--v-button-background-color: var(--warning-25);
--v-button-color: var(--warning);
--v-button-background-color-hover: var(--warning-50);
--v-button-color-hover: var(--warning);
}
.layout {
@@ -178,6 +182,6 @@ export default defineComponent({
.header-icon {
--v-button-color-disabled: var(--warning);
--v-button-background-color-disabled: var(--warning-alt);
--v-button-background-color-disabled: var(--warning-25);
}
</style>

View File

@@ -1,7 +1,7 @@
<template>
<private-view :title="$t('editing', { collection: $t('webhooks') })">
<template #title-outer:prepend>
<v-button class="header-icon" rounded icon secondary exact :to="breadcrumb[0].to">
<v-button class="header-icon" rounded icon exact :to="breadcrumb[0].to">
<v-icon name="arrow_back" />
</v-button>
</template>
@@ -187,8 +187,10 @@ export default defineComponent({
<style lang="scss" scoped>
.action-delete {
--v-button-background-color: var(--danger);
--v-button-background-color-hover: var(--danger-dark);
--v-button-background-color: var(--danger-25);
--v-button-color: var(--danger);
--v-button-background-color-hover: var(--danger-50);
--v-button-color-hover: var(--danger);
}
.v-form {
@@ -196,7 +198,9 @@ export default defineComponent({
}
.header-icon {
--v-button-color-disabled: var(--warning);
--v-button-background-color-disabled: var(--warning-alt);
--v-button-background-color: var(--warning-25);
--v-button-color: var(--warning);
--v-button-background-color-hover: var(--warning-50);
--v-button-color-hover: var(--warning);
}
</style>

View File

@@ -1,7 +1,7 @@
<template>
<private-view :title="$t('users')">
<template #title-outer:prepend>
<v-button rounded disabled icon secondary>
<v-button class="header-icon" rounded disabled icon secondary>
<v-icon name="people" />
</v-button>
</template>
@@ -223,13 +223,21 @@ export default defineComponent({
<style lang="scss" scoped>
.action-delete {
--v-button-background-color: var(--danger);
--v-button-background-color-hover: var(--danger-dark);
--v-button-background-color: var(--danger-25);
--v-button-color: var(--danger);
--v-button-background-color-hover: var(--danger-50);
--v-button-color-hover: var(--danger);
}
.action-batch {
--v-button-background-color: var(--warning);
--v-button-background-color-hover: var(--warning-150);
--v-button-background-color: var(--warning-25);
--v-button-color: var(--warning);
--v-button-background-color-hover: var(--warning-50);
--v-button-color-hover: var(--warning);
}
.header-icon {
--v-button-color-disabled: var(--foreground-normal);
}
.layout {

View File

@@ -1,7 +1,7 @@
<template>
<private-view :title="$t('editing', { collection: $t('users') })">
<template #title-outer:prepend>
<v-button rounded icon secondary exact :to="breadcrumb[0].to">
<v-button class="header-icon" rounded icon secondary exact :to="breadcrumb[0].to">
<v-icon name="arrow_back" />
</v-button>
</template>
@@ -187,8 +187,14 @@ export default defineComponent({
<style lang="scss" scoped>
.action-delete {
--v-button-background-color: var(--danger);
--v-button-background-color-hover: var(--danger-dark);
--v-button-background-color: var(--danger-25);
--v-button-color: var(--danger);
--v-button-background-color-hover: var(--danger-50);
--v-button-color-hover: var(--danger);
}
.header-icon.secondary {
--v-button-background-color: var(--background-normal);
}
.v-form {

View File

@@ -1,5 +1,5 @@
<template>
<drawer-detail :icon="currentLayout.icon" :title="$t('view_type')">
<drawer-detail :icon="currentLayout.icon" :title="$t('layout_type')">
<v-select :items="layouts" item-text="name" item-value="id" v-model="viewType" full-width />
</drawer-detail>
</template>

View File

@@ -2,7 +2,15 @@
<v-hover class="module-bar-avatar" v-slot="{ hover }">
<v-dialog v-model="signOutActive">
<template #activator="{ on }">
<v-button @click="on" tile icon x-large :class="{ show: hover }" class="sign-out">
<v-button
@click="on"
tile
icon
x-large
:class="{ show: hover }"
class="sign-out"
v-tooltip.right="$t('sign_out')"
>
<v-icon name="logout" />
</v-button>
</template>
@@ -19,7 +27,7 @@
</v-dialog>
<router-link :to="userProfileLink">
<v-avatar tile x-large>
<v-avatar tile x-large v-tooltip.right="userFullName">
<img v-if="avatarURL" :src="avatarURL" :alt="userFullName" />
<v-icon v-else name="account_circle" />
</v-avatar>
@@ -80,6 +88,9 @@ export default defineComponent({
}
.sign-out {
--v-button-background-color: var(--module-background-alt);
--v-button-background-color-hover: var(--warning);
position: absolute;
top: 0;
left: 0;

View File

@@ -93,8 +93,10 @@ export default defineComponent({
.icon {
color: var(--foreground-subdued);
transform: rotate(0deg);
opacity: 0;
transition: opacity var(--fast) var(--transition);
transition: opacity var(--fast) var(--transition),
transform var(--medium) var(--transition);
}
&:hover .icon {
@@ -103,6 +105,7 @@ export default defineComponent({
}
&.active .toggle .icon {
transform: rotate(180deg);
opacity: 1;
}
@@ -116,7 +119,7 @@ export default defineComponent({
padding: 20px;
padding-top: 0;
background-color: var(--background-normal-alt);
box-shadow: 0px 4px 12px 0px rgba(38, 50, 56, 0.1);
box-shadow: 0px 8px 12px 0px rgba(38, 50, 56, 0.25);
}
.v-divider {

View File

@@ -357,7 +357,7 @@ export default defineComponent({
}
@include breakpoint(small) {
--content-padding: 32px 32px 160px 32px;
--content-padding: 32px 32px 132px 32px;
}
}
</style>