Components
UaePassButton
The UAE PASS sign-in button — an outlined pill with the UAE PASS logo and the published copy.
Figma description ·
button-uae-passOpen in Figma ↗This component has no description in Figma yet.
Props
import SwiftUI import EandTokens // button-uae-pass: 48pt pill, min 48 wide, padding 12, no fill, 1pt inside stroke. // 24pt UAE PASS logo, then the button/lg label (4 + 4 inset). lg only, no pressed state. // Disabled: the stroke and label take the disabled tokens, the logo dims to 34%. struct UaePassButton: View { var title = "Login with UAE PASS" // or "Continue with UAE PASS" var disabled = false var action: () -> Void var body: some View { Button(action: action) { HStack(spacing: 0) { Image("uae-pass-logo") // the third-party mark, exported from Figma 39861:22255 .resizable().frame(width: EandIcon.xl, height: EandIcon.xl) .opacity(disabled ? 0.34 : 1) Text(title) .font(.system(size: EandTypography.buttonLg.size, weight: EandTypography.buttonLg.weight)) .foregroundColor(disabled ? EandColor.buttonSecondaryTextMidnightDisabled : EandColor.buttonSecondaryTextMidnightDefault) .padding(.horizontal, EandSpacing.sm) } .padding(EandSpacing.md) .frame(minWidth: EandScale.scale48, minHeight: EandScale.scale48) .overlay(Capsule().strokeBorder( disabled ? EandColor.buttonSecondaryBorderBrandDisabled : EandColor.buttonSecondaryTextMidnightDefault, lineWidth: EandBorder.sm)) } .disabled(disabled) } }
When to use
- Use wherever a person signs in, or continues a flow, with UAE PASS, the national digital identity.
- Don't use for any other sign-in method, or as a general outlined button; that is Button. Keep the logo and the copy as published.
Choosing a variant
variant | Label | Layout |
|---|---|---|
login | Login with UAE PASS | Logo before the text |
continue | Continue with UAE PASS | Logo before the text |
rtl | تسجيل الدخول بالهوية الرقمية | Sets dir="rtl" and lang="ar" on the button; the logo follows the text |
It is a separate component, not a Button variant, because Figma publishes it as its own set: one
48px size, a brand logo instead of icon slots, fixed copy, and no scheme, pressed or loading
state. block stretches it to the container width. disabled switches the stroke and label to
their disabled tokens and dims the logo. children replaces the label; leave it unset to keep the
published copy. The button defaults to type="button" and forwards its ref.
Props
| Prop | Type | Default | Description |
|---|---|---|---|
block? | boolean | — | Stretch to fill the container width. |
children? | ReactNode | — | Label override. Defaults to the Figma copy for variant. |
variant? | 'login' | 'continue' | 'rtl' | login | Figma type: login "Login with UAE PASS" · continue "Continue with UAE PASS" ·
rtl the Arabic login label, laid out right-to-left (logo after the text). |
Design
Figma source: button-uae-pass — etisalat Consumer App DSL V1.2
- 48px tall (
scale/48), at least 48 wide, inline padding 12 (spacing/md),border-radius/9, no fill. - A 1px inside stroke in
button/secondary/text/midnight/default; disabled,button/secondary/border/brand/disabled. - Label
button/lginbutton/secondary/text/midnight/default(…/disabledwhen disabled), after a 24px logo, withspacing/xspadding on the content and on the label. - The logo is the UAE PASS mark exported from Figma, in its own colours rather than etisalat tokens. Disabled, it drops to 34% opacity, a value Figma does not bind to a token.