Azure / Azure/azure-dev

Identify UX Design Patterns for Use in Extensions

Open
#6,227 0 comments 0 reactions 0 assignees View on GitHub
area/docs area/extensions area/ux developer-experience enhancement
Dominant language
Go
Stars
569
Forks
364
Avg merge
2d 19h
Merged PRs (30d)
136

Description

## Description

Create comprehensive documentation of UX design patterns and best practices for extension developers to ensure consistent and high-quality user experiences across all azd extensions.

## Acceptance Criteria

- Best practices for prompting users for input (interactive prompts, validation, error handling)
- Patterns for displaying long-running operations (spinners, progress bars, status updates)
- Patterns for printing output (formatted tables, JSON output, verbosity levels, color/styling)
- Code examples demonstrating each pattern
- Guidelines on when to use each pattern

## Key Areas to Document

### 1. User Input Prompting
- Interactive prompts (text, select, confirm, multi-select)
- Input validation and error messages
- Default values and suggestions
- Handling user cancellation (Ctrl+C)
- Accessibility considerations

### 2. Long-Running Operations
- Spinner patterns for indeterminate operations
- Progress bars for determinate operations
- Status message updates during execution
- Handling background tasks
- Timeout and cancellation patterns

### 3. Output Printing
- Structured output formats (JSON, table, list)
- Verbosity levels (quiet, normal, verbose, debug)
- Color and styling conventions
- Error and warning message formatting
- Support for output redirection and piping

## Related Issues

- #4989 (Extension Developer Documentation) - This would be core content
- #5767 (Extension Enhancements Epic) - UX consistency is key enhancement

## Benefits

- Consistent user experience across all extensions
- Reduced learning curve for extension developers
- Improved accessibility and usability
- Better integration with azd core UX patterns

## Additional Considerations

- Reference existing azd core patterns from `internal/terminal/` package
- Include examples from existing extensions (azure.ai.agents, azure.coding-agent)
- Consider CI/CD linting to enforce UX patterns

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.