The Web Payments SDK lets you customize the style of the card entry and gift card entry forms. This topic shows you what style choices you have, how to set them, and what the resulting form looks like. You can see several customization ideas by viewing the Design Showcase sample on GitHub.
The steps in this topic add code to the application you created from the quickstart project sample. If you haven't created an application using the quickstart, you need to do so before completing the following steps. You can find a complete example of the customized card on GitHub.
You can view the supported stylesheet classes and properties in the CardClassSelectors object API reference.
The five visual elements of the Card
payment method are represented as selectors that you specify in a card option styling object. You can set colors, fonts, and border options as shown in the following image:
The following steps produce the dark mode card previously shown.
Add a reference to the
dark-mode
css class to the body of the page.<body class="dark-mode"> <form id="payment-form"> </form> </body>Add a
*
tag below the current<link href="app.css" rel="stylesheet" />
in the header to add the dark-mode.css.<link href="dark-mode.css" rel="stylesheet" />
Declare style customizing options in the CardOptions object. The style
field value is of the CardClassSelectors type.
const darkModeCardStyle = {
'.input-container': {
borderColor: '#2D2D2D',
borderRadius: '6px',
},
'.input-container.is-focus': {
borderColor: '#006AFF',
},
'.input-container.is-error': {
borderColor: '#ff1600',
},
'.message-text': {
color: '#999999',
},
'.message-icon': {
color: '#999999',
},
'.message-text.is-error': {
color: '#ff1600',
},
'.message-icon.is-error': {
color: '#ff1600',
},
input: {
backgroundColor: '#2D2D2D',
color: '#FFFFFF',
fontFamily: 'helvetica neue, sans-serif',
},
'input::placeholder': {
color: '#999999',
},
'input.is-error': {
color: '#ff1600',
},
'@media screen and (max-width: 600px)': {
'input': {
'fontSize': '12px',
}
}
};
Add the style
parameter to the payments.card function call.
async function initializeCard(payments) {
const card = await payments.card({
style: darkModeCardStyle,
});
await card.attach('#card-container');
return card;
}
Your application and the buyer's actions determine whether the form is shown as a single line or a two-line form. If your application has styled the `` container by rendering as a single line.