Skip to content

Configurable Card ​

ue-configurable-card is a multi-column card layout engine. It splits an items object into equal-width segments separated by dividers, with an optional actions column appended at the end. Each segment renders as ue-property-list by default and can be overridden with a named slot.

Usage ​

html
<ue-configurable-card
  title="Order Summary"
  :items="{ info: orderInfo, shipping: shippingInfo }"
  :actions="[{ icon: 'mdi-pencil', color: 'primary', onClick: editOrder }]"
/>

Props ​

PropTypeDefaultDescription
itemsObject|ArrayrequiredSegments to render. Each key/index becomes one column
titleString''Card title
titleColorString—Title text color
actionsArray[]Action button definitions appended as the last column
noActionsBooleanfalseSuppress the actions column even if actions is non-empty
hideSeparatorBooleanfalseRemove vertical dividers between columns
maxSegmentsNumbernullCap the number of visible segments (1–12)
colRatiosArray[]Flex ratios for each column, e.g. [2, 1, 1]
columnStylesObject{}Inline style overrides keyed by column index, e.g. { 0: 'flex-basis: 40%' }
columnClassesObject{}CSS class overrides keyed by column index
colPaddingXNumber|String2Horizontal padding (Vuetify scale) for all columns
colPaddingYNumber|String—Vertical padding for all columns
rowMarginYNumber|String4Vertical margin of the columns row
rowMarginXNumber|String—Horizontal margin of the columns row
rowMinHeightStringnullMinimum height of the row element
alignCenterColumnsBooleanfalseVertically center the content inside each column
justifyCenterColumnsBooleanfalseHorizontally center the content inside non-first columns
actionIconSizeString'medium'Size of action icon buttons
actionIconMinWidthNumber44Minimum width (px) of action buttons
actionIconMinHeightNumber44Minimum height (px) of action buttons
mobileBreakpointString'md'Breakpoint below which columns stack vertically
mobileRowGapNumber|String4Gap between stacked columns on mobile
mobileColPaddingXNumber|String0Horizontal padding per column on mobile
mobileColPaddingYNumber|String0Vertical padding per column on mobile

Slots ​

SlotScopeDescription
segment.1, segment.2, …{data, actions, actionProps}Override content for column N (1-based)
segment.actions{data, actions, actionProps}Override the actions column
title—Replace the entire title row

Segment Data Format ​

Each segment value can be:

  • Object — rendered as ue-property-list
  • Array — each element becomes a property-list row (single-value pairs)
  • Primitive — rendered via ue-dynamic-component-renderer

Examples ​

html
<!-- 3-column contact card -->
<ue-configurable-card
  title="Contact"
  :items="{
    personal: { Name: 'Alice', Age: 32 },
    contact:  { Email: '[email protected]', Phone: '+1 555 000' },
    address:  { City: 'Istanbul', Country: 'Turkey' },
  }"
  :col-ratios="[2, 2, 1]"
/>

<!-- Custom slot override -->
<ue-configurable-card :items="cardData" :actions="rowActions">
  <template #segment.1="{ data }">
    <div class="d-flex flex-column">
      <span class="font-weight-bold">{{ data.name }}</span>
      <span class="text-caption text-grey">{{ data.role }}</span>
    </div>
  </template>
</ue-configurable-card>