Thank you for your interest in contributing to Volks-Typo! This minimalist Astro blog theme follows Bauhaus design principles, and we welcome contributions that align with our design philosophy.
Before contributing, please understand our core principles:
- Minimalism: Less is more - avoid adding unnecessary complexity
- Typography First: Bold, industrial typography is our signature
- Performance: Zero JavaScript, minimal CSS
- Accessibility: All contributions must maintain WCAG 2.1 AA compliance
- Node.js 18+
- npm or pnpm
- Git
-
Fork the repository
# Click the "Fork" button on GitHub -
Clone your fork
git clone https://github.com/YOUR_USERNAME/volks-typo.git cd volks-typo -
Install dependencies
npm install
-
Start development server
npm run dev
-
Build for production
npm run build
volks-typo/
├── src/
│ ├── components/ # Astro components
│ ├── content/ # Blog posts and content
│ ├── pages/ # Page routes
│ ├── styles/ # Global styles
│ └── config.ts # Theme configuration
├── public/ # Static assets
└── astro.config.mjs # Astro configuration
- Use the bug report template
- Include steps to reproduce
- Provide screenshots if relevant
- Check existing issues first
- Use the feature request template
- Explain how it aligns with our minimalist philosophy
- Consider performance implications
- Provide mockups if possible
-
Create a feature branch
git checkout -b feature/your-feature-name
-
Make your changes
- Follow existing code style
- Add/update tests if applicable
- Update documentation
-
Test thoroughly
# Run linting npm run lint # Run type checking npm run check # Build and preview npm run build npm run preview
-
Commit with conventional commits
git commit -m "feat: add new feature" git commit -m "fix: resolve issue with mobile menu" git commit -m "docs: update README"
-
Push and create PR
git push origin feature/your-feature-name
- Use 2 spaces for indentation
- Follow ESLint configuration
- Keep components small and focused
- Prefer CSS over JavaScript solutions
- Use CSS custom properties for theming
- Follow the 8-point grid system
- Maintain the existing color palette
- Use scoped styles in Astro components
- Headings: Uppercase with letter-spacing
- Body: Work Sans for readability
- Code: JetBrains Mono
- Don't add new fonts without discussion
- No JavaScript unless absolutely necessary
- Optimize images (WebP preferred)
- Keep CSS bundle under 25KB
- Test on slow connections
- Semantic HTML
- Proper heading hierarchy
- ARIA labels where needed
- Keyboard navigation support
- Color contrast ratios (WCAG AA)
Look for issues labeled good first issue for beginner-friendly tasks:
- Documentation improvements
- CSS optimizations
- Accessibility enhancements
- Bug fixes
- Automated checks must pass
- Design review for UI changes
- Performance impact assessment
- Accessibility testing required
- Maintainer approval needed
- Lighthouse - Performance testing
- WAVE - Accessibility testing
- Contrast Checker - Color contrast
- Discussions: Use GitHub Discussions for questions
- Discord: Join Astro Discord and find us there
- Twitter: Follow @jdrhyne for updates
By contributing, you agree that your contributions will be licensed under the MIT License.
Contributors will be recognized in:
- GitHub contributors list
- Release notes
- Special thanks in README
Remember: Quality over quantity. A single well-crafted contribution aligned with our design philosophy is worth more than many that dilute the theme's focus.
Happy contributing! 🚀