CSC Design System next
VueFlavour Vue React Angular TypeScript PrimaryCSC UI ColorsPrimarySecondaryAccentCustom ColorsRedOrangeGreenBluePurplePink
Guides Getting started Customization Data visualization Migration guide Componentsc-accordionc-alertc-autocompletec-badgec-buttonc-button-groupc-cardc-checkboxc-csc-logoc-data-tablec-dividerc-iconc-icon-buttonc-inputc-linkc-listc-loaderc-login-buttonsc-login-cardc-mainc-menuc-messagec-modalc-navigation-buttonc-otp-inputc-pagec-paginationc-popoverc-progress-barc-progress-circlec-radio-groupc-selectc-side-navigationc-sliderc-spinnerc-statusc-stepsc-switchc-tablec-tabsc-tagsc-text-fieldc-toastsc-toolbarc-tooltip

<c-list>

Examples

Basic
Vue React Angular TypeScript
<template>
  <div>
    <c-list bordered>
      <c-list-item
        v-for="item in items"
        :key="item.label"
        ripple
        :active.prop="selected === item.label"
        @click="selected = item.label"
      >
        <c-icon slot="pre" :path="item.icon" />

        <c-list-item-title>{{ item.label }}</c-list-item-title>
      </c-list-item>
    </c-list>
  </div>
</template>

<script setup lang="ts">
import { ref } from 'vue';

import { mdiAccount, mdiBell, mdiCog } from '@mdi/js';

const items = [
  { icon: mdiAccount, label: 'Profile' },
  { icon: mdiBell, label: 'Notifications' },
  { icon: mdiCog, label: 'Settings' },
];

const selected = ref('Profile');
</script>
Basic · c-list-item
Vue React Angular TypeScript
<template>
  <div>
    <c-list>
      <c-list-item hoverable>
        <c-icon slot="pre" :path="mdiAccount" />

        <c-list-item-title>Profile</c-list-item-title>
      </c-list-item>

      <c-list-item active>
        <c-icon slot="pre" :path="mdiBell" />

        <c-list-item-title>Notifications</c-list-item-title>

        <c-icon slot="post" :path="mdiChevronRight" />
      </c-list-item>

      <c-list-item disabled>
        <c-icon slot="pre" :path="mdiCog" />

        <c-list-item-title>Settings</c-list-item-title>
      </c-list-item>
    </c-list>
  </div>
</template>

<script setup lang="ts">
import { mdiAccount, mdiBell, mdiChevronRight, mdiCog } from '@mdi/js';
</script>
Basic · c-list-item-title
Vue React Angular TypeScript
<template>
  <div>
    <c-list>
      <c-list-item>
        <c-list-item-title>Profile</c-list-item-title>
      </c-list-item>

      <c-list-item active>
        <c-list-item-title>Notifications</c-list-item-title>
      </c-list-item>

      <c-list-item>
        <c-list-item-title>Settings</c-list-item-title>
      </c-list-item>
    </c-list>
  </div>
</template>

API reference

<c-list>

Properties

PropertyAttributeTypeDefaultDescription
borderedborderedbooleanfalseShow border arount the list items
disableddisabledbooleanfalseDisable the list

Slots

SlotDescription
defaultc-list-item components of the list

CSS parts

Style from outside with c-list::part(name) — parts are the library's only styling customization API.

PartDescription
rootThe grid container laying out the list items

<c-list-item>

Properties

PropertyAttributeTypeDefaultDescription
activeactivebooleanfalseSet the item active
disableddisabledbooleanfalseDisable the item
disabledByParentdisabled-by-parentbooleanfalseDisabled by the parent list
hoverablehoverablebooleanfalseDisplay background color on hover
hrefhrefstring''Hyperlink url
rippleripplebooleanfalseAdd ripple effect to the item
targettargetstring'_blank'Hyperlink target

Slots

SlotDescription
preLeading content (e.g. an icon) shown before the item's main content
defaultMain content of the item, e.g. a c-list-item-title
postTrailing content (e.g. an icon or action) shown after the item's main content

CSS parts

Style from outside with c-list-item::part(name) — parts are the library's only styling customization API.

PartDescription
rootThe item's content box — a `<div>`, or an `<a>` when `href` is set

<c-list-item-title>

Properties

PropertyAttributeTypeDefaultDescription
activeactivebooleanfalseSet the title active

Slots

SlotDescription
defaultThe title text of the list item

CSS parts

Style from outside with c-list-item-title::part(name) — parts are the library's only styling customization API.

PartDescription
rootThe element wrapping the title text