Skip to main content

Styling the One Click landing page with Custom CSS

Use the Custom CSS field to apply additional styling to your page

Written by Steve Jones

The One Click landing page is rendered within your Shopify theme, so it will automatically inherit your theme's header, footer, fonts, and base styles. The Custom CSS field allows you to go further and override or enhance the default appearance of the survey elements on this page.

CSS styles entered here will apply to the following states of the One Click survey journey:

Thank you message after a survey response is submitted

This is the confirmation message shown after a customer successfully submits their survey response and there are no further questions to answer.

Message shown when a survey has already been submitted

This is the message displayed when a customer tries to submit another response to the same survey.

Further survey questions

When there are further questions to be completed, the question and answer options can be styled by adding Custom CSS here. The Next and Submit buttons can also be styled.

Available CSS Selectors

Page layout

Selector

Description

#gv-oneclick-wrapper

The outermost container for the entire One Click survey content. Controls max-width, margin, and padding of the survey area.

Example: Adjust the survey width and spacing

css

#gv-oneclick-wrapper {     
max-width: 500px;
padding: 40px 20px;
}

Loading state

These selectors control the spinner shown while the initial One Click response is being submitted.

Selector

Description

#gv-oneclick-loading

The container for the loading state. Controls text alignment and padding.

.gv-oneclick-spinner

The spinning loading indicator. Controls size, border, and animation.

Example: Change the spinner colour to match your brand

css

.gv-oneclick-spinner {     
border-color: #e0e0e0;
border-top-color: #ff6600;
}

Progress indicator

When a survey has multiple follow-up questions, a step counter is shown (e.g. "2/6").

Selector

Description

.gv-oneclick-progress

The progress text container (e.g. "2/6"). Controls alignment, margin, and font size.

#gv-oneclick-progress-current

The current step number.

#gv-oneclick-progress-total

The total number of steps.

Example: Style the progress counter

css

.gv-oneclick-progress {     
font-size: 0.85em;
color: #999;
text-align: right;
margin-bottom: 20px;
}

Survey steps (questions)

Each follow-up question is rendered as an individual step.

Selector

Description

#gv-oneclick-questions

The container that wraps all follow-up question steps.

.gv-oneclick-step

An individual question step. Each step is a flex container.

.gv-oc-question-label

The question text/label shown above each question's answer options.

Example: Style question labels

css

.gv-oc-question-label {     
font-size: 1.1em;
font-weight: 600;
margin-bottom: 15px;
color: #333;
}

Next / Submit buttons

Each question step has a button to advance to the next step or submit the final answer.

Selector

Description

.gv-oneclick-step-button

The Next or Submit button on each step. Controls padding, margin, cursor, and styling.

.gv-oneclick-step-button:disabled

The disabled state of the button (shown before a required answer is selected).

Example: Brand the Next/Submit buttons

css

.gv-oneclick-step-button {
background-color: #ff6600;
color: #ffffff;
border: none;
border-radius: 4px;
padding: 14px 28px;
font-size: 1em;
text-transform: uppercase;
}

.gv-oneclick-step-button:disabled {
background-color: #ccc;
color: #666;
opacity: 0.6;
}

Open text questions

Selector

Description

[class^="gv-oc-text-"]

The wrapper for an open text question. You can also target a specific question using its ID, e.g. .gv-oc-text-123024.

[id^="gv-oc-textarea-"]

The textarea input element. You can also target a specific textarea using its ID, e.g. #gv-oc-textarea-123024.

Example: Style the text area

css

[id^="gv-oc-textarea-"] {     
border: 2px solid #ddd;
border-radius: 6px;
padding: 12px;
font-family: inherit;
font-size: 1em;
min-height: 120px;
}

[id^="gv-oc-textarea-"]:focus {
border-color: #ff6600;
outline: none;
}

CSAT (Customer Satisfaction) questions

Selector

Description

[class^="gv-oc-csat-"]

The wrapper for a CSAT question. You can also target a specific CSAT question using its ID in the class name, e.g. .gv-oc-csat-123025.

.gv-oc-csat-options

The container for CSAT radio button options.

.gv-oc-csat-options label

Each individual CSAT option label (e.g. "Very Satisfied", "Neutral").

.gv-oc-csat-options input[type="radio"]

The radio button inputs within CSAT options.

Example: Style CSAT options

css

.gv-oc-csat-options label {     
padding: 10px 12px;
border: 1px solid #eee;
border-radius: 4px;
margin-bottom: 6px;
transition: background 0.2s;
}
.gv-oc-csat-options label:hover {
background-color: #f5f5f5;
}

NPS (Net Promoter Score) questions

Selector

Description

[class^="gv-oc-nps-"]

The wrapper for an NPS question. You can also target a specific NPS question using its ID in the class name, e.g. .gv-oc-nps-123026.

.gv-oc-nps-options

The flex container that holds the 0–10 score options.

.gv-oc-nps-option

An individual NPS score box (0 through 10).

Example: Style the NPS scale

css

.gv-oc-nps-options {     
gap: 4px;
}

.gv-oc-nps-option {
border: 2px solid #ddd;
border-radius: 6px;
font-weight: 600;
transition: all 0.2s;
}

.gv-oc-nps-option:hover {
border-color: #ff6600;
background-color: #fff5ee;
}

Please note:

When a customer selects an NPS score, the selected option's background and text colour are updated dynamically via JavaScript. Your Custom CSS hover styles will still apply to the non-selected options.

Multiple choice questions

Selector

Description

[class^="gv-oc-mc-"]

The wrapper for a multiple choice question.

[class^="gv-oc-mc-"] label

Each individual checkbox option label.

[class^="gv-oc-mc-"] input[type="checkbox"]

The checkbox inputs within multiple choice options.

Example: Style multiple choice options

css

[class^="gv-oc-mc-"] label {     
padding: 10px 12px;
border: 1px solid #eee;
border-radius: 4px;
margin-bottom: 6px;
display: block;
cursor: pointer;
}

Fixed response questions

Selector

Description

[class^="gv-oc-fixed-"]

The wrapper for a fixed response question.

[class^="gv-oc-top-level-"]

Each individual fixed response option container.

[class^="gv-oc-fixed-"] input[type="radio"]

The radio button inputs within fixed response options.

[class^="gv-oc-fixed-"] label

Each individual fixed response option label.

Example: Style fixed response options

css

[class^="gv-oc-top-level-"] {     
padding: 10px 12px;
border: 1px solid #eee;
border-radius: 4px;
margin-bottom: 6px;
}

[class^="gv-oc-top-level-"]:hover {
background-color: #f5f5f5;
}

Thank you / confirmation message

Selector

Description

#gv-oneclick-thankyou

The container for the thank you/confirmation message. Controls text alignment and layout.

#gv-oneclick-thankyou h1

The thank you title heading (e.g. "Thank you!").

#gv-oneclick-thankyou p

The thank you body text (e.g. "Your response has been recorded. We appreciate your feedback.").

Example: Style the thank you message

css

#gv-oneclick-thankyou h1 {     
font-size: 2em;
color: #333;
margin-bottom: 10px;
}

#gv-oneclick-thankyou p {
font-size: 1.1em;
color: #666;
line-height: 1.6;
}

Putting it all together

Here is an example of a complete Custom CSS snippet that applies consistent branding across the entire One Click landing page:

/* Wrapper */
#gv-oneclick-wrapper {
max-width: 500px;
font-family: inherit;
}

/* Question labels */
.gv-oc-question-label {
font-weight: 600;
font-size: 1.1em;
margin-bottom: 12px;
}

/* NPS scale */
.gv-oc-nps-option {
border-radius: 6px;
font-weight: bold;
}

.gv-oc-nps-option:hover {
background-color: #f0f0f0;
}

/* Buttons */
.gv-oneclick-step-button {
background-color: #222;
color: #fff;
border: none;
border-radius: 4px;
padding: 14px 30px;
font-size: 1em;
}

.gv-oneclick-step-button:disabled {
background-color: #ccc;
}

/* Thank you message */
#gv-oneclick-thankyou h1 {
color: #222;
}

Important notes

  • Custom CSS entered here applies only to the One Click landing page. It will not affect your standard on-site surveys or any other pages on your storefront.

  • CSS should be valid and fully tested before publishing. We recommend using preview mode, by adding &preview=1 to the end of a one click survey link, to test your styling changes without recording survey responses.

  • Styling changes may affect message visibility and layout across devices, so we recommend testing on both desktop and mobile.

  • Question-type selectors that include a question ID (e.g. .gv-oc-nps-123026) allow you to target specific questions individually if needed. The attribute-based selectors (e.g. [class^="gv-oc-nps-"]) will target all questions of that type.

  • The landing page inherits your Shopify theme's header, footer, and base styles. Your Custom CSS will take precedence over the default Grapevine Surveys styles for the survey elements.

Did this answer your question?