Accessible Astro Dashboard
Introduction
Accessible Astro Dashboard is a comprehensive admin dashboard theme that includes a login system, dashboard overview, and various admin pages. It’s built with accessibility in mind and includes numerous utility classes and design system primitives.
Key Features
- Login system with authentication example
- Dashboard overview with widgets
- Admin pages (Media, Messages, Products, Settings, Users)
- Keyboard accessible sidebar navigation
- Collapsible sidebar with localStorage preference
- Dark mode with system preference detection
- Responsive design with mobile navigation
- Design system utilities and primitives
Accessibility Features
- Semantic HTML landmarks
- Skip links navigation
- Keyboard accessible navigation (arrow keys, escape key)
- Screen reader friendly components
- Focus management
- Proper ARIA attributes
- High contrast mode support
- Reduced motion preferences
- Clear focus indicators
- Screen reader only text utilities
Components
The dashboard includes several specialized components:
LoginForm
- Accessible login form with validationDashboardWidget
- Customizable dashboard widgetsEmptyState
- Placeholder for empty data statesNavigation
- Collapsible sidebar navigationMedia
- Media gallery with paginationResponsiveToggle
- Mobile navigation toggle- And more through the components package
Design System
The theme includes a comprehensive design system with:
Layout Utilities
- 12-column grid system
- Auto-grid layouts
- Flexible container system
- Alignment utilities
Visual Utilities
- Color system with semantic variables
- Typography scale
- Spacing system
- Elevation (box-shadow) utilities
- Border radius utilities
- Animation utilities
Example Usage
Getting Started
- Clone the repository:
- Install dependencies:
- Start development server:
Customization
The dashboard can be customized through:
- SCSS variables in
public/scss/base
- Component modifications in
src/components
- Layout adjustments in
src/layouts
- Page content in
src/pages
Contributing
You can contribute to this project by:
- Filing an issue
- Submitting a pull request
- Starting a discussion
- Supporting the project