A guide for the development team at the CFPB.
“All code in any code-base should look like a single person typed it, no matter how many people contributed.”
- Start here – New to software development at the CFPB? Read this first.
- Accessibility
- Atomic Design
- Authoring, testing, and publishing npm modules
- Browser support
- Browser support exceptions: This document outlines the decision making process for requesting an exception to current browser support standards.
- Browser testing with Sauce Labs
- Building your project's front-end
- Code review guide
- Creating CommonJS modules
- Documenting your work
- Front-end testing
- Git and GitHub
- Installing and using Python
- Using pipx for command-line Python tools
- Patterns for git-secrets
- Publishing Python packages to PyPI
- Screen reader differences
- Unit testing Django and Wagtail
- Using npm modules in projects
- Open source project template
- Browser testing checklist
- ESLint file
- gitignore sample
- Pull request template
The Design System is our modular front end framework (formerly named Capital Framework).
- Service: We value that what we do is being of service to consumers, customers, and internal partners
- Mutual Respect: We respect and encourage diverse backgrounds, lifestyles, and personalities
- Communication: We strive to communicate our activities inside and outside of the team
- Openness: We and our work-products are open and available for anyone to see and improve
- Leadership: Everyone leads and everyone follows, setting an example for federal government
- Learning and Innovation: We seek to apply creative thinking to improve what we do all the time. We constantly seek ways to improve ourselves and our teams
- Willingness: We are willing to help each other with anything that is good for the team
- Excellence: We believe that excellence is defined by a commitment to and practice of constant learning and improvement
- End goals of the user should be what drive the front-end design.
- Pages, apps, and sites should be inclusive of all users.
- We want to continue to use cutting-edge technologies and methods to build modern applications, but without compromising usability for all consumers.
- Testing in supported browsers should be as painless as we can make it.
- Websites should download quickly and not cost users on metered data connections much money.
- Development workflows and standards are understood by all of us and easy to maintain.