made-vue-blades
MADE Vue - Blades
A Vue 3 blade layout component, a UI pattern most commonly seen in the Microsoft Azure portal.
Usage
To customise the blade layout, you'll want to import the scss styling:
import "made-vue-blades/styles.scss";
In your main file, you can import the component:
import { createApp } from "vue";
import App from "./App.vue";
import Blades from "made-vue-blades";
const app = createApp(App);
...
app.use(Blades);
...
app.mount("#app");
You can then reference the blade layout component in your app:
<template>
<m-blade-layout :blades="blades">
<template v-for="blade in blades" v-slot:[blade.key] :key="blade.key">
<div>
<p>This is some content from {{ blade.title }}</p>
<button class="made-blade-button" @click="onCreateBlade">
Create another blade
</button>
</div>
</template>
</m-blade-layout>
</template>
<script lang="ts">
import { defineComponent } from "vue";
export default defineComponent({
name: "App",
data() {
return {
blades: [
{
key: "blade1",
title: "Blade 1",
canClose: false,
},
],
};
},
watch: {},
methods: {
onCreateBlade() {
var currentIndex = this.blades.length;
this.blades.push({
key: "blade" + (currentIndex + 1),
title: "Blade " + (currentIndex + 1),
canClose: true,
});
},
},
});
</script>
Dependencies
Dependencies
@babel/core: ^7.17.10@types/jest: ^27.4.1@types/node: ^17.0.30@vitejs/plugin-vue: ^2.3.1@vue/compiler-sfc: ^3.2.33autoprefixer: ^10.4.5babel-loader: ^8.2.5jest: ^27.5.1postcss: ^8.4.13rollup-plugin-copy: ^3.4.0sass: ^1.51.0tailwindcss: ^3.0.24ts-jest: ^27.1.4typescript: ^4.6.4vite: ^2.9.6vite-plugin-dts: ^1.1.1vue-loader: ^17.0.0vue-tsc: ^0.34.11