RRobloxUI
BrowseThemeSubmit
RRobloxUI β€” Roblox UI Components Marketplace
Theme ReferencePrivacy
  1. Home
  2. /
  3. Buttons
  4. /
  5. Secondary Button
Live Previewrunning real Luau in your browser
Booting Luau VM…
Preview of Secondary Button β€” executed via in-browser Luau VM (wasmoon)

Secondary Button

TSX + LuauFree

An outlined button for secondary or supporting actions. Matches the visual hierarchy of the primary button with a subtle border style.

Details

AuthorRobloxUI Team
FrameworkRoblox-TS + React-Luau
CategoryButtons
Dependencies@rbxts/react, @robloxui/theme
Theme Tokenscolors.bgSecondary, colors.border, colors.textPrimary, spacing.sm, spacing.md
Last UpdatedJuly 22, 2026
import React from "@rbxts/react";
import { useTheme } from "@robloxui/theme";

interface SecondaryButtonProps {
  text: string;
  onClick: () => void;
  disabled?: boolean;
}

export function SecondaryButton({ text, onClick, disabled = false }: SecondaryButtonProps) {
  const { colors, spacing } = useTheme();

  return (
    <textbutton
      Text={text}
      BackgroundColor3={colors.bgSecondary}
      BorderColor3={colors.border}
      TextColor3={colors.textPrimary}
      AutoButtonColor={!disabled}
      Event={{ Activated: disabled ? undefined : onClick }}
      Size={new UDim2(0, 0, 0, 0)}
      AutomaticSize={"XY"}
    >
      <uipadding
        PaddingTop={new UDim(0, spacing.sm)}
        PaddingBottom={new UDim(0, spacing.sm)}
        PaddingLeft={new UDim(0, spacing.md)}
        PaddingRight={new UDim(0, spacing.md)}
      />
      <uicorner CornerRadius={new UDim(0, 8)} />
      <uistroke Thickness={1} Color={colors.border} />
    </textbutton>
  );
}
Secondary Button β€” RobloxUI