Skip to content

floriankulig/spadelib

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

93 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

♠️ Spade Component Library

A project-business optimized frontend component library designed for consulting environments with diverse client requirements

Overview

Spade is a frontend component library specifically designed for the challenges of project business in consulting environments. Unlike traditional component libraries that follow strict design guidelines (like Material Design), Spade prioritizes flexibility and customization to adapt to diverse client requirements while maintaining development efficiency.

Problem Statement

Traditional component libraries face significant limitations in consulting/project business contexts:

  • Limited Customization: Libraries like Angular Material are explicitly designed to discourage customization
  • Design Constraints: Strict adherence to design guidelines (Material Design) conflicts with individual client requirements
  • Update Challenges: Breaking changes require extensive refactoring, especially with CSS overrides
  • Performance Issues: Full libraries create unnecessary bundle size when only specific components are needed
  • Accessibility Gaps: Inconsistent or incomplete accessibility implementations across different libraries
  • Time Investment: 20-30% of frontend development time spent on component adaptation rather than business logic

Solution Approach

Spade adopts the "own your code" principle, inspired by shadcn/ui:

  • Local Code Ownership: Components are copied directly into project codebase, not installed as NPM dependencies
  • CLI-Based Distribution: spade get button copies component code directly into your project
  • Complete Control: Full customization capabilities without CSS override limitations
  • No Update Conflicts: Components live in your codebase, eliminating breaking change issues

Key Features

🎨 Design Token System

  • Centralized theming configuration
  • Easy adaptation to client design systems
  • Automatic component styling based on tokens

Accessibility-First Architecture

  • WCAG 2.1 AA compliance by default
  • Automatic ARIA attributes implementation
  • Screen reader optimization
  • Keyboard navigation patterns
  • Focus management system

🛠️ Developer Experience

  • CLI tooling for component installation and updates
  • Comprehensive documentation with examples
  • TypeScript support out of the box
  • Framework-agnostic core architecture

📦 Atomic Design Structure

  • Hierarchical component organization (Atoms → Molecules → Organisms)
  • Reusable and composable component patterns
  • Scalable architecture for complex applications

Target Use Cases

  • Consulting Projects: Multiple clients with different design requirements
  • Enterprise Applications: Custom branding and accessibility compliance needs
  • Rapid Prototyping: Quick adaptation to new design systems
  • Long-term Maintenance: Stable components without external dependency updates

Research Focus

This project is part of a bachelor thesis investigating:

  1. Architecture Patterns: Optimal combination of Atomic Design, local components, and framework-agnostic approaches
  2. Developer Experience: Impact of different approaches on development efficiency
  3. Maintainability: Update mechanisms and consistency for local components
  4. Accessibility Integration: Transparent accessibility implementation without limiting customization
  5. Framework Agnosticism: Feasibility and implementation strategies

Current Status

🚧 In Development - This is a research project and prototype implementation

  • Core component architecture
  • Design token system implementation
  • Usability testing
  • CLI tooling development
  • Accessibility framework integration
  • Performance testing

Technology Stack

  • TypeScript for type safety and developer experience
  • Build Tools: Modern bundling and compilation pipeline
  • Testing: Automated accessibility testing (axe-core, Pa11y)
  • Documentation: Comprehensive guides and API documentation

Contributing

This project is currently in active research and development phase. Contributions and feedback are welcome, especially from developers working in consulting or project business environments.

Research Context

This component library is being developed as part of a bachelor thesis at Capgemini, focusing on optimizing frontend development for project business scenarios. The research aims to provide quantitative and qualitative evaluation of different component library approaches in enterprise consulting contexts.


Note: This is a research project. The component library is being developed and evaluated as part of academic research into frontend development practices in consulting environments.

About

The consulting/project-business optimized library built within the scope of my bachelors thesis.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors