Button generator
Generate on-brand payment buttons dynamically using our JavaScript library.
In Denmark and Finland: By using this button generator, the new change in brand from MobilePay to Vipps will automatically happen for you on January 12.
Is this right for you?​
The Button generator shows an on-brand button on a website, or in an app that uses a WebView. It doesn't start the payment, so you add that yourself.
To also start the payment, use the Widget SDK. For a native app, download the static buttons from the brand guidelines.
JavaScript button library​
You can dynamically generate your buttons
with our vipps-mobilepay-button JavaScript library.
Select the desired options and the button will be updated immediately. Preview the button in dark or light mode by clicking the light/dark mode toggle button.
Step 1: Include the library script​
First, you need to include the button.js script in your HTML.
This script should be added to the <head>..</head> section of your HTML document to ensure it loads correctly.
<script
async
type="text/javascript"
src="https://cdn.vippsmobilepay.com/js/button/button.js"
></script>
If you don't have access to edit your website's <head> section directly,
you can place the script just before the button tag in your HTML.
This ensures the script is loaded before the button is rendered.
Step 2: Add the button​
The button generator above provides you with a code snippet. Add this to your HTML page in the desired location. For example:
<!DOCTYPE html>
<html>
<head>
<script
async
type="text/javascript"
src="https://cdn.vippsmobilepay.com/js/button/button.js"
></script>
</head>
<body>
<vipps-mobilepay-button
brand="vipps"
language="en"
rounded="true"
verb="login"
></vipps-mobilepay-button>
</body>
</html>
Step 3: Customize the button​
You can customize the button by modifying the attributes in the <vipps-mobilepay-button> tag.
Here are some of the attributes you can use:
- brand: The brand that the button uses (
vippsormobilepay). Default:vipps. - variant: The color variant of the button (
primary,dark,light). Default:primary. - language: ISO 639-1 alpha-2 language code (
en,no,fi,da,sv). Default:no(Norwegian Bokmål). Note thatfiis not allowed withbrand="vipps", and will be rendered in English. Note also that there is a bug in the library, and it currently only renders one language per page. - rounded: Set to
truefor rounded corners. Default:false. - verb: The text variant of the button (
buy,pay,login,register,continue,confirm,donate,express,add-card). Default:buy. - stretched: Set to
trueto fill the whole width of the parent container. Default:false. - compact: Set to
trueto display the button using a minimalistic logo. Default:false.
You can customize the placement and size of the button by applying your own CSS-style with the class or style attribute.
The button is an inline element by default, which means it will stay on the same line as sibling elements.
Troubleshooting​
Button label wraps or is clipped​
If a parent container is too narrow to fit the button label on one line, the text wraps to multiple rows. The minimum width needed to display the label on a single line varies depending on the language and variant chosen.
In some cases, the container may still clip the button if width constraints are too strict. To fix a container-width issue:
- Remove or increase width constraints on the parent container.
- Reduce the container's horizontal padding to give the button more room.
- Move the button outside the restricting element.
The button text wraps regardless of browser font size, in line with WCAG guidelines to keep the button accessible to all users.