Breast Reduction and Lift
Breast Reduction and Lift
Breast Reduction and Lift
Breast Reduction and Lift
Breast Reduction and Lift
Breast Reduction and Lift
Breast Reduction and Lift
Breast Reduction and Lift
Breast Reduction and Lift
Loading
{%- comment -%} Remove leading and trailing whitespace from `tag_name`. {%- endcomment -%}
{%- assign tag_name = tag_name | strip -%}
{%- comment -%} Handle the `tag_name: ''` case. {%- endcomment -%}
{%- if tag_name and tag_name.size < 1 -%}
{%- assign tag_name = false -%}
{%- endif -%}
{%- if tag_name -%}
<{{ tag_name }}
{{- attrs | to_attrs -}}
{{- additional_attrs -}}
{%- if self_closing == true -%}
{{- ' /' -}}
{%- endif -%}
>
{%- endif -%}
{%- unless self_closing == true -%}
{%- ifslot -%}
{%- slot -%}
{%- else -%}
{{- inner_html -}}
{%- endifslot -%}
{%- if tag_name -%}
</
{{- tag_name -}}
>
{%- endif -%}
{%- endunless -%}{%- comment -%}
This component can generate an `img` tag or a `div style="background-..."`.
{%- endcomment -%}
{%- assign is_global_asset = is_global_asset | default: false -%}
{%- if bg -%}
{%- comment -%} Background image {%- endcomment -%}
{%- assign tag_name = tag_name | default: 'div' -%}
{%- assign self_closing = self_closing | default: false -%}
{%- comment -%} We render attrs ourselves and filter out `style`. {%- endcomment -%}
{%- assign attr_list = attrs | to_attrs: list: true -%}
{%- capture additional_attrs -%}
{%- comment -%} Include attributes from context. {%- endcomment -%}
{%- for attr in attr_list -%}
{%- unless attr[0] == 'style' -%}
{{- ' ' -}}
{{- attr[0] -}}
{%- if attr[1].size > 0 -%}
="{{- attr[1] -}}"
{%- endif -%}
{%- endunless -%}
{%- endfor -%}
{{- ' ' -}}
style="
{%- comment -%} Render bg styles. Use src if we didn't get an image. {%- endcomment -%}
{%- assign has_bg_image = false -%}
{%- assign has_bg_size = false -%}
{%- assign has_bg_position_x = false -%}
{%- assign has_bg_position_y = false -%}
{%- assign has_bg_repeat = false -%}
{%- for prop in bg -%}
{%- case prop[0] -%}
{%- when 'image' -%}
{%- assign has_bg_image = true -%}
{%- when 'size' -%}
{%- assign has_bg_size = true -%}
{%- when 'position' -%}
{%- assign has_bg_position_x = true -%}
{%- assign has_bg_position_y = true -%}
{%- when 'position-x' -%}
{%- assign has_bg_position_x = true -%}
{%- when 'position-y' -%}
{%- assign has_bg_position_y = true -%}
{%- when 'repeat' -%}
{%- assign has_bg_repeat = true -%}
{%- endcase -%}
background-{{- prop[0] -}}: {{- prop[1] -}};
{%- endfor -%}
{%- unless has_bg_image -%}
background-image: url('{{- src | asset_url: global: is_global_asset -}}');
{%- endunless -%}
{%- unless has_bg_size -%}
background-size: cover;
{%- endunless -%}
{%- unless has_bg_position_x -%}
background-position-x: center;
{%- endunless -%}
{%- unless has_bg_position_y -%}
background-position-y: center;
{%- endunless -%}
{%- unless has_bg_repeat -%}
background-repeat: no-repeat;
{%- endunless -%}
{%- comment -%} Add any styles from the style attribute. {%- endcomment -%}
{{- attrs.style -}}
"
{%- endcapture -%}
{%- comment -%} Remove attrs so we don't render them twice. {%- endcomment -%}
{%- assign attrs = nil -%}
{%- else -%}
{%- comment -%} Normal img tag {%- endcomment -%}
{%- assign tag_name = 'img' -%}
{%- assign self_closing = true -%}
{%- capture additional_attrs -%}
{%- if srcset.size > 0 -%}
{{- ' ' -}}
srcset="{{ srcset }}"
{%- endif -%}
{%- if sizes.size > 0 -%}
{{- ' ' -}}
sizes="{{ sizes }}"
{%- endif -%}
{{- ' ' -}}
alt="{{ alt }}"
{{- ' ' -}}
src="{{ src | asset_url: global: is_global_asset }}"
{%- endcapture -%}
{%- endif -%}
{%- include 'atom/element', tag_name: tag_name, self_closing: self_closing, additional_attrs: additional_attrs -%}{%- assign group_attrs = group.attrs | merge_props: class: 'listcard__group' -%}
{%- assign tag_name = 'div' -%}
{%- if collapsible -%}
{%- assign tag_name = 'details' -%}
{%- endif -%}
<{{ tag_name }} {{ group_attrs | to_attrs }}>
{% unless headline == false or group.headline == nil or group.headline.size == 0 %}
{% if collapsible %}
<summary>
{% endif %}
<h2 class="listcard__headline">{{ group.headline }}</h2>
{% if collapsible %}
</summary>
{% endif %}
{% endunless %}
<div class="listcard__cards">
{% for item in group.cards %}
{%- include 'cardlist/listcard/item' -%}
{% endfor %}
</div>
{% unless group.group_button_link == nil or group.cards.size < 4 %}
<div class="listcard__group-button">
<a href="{{group.group_button_link}}" class="btn">{{ group.group_button_label }}</a>
</div>
{% endunless %}
</{{ tag_name }}>{% assign card_count = forloop.index %}
{%- capture curr_class -%}
listcard__card
{%- unless item.id == nil -%}
{{- ' ' -}} listcard__card--{{ item.id }}
{%- endunless -%}
{%- unless card_class == nil or card_class.size == 0 -%}
{{- ' ' -}} listcard__card--{{ card_class }}
{%- endunless -%}
{%- endcapture -%}
{%- assign card_attrs = item.attrs | merge_props: class: curr_class -%}
{% if singlelink %}
{%- assign card_attrs = card_attrs | merge_props: href: item.ctas[0].link -%}
{% endif %}
{% if linkcard %}<a {{ card_attrs | to_attrs }}>{% elsif singlelink %}<a {{ card_attrs | to_attrs }}>{% else %}<div {{ card_attrs | to_attrs }}>{% endif %}
{%- unless headline == false or item.headline == nil or item.headline.size == 0 -%}
<h2 class="listcard__card-headline">{{ item.headline }}</h2>
{%- endunless -%}
{% unless subheadline == false or item.subheadline == nil or item.subheadline.size == 0 %}
<h3 class="listcard__card-subheadline">{{ item.subheadline }}</h3>
{% endunless %}
{% unless images == false or item.images == nil or item.images.size == 0 %}
{% if compare == true %}
<div class="listcard__card-images">
<div class="listcard__comparison comparison comparison--popup">
<figure style="background-image: url('{{ item.compare_img_1 | asset_url }}')">
<a class="listcard__card-image-link listcard__card-image-link--before" href="#view-{{ item.id }}">Before</a>
<div
class="divisor"
style="
background-image: url('{{ item.compare_img_2 | asset_url }}');
clip-path: inset(0 0 0 50%);
">
<a class="listcard__card-image-link listcard__card-image-link--after" href="#view-{{ item.id }}">After</a>
</div>
</figure>
<input type="range" min="0" max="100" value="50" class="slider">
</div>
<div id="view-{{ item.id }}" class="modal-window comparison">
<a href="#" class="modal-close">Close</a>
<div class="modal-window__wrapper">
<figure style="background-image: url('{{ item.compare_img_1 | asset_url }}')">
<span class="listcard__card-image-link listcard__card-image-link--before">Before</span>
<div
class="divisor"
style="
background-image: url('{{ item.compare_img_2 | asset_url }}');
clip-path: inset(0 0 0 50%);
">
<span class="listcard__card-image-link listcard__card-image-link--after">After</span>
</div>
</figure>
<input type="range" min="0" max="100" value="50" class="slider">
</div>
</div>
</div>
{% else %}
{% if legacy %}
<div class="listcard__card-images">
{% for image in item.images %}
{% using image %}
{%- comment -%}
We're adding a class list to the `image` data before `atom/img`.
If `attrs.class` already exists, our class list will be added after.
`capture` is needed because we're using data from `forloop.index`.
If we wanted to use a constant class list without dynamic data, we could do it inline like:
`{%- assign attrs = attrs | merge_props: class: "my-static class-list" -%}`
{%- endcomment -%}
{%- capture class -%}
{% if image_link -%}
listcard__card-image-linkable listcard__card-image-linkable--{{ forloop.index }}
{%- else -%}
listcard__card-image listcard__card-image--{{ forloop.index }}
{%- endif %}
{%- endcapture %}
{% if image_link %}
{%- assign tag_name = 'a' -%}
{%- assign attrs = attrs | merge_props: href: image_link -%}
{% endif %}
{%- assign attrs = attrs | merge_props: class: class -%}
{% include "atom/img" %}
{% endusing %}
{% if image.modal_img %}
<div id="{{ image.id }}" class="modal-window">
<a href="#" class="modal-close">Close</a>
{% using image %}
{%- comment -%}
We're adding a class list to the `image` data before `atom/img`.
If `attrs.class` already exists, our class list will be added after.
`capture` is needed because we're using data from `forloop.index`.
If we wanted to use a constant class list without dynamic data, we could do it inline like:
`{%- assign attrs = attrs | merge_props: class: "my-static class-list" -%}`
{%- endcomment -%}
{%- capture class -%}
listcard__modal-image listcard__modal-image--{{ forloop.index }}
{%- endcapture -%}
{%- assign attrs = attrs | merge_props: class: class -%}
{% include "atom/img" %}
{% endusing %}
</div>
{% endif %}
{% endfor %}
</div>
{% if image.image_text %}
<p class="listcard__card-image-text listcard__card-image-text--{{forloop.index}}">{{image.image_text}}</p>
{% endif %}
{% else %}
<div class="listcard__card-images">
{% for image in item.images %}
{% using image %}
{%- comment -%}
We're adding a class list to the `image` data before `atom/img`.
If `attrs.class` already exists, our class list will be added after.
`capture` is needed because we're using data from `forloop.index`.
If we wanted to use a constant class list without dynamic data, we could do it inline like:
`{%- assign attrs = attrs | merge_props: class: "my-static class-list" -%}`
{%- endcomment -%}
{%- capture class -%}
{% if image_link -%}
listcard__card-image-linkable listcard__card-image-linkable--{{ forloop.index }}
{%- else -%}
listcard__card-image listcard__card-image--{{ forloop.index }}
{%- endif %}
{%- endcapture %}
{% if image_link %}
{%- assign tag_name = 'a' -%}
{%- assign attrs = attrs | merge_props: href: image_link -%}
{% endif %}
{%- assign attrs = attrs | merge_props: class: class -%}
{% include "atom/img" %}
{% endusing %}
{% if image.image_text %}
<p class="listcard__card-image-text listcard__card-image-text--{{forloop.index}}">{{image.image_text}}</p>
{% endif %}
{% endfor %}
{%- if item.images[0].modal_img -%}
<div id="view-{{ item.id }}" class="modal-window">
<a class="image_next" href="#modal_next-{{ item.id }}"> > </a>
<a class="image_prev" href="#modal_prev-{{ item.id }}"> < </a>
<a href="#" class="modal-close">Close</a>
<div class="modal_next" id="modal_next-{{ item.id }}">
<div class="modal_prev" id="modal_prev-{{ item.id }}">
{% for image in item.images %}
{% using image.modal_img %}
{%- comment -%}
We're adding a class list to the `image` data before `atom/img`.
If `attrs.class` already exists, our class list will be added after.
`capture` is needed because we're using data from `forloop.index`.
If we wanted to use a constant class list without dynamic data, we could do it inline like:
`{%- assign attrs = attrs | merge_props: class: "my-static class-list" -%}`
{%- endcomment -%}
{%- capture class -%}
listcard__modal-image listcard__modal-image--{{ forloop.index }}
{%- endcapture -%}
{%- assign attrs = attrs | merge_props: class: class -%}
{% include "atom/img" %}
{% endusing %}
{% endfor %}
</div>
</div>
</div>
{%- endif -%}
</div>
{% endif %}
{% endif %}
{% endunless %}
{% unless text == false or item.text == nil or item.text.size == 0 %}
<div class="listcard__card-text">{{item.text}}</div>
{% endunless %}
{% unless details == false or item.details == nil or item.details.size == 0 %}
<div class="listcard__card-details">
{% for detail in item.details %}
<div class="listcard__card-detail {{ detail.class }}">
<h3>{{ detail.label }}</h3>
{%- if detail.link -%}
<a href="{{ detail.link }}">{{ detail.text }}</a>
{%- else -%}
<p>{{ detail.text }}</p>
{%- endif -%}
</div>
{% endfor %}
</div>
{% endunless %}
{% unless ctas == false or item.ctas == nil or item.ctas.size == 0 or linkcard or singlelink%}
<div class="listcard__card-ctas">
{% for cta in item.ctas %}
<a href="{{cta.link}}" class="btn" target="{{cta.target}}">{{cta.label}}</a>
{% endfor %}
</div>
{% endunless %}
{% if singlelink %}
<div class="listcard__card-ctas">
{% for cta in item.ctas %}
<div class="btn">{{cta.label}}</div>
{% endfor %}
</div>
{% endif %}
{% if singlelink %}</a>{% elsif linkcard %}</a>{% else %}</div>{% endif %}
*Individual results are not guaranteed and may vary from person to person. Images may contain models.