Button Design System

The unified button component system for the DynaCrete® website. This system provides consistent styling and behavior across all buttons.

Variants

Button variants define the visual style and purpose of buttons throughout the site.

<Button variant="primary">Primary Button</Button>
<Button variant="secondary">Secondary Button</Button>
<Button variant="accent">Accent Button</Button>
<Button variant="outline">Outline Button</Button>
<Button variant="ghost">Ghost Button</Button>

Sizes

Different sizes for different contexts and prominence levels.

<Button variant="primary" size="sm">Small Button</Button>
<Button variant="primary" size="md">Medium Button</Button>
<Button variant="primary" size="lg">Large Button</Button>

Rounded Styles

Choose between default rounded corners or pill-shaped buttons.

<Button variant="primary" rounded="none">Square Button</Button>
<Button variant="primary">Default Rounded</Button>
<Button variant="primary" rounded="full">Pill Button</Button>

Full Width

Buttons that span the full width of their container.

<Button variant="primary" fullWidth>Full Width Button</Button>

Buttons with Icons

Add icons to buttons for additional context or visual appeal.

<Button variant="primary">
  <span class="inline-flex items-center">
    <span set:html={plusIcon} /> <span class="ml-2">Add New</span>
  </span>
</Button>
<Button variant="primary">
  <span class="inline-flex items-center">
    <span class="mr-2">Next Step</span> <span set:html={arrowRightIcon} />
  </span>
</Button>

Link Buttons

Buttons that navigate to other pages or external URLs.

<Button variant="primary" href="/products">View Products</Button>
<Button variant="outline" href="/contact">
  <span class="inline-flex items-center">
    <span class="mr-2">Contact Us</span> <span set:html={arrowRightIcon} />
  </span>
</Button>

Disabled State

Buttons that cannot be interacted with.

<Button variant="primary" disabled>Disabled Button</Button>
<Button variant="outline" disabled>Disabled Outline</Button>