5.0 KiB
5.0 KiB
Development Rules and Guidelines
Core Principles
- No emojis - Use proper icons from icon libraries (Lucide, Heroicons, etc.)
- Minimalist paper style - Clean, document-focused design with clear typography
- Mobile-first responsive design - Must work perfectly on all device sizes
- Accessibility first - WCAG 2.1 AA compliance minimum
- Clear separation of concerns - Components, composables, stores, styles all properly separated
- TypeScript strict mode - No any types, proper typing throughout
Architecture Decisions
Tech Stack
- Vue 3 with Composition API
- TypeScript (strict mode)
- Vite for build tooling
- Vue Router for navigation
- Pinia for state management
- CSS custom properties for theming
- CSS Grid/Flexbox for layouts (no CSS framework bloat)
Project Structure
src/
├── assets/ # Static assets, fonts
├── components/ # Reusable Vue components
│ ├── layout/ # Header, Footer, Navigation
│ ├── document/ # Document viewers, sections
│ └── ui/ # Buttons, cards, forms
├── composables/ # Vue composables for shared logic
├── pages/ # Route-based page components
├── router/ # Vue Router configuration
├── stores/ # Pinia stores
├── styles/ # Global styles, variables, mixins
├── types/ # TypeScript type definitions
└── utils/ # Helper functions
CSS Design System
Color Palette
- Paper white background:
#FAFAF8 - Off-white sections:
#F5F5F0 - Text black:
#1A1A1A - Muted text:
#666666 - Accent (links/actions):
#0066CC - Warning:
#D97706 - Error:
#DC2626 - Success:
#059669
Typography
- System font stack for body
- Monospace for code/technical content
- Clear hierarchy: 1.618 golden ratio scale
- Line height: 1.6 for body, 1.2 for headings
- Maximum line length: 75ch for readability
Spacing
- Base unit: 8px
- Scale: 4, 8, 12, 16, 24, 32, 48, 64, 96
- Consistent padding/margins using CSS custom properties
Component Guidelines
- Single responsibility principle
- Props validation with TypeScript interfaces
- Emit events for parent communication
- Use slots for content projection
- Scoped styles by default
- BEM naming for CSS classes when needed
Content Adaptations
Bylaws Modifications
- Change proposal timeline from 30 days to 9-14 days
- Emphasize do-ocracy principles
- Clear delegation of authority to members
- Streamlined decision-making process
- Board as "wardens" not leaders - infrastructure and conflict resolution only
Key Sections to Include
- Home/Introduction - Mission, purpose, adaptability notice
- Bylaws - Legal structure and governance
- Community Standards - Code of conduct and accountability
- Do-ocracy Guide - How to get things done (based on hackerspace blueprint)
- Decision Making - When to act vs when to meet
- Conflict Resolution - Private talks, board mediation
- Membership - How to join and participate
- The Board - Limited role as infrastructure maintainers
- Resources - Templates, forms, additional reading
- Adapt This - Guide for other hackerspaces
Core Do-ocracy Principles to Highlight
- "If you want something done: Just do it!"
- Authority comes from doing, not from election
- Communicate actions to the community
- Be open to feedback and potential reversals
- Focus on execution over perfect planning
- Allow people to fail and learn
- Build mutual trust through action
Performance Targets
- Lighthouse score > 95 all categories
- First Contentful Paint < 1.5s
- Time to Interactive < 3s
- Bundle size < 150KB (gzipped)
Accessibility Requirements
- Semantic HTML throughout
- ARIA labels where needed
- Keyboard navigation support
- Focus management for routes
- Color contrast ratios meeting WCAG AA
- Screen reader tested
Content Management
- Documents stored as Markdown or JSON
- Static generation where possible
- Search functionality for documents
- Print-friendly styles
- Export to PDF capability
Testing Strategy
- Unit tests for utilities and composables
- Component testing for critical UI
- E2E tests for main user flows
- Accessibility testing with axe-core
Implementation Notes
Phase 1: Foundation
- Set up Vue 3 + TypeScript + Vite
- Create base layout components
- Implement routing structure
- Set up CSS design system
Phase 2: Content
- Convert markdown documents to components
- Implement document viewer
- Add navigation between sections
- Create search functionality
Phase 3: Polish
- Add print styles
- Implement PDF export
- Optimize performance
- Add PWA capabilities
Phase 4: Distribution
- Documentation for adaptation
- Template generation tools
- Deployment guide
- Community contribution guidelines
References
- Hackerspace Design Patterns: https://hackerspace.design
- Vue 3 Best Practices
- TypeScript Strict Mode Configuration
- WCAG 2.1 Guidelines
- Progressive Enhancement Principles