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
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 %}