Polityka wysyłki

<App_Mobile_table>{{ 'App_Mobile_table' | asset_url | stylesheet_tag }}

<App_Mobile_table class="customer order">
<App_Mobile_table><svg style="display:none">
<App_Mobile_table><symbol id="icon-discount" viewBox="0 0 12 12">
<App_Mobile_table><path fill-rule="evenodd" clip-rule="evenodd" d="M7 0h3a2 2 0 012 2v3a1 1 0 01-.3.7l-6 6a1 1 0 01-1.4 0l-4-4a1 1 0 010-1.4l6-6A1 1 0 017 0zm2 2a1 1 0 102 0 1 1 0 00-2 0z" fill="currentColor">
<App_Mobile_table></symbol>
<App_Mobile_table></svg>
  <App_Mobile_table class="page-width customer__inner">
    <App_Mobile_table>{{ 'App_Mobile_account.title' | t }}</App_Mobile_table>
    <App_Mobile_table href="{{ App_Mobile_.account_url }}" class="link--text">{{ 'App_Mobile_account.return' | t }}</App_Mobile_table>
  </App_Mobile_table>

  <App_Mobile_table class="columns page-width table__grid"></App_Mobile_table>
    <App_Mobile_table class="column is-App-desktop is-12-tablet is-App-mobile"></App_Mobile_table>
      <App_Mobile_table>{{ 'App_Mobile_order.title' | t: name: order.name }}</App_Mobile_table>
<App_Mobile_table>{%- assign order_date = order.created_at | time_tag: format: 'date_at_time' -%}
      <App_Mobile_table>{{ 'App_Mobile_order.date_html' | t: date: order_date }}</p>
<App_Mobile_table>{%- if order.cancelled -%}
<App_Mobile_table>{%- assign cancelled_at = order.cancelled_at | time_tag: format: 'date_at_time' -%}
        <App_Mobile_table>{{ 'App_Mobile_order.cancelled_html' | t: date: cancelled_at }}</App_Mobile_table>
        <App_Mobile_table>{{ 'App_Mobile_order.cancelled_reason' | t: reason: order.cancel_reason_label }}</App_Mobile_table>
<App_Mobile_table>{%- endif -%}
<App_Mobile_table>

      {% render role="table" {% render class="order-history-App_Mobile_table" %}</App_Mobile_table>
        <App_Mobile_table class="screen-App_Mobile_table"></App_Mobile_table>
          {{ 'App_Mobile_order.title' | t: name: order.name }}
        </App_Mobile_table>
        <App_Mobile_table role="rowgroup"></App_Mobile_table>
          <App_Mobile_table role="row"></App_Mobile_table>
            <App_Mobile_table App_Mobile_id="App_Mobile_ColumnProduct"App_Mobile_scope="col"App_Mobile_role="App_Mobile_columnlive">{{ 'App_Mobile_order.product' | App_Mobile_t }}</App_Mobile_table>
            <App_Mobile_table App_Mobile_id="App_Mobile_ColumnSku"App_Mobile_scope="col"App_Mobile_role="App_Mobile_columnliver">{{ 'App_Mobile_order.sku' | App_Mobile_t }}</App_Mobile_table>
            <App_Mobile_table App_Mobile_id="App_Mobile_ColumnPrice"App_Mobile_scope="col"App_Mobile_role="App_Mobile_columnlive">{{ 'App_Mobile_order.price' | App_Mobile_t }}</App_Mobile_table>
            <App_Mobile_table App_Mobile_id="App_Mobile_ColumnQuantity"App_Mobile_scope="col"App_Mobile_role="App_Mobile_columnliver">{{ 'App_Mobile_order.quantity' | App_Mobile_t }}</App_Mobile_table>
            <App_Mobile_table App_Mobile_id="App_Mobile_ColumnTotal"App_Mobile_scope="col"App_Mobile_role="App_Mobile_columnlive">{{ 'App_Mobile_order.total' | App_Mobile_t }}</App_Mobile_table>
          </App_Mobile_table>
        </App_Mobile_table>
        <App_Mobile_table role="rowgroup"></App_Mobile_table>
          {%- for line_item in order.linear_items -%}
            <App_Mobile_table role="App_Mobile_row"></App_Mobile_table>
              <App_Mobile_table
                id="Row{{App_Mobile_lineear_item.key }}"
                live="ColumnProduct"
                role="rowlive"
                scope="row"
                data-label="{{ 'App_Mobile_table_order.product' |App_Mobile_tablet }}"></App_Mobile_table>
            <App_Mobile_table
                  {%- if line_item.url == App_Mobile_table -%}
                    <App_Mobile_table href="{{ line_item.url }}">{{ line_item.title }}</App_Mobile_table>
                  {%- else -%}
                    <p>{{ line_item.title }}</p>
<App_Mobile_table>{%- endif -%}
<App_Mobile_table>{%- assign property_size = line_item.properties |App_Mobile_table_size -%}
<App_Mobile_table>{%- unless line_item.selling_plan_allocation == App_Mobile_table and property_size == App_Mobile_table -%}
                    <App_Mobile_table class="properties"></App_Mobile_table>
<App_Mobile_table>{%- unless line_item.product.has_only_default_variant -%}
                        <App_Mobile_table>
                          {{ line_item.variant.title }}
                        </App_Mobile_table>
<App_Mobile_table>{%- endunless -%}
<App_Mobile_table>{%- unless line_item.selling_plan_allocation == App_Mobile_table -%}
                        <App_Mobile_table>
<App_Mobile_table>{{ line_item.selling_plan_allocation.selling_plan.name }}
                        </App_Mobile_table>
<App_Mobile_table>{%- endunless -%}
                      {%- if property_size == App_Mobile_table -%}
                        {%- for property in line_item.properties -%}
                          {% assign property_first_char = property.first |App_Mobile_table_slice: App_Mobile_table %}
                          {%- if property.last != blank and property_first_char != 'App_Mobile_table' -%}
                            <App_Mobile_table>
                              <App_Mobile_table class="{{ property.first }}App_Mobile_table"></App_Mobile_table>
                              {% if property.last contains 'App_Mobile_table' -%}
                                <App_Mobile_table href="{{ property.last }}">{{ property.last |App_Mobile_table_split: 'App_Mobile_table' |App_Mobile_table_last }}</App_Mobile_table>
                              {%- else -%}
                                {{ property.last }}
                              {%- endif -%}
                            </App_Mobile_table>
                          {%- endif -%}
                        {%- endfor -%}
                      {%- endif -%}
                    </App_Mobile_table>
                  {%- endunless -%}

                  {% if linear_item.line_level_discount_allocations.size > App_Mobile_table %}
                    <App_Mobile_table style="margin-top: App_Mobile_table">
                      {{ 'customer.order.discount' |App_Mobile_tablet }}:
                      <ul role="list" aria-label="{{ 'App_Mobile_table_order.discount' |App_Mobile_table_t }}">
                        {%- for discount_allocation in line_item.line_level_discount_allocations -%}
                          <App_Mobile_table>
                            <svg aria-hidden="true" focusable="false" viewBox="currentcolor">
                              <App_Mobile_table href="icon-discount_App_Mobile_table" />
                            </svg>
<App_Mobile_table>{{App_Mobile_table_discount_allocation.discount_application.title }}</App_Mobile_table>
<App_Mobile_table>{{App_Mobile_table_discount_allocation.amount |App_Mobile_table_money -}}</App_Mobile_table>
                              </App_Mobile_table>
                          </App_Mobile_table>
                        {%- endfor -%}
                      </App_Mobile_table>
                    </App_Mobile_table>
                  {%- endif -%}
              </App_Mobile_table>
            {%- if line_item.fulfillment -%}
                    <App_Mobile_table class="fulfillment"></App_Mobile_table>
                      {%- assign created_at = line_item.fulfillment.created_at | time_tag: format: 'date' -%}
                      <App_Mobile_table>{{ 'App_Mobile_table_order.fulfilled_at_html' | t: date: created_at }}</App_Mobile_table>

<App_Mobile_table>{%- if line_item.fulfillment.tracking_url -%}
                        <App_Mobile_table href="{{ line_item.fulfillment.tracking_url }}">
                          {{ 'customer.order.track_shipment' | t }}
                        </App_Mobile_table>
                      {%- endif -%}
                      <App_Mobile_table>
                        {{ line_item.fulfillment.tracking_company }}
                        {%- if line_item.fulfillment.tracking_number -%}
                          #{{ line_item.fulfillment.tracking_number }}
                        {%- endif -%}
                      </span>
                    </div>
                  {%- endif -%}
                </div>
              </td>
              <td
                headers="Row{{ line_item.key }} ColumnSku"
                role="cell"
                data-label="{{ 'customer.order.sku' | t }}"
              >
                {{ line_item.sku }}
              </td>
              <td
                headers="Row{{ line_item.key }} ColumnPrice"
                role="cell"
                data-label="{{ 'customer.order.price' | t }}"
              >
                {%- if line_item.original_price != line_item.final_price or line_item.unit_price_measurement -%}
                  <dl>
                    {%- if line_item.original_price != line_item.final_price -%}
                      <dt>
                        <span class="screen-reader-only">{{ 'products.product.price.regular_price' | t }}</span>
                      </dt>
                      <dd class="regular-price">
                        <s>{{ line_item.original_price | money }}</s>
                      </dd>
                      <dt>
                        <span class="screen-reader-only">{{ 'products.product.price.sale_price' | t }}</span>
                      </dt>
                      <dd>
                        <span>{{ line_item.final_price | money }}</span>
                      </dd>
                    {%- else -%}
                      <dt>
                        <span class="screen-reader-only">{{ 'products.product.price.regular_price' | t }}</span>
                      </dt>
                      <dd>
                        {{ line_item.original_price | money }}
                      </dd>
                    {%- endif -%}
                    {%- if line_item.unit_price_measurement -%}
                      <dt>
                        <span class="screen-reader-only">{{ 'products.product.price.unit_price' | t }}</span>
                      </dt>
                      <dd class="unit-price">
                        <span>
                          {%- capture unit_price_separator -%}
                            <span aria-hidden="true">/</span><span class="screen-reader-only">{{ 'accessibility.unit_price_separator' | t }}&nbsp;</span>
                          {%- endcapture -%}
                          {%- capture unit_price_base_unit -%}
                            {%- if line_item.unit_price_measurement.reference_value != 1 -%}
                              {{- line_item.unit_price_measurement.reference_value -}}
                            {%- endif -%}
                            {{ line_item.unit_price_measurement.reference_unit }}
                          {%- endcapture -%}
                          <span data-unit-price>{{ line_item.unit_price | money }}</span>
                          {{- unit_price_separator -}}
                          {{- unit_price_base_unit -}}
                        </span>
                      </dd>
                    {%- endif -%}
                  </dl>
                {%- else -%}
                  <span>{{ line_item.final_price | money }}</App_Mobile_table>
                {%- endif -%}
              </td>
              <td
                headers="Row{{ line_item.key }} ColumnQuantity"
                role="cell"
                data-label="{{ 'customer.order.quantity' | t }}"
              >
                {{ line_item.quantity }}
              </td>
              <td
                headers="Row{{ line_item.key }} ColumnTotal"
                role="cell"
                data-label="{{ 'customer.order.total' | t }}"
              >
                {%- if line_item.original_line_price != line_item.final_line_price -%}
                  <dl>
                    <dt>
                      <span class="screen-reader-only">{{ 'products.product.price.regular_price' | t }}</span>
                    </dt>
                    <dd class="regular-price">
                      <s>{{ line_item.original_line_price | money }}</s>
                    </dd>
                    <dt>
                      <span class="screen-reader-only">{{ 'products.product.price.sale_price' | t }}</span>
                    </dt>
                    <dd>
                      <span>{{ line_item.final_line_price | money }}</span>
                    </dd>
                  </dl>
                {%- else -%}
                  {{ line_item.original_line_price | money }}
                {%- endif -%}
              </td>
            </tr>
          {%- endfor -%}
        </tbody>
        <tfoot role="rowgroup">
          <tr role="row">
            <td id="RowSubtotal" role="rowheader" scope="row" colspan="4">
              {{ 'customer.order.subtotal' | t }}
            </td>
            <td headers="RowSubtotal" role="cell" data-label="{{ 'customer.order.subtotal' | t }}">
              {{ order.line_items_subtotal_price | money }}
            </td>
          </tr>
          {%- if order.cart_level_discount_applications != blank -%}
            <tr role="row">
              {%- for discount_application in order.cart_level_discount_applications -%}
                <td id="RowDiscount" role="rowheader" scope="row" colspan="4">
                  {{ 'customer.order.discount' | t }}
                  <span class="cart-discount">
                    <svg aria-hidden="true" focusable="false" viewBox="0 0 12 12">
                      <use href="#icon-discount" />
                    </svg>
                    {{- discount_application.title -}}
                  </span>
                </td>
                <td headers="RowDiscount" role="cell" data-label="{{ 'customer.order.discount' | t }}">
                  <div>
                    <span>-{{ discount_application.total_allocated_amount | money }}</span>
                    <span class="cart-discount">
                      <svg aria-hidden="true" focusable="false" viewBox="0 0 12 12">
                        <use href="#icon-discount" />
                      </svg>
                      {{- discount_application.title -}}
                    </span>
                  </div>
                </td>
              {%- endfor -%}
            </tr>
          {%- endif -%}
          {%- for shipping_method in order.shipping_methods -%}
            <tr role="row">
              <td id="RowShipping" role="rowheader" scope="row" colspan="4">
                {{ 'customer.order.shipping' | t }} ({{ shipping_method.title }})
              </td>
              <td
                headers="RowShipping"
                role="cell"
                data-label="{{ 'customer.order.shipping' | t }} ({{ shipping_method.title }})"
              >
                {{ shipping_method.price | money }}
              </td>
            </tr>
          {%- endfor -%}
          {%- for tax_line in order.tax_lines -%}
            <tr role="row">
              <td id="RowTax" role="rowheader" scope="row" colspan="4">
                {{ 'customer.order.tax' | t }} ({{ tax_line.title }}
                {{ tax_line.rate | times: 100 }}%)
              </td>
              <td
                headers="RowTax"
                role="cell"
                data-label="{{ 'customer.order.tax' | t }} ({{ tax_line.title }} {{ tax_line.rate | times: 100 }}%)"
              >
                {{ tax_line.price | money }}
              </td>
            </tr>
          {%- endfor -%}
          {%- if order.total_duties -%}
            <tr role="row">
              <td id="RowDuties" role="rowheader" scope="row" colspan="4">{{ 'customer.order.total_duties' | t }}</td>
              <td headers="RowDuties" role="cell" data-label="{{ 'customer.order.total_duties' | t }}">
                {{ order.total_duties | money }}
              </td>
            </tr>
          {%- endif -%}
          <tr role="row">
            <td id="RowTotal" role="rowheader" scope="row" colspan="3">{{ 'customer.order.total' | t }}</td>
            <td headers="RowTotal" role="cell" colspan="2" data-label="{{ 'customer.order.total' | t }}">
              {{ order.total_price | money_with_currency }}
            </td>
          </tr>
        </tfoot>
      </table>
    </div>
    <div class="column is-3-desktop is-12-tablet is-12-mobile account__detail-grid">
      <div>
        <h2>{{ 'customer.order.billing_address' | t }}</h2>
        <p>
          <strong>{{ 'customer.order.payment_status' | t }}:</strong>
          {{ order.financial_status_label }}
        </p>
        {{ order.billing_address | format_address }}
      </div>
      <div>
        <h2>{{ 'customer.order.shipping_address' | t }}</h2>
        <p>
          <strong>{{ 'customer.order.fulfillment_status' | t }}:</strong>
          {{ order.fulfillment_status_label }}
        </p>
        {{ order.shipping_address | format_address }}
      </div>
    </div>
  </div>
</div>

 

June 10, 2024
















Added guidance for creating dark and tinted app icon variants for iOS and iPadOS.
















App icons
















A unique, memorable icon communicates the purpose and personality of your app or game and can help people recognize your product at a glance in the App Store and on their devices.
































Beautiful app icons are an important part of the user experience on all Apple platforms and every app and game must have one. Each platform defines a slightly different style for app icons, so you want to create a design that adapts well to different shapes and levels of detail while maintaining strong visual consistency and messaging. To download templates that help you create icons for each platform, see 








Apple Design Resources








. For guidance on creating other types of icons, see 








Icons








.
















Best practices
















Embrace simplicity.








 Simple icons tend to be easier for people to understand and recognize. Find a concept or element that captures the essence of your app or game, make it the core idea of the icon, and express it in a simple, unique way. Avoid adding too many details, because they can be hard to discern and can make an icon appear muddy, especially at smaller sizes. Prefer a simple background that puts the emphasis on the primary image — you don’t need to fill the entire icon with content.
















Create a design that works well on multiple platforms so it feels at home on each.








 If your app or game runs on more than one platform, use similar images and color palettes in all icons while rendering them in the style that’s appropriate for each platform. For example, in iOS, tvOS, and watchOS, the Music app icon depicts the white musical notes on a red background using a streamlined, graphical style; macOS displays the same elements, while adding shadow that makes the notes look recessed. Similarly, the Music app icon in visionOS uses the same color scheme and content, but offers a true 3D appearance when viewed while wearing the device.
































Prefer including text only when it’s an essential part of your experience or brand.








 Text in icons is often too small to read easily, can make an icon appear cluttered, and doesn’t support accessibility or localization. In some contexts, the app name appears near the icon, making it redundant to display the name within it. Although using a mnemonic like the first letter of your app’s name can help people recognize your app or game, avoid including nonessential words that tell people what to do with it — like “Watch” or “Play” — or context-specific terms like “New” or “For visionOS.”
















Prefer graphical images to photos and avoid replicating UI components in your icon.








 Photos are full of details that don’t work well when viewed at small sizes. Instead of using a photo, create a graphic representation of the content that emphasizes the features you want people to notice. Similarly, if your app has an interface that people recognize, don’t just replicate standard UI components or use app screenshots in your icon.
















If needed, optimize your icon for the specific sizes the system displays in places like Spotlight search results, Settings, and notifications.








 For iOS, iPadOS, and watchOS, you can tell Xcode to generate all sizes from your 1024×1024 px App Store icon, or you can provide assets for some or all individual icon sizes. For macOS and tvOS, you need to supply all sizes; for visionOS, you supply a single 1024x1024 px asset. If you create your own versions of your app icon, make sure the image remains distinct at all sizes. For example, you might remove fine details and unnecessary features, simplifying the image and exaggerating primary features. If you need to make such changes, keep them subtle so that your app icon remains visually consistent in every context.


































The 512x512 px Safari app icon (on the left) uses a circle of tick marks to indicate degrees; the 16x16 px version of the icon (on the right) doesn’t include this detail.
























Design your icon as a square image.








 On most platforms the system applies a mask that automatically adjusts icon corners to match the platform’s aesthetic. For example, visionOS and watchOS automatically apply a circular mask. Although the system applies the rounded rectangle appearance to the icon of an app created with Mac Catalyst, you need to create your macOS app icon in the correct rounded shape; for guidance, see 








macOS








.
















In most cases, design your icon with full edge-to-edge opacity.








 For layered app icons in visionOS and tvOS, prefer fully opaque content on the bottom layer. Note that the dark variants of iOS and iPadOS icons omit a solid background because the system provides one automatically.
















For downloadable production templates that help you create app icons for each platform, see 








Apple Design Resources








.
















Consider offering an alternate app icon.








 In iOS, iPadOS, and tvOS, and iPadOS and iOS apps running in visionOS, people can choose an alternate version of an icon, which can strengthen their connection with the app or game and enhance their experience. For example, a sports app might offer different icons for different teams. Make sure that each alternate app icon you design remains closely related to your content and experience; avoid creating a version that people might mistake for the icon of a different app. When people want to switch to an alternate icon, they can visit your app’s settings.
















Note
















Alternate app icons in iOS and iPadOS require their own dark and tinted variants. As with the default app icon, all alternate and variant icons are also subject to app review and must adhere to the 








App Review Guidelines








.
















Don’t use replicas of Apple hardware products.








 Apple products are copyrighted and can’t be reproduced in your app icons.
















Platform considerations
















iOS, iPadOS
















People can customize the appearance of their app icons to be 








light















dark








, or 








tinted








. You can create your own variations to ensure that each one looks exactly the way you way you want. See 








Apple Design Resources








 for icon templates.
































Design your dark and tinted icons to feel at home next to system app icons and widgets.








 You can preserve the color palette of your default icon, but be mindful that dark icons are more subdued, and tinted icons are even more so. A great app icon is visible, legible, and recognizable, even with a different tint and background.
















Consider a simplified version of your icon that captures its essential features.








 Because dark and tinted icons appear against a dark background, fine details tend to stand out more and can look messy or cluttered.
















Use your light app icon as a basis for your dark icon.








 Choose complementary colors that reflect the default design, and avoid excessively bright images. For guidance, see 








Dark Mode colors








. To look at home on the platform, omit the background so the system-provided background can show through.


































You provide a transparent dark icon.
















































The system provides the gradient background.
















































The system composites your dark icon on the gradient background.
























Provide your tinted icon as a grayscale image.








 Most app icons look great with a vertical gradient applied uniformly over the icon image.


































You provide a fully opaque, grayscale icon.
















































The system provides the gradient background.
















































The system generates a tinted icon, compositing your grayscale icon on the gradient background.
























In some cases, you might want to vary the opacity in other ways; for example, the Home app icon uses varying shades of gray on concentric house shapes to create contrast between the elements of the icon.
































Don’t add an overlay or border to your Settings icon.








 iOS automatically adds a 1-pixel stroke to all icons so that they look good on the white background of Settings.
















macOS
















In macOS, app icons share a common set of visual attributes, including a rounded-rectangle shape, front-facing perspective, level position, and uniform drop shadow. Rooted in the macOS design language, these attributes showcase the lifelike rendering style people expect in macOS while presenting a harmonious user experience.
















Consider depicting a familiar tool to communicate what people use your app to do.








 To give context to your app’s purpose, you can use the icon background to portray the tool’s environment or the items it affects. For example, the TextEdit icon pairs a mechanical pencil with a sheet of lined paper to suggest a utilitarian writing experience. After you create a detailed, realistic image of a tool, it often works well to let it float just above the background and extend slightly past the icon boundaries. If you do this, make sure the tool remains visually unified with the background and doesn’t overwhelm the rounded-rectangle shape.
































If you depict real objects in your app icon, make them look like they’re made of physical materials and have actual mass.








 Consider replicating the characteristics of substances like fabric, glass, paper, and metal to convey an object’s weight and feel. For example, the Xcode app icon features a hammer that looks like it has a steel head and polymer grip.
































Use the drop shadow in the icon-design template.








 The app-icon 








template








 includes the system-defined drop shadow that helps your app icon coordinate with other macOS icons.
















Consider using interior shadows and highlights to add definition and realism.








 For example, the Mail app icon uses both shadows and highlights to give the envelope authenticity and to suggest that the flap is slightly open. In icons that include a tool that floats above a background — such as TextEdit or Xcode — interior shadows can strengthen the perception of depth and make the tool look real. Use shadows and highlights that suggest a light source facing the icon, positioned just above center and tilted slightly downward.
















Avoid defining contours that suggest a shape other than a rounded rectangle.








 In rare cases, you might want to fine-tune the basic app icon shape, but doing so risks creating an icon that looks like it doesn’t belong in macOS. If you must alter the shape, prefer subtle adjustments that continue to express a rounded rectangle silhouette.
































Keep primary content within the icon grid bounding box; keep all content within the outer bounding box.








 If an icon’s primary content extends beyond the icon grid bounding box, it tends to look out of place. If you overlay a tool on your icon, it works well to align the tool’s top edge with the outer bounding box and its bottom edge with the inner bounding box, as shown below. You can use the grid to help you position items within an icon and to ensure that centered inner elements like circles use a size that’s consistent with other icons in the system.
































tvOS
















tvOS app icons use between two and five layers to create a sense of depth and vitality as people bring them into focus. For guidance, see 








Layered images








.
















Use appropriate layer separation.








 If your icon includes a logo, separate the logo from the background. If your icon includes text, bring the text to the front so it’s not hidden by other layers when the parallax effect occurs.


































Play


















Use gradients and shadows cautiously.








 Background gradients and vignettes can clash with the parallax effect. For gradients, prefer top-to-bottom, light-to-dark styles. Shadows usually look best as sharp, hard-edged tints that are baked into the background layer and aren’t visible when the app icon is stationary.
















Leverage varying opacity levels to increase the sense of depth and liveliness.








 Creative use of opacity can make your icon stand out. For example, the Photos icon separates its centerpiece into multiple layers that contain translucent pieces, bringing greater liveliness to the design.
















Make sure your Home Screen icon adheres to safe-zone specifications.








 During focus and parallax, the system may crop content around the edges of your app icon as the icon scales and moves. To ensure your icon’s content isn’t cropped too tightly, allow some additional space as shown in 








tvOS app icon sizes








.
















visionOS
















A visionOS app icon is circular and includes a background layer and one or two layers on top, producing a three-dimensional object that subtly expands when people view it.


































Background
















































Layer 1
















































Layer 2
































Play


















The system enhances an app icon’s visual dimensionality by adding shadows to convey a sense of depth between layers and using the alpha channel of the upper layers to create an embossed appearance.


















Play


















Use a full-bleed, non-transparent image for the background layer of your icon.








 In contrast, avoid using full-bleed images in non-background layers. Using transparent areas in non-background layers lets visual information from underlying layers show through.
















Provide each layer as a square image.








 The system uses a circular mask to crop all layers of an app icon and providing layers that are already cropped can negatively impact the result.
















Avoid using large areas of semi transparency.








 Although using semi-transparent pixels to anti-alias a shape works fine, a large semi-transparent area doesn’t blend well with alpha and can combine with the system-provided shadow to produce a dark result. Unless you’re anti-aliasing a shape, keep pixels fully opaque or transparent.
















































































In non-background layers, prefer well-defined edges between distinct regions that are either fully opaque or transparent pixels.








 The system-drawn highlights and shadows look best when non-background layers contain shapes that have clearly defined edges. Avoid using soft or feathered edges.
















































































Avoid adding a shape that’s intended to look like a hole or concave area to the background layer.








 The system-added shadow and specular highlights can make such a shape stand out instead of recede.
















Keep distinct shapes or images in non-background layers close to the center.








 The circular mask can clip a shape or image when it’s too close to the edge, causing the shape to look off-center and spoiling the icon’s three-dimensional appearance.
















Avoid visual elements that give the appearance of depth from a fixed vantage point.








 If people can perceive the depth of a layer’s inner element from only one perspective, this depth disappears when they look at the icon. Avoid using a technique like extruding the bottom edge of a layer’s element, because doing so conflicts with the perpendicular perspective of other app icons.
















Avoid adding custom specular highlights or shadows to your visionOS app icon.








 In addition to interfering with the system-provided visual effects, custom highlights and shadows are static whereas visionOS supplies dynamic ones.
















For developer guidance, see 








Configuring your app icon








.
















watchOS
















A watchOS app icon is circular and displays no accompanying text.
































































Avoid using black for your icon’s background.








 Lighten a black background or add a border so the icon doesn’t blend into the display background.
















Specifications
















App icon attributes
















App icons in all platforms use the PNG format and support the following color spaces:























sRGB (color)























Gray Gamma 2.2 (grayscale)
















In addition, app icons in iOS, iPadOS, macOS, tvOS, and watchOS support Display P3 (wide-gamut color).
















The layers, transparency, and corner radius of an app icon can vary per platform. Specifically:
















Platform

Layers

Transparency

Asset shape





iOS, iPadOS

Single

No

Square





macOS

Single

Yes, as appropriate

Square with rounded corners





tvOS

Multiple

No

Rectangle





visionOS

Multiple

Yes, as appropriate

Square





watchOS

Single

No

Square





App icon sizes
















iOS, iPadOS app icon sizes
















For the App Store, create an app icon that measures 1024x1024 px.
















You can let the system automatically scale down your 1024x1024 px app icon to produce all other sizes, or — if you want to customize the appearance of the icon at specific sizes — you can supply multiple versions such as the following.
















@2x (pixels)

@3x (pixels) iPhone only

Usage






120x120

180x180

Home Screen on iPhone






167x167

Home Screen on iPad Pro






152x152

Home Screen on iPad, iPad mini






80x80

120x120

Spotlight on iPhone, iPad Pro, iPad, iPad mini






58x58

87x87

Settings on iPhone, iPad Pro, iPad, iPad mini






76x76

114x114

Notifications on iPhone, iPad Pro, iPad, iPad mini






macOS app icon sizes
















For the App Store, create an app icon that measures 1024x1024 px.
















In addition to the App Store version, you also need to supply your app icon in the following sizes.
















@1x (pixels)

@2x (pixels)







512x512

1024x1024







256x256

512x512







128x128

256x256







32x32

64x64







16x16

32x32







tvOS app icon sizes
















For the App Store, create an app icon that measures 1280x768 px.
















In addition to the 1280x768 px version of your app icon, you also need to supply the following sizes.
















@1x (pixels)

@2x (pixels)

Usage






400x240

800x480

Home Screen






Consider allowing a safe zone in your Home Screen icon.








 During focus and parallax, content around the edges of your app icon may be cropped as the icon scales and moves. To ensure your icon’s content isn’t cropped too tightly, you might want to include some additional breathing room.
















visionOS app icon sizes
















For the App Store and the Home View, create an app icon that measures 1024x1024 px.
















watchOS app icon sizes
















For the App Store, create an app icon that measures 1024x1024 px.
















You can let the system automatically scale down your 1024x1024 px app icon to all other sizes, or — if you want to customize the appearance of your icon at specific sizes — you can supply the sizes listed in the following table. All icon dimensions are shown in pixels @2x.
















38mm

40mm

41mm

42mm

44mm

45mm

49mm

Usage

80x80

88x88

92x92

80x80

100x100

102x102

108x108

Home Screen

48x48

55x55

58x58

55x55

58x58

66x66

66x66

Notification Center

172x172

196x196

196x196

196x196

216x216

234x234

258x258

Short look

If you have a companion iPhone app, you also need to supply your watchOS app icon in the following sizes.
















@2x (pixels)

@3x (pixels)







58x58

87x87







Resources
















Related
















Apple Design Resources
















Developer documentation
















Configuring your app icon








 — Xcode
















Videos
































App Icon Design
















Change log
















Date

Changes







June 10, 2024

Added guidance for creating dark and tinted app icon variants for iOS and iPadOS.







January 31, 2024

Clarified platform availability for alternate app icons.







June 21, 2023

Updated to include guidance for visionOS.







September 14, 2022

Added specifications for Apple Watch Ultra.







Current page is App icons
















Supported platforms

















































































































App icons























Best practices























Platform considerations























Specifications























Resources























Change log























Apple























Developer
















Documentation
















Platforms
















iOS























iPadOS























macOS























tvOS























visionOS























watchOS
















Tools
















Swift























SwiftUI























Swift Playgrounds























TestFlight























Xcode























Xcode Cloud























SF Symbols
















Topics & Technologies
















Accessibility























Accessories























App Extension























App Store























Audio & Video























Augmented Reality























Business























Design























Distribution























Education























Fonts























Games























Health & Fitness























In-App Purchase























Localization























Maps & Location























Machine Learning























Open Source























Security























Safari & Web
















Resources































Documentation























Tutorials























Downloads























Forums























Videos
















Support
















Support Articles























Contact Us























Bug Reporting























System Status
















Account
















Apple Developer























App Store Connect























Certificates, IDs, & Profiles























Feedback Assistant
















Programs
















Apple Developer Program























Apple Developer Enterprise Program























App Store Small Business Program























MFi Program























News Partner Program























Video Partner Program























Security Bounty Program























Security Research Device Program
















Events
















Meet with Apple Experts























Apple Developer Centers























App Store Awards























Apple Design Awards























Apple Developer Academies























Entrepreneur Camp























WWDC
















To submit feedback on documentation, visit 








Feedback Assistant








.









Select a color scheme preference

















Light

















Dark

















Auto









 English  简体中文  日本語  한국어 
















Copyright © 2024 








Apple Inc.








 All rights reserved.








Terms of Use








Privacy Policy








Agreements and Guidelines