Social Button
StablePre-styled social login and sign-in buttons with brand colors, icons, and three theme options. Supports 12 social providers out of the box.
Brand Theme
Full brand-colored backgrounds matching each provider's identity guidelines.
Brand — Sign In Group
Brand — More Providers
Color Theme
Glass-style buttons with colored icons on a neutral background. Blends with the Omnira UI design system.
Color — Sign In Group
Gray Theme
Monochrome buttons using the current text color. Minimal and unobtrusive.
Gray — Sign In Group
Icon Only
Compact icon-only buttons for tight layouts. Omit the children prop to render icon-only mode.
Icon Only — Brand
Icon Only — Color
Icon Only — Gray
Per-Provider Showcase
Each provider shown across all three themes with both full-width and icon-only variants.
Apple — All Themes
Google — All Themes
GitHub — All Themes
Sizes
Three size options for different contexts.
Sizes
Usage
Import the SocialButton component and use it in your application.
tsx
import { SocialButton } from "omnira-ui/SocialButton";
export default function LoginPage() {
return (
<div style={{ display: "flex", flexDirection: "column", gap: 12, maxWidth: 360 }}>
<SocialButton social="google" theme="brand">
Sign in with Google
</SocialButton>
<SocialButton social="github" theme="color">
Sign in with GitHub
</SocialButton>
<SocialButton social="apple" theme="gray">
Sign in with Apple
</SocialButton>
{/* Icon-only mode — omit children */}
<div style={{ display: "flex", gap: 12 }}>
<SocialButton social="google" theme="color" />
<SocialButton social="github" theme="color" />
<SocialButton social="apple" theme="color" />
</div>
</div>
);
}Props
| Prop | Type | Default | Description |
|---|---|---|---|
| social | "google" | "facebook" | "apple" | "github" | "x" | "linkedin" | "microsoft" | "discord" | "slack" | "figma" | "dribbble" | "spotify" | — | Social provider to render |
| theme | "brand" | "color" | "gray" | "brand" | Visual theme — brand colors, colored icon on neutral, or monochrome |
| size | "sm" | "md" | "lg" | "md" | Button size |
| children | ReactNode | undefined | Button label. Omit for icon-only mode |
| disabled | boolean | false | Disabled state |