Skip to main content

Styling the pre-built UI

The pre-built UI for React and Vue.js take a property called appearence. Using this property, you can change the colors and fonts of the pre-built components to match the rest of your system.

Theme object

The appearance property takes an object typed as { theme?: [Theme](#theme-object) } and the Theme has two properties: colors and fonts.

For example, to make the primary button pink and change the font:

<Auth
scuteClient={scuteClient}
language="en"
policyURLs={{
privacyPolicy: "/privacy",
termsOfService: "/terms",
}}
logoUrl={"https://example.com/logo.svg"}
appearance={{
theme: {
colors: { buttonIdleBg: "pink", buttonIdleText: "black" }
fonts: {
main: "'SF Pro Display', sans-serif",
mono: "'SF Mono', monospace",
}
}
}}
/>

Below is a list of colors, fonts, and their default values:

Fonts

PropertyDefault Value
main"Inter", -apple-system, system-ui, sans-serif
monomonospace

Colors

PropertyDefault Value
errorColor#fe4f0d
svgIconColor#121212
svgIconMutedColor#f7f7f7
loadingSpinnerColor#cccccc
loadingSpinnerBorder#f1f1f1
surfaceBg#f7f7f7
surfaceLink#666666
surfaceText#666666
surfaceTextBg#ffffff
cardBg#ffffff
cardHeadingText#121212
cardBodyText#121212
cardFooterText#b0b0b0
cardFooterLink#b0b0b0
panelBg#f7f7f7
panelText#121212
inputBg#ffffff
inputText#121212
inputPlaceholder#333333
inputBorder#333333
inputFocusGlowrgba(46, 234, 175, 0.3)
inputDisabledBg#dedede
inputDisabledText#333333
buttonIconColor#ffffff
buttonIdleText#ffffff
buttonIdleBg#212121
buttonIdleBordertransparent
buttonIdleShadowtransparent
buttonPassiveBg#f7f7f7
buttonPassiveText#bababa
buttonHoverBg#121212
buttonHoverText#ffffff
buttonHoverBorderblack
buttonHoverShadowtransparent
buttonFocusBorderrgba(46, 234, 175, 0.3)
buttonFocusShadowrgba(46, 234, 175, 0.3)
buttonAltIconColor#ffffff
buttonAltIdleText#333333
buttonAltIdleBg#ffffff
buttonAltIdleBorderrgba(0,0,0,0.2)
buttonAltIdleShadowrgba(0,0,0,0.05)
buttonAltPassiveBg#757575
buttonAltHoverBg#121212
buttonAltHoverText#ffffff
buttonAltHoverBorderrgba(0,0,0,0.05)
buttonAltHoverShadowrgba(0,0,0,0.05)
buttonAltFocusBorderrgba(46, 234, 175, 0.3)
buttonAltFocusShadowrgba(46, 234, 175, 0.3)
buttonSocialIconColor#ffffff
buttonSocialIdleText#222222
buttonSocialIdleBg#f7f7f7
buttonSocialIdleBordertransparent
buttonSocialIdleShadowtransparent
buttonSocialPassiveBg#757575
buttonSocialHoverBg#f7f7f7
buttonSocialHoverText#222222
buttonSocialHoverBordertransparent
buttonSocialHoverShadowtransparent
buttonSocialFocusBorderrgba(46, 234, 175, 0.3)
buttonSocialFocusShadowrgba(46, 234, 175, 0.3)
userAvatarBg#f7f7f7
userAvatarBordertransparent
userAvatarText#222222
userMenuBg#f7f7f7
userMenuText#222222
userMenuSeparator#eee
userMenuHoverBg#f1f1f1
userMenuHoverText#222222
userMenuShadowrgba(0,0,0,0.05)

Examples

You can get really creative with the colors:

No session

<Auth
scuteClient={scuteClient}
language="en"
policyURLs={{
privacyPolicy: "/privacy",
termsOfService: "/terms",
}}
logoUrl={"https://example.com/logo.svg"}
appearance={{
theme: {
colors: {
svgIconColor: "#2BEB9A",
surfaceBg: "#2BEB9A",
surfaceLink: "#222222",
surfaceText: "#222222",
surfaceTextBg: "transparent",
cardBg: "#1f1f1f",
cardHeadingText: "#ffffff",
cardBodyText: "#ffffff",
hiContrast: "#ffffff",
panelBg: "#fff",
panelText: "#000000",
inputBg: "#ffffff",
inputText: "#121212",
inputPlaceholder: "#333333",
inputBorder: "#333333",
inputFocusGlow: "rgba(46, 234, 175, 0.3)",
buttonIconColor: "#ffffff",
buttonIdleText: "#222222",
buttonIdleBg: "#2BEB9A",
buttonIdleBorder: "transparent",
buttonIdleShadow: "transparent",
buttonPassiveBg: "#f7f7f7",
buttonPassiveText: "#bababa",
buttonHoverBg: "#2BEB9A",
buttonHoverText: "white",
buttonHoverBorder: "black",
buttonHoverShadow: "transparent",
buttonFocusBorder: "rgba(46, 234, 175, 0.3)",
buttonFocusShadow: "rgba(46, 234, 175, 0.3)",
buttonAltIconColor: "#ffffff",
buttonAltIdleText: "#333333",
buttonAltIdleBg: "white",
buttonAltIdleBorder: "rgba(0,0,0,0.2)",
buttonAltIdleShadow: "rgba(0,0,0,0.05)",
buttonAltPassiveBg: "#757575",
buttonAltHoverBg: "#2BEB9A",
buttonAltHoverText: "#121212",
buttonAltHoverBorder: "rgba(0,0,0,0.05)",
buttonAltHoverShadow: "rgba(0,0,0,0.05)",
buttonAltFocusBorder: "rgba(46, 234, 175, 0.3)",
buttonAltFocusShadow: "rgba(46, 234, 175, 0.3)",
buttonSocialIconColor: "#ffffff",
buttonSocialIdleText: "#fff",
buttonSocialIdleBg: "#3F3F3F",
buttonSocialIdleBorder: "transparent",
buttonSocialIdleShadow: "transparent",
buttonSocialPassiveBg: "#757575",
buttonSocialHoverBg: "#3F3F3F",
buttonSocialHoverText: "#fff",
buttonSocialHoverBorder: "transparent",
buttonSocialHoverShadow: "transparent",
buttonSocialFocusBorder: "rgba(46, 234, 175, 0.3)",
buttonSocialFocusShadow: "rgba(46, 234, 175, 0.3)",
},
},
}}
/>

You can even add background images to Buttons, the Surface section and the Card section

No session

<Auth
scuteClient={scuteClient}
language="en"
policyURLs={{
privacyPolicy: "/privacy",
termsOfService: "/terms",
}}
logoUrl={"https://example.com/logo.svg"}
appearance={{
theme: {
colors: {
svgIconColor: "#F17F5B",
surfaceBg: "url('/images/bg.png')",
surfaceTextBg: "rgba(255, 255, 255, 0.6)",
buttonIdleText: "#333333",
buttonIdleBg: "#F17F5B url('/images/bg.png')",
buttonHoverText: "#333333",
buttonHoverBg: "#F17F5B",
buttonAltHoverText: "#333333",
buttonAltHoverBg: "#F17F5B",

buttonFocusBorder: "rgba(255,117,193, 0.7)",
buttonFocusShadow: "rgba(255,117,193, 0.7)",
buttonAltFocusBorder: "rgba(255,117,193, 0.7)",
buttonAltFocusShadow: "rgba(255,117,193, 0.7)",
inputFocusGlow: "rgba(255,117,193, 0.7)",
},
},
}}
/>

Responsiveness

The Scute UI has the ability to adapt it's design based on its container size.

With a container size smaller than 1000px, Scute UI will change into a single column style for ease of use in devices with smaller screen:

No session

If the container size is bigger than 1000px, Scute UI will switch to a two column layuout to make better use of the larger screen to provide a finer experience:

No session