← Go back

Shopify Profile Grid – Dynamic Team Showcasev

Add a stylish profile grid to your Shopify store with customizable hover effects, responsive layout, and dynamic backgrounds. Perfect for team pages, testimonials, or featured customers

Preview Password = 1 *When you first time enter them back again then click agian Preview to show*
Liquid Code
                    <!-- 
========================================
Section Name: Profile Grid
Tech Stack: Liquid, HTML, CSS, JavaScript
What This Section Does: 
- Displays a responsive grid of profile cards with customizable images and names.
- Features interactive hover effects with scaling images and animated text.
- Includes background blur effects and custom clip paths for modern styling.
- Fully responsive design that adapts from mobile to desktop with configurable columns.

Promotion: 
Showcase your team members, testimonials, or featured customers with an engaging profile grid. Create visual interest with stylish hover animations and modern design. Get it now at [PrebuiltTemplates](https://prebuilttemplates.com/).
========================================
-->


{% comment %}
  Dynamic Profile Grid Section
  - Customizable profiles with hover effects
  - Responsive grid layout
  - Background and image customization
{% endcomment %}

<section class="profiles"
  style="
    --name-txt-clr: {{ section.settings.text_color }};
    --bg-clr: {{ section.settings.bg_color }};
    --bg-blur: {{ section.settings.bg_blur }}px;
    --bg-blur-hover: {{ section.settings.bg_blur_hover }}px;
    --size: {{ section.settings.avatar_size }}px;
  ">
  {% for block in section.blocks %}
    {% if block.type == 'profile' %}
      <div class="avatar" {{ block.shopify_attributes }} style="--bg-img:url({{ block.settings.background_image | img_url: 'master' }})">
        <div class="avatar-img">
          <img src="{{ block.settings.profile_image | img_url: 'master' }}" alt="{{ block.settings.name }}">
        </div>
        <p>{{ block.settings.name }}</p>
      </div>
    {% endif %}
  {% endfor %}
</section>

{% style %}
@import url(https://fonts.bunny.net/css?family=roboto:300);

.profiles{
  --img-clip: "M 0 -50 L 200 -50 L 200 150 C 100 150 0 250 0 150 Z";
  --img-shadow: drop-shadow(5px 5px 2px rgba(0 0 0 / 0.5));
  
  font-family: 'Roboto', sans-serif;
  display: grid;
  grid-template-columns: repeat(var(--grid-cols,1),var(--size));
  gap: 2rem;
  margin: {{ section.settings.top_margin }}px auto {{ section.settings.bottom_margin }}px;
  width: fit-content;
}

@media (min-width: 500px){
  .profiles{
    --grid-cols: 2;
  }
}

@media (min-width: 860px){
  .profiles{
    --grid-cols: {{ section.settings.desktop_columns }};
  }
}

.avatar{
  position: relative;
  width: var(--size);
  height: var(--size);
  aspect-ratio: 1;
}

.avatar-img {
  clip-path: path(var(--img-clip));
}

.avatar-img::before{
  content: '';
  position: absolute;
  display: block;
  inset: 50% 0 0 0;
  z-index: -1;
  border-radius: 20px;
  background-color: var(--bg-clr);
  background-image: var(--bg-img);
  background-size: cover;
  background-position: center;
  filter: blur(var(--bg-blur));
  transition: filter 300ms ease-in-out;
}

.avatar-img > img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: scale 300ms, filter 300ms;
  transform-origin: bottom;
  scale: var(--img-scale, .9);
  filter: var(--img-shadow);  
}

.avatar > p{
  font-size: {{ section.settings.text_size }}px;
  color: var(--name-txt-clr);
  position: absolute;
  bottom: .5rem;
  right: 0;
  translate: 0 var(--name-y,-50px);
  opacity: var(--name-opacity,0);
  z-index: -1;
  transition-name: translate, opacity;
  transition-delay: 150ms;
  transition-duration: 300ms;
  transition-timing-function: cubic-bezier(0.47, 1.64, 0.41, 0.8), ease-in-out;
}

.avatar:hover{
  --img-scale: 1.1;
  --img-shadow: drop-shadow(10px 15px 4px rgba(0 0 0 / 0.5));
  --name-y: 0;
  --name-opacity: 1;
  --bg-blur: var(--bg-blur-hover);
}
{% endstyle %}

{% schema %}
{
  "name": "Profile Grid",
  "settings": [
    {
      "type": "header",
      "content": "Layout Settings"
    },
    {
      "type": "range",
      "id": "desktop_columns",
      "min": 1,
      "max": 6,
      "step": 1,
      "default": 4,
      "label": "Number of Columns (Desktop)"
    },
    {
      "type": "range",
      "id": "avatar_size",
      "min": 150,
      "max": 300,
      "step": 10,
      "default": 200,
      "label": "Avatar Size (px)"
    },
    {
      "type": "range",
      "id": "top_margin",
      "min": 0,
      "max": 100,
      "step": 5,
      "default": 20,
      "label": "Top Margin (px)"
    },
    {
      "type": "range",
      "id": "bottom_margin",
      "min": 0,
      "max": 100,
      "step": 5,
      "default": 20,
      "label": "Bottom Margin (px)"
    },
    {
      "type": "header",
      "content": "Style Settings"
    },
    {
      "type": "color",
      "id": "text_color",
      "label": "Name Text Color",
      "default": "#EEEEEE"
    },
    {
      "type": "color",
      "id": "bg_color",
      "label": "Default Background Color",
      "default": "#4682B4"
    },
    {
      "type": "range",
      "id": "text_size",
      "min": 8,
      "max": 24,
      "step": 1,
      "default": 14,
      "label": "Name Text Size (px)"
    },
    {
      "type": "range",
      "id": "bg_blur",
      "min": 0,
      "max": 20,
      "step": 1,
      "default": 0,
      "label": "Background Blur (px)"
    },
    {
      "type": "range",
      "id": "bg_blur_hover",
      "min": 0,
      "max": 40,
      "step": 1,
      "default": 20,
      "label": "Background Blur on Hover (px)"
    }
  ],
  "blocks": [
    {
      "type": "profile",
      "name": "Profile",
      "settings": [
        {
          "type": "image_picker",
          "id": "profile_image",
          "label": "Profile Image"
        },
        {
          "type": "image_picker",
          "id": "background_image",
          "label": "Background Image"
        },
        {
          "type": "text",
          "id": "name",
          "label": "Name",
          "default": "Profile Name"
        }
      ]
    }
  ],
  "presets": [
    {
      "name": "Profile Grid",
      "category": "Custom Content",
      "blocks": [
        {
          "type": "profile",
          "settings": {
            "name": "Sandra"
          }
        },
        {
          "type": "profile",
          "settings": {
            "name": "David V."
          }
        },
        {
          "type": "profile",
          "settings": {
            "name": "Ronald"
          }
        },
        {
          "type": "profile",
          "settings": {
            "name": "Elizabeth"
          }
        }
      ]
    }
  ]
}
{% endschema %}