vue3-radial-list
Vue3 + TypeScript Radial list component
725
| Install | |
|---|---|
npm install vue3-radial-list |
|
| Latest Version: | 0.1.0 |
| Vue: | 3 |
| Last Updated: | Oct 26, 2025 |
| Links: | GitHub · npm |
Maintainer: peterbernstein
Vue3RadialList 
A Vue3Typescript component that displays a list of items in a circular layout.
Features
- Circular arrangement of list items
- Customizable radius and item size
- Nested RadialLists
- Responsive design
Installation
You can install RadialList via npm:
npm install vue3-radial-list
Usage
Import the RadialList component and use it in your Vue3 application:
Import RadialList component
import {RadialList} from "vue3-radial-list";
import type {RadialItem} from "vue3-radial-list";
import "vue3-radial-list/dist/vue3-radial-list.css"
Example Radial List Menu
<template>
<div class="menu-wrapper">
<RadialList :items="outerItems"
:item-size="80"
@select="onSelect">
<RadialList :items="innerItems" @select="onSelect" :item-size="120">
</RadialList>
</RadialList>
</div>
</template>
<script setup lang="ts">
import {RadialList} from "vue3-radial-list";
import type {RadialItem} from "vue3-radial-list";
import "vue3-radial-list/dist/vue3-radial-list.css"
interface Item {
id: string
label: string
icon: string
}
const outerItems: Item[] = [
{ id: 'home', label: 'Home', icon: 'π ' },
{ id: 'search', label: 'Search', icon: 'π' },
{ id: 'settings', label: 'Settings', icon: 'βοΈ' },
{ id: 'help', label: 'Help', icon: 'β' },
{ id: 'logout', label: 'Logout', icon: 'πͺ' },
{ id: 'info', label: 'Info', icon: 'βΉοΈ' }
]
const innerItems: Item[] = [
{ id: 'profile', label: 'Profile', icon: 'π€' },
{ id: 'search', label: 'Search', icon: 'π' },
{ id: 'settings', label: 'Settings', icon: 'βοΈ' },
{ id: 'camera', label: 'Camera', icon: 'π·' },
{ id: 'music', label: 'Music', icon: 'π΅' },
{ id: 'help', label: 'Help', icon: 'β' },
{ id: 'chat', label: 'Chat', icon: 'π¬' }
]
function onSelect(payload:{ item: RadialItem, index: number, event: Event }) {
console.log(`Clicked on ${payload.item.label}`)
}
</script>
<style scoped>
.menu-wrapper {
width: 100%;
height: 100vh;
display: flex;
justify-content: center;
align-items: center;
background: radial-gradient(circle at center, #fdfdfd, #eaeaea);
}
</style>
Related Packages
@vuecs/list
Compound list components for vuecs (List / Header / Body / Item / ItemText / Ite...
6,828
4
Version History
| Version | Released | Vue | License |
|---|---|---|---|
| 0.1.0 | ^3.0.0 | ||
| 0.0.1 | ^3.0.0 |