Files
directus/src/components/v-skeleton-loader/v-skeleton-loader.vue
Rijk van Zanten feaafe6440 109 tiny tweaks (#574)
* no cursor when disabled

* consistent disabled styling

* divider icon alignment

* don’t show last item’s border

* notifications spacing

* status placeholder

* default status icon placeholder

* fix textarea focus style

* tags styling

* proper tags padding when empty

* proper input number step hovers

* show background color

* Fix data-model collections overview name class

* Don't use display template for batch mode

* Fix headline being hidden

* Use formatted name fo bookmarks breadcrumb

* Move drawer open to app store

* Fix tests

* slider value style

* Add comments to users/files

* Make comments selectable

* Move window width drawer state to app parent

* Fix private user condition

* Allow relationships to system collections

* Refresh revisions drawer detail on save and stay

* Add disabled support to m2o / user

* Center v-infos

* Hide default drag image

* Ellipsis all the things

* Use icon interface for fallback icon

* Render icons grid based on available space

* Fix ellipsis on cardsl

* fix batch edit checkbox styling

* Let render template ellipsis its raw values

* Fix render template

* Default cropping to current aspect ratio

* missing translation

* secondary button style

so sorry, rijk… it’s the only one (promise)

* Add image dimensions, add drag mode

* track the apology

* no elipses on titles

* Add cancel crop button

* Only show new dimensions on crop

* Inform file preview if it's in modal

* preview styling

* Install pretty-bytes

* Show file info in drawer sidebar

* Use outline icons in drawer sidebar

* don’t confuse null with subdued text value

* edge-case justification

* Show character count remaining

* Fix storybook + typing error

* Add length constraints to color

* Watch value prop

* Fix tags

* Open icon on icon click

* Fix overflow of title

* Show batch editing x items

* Fix edits emptying input on cancel

* Don't count locked filters in no results message

* simple batch edit title

* Fix headline being invisible

* Add no-options notice to interfaces/displays

* Use existing collection preset in browse modal

* Don't emit null on invalid hex

* Use correct titles in modal-detail

* style char remaining

* file info sidebar styling

* Another attempt at trying to make render template behave in any contetx

* Show remaining char count on focus only

* Remove fade, prevent jumping

* Render skeleton loader in correct height

* Fix o2m not fetching items

* Pass collection/field to render display in o2m

* Add no-items message in table

* Add default state to v-table

* Allow ISO8601 in datetime interface

* Title format selected icon name

* avoid blinking bg on load

* align characters remaining

* Default to tabular in browse modal

* Add disabled string

* Add center + make gray default notice

* Add disabled-no-value state

* Export getItems

* Expose refresh method on layouts

* Fix (batch) deletion from browse)

* Fix interface disabled on batch

* Add interface not found notice

* Add default label (active) for toggle interface

* Use options / prop default for toggle

* Support ISO 8601 in datetime display

* Render edit form in form width

* Fix deselecting newly selected item

* Undo all selection when closing browse modal

* Fix deselecting newly selected item

* wider divider

* update webhooks table

* Fix checkbox label disappearing

* Fix tests.. by removing them

Co-authored-by: Ben Haynes <ben@rngr.org>
2020-05-15 18:44:21 -04:00

126 lines
1.9 KiB
Vue

<template>
<div :class="type" class="v-skeleton-loader">
<template v-if="type === 'list-item-icon'">
<div class="icon" />
<div class="text" />
</template>
</div>
</template>
<script lang="ts">
import { defineComponent } from '@vue/composition-api';
export default defineComponent({
props: {
type: {
type: String,
default: 'input',
},
},
});
</script>
<style>
body {
--v-skeleton-loader-color: var(--background-page);
--v-skeleton-loader-background-color: var(--background-subdued);
}
</style>
<style lang="scss" scoped>
.v-skeleton-loader {
position: relative;
overflow: hidden;
cursor: progress;
}
@mixin loader {
position: relative;
overflow: hidden;
background-color: var(--v-skeleton-loader-background-color);
&::after {
position: absolute;
top: 0;
right: 0;
left: 0;
z-index: 1;
height: 100%;
background: linear-gradient(
90deg,
transparent,
var(--v-skeleton-loader-color),
transparent
);
transform: translateX(-100%);
opacity: 0.5;
animation: loading 1.5s infinite;
content: '';
}
@keyframes loading {
100% {
transform: translateX(100%);
}
}
}
.input,
.input-tall {
width: 100%;
height: var(--input-height);
border: var(--border-width) solid var(--v-skeleton-loader-background-color);
border-radius: var(--border-radius);
@include loader;
}
.input-tall {
height: var(--input-height-tall);
}
.text {
flex-grow: 1;
height: 12px;
border-radius: 6px;
@include loader;
}
.list-item-icon {
display: flex;
align-items: center;
width: 100%;
height: 46px;
.icon {
flex-shrink: 0;
width: 24px;
height: 24px;
margin-right: 12px;
border-radius: 50%;
@include loader;
}
.text {
flex-grow: 1;
height: 12px;
border-radius: 6px;
@include loader;
}
}
.fade-enter-active,
.fade-leave-active {
transition: opacity var(--medium) var(--transition);
}
.fade-enter,
.fade-leave-to {
position: absolute;
opacity: 0;
}
</style>