← Back to blog

Add an App-Style Section with Dual Phones to Shopify (copy/paste)

By Nicholas Drishinski ·
Are you looking to showcase your mobile app, promote app downloads, or create an engaging visual element on your Shopify store? A phone screen section is the perfect way to display mobile content in an attractive, realistic phone mockup. In this guide, we'll walk you through how to add a professional phone screen section to your Shopify store.


Prefer video?

Enjoy, otherwise read on!

What is a Phone Screen Section?


A phone screen section displays content within realistic phone mockups, making it perfect for:
- Promoting your mobile app
- Showcasing mobile-specific features
- Displaying app screenshots
- Encouraging app downloads
- Creating visual interest on your homepage

Features of This Phone Screen Section


The section we'll be implementing includes:
- Two phone mockups with realistic 3D styling
- Customizable background images for each phone
- Overlay text and buttons on phone screens
- Responsive design that works on all devices
- Professional styling with gradients and shadows
- Easy customization through Shopify's theme editor

Step-by-Step Implementation

Step 1: Create the Section File


1. Navigate to your Shopify admin panel
2. Go to **Online Store****Themes**
3. Click **Actions****Edit code**
4. In the left sidebar, navigate to **Sections**
5. Click **Add a new section**
6. Name it `phone-screen.liquid`


Step 2: Add the Code


Copy and paste the following code into your new section file:


<style>
  .kith-app-section {
    width: 100%;
    height: 800px;
    background: linear-gradient(135deg, #1a1a1a 0%, #2d2d2d 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 40px 20px;
    position: relative;
    overflow: hidden;
  }

  .kith-app-container {
    max-width: 1400px;
    width: 100%;
    display: grid;
    grid-template-columns: 1fr 2fr 1fr;
    align-items: center;
    gap: 60px;
    height: 100%;
  }

  .kith-branding {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    color: white;
  }

  .kith-logo {
    width: 80px;
    height: 80px;
    background: white;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 20px;
    font-weight: bold;
    font-size: 18px;
    color: black;
  }

  .kith-title {
    font-size: 48px;
    font-weight: 300;
    color: white;
    margin: 0;
    font-family: serif;
  }

  .phones-container {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 40px;
    height: 100%;
    position: relative;
  }

  .phone-mockup {
    width: 280px;
    height: 560px;
    background: linear-gradient(145deg, #c0c0c0, #a0a0a0);
    border-radius: 40px;
    padding: 8px;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3);
    position: relative;
  }

  .phone-mockup:first-child {
    transform: rotate(-5deg) translateY(-20px);
    z-index: 2;
  }

  .phone-mockup:last-child {
    transform: rotate(5deg) translateY(20px);
    z-index: 1;
  }

  .phone-screen {
    width: 100%;
    height: 100%;
    border-radius: 32px;
    overflow: hidden;
    position: relative;
    background: black;
  }

  .phone-notch {
    position: absolute;
    top: 8px;
    left: 50%;
    transform: translateX(-50%);
    width: 120px;
    height: 24px;
    background: black;
    border-radius: 12px;
    z-index: 10;
  }

  .phone-content {
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 40px 20px;
    color: white;
    position: relative;
  }

  .phone-content::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(to bottom, transparent 0%, rgba(0, 0, 0, 0.7) 100%);
  }

  .phone-content > * {
    position: relative;
    z-index: 2;
  }

  .app-description {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    color: white;
    text-align: right;
  }

  .app-title {
    font-size: 28px;
    font-weight: 300;
    margin-bottom: 10px;
    color: white;
  }

  .app-subtitle {
    font-size: 20px;
    opacity: 0.8;
    line-height: 1.4;
    color: white;
  }

  .shop-button {
    background: rgba(255, 255, 255, 0.2);
    border: 1px solid rgba(255, 255, 255, 0.3);
    color: white;
    padding: 12px 24px;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.3s ease;
    margin-top: 20px;
    align-self: flex-start;
  }

  .shop-button:hover {
    background: rgba(255, 255, 255, 0.3);
  }

  /* Mobile Responsive */
  @media (max-width: 1024px) {
    .kith-app-section {
      height: 600px;
      padding: 20px;
    }

    .kith-app-container {
      grid-template-columns: 1fr;
      gap: 40px;
      text-align: center;
    }

    .kith-branding {
      align-items: center;
      order: 1;
    }

    .kith-title {
      font-size: 36px;
    }

    .phones-container {
      order: 2;
      gap: 20px;
    }

    .phone-mockup {
      width: 200px;
      height: 400px;
    }

    .app-description {
      order: 3;
      align-items: center;
      text-align: center;
    }

    .app-title {
      font-size: 20px;
    }

    .app-subtitle {
      font-size: 14px;
    }
  }

  @media (max-width: 768px) {
    .kith-app-section {
      height: auto;
      min-height: 500px;
      padding: 30px 15px;
    }

    .kith-app-container {
      gap: 30px;
    }

    .kith-title {
      font-size: 28px;
    }

    .phones-container {
      flex-direction: column;
      gap: 20px;
    }

    .phone-mockup {
      width: 180px;
      height: 360px;
    }

    .phone-mockup:first-child,
    .phone-mockup:last-child {
      transform: none;
    }

    .phone-content {
      padding: 30px 15px;
    }
  }
</style>

<section class="kith-app-section">
  <div class="kith-app-container">
    <div class="kith-branding">
      {% if section.settings.logo_text != blank %}
        <div class="kith-logo">
            {{ section.settings.logo_text }}
        </div>
      {% endif %}
      <h2 class="kith-title">{{ section.settings.title }}</h2>
    </div>

    <div class="phones-container">
      <div class="phone-mockup">
        <div class="phone-notch"></div>
        <div class="phone-screen">
          <div class="phone-content" style="background-image: url('{{ section.settings.phone_1_image | img_url: '600x' }}');">
            {% if section.settings.phone_1_title %}
              <h3 style="font-size: 22px; margin-bottom: 10px; font-weight: 400; color: white;">{{ section.settings.phone_1_title }}</h3>
            {% endif %}
            {% if section.settings.phone_1_description %}
              <p style="font-size: 16px; opacity: 0.9; margin-bottom: 15px; line-height: 1.3;">{{ section.settings.phone_1_description }}</p>
            {% endif %}
            {% if section.settings.phone_1_button_text %}
              <a href="{{ section.settings.button-link }}">
                <button class="shop-button">{{ section.settings.phone_1_button_text }}</button>
              </a>
            {% endif %}
          </div>
        </div>
      </div>

      <div class="phone-mockup">
        <div class="phone-notch"></div>
        <div class="phone-screen">
          <div class="phone-content" style="background-image: url('{{ section.settings.phone_2_image | img_url: '600x' }}');">
            <!-- Second phone content can be customized similarly -->
          </div>
        </div>
      </div>
    </div>

    <div class="app-description">
      <h3 class="app-title">{{ section.settings.description_title | default: 'Discover the Kith App.' }}</h3>
      <p class="app-subtitle">{{ section.settings.description_text | default: 'Available now on the App Store and Google Play.' }}</p>
    </div>
  </div>
</section>

{% schema %}
{
  "name": "Kith App Showcase",
  "settings": [
    {
      "type": "text",
      "id": "logo_text",
      "label": "Logo Text",
      "default": "KITH"
    },
    {
      "type": "text",
      "id": "title",
      "label": "Section Title",
      "default": "Kith App"
    },
    {
      "type": "image_picker",
      "id": "phone_1_image",
      "label": "First Phone Background Image"
    },
    {
      "type": "text",
      "id": "phone_1_title",
      "label": "First Phone Title",
      "default": "Giorgio Armani & Kith Estate"
    },
    {
      "type": "textarea",
      "id": "phone_1_description",
      "label": "First Phone Description",
      "default": "Bridging the cultural elegance of Italy with the modern sophistication of New York."
    },
    {
      "type": "text",
      "id": "phone_1_button_text",
      "label": "First Phone Button Text",
      "default": "SHOP NOW"
    },
    {
        "type": "url",
        "label": "Link",
        "id": "button-link",
    },
    {
      "type": "image_picker",
      "id": "phone_2_image",
      "label": "Second Phone Background Image"
    },
    {
      "type": "text",
      "id": "description_title",
      "label": "Description Title",
      "default": "Discover the Kith App."
    },
    {
      "type": "textarea",
      "id": "description_text",
      "label": "Description Text",
      "default": "Available now on the App Store and Google Play."
    }
  ],
  "presets": [
    {
      "name": "Kith App Showcase"
    }
  ]
}
{% endschema %}

Step 3: Add the Section to Your Template


1. Go to **Templates** in the theme editor
2. Select the template where you want to add the section (e.g., `index.json` for homepage)
3. Click **Add section**
4. Select **Kith App Showcase** from the list
5. Click Add


Step 4: Customize the Section


Once added, you can customize the section through the theme editor:

Basic Settings
- **Logo Text**: Your brand name or logo text
- **Section Title**: Main heading for the section

Phone 1 Settings
- **Background Image**: Upload an image for the first phone screen
- **Title**: Text overlay on the phone screen
- **Description**: Descriptive text on the phone screen
- **Button Text**: Call-to-action button text
- **Link**: URL for the button

Phone 2 Settings
- **Background Image**: Upload an image for the second phone screen

Description Settings
- **Description Title**: Right-side heading
- **Description Text**: Supporting text

Use Cases


App Promotion
- Showcase your mobile app features
- Display app screenshots
- Link to app store downloads

Newsletter Signup
- Use phone screens to show newsletter benefits
- Display sample newsletter content
- Link to signup forms

Product Showcase
- Display products in mobile context
- Show mobile shopping experience
- Highlight mobile-exclusive features

Brand Storytelling
- Tell your brand story through mobile imagery
- Show behind-the-scenes content
- Display user-generated content

Conclusion


Adding a phone screen section to your Shopify store is a great way to showcase mobile content and engage visitors. This section provides a professional, customizable solution that works across all devices. With the step-by-step guide above, you can easily implement this feature and start promoting your mobile app or creating engaging visual content.

Remember to:
- Test the section on different devices
- Optimize your images for fast loading
- Use compelling content that matches your brand
- Monitor performance and user engagement

The phone screen section will help you create a more engaging and professional-looking store that effectively communicates your mobile strategy to customers.