---
title: CSS styling in checkout.liquid
description: >-
  About CSS styling in the checkout.liquid, available to Shopify Plus merchants
  only.
source_url:
  html: >-
    https://shopify.dev/docs/storefronts/themes/architecture/layouts/checkout-liquid/checkout-css
  md: >-
    https://shopify.dev/docs/storefronts/themes/architecture/layouts/checkout-liquid/checkout-css.md
api_name: liquid
---

# CSS styling in checkout.​liquid

**Deprecated:**

`checkout.liquid` is now unsupported for the Information, Shipping, and Payment checkout steps. `checkout.liquid` and additional scripts were sunset for the **Thank you** and **Order status** pages on August 28, 2025. Script tags were sunset on those pages on August 28, 2025 for Plus stores, and are sunset for non-Plus stores on August 26, 2026.

Stores that still use `checkout.liquid` for the **Thank you** and **Order status** pages must [upgrade to Shopify Extensions in Checkout](https://www.shopify.com/checkout#advanced-customizations).

Learn [how to build checkout extensions](https://shopify.dev/docs/apps/build/checkout/technologies) that extend the functionality of Shopify checkout.

![](https://shopify.dev/assets/assets/images/manual/customize/checkout-customizations-1-Bx5dWDfQ.jpg)

You can make style enhancements to your checkout pages by adding CSS to the [`checkout.liquid`](https://shopify.dev/docs/storefronts/themes/architecture/layouts/checkout-liquid) file of your theme. Consider the following best practices when adding CSS to your `checkout.liquid` file.

**Plus:**

The `checkout.liquid` layout is available to [Shopify Plus](https://www.shopify.com/plus?utm_source=shopify\&utm_medium=docs\&utm_campaign=checkout_scss_liquid_template) merchants only.

***

## Checkout pages

When you're styling your checkout, remember to consider its [component pages](https://shopify.dev/docs/storefronts/themes/architecture/layouts/checkout-liquid#checkout-pages). Depending on checkout settings, there are at least four checkout pages, and at most six.

***

## BEM Syntax

Checkout uses the [BEM syntax](http://bem.info/) to minimize nesting. You should avoid deep nesting of selectors, and use the simplest selector that meets your needs.

For example, to style the name of the products inside the order summary:

## Correct BEM syntax

```css
.product__info__name {
  color: green;
}
```

## Incorrect BEM syntax

```css
.order-summary .order-summary__section .product_list .product_info .product__info__name {
  color: red;
}
```

***

## Avoid using !important

Your checkout stylesheet is loaded after the base stylesheet, so you don't need to add `!important` to every property. Reserve the use of `!important` for cases where it's absolutely necessary.

***

## Button examples

Consider designing buttons for all states: `disabled`, `normal`, and `hover`.

![](https://shopify.dev/assets/assets/images/manual/customize/checkout-customizations-2-DfyQjp45.jpg)

Customize your classes to provide button styles that match your theme.

***

## Main breakpoints

![](https://shopify.dev/assets/assets/images/manual/customize/checkout-customizations-3-C6AEBYOn.jpg)

The default stylesheet has four breakpoints, which you can use in your stylesheet:

* **Small**: 0px and up—doesn't require a media query
* **Medium**: 750px and up
* **Large**: 1000px and up
* **Large Desktop**: 1300px and up.

***

## Custom webfonts and additional scripts

You can load your self-hosted webfonts directly from the CSS style tags in the `checkout.liquid` using an `@font-face` declaration.

***

## External assets

Checkout uses SSL encryption to ensure a safe buying experience for your customers. If you do load images or additional content, then these assets need to be served over `https://` to be rendered on the page. When possible, you should use the [Shopify CDN](https://shopify.dev/docs/storefronts/themes/best-practices/performance/platform#shopify-cdn) to host all your assets.

***

## Feature detection

A few utility classes are included on the `<html>` element:

* **Javascript**: `js/no-js` lets you know whether the browser supports javascript or not.

* **Browser and OS**: For example, a user running Chrome on OS X would have the classes `mac chrome`.

* **Modernizr**: [Modernizr](https://modernizr.com/) is used to detect if the browser supports certain CSS properties like RGBA, multiple background images, box-shadows, pseudo-elements, and inline SVG.

You can use these classes to provide an improved checkout experience on older browsers.

***

## Fields, modals, and notices

Some other components you can customize in the CSS of the `checkout.liquid` are [fields](#field-states-classes), [modals](#modals), [warnings](#warnings), and [error messages](#error-msg)

### Field states and classes

Use the classes in your tables to style the three field states to fit your theme.

| Field state | CSS class |
| - | - |
| Default | No class required |
| Focus | `field--focus` |
| Error | `field--error` |

### Modals

Policies (refund, privacy, and terms of service) and processing/forwarding pages are presented in a full-screen modal.

### Warnings

Use warnings to notify the user that the total cost of their order changed before they completed their purchase. For example, you might add a warning if inventory is automatically adjusted.

![](https://shopify.dev/assets/assets/images/manual/customize/checkout-customizations-4-K_iYsfOX.jpg)

### Error messages

Use clear error messages to communicate errors to the user.

![](https://shopify.dev/assets/assets/images/manual/customize/checkout-customizations-5-ybLVsKlf.jpg)

***
