# Call-to-Action (CTA) Guidelines
This document outlines the standardized patterns for buttons, links, and action elements in ThrillWiki.
## Button Hierarchy
### Primary Actions
Use for the main action on a page or in a section:
```html
Create New
```
**When to use:**
- Form submissions
- Main page actions
- Completing a flow
### Secondary Actions
Use for important but non-primary actions:
```html
```
**When to use:**
- Alternative actions
- Non-destructive secondary options
- Cancel with importance
### Tertiary Actions
Use for low-emphasis actions:
```html
Go Back
```
**When to use:**
- Cancel buttons
- Navigation links
- Dismissive actions
### Destructive Actions
Use for actions that delete or remove data:
```html
```
**When to use:**
- Delete operations
- Remove actions
- Destructive confirmations
## Button Sizes
```html
```
## Button States
### Loading State
```html
```
### Disabled State
```html
```
### With Icon
```html
```
## Action Bar Component
Use the action bar for consistent button placement:
```django
{% include 'components/ui/action_bar.html' with
primary_action_text='Save Changes'
primary_action_icon='fas fa-save'
secondary_action_text='Preview'
tertiary_action_text='Cancel'
tertiary_action_url='/parks/'
%}
```
### Alignment Options
```django
{# Right-aligned (default) #}
{% include 'components/ui/action_bar.html' with align='right' ... %}
{# Left-aligned #}
{% include 'components/ui/action_bar.html' with align='left' ... %}
{# Space-between (cancel left, actions right) #}
{% include 'components/ui/action_bar.html' with align='between' ... %}
{# Center-aligned #}
{% include 'components/ui/action_bar.html' with align='center' ... %}
```
## Placement Guidelines
### Page Headers
Primary CTA in page header, aligned right:
```django
{% include 'components/layout/page_header.html' with
title='Parks'
primary_action_url='/parks/create/'
primary_action_text='Add Park'
primary_action_icon='fas fa-plus'
%}
```
### Card Actions
Actions in card footer, right-aligned:
```html
```
### Form Actions
Form buttons at bottom, with cancel on left or right based on flow:
```html