vue3-spinners-css
Version:
Spinners for Vue 3. with exports css
35 lines (30 loc) • 690 B
text/typescript
import { outdent } from 'outdent';
import styleInject from 'style-inject';
import type { ExtractPropTypes } from 'vue';
import { computed } from 'vue';
export const spinnerProps = {
size: {
type: [Number, String],
default: '1em',
},
color: String,
};
let isStyleInjected = false;
export default function useSpinner(
props: ExtractPropTypes<typeof spinnerProps>
) {
if (!isStyleInjected) {
const spinnerCSS = outdent`
.vue-spinner {
vertical-align: middle;
}
`;
styleInject(spinnerCSS);
isStyleInjected = true;
}
return {
cSize: computed(() => props.size),
classes: computed(() => 'vue-spinner'),
style: computed(() => ({ color: props.color })),
};
}