Trigger actions clearly
Buttons signal to users that something will happen when they click — whether that's submitting a form, opening a modal, or confirming a choice.
Custom button styles for actions in forms, dialogs, and more with support for multiple sizes, states, and more.
Buttons signal to users that something will happen when they click — whether that's submitting a form, opening a modal, or confirming a choice.
Primary, secondary, outline, and ghost variants let you express hierarchy — guiding users toward the most important action without overloading the page.
Built-in loading, disabled, and focus states keep interactions predictable and accessible across all devices and input methods.
Container
Label
Left icon (optional)
Right icon (optional)
Button variants communicate hierarchy and help users identify the most important action on a screen.
Use for the main action on a screen. Each view should have only one primary button to clearly communicate the most important next step.
Button tone changes the colour treatment within the selected variant so the action can match the surrounding context.
The default button tone. Use for standard actions in the main SGDS brand colour system.
Button sizes let you match the visual weight of the action to the density of the surrounding layout.
The default size — use for most primary actions across forms, dialogs, and general page content.
A leading icon sits to the left of the button label and reinforces the meaning of the action.
Omit the leading icon when the label alone is clear and no visual reinforcement is needed.
A trailing icon sits to the right of the button label and is typically used to signal direction or progression.
Omit the trailing icon when the action does not imply movement, navigation, or a follow-up interaction.
Component tokens are specific to each component. Use the table title as the prefix: border-radius under sgds/btn means sgds/btn/border-radius.
sgds/border-radius/mdsgds/border-width/1sgds/gap/2-xssgds/padding/smsgds/dimension/32sgds/dimension/64sgds/font-size/12sgds/line-height/16sgds/padding/mdsgds/dimension/40sgds/dimension/80sgds/font-size/14sgds/line-height/20sgds/padding/lgsgds/dimension/48sgds/dimension/96sgds/font-size/16sgds/line-height/24sgds/padding/xlsgds/dimension/56sgds/dimension/112sgds/font-size/20sgds/line-height/32sgds/primary/surface-defaultsgds/primary/surface-emphasissgds/color-fixed-lightsgds/danger/surface/defaultsgds/danger/surface/emphasissgds/color-fixed-lightsgds/surface-inversesgds/bg-translucent-inversesgds/color-inversesgds/surface-fixed-lightsgds/surface-fixed-light + sgds/bg-translucent-fixed-darksgds/color-fixed-darksgds/bg-transparentsgds/primary/bg-translucentsgds/primary/color-defaultsgds/primary/border-color/defaultsgds/bg-transparentsgds/danger/surface/translucentsgds/danger/color/defaultsgds/danger/border-color/defaultsgds/bg-transparentsgds/bg-translucent-subtle + sgds/bg-translucent-inversesgds/color-defaultsgds/border-color/emphasissgds/bg-transparentsgds/bg-transparent + sgds/bg-translucent-fixed-darksgds/color-fixed-lightsgds/border-color/fixed-lightsgds/bg-transparentsgds/primary/surface/translucentsgds/primary/color-defaultsgds/bg-transparentsgds/danger/surface/translucentsgds/danger/color/defaultsgds/bg-transparentsgds/bg-translucent-subtlesgds/color-defaultsgds/bg-transparentsgds/bg-transparent + sgds/bg-translucent-fixed-darksgds/color-fixed-lightSpecific button labels help users understand the outcome before they act.
Generic labels such as 'Click here' or 'Submit' without context slow users down.
TabShift+TabEnterSpaceShare them with us on
Report it on GitHub
The Singapore Government Design System was developed to empower teams in creating fast, accessible and mobile-friendly digital services.