# BaseImageBox
A component with the primary purpose to display images in responsive boxes but also allowing for text only
# Props
| Prop name | Description | Type | Values | Default |
|---|---|---|---|---|
| title | The title of the item in question (max 2 lines), also used as img alt text | string | - | 'No title' |
| altTitle | specify a separate title to display on title hover and for the image alt text. Useful for example if interpretTextAsHtml isset true and the title contains HTML | string | - | '' |
| subtext | Text displayed directly below title (max two lines; max 3 lines with title) | string | - | '' |
| altSubtext | specify a separate subtext to display on subtext hover. Useful for example if interpretTextAsHtml is set true and the subtext contains HTML | string | - | '' |
| showTitle | should the title be displayed or box only display the image | boolean | - | true |
| showTitleOnHover | should the title be displayed on box hover | boolean | - | false |
| titleRows | define the number of rows before the title is truncated with ... auto: If subtext is defined, the title is displayed in one row, otherwise in two rows. 1: Title is displayed in one row. | string|number | auto, 1 | 'auto' |
| imageUrl | define a url to a single image data variants to render a single image using src or srcset for a responsive image:src: 'path'srcset: { '640w': 'path' } | string|object | - | null |
| images | define up to 4 image url to be displayed in a grid array variants to render a single image using src or srcset for a responsive image:src: ['path']srcset: [{ '640w': 'path' }] | array | - | [] |
| imageShadow | display shadow overlays at the top and bottom of the image to make text easier to read | boolean | - | true |
| imageFooterMargin | define the margin (left, bottom, right) between the image footer and the image | string | large, small | 'large' |
| description | descriptive element displayed at bottom of box (e.g. item type like "Bilderserie") | string | - | null |
| additional | descriptive element displayed at bottom of box (e.g. item type like "Bilderserie") | string | - | null |
| icon | set optional icon e.g. for items without image | string | - | '' |
| iconSize | set optional icon size | string | small, medium, large, xlarge, xxlarge | 'xxlarge' |
| playIcon | display play icon e.g. for Video, Audio files | boolean | - | false |
| selectable | determines if the box should be selectable and the checkbox is displayed | boolean | - | false |
| draggable | set prop true if box can be dragged - used solely for styling purposes | boolean | - | false |
| selected | set select status (checkbox checked) from outside | boolean | - | false |
| boxSize | specify the size of the box | object | - | { width: 'auto', height: 'auto' } |
| boxText | specify any text that should be displayed instead of an image; each array element on new line | array | - | [] |
| lazyload | specify lazy image loading | boolean | - | false |
| imageFirst | specify position of image | boolean | - | false |
| centerHeader | specify if header should be centered horizontally (aligned left otherwise) | boolean | - | false |
| renderElementAs | define html element that should be rendered | string | - | 'div' |
| linkTo | if element is rendered as vue link component, specify a value for the to attributecan either be a string or a vue-router Location object (= object with path propertyand optional params or query object)(this needs vue-router) | string|object | - | '' |
| interpretTextAsHtml | if necessary box text (title, subtext, boxText) canbe rendered as html tip: do not forget to set prop altTitle and/or altSubtext if thetitle text or subtext contains html - otherwise the complete html will be displayed on text hover and for image alt text caveat: setting this variable true can lead to XSS attacks. Only usethis prop on trusted content and never on user-provided content. | boolean | - | false |
# Events
| Event name | Properties | Description |
|---|---|---|
| select-triggered | undefined Boolean - was box selected | event triggered when box is selectable and clicked upon |
| clicked | event triggered when selectable is false and box is clicked |
# Slots
| Name | Description | Bindings |
|---|---|---|
| title-right | create custom content (e.g. additional text or icon) right of the title | |
| icon | create custom content (e.g. folder icon) | |
| text | to display more advanced text - if you use this please specify the ref attribute with boxTextInner that has the line-height css attribute set - so the text display height can be calculated correctly! | |
| footer-left | create custom content (e.g. featured icon for files) left of text | |
| footer-right | create custom content (e.g. published icon for files) left of text |
# Demo
A variety of possibilities with image box