feat: add possibility to change image size at text image element
This commit is contained in:
@@ -2,7 +2,6 @@
|
||||
margin: 2rem 0;
|
||||
}
|
||||
|
||||
/* Mobile-first: column layout by default */
|
||||
.textimage-container {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
@@ -13,32 +12,48 @@
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.textimage-header {
|
||||
font-size: 1.5rem;
|
||||
font-weight: bold;
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
||||
.textimage-text {
|
||||
font-size: 1rem;
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
.textimage-image-wrapper {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.textimage-picture {
|
||||
display: block;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.textimage-image {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
border-radius: 0.5rem;
|
||||
display: block;
|
||||
}
|
||||
|
||||
/* Image positions: 25 = left, 26 = right
|
||||
On larger screens, adjust the layout */
|
||||
/* Image positions: 25 = left, 26 = right */
|
||||
.textimage-container.image-pos-25 {
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.textimage-container.image-pos-26 {
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
/* Size classes apply at all viewports */
|
||||
.textimage-image-wrapper.size-25 .textimage-picture {
|
||||
max-width: 300px;
|
||||
}
|
||||
|
||||
.textimage-image-wrapper.size-50 .textimage-picture {
|
||||
max-width: 600px;
|
||||
}
|
||||
|
||||
/* On larger screens, arrange horizontally for image position settings */
|
||||
@media (min-width: 768px) {
|
||||
.textimage-container.image-pos-25 {
|
||||
flex-direction: row;
|
||||
@@ -48,8 +63,7 @@
|
||||
flex-direction: row-reverse;
|
||||
}
|
||||
|
||||
.textimage-wrapper,
|
||||
.textimage-image-wrapper {
|
||||
flex: 1 1 50%;
|
||||
.textimage-wrapper {
|
||||
flex: 1;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
name: cloonar/textimage
|
||||
typeName: cloonar_textimage
|
||||
group: default
|
||||
prefixFields: true
|
||||
prefixType: full
|
||||
prefixFields: false
|
||||
fields:
|
||||
- identifier: header
|
||||
useExistingField: true
|
||||
- identifier: subheader
|
||||
useExistingField: true
|
||||
- identifier: bodytext
|
||||
type: Textarea
|
||||
enableRichtext: true
|
||||
@@ -17,3 +18,12 @@ fields:
|
||||
useExistingField: true
|
||||
- identifier: imageorient
|
||||
useExistingField: true
|
||||
- identifier: imagesize
|
||||
type: Select
|
||||
renderType: selectSingle
|
||||
default: 2
|
||||
items:
|
||||
- label: 25%
|
||||
value: 1
|
||||
- label: 50%
|
||||
value: 2
|
||||
|
||||
@@ -1,15 +1,24 @@
|
||||
<f:layout name="Default" />
|
||||
|
||||
<f:section name="Header" />
|
||||
<f:section name="Header"></f:section>
|
||||
<f:section name="Main">
|
||||
<f:asset.css identifier="CBTextImage" href="{cb:assetPath()}/frontend.css" />
|
||||
|
||||
<!-- Determine size class based on imagesize field -->
|
||||
<f:variable name="sizeClass" value="" />
|
||||
<f:if condition="{data.imagesize} == 1">
|
||||
<f:then><f:variable name="sizeClass" value="size-25" /></f:then>
|
||||
</f:if>
|
||||
<f:if condition="{data.imagesize} == 2">
|
||||
<f:then><f:variable name="sizeClass" value="size-50" /></f:then>
|
||||
</f:if>
|
||||
|
||||
<div class="textimage-container image-pos-{data.imageorient}">
|
||||
<div class="textimage-image-wrapper">
|
||||
<div class="textimage-image-wrapper {sizeClass}">
|
||||
<f:if condition="{data.image}">
|
||||
<f:then>
|
||||
<picture>
|
||||
<source
|
||||
<picture class="textimage-picture">
|
||||
<source
|
||||
srcset="
|
||||
{f:uri.image(image:data.image.0, width:'320c', cropVariant:'default')} 320w,
|
||||
{f:uri.image(image:data.image.0, width:'768c', cropVariant:'default')} 768w,
|
||||
@@ -17,13 +26,13 @@
|
||||
sizes="(max-width: 320px) 90vw,
|
||||
(max-width: 768px) 600px,
|
||||
600px" />
|
||||
<f:image
|
||||
image="{data.image.0}"
|
||||
treatIdAsReference="1"
|
||||
cropVariant="default"
|
||||
width="1024c"
|
||||
alt="{data.header}"
|
||||
class="textimage-image" />
|
||||
<f:image
|
||||
image="{data.image.0}"
|
||||
treatIdAsReference="1"
|
||||
cropVariant="default"
|
||||
alt="{data.header}"
|
||||
class="textimage-image"
|
||||
/>
|
||||
</picture>
|
||||
</f:then>
|
||||
<f:else>
|
||||
@@ -34,6 +43,7 @@
|
||||
<div class="textimage-wrapper">
|
||||
<f:if condition="{data.header}">
|
||||
<h2 class="textimage-header">{data.header}</h2>
|
||||
<h3 class="textimage-subheader">{data.subheader}</h3>
|
||||
</f:if>
|
||||
<f:if condition="{data.bodytext}">
|
||||
<div class="textimage-text">
|
||||
|
||||
Reference in New Issue
Block a user