vue-mac-keyboard
Version:
Macbook computer keyboard style for VueJS component.
158 lines (105 loc) • 3.15 kB
Markdown
[](https://github.com/ntnyq/vue-mac-keyboard/actions)
[](https://www.npmjs.com/package/vue-mac-keyboard)
[](https://www.npmjs.com/package/vue-mac-keyboard)
[](https://codecov.io/github/ntnyq/vue-mac-keyboard)
[](https://github.com/ntnyq/vue-mac-keyboard/blob/main/LICENSE)
> ⌨️ Macbook computer keyboard style for VueJS component.
[](https://vue-mac-keyboard.ntnyq.com)
**npm**:
```bash
npm i vue-mac-keyboard
```
**yarn**
```bash
yarn add vue-mac-keyboard
```
**pnpm**
```bash
pnpm add vue-mac-keyboard
```

```vue
<script lang="ts" setup>
import { ref } from 'vue'
import { MacKeyboard } from 'vue-mac-keyboard'
import 'vue-mac-keyboard/style'
import type { KeycodeData } from 'vue-mac-keyboard'
const keycode = ref([])
</script>
<template>
<MacKeyboard v-model:keycode="keycode" />
</template>
```
```ts
import { createApp } from 'vue'
import MacKeyboard from 'vue-mac-keyboard'
import App from '@/App.vue'
import 'vue-mac-keyboard/style'
const app = createApp(App)
app.use(MacKeyboard)
app.mount('#app')
```
Use it in component:
```vue
<script lang="ts" setup>
import { ref } from 'vue'
import type { KeycodeData } from 'vue-mac-keyboard'
const keycode = ref([])
function onKeycodeDown(keycodeData: KeycodeData) {
keycode.value = [keycodeData.keycode]
}
function onKeycodeUp(keycodeData: KeycodeData) {
keycode.value = []
}
</script>
<template>
<MacKeyboard
@keycode-down="onKeycodeDown"
@keycode-up="onKeycodeUp"
:keycode="keycode"
/>
</template>
```
- **type**: `number[]`
- **default**: `[]`
Highlighted keys.
See **[keycodeDataList](https://github.com/ntnyq/vue-mac-keyboard/blob/main/src/constants.ts)** for all available keycodes.
- **type**: `boolean`
- **default**: `undefined`
Disable the keyboard from interacting.
- **type**: `(keycodeData: KeycodeData) => void`
Triggered when a keycode is pressed.
- **type**: `(keycodeData: KeycodeData) => void`
Triggered when a keycode is released.
```ts
interface KeycodeData {
/**
* keycode of the key
*/
keycode: number
/**
* key names, used for rendering UI
*/
name: string[]
}
```
- [uiwjs/react-mac-keyboard](https://github.com/uiwjs/react-mac-keyboard) created by [jaywcjlove](https://github.com/jaywcjlove)
[](https://github.com/ntnyq/vue-mac-keyboard/releases)
[](./LICENSE) License © 2024-PRESENT [ntnyq](https://github.com/ntnyq)