SlideShare a Scribd company logo
Building a modular front-end framework
and style guide for a large organization
Scott Cranfill and Mollie Bates
OSCON – June 22, 2015
2
Overview
 Problem: How do you keep design and code consistent
with a large, remote team working across disciplines and
different projects?
 Our solution, in one sentence: Design and publish your
standards in the open, and build a front-end framework that
enables developers to easily implement and maintain them.
CFPB Design Manual:
cfpb.github.io/design-manual
Capital Framework
cfpb.github.io/capital-framework
3
CFPB Design Manual & Capital Framework at OSCON
5
CFPB’s mission
The CFPB is a 21st century agency that helps consumer
finance markets work by making rules more effective, by
consistently and fairly enforcing those rules, and by
empowering consumers to take more control over their
economic lives.
This is the footer
7
Our core functions
 Write rules, supervise companies and enforce federal
consumer financial protection laws
 Restrict unfair, deceptive or abusive acts or practices
 Take consumer complaints
 Promote financial education
8
Our core functions
 Research consumer behavior
 Monitor financial markets for new risks to consumers
 Enforce laws that outlaw discrimination and other unfair
treatment to consumers
9
We achieve our mission through
 Data-driven analysis
 Innovative use of technology
 Valuing the best people and great teamwork
This is the footer
11
Technology and Innovation Fellowship
 30 fellows hired in January 2013 from all over the country
• Quadrupled the size of the Design & Development Team
 Second class began in January 2015; 15 retained from
original class and 23 new fellows added
12
Our team today
1 creative director
7 managers/producers
11 graphic designers
9 UX designers
13 front-end developers
20 back-end developers
2 multimedia
13
Our team today
1 creative director
7 managers/producers
7 4 graphic designers
8 1 UX designers
11 2 front-end developers
9 11 back-end developers
2 multimedia
14
Project teams
 Teams are mostly remote
 1–2 each of UX, graphic design, front-end development, back-end
development
 Plus a product owner and scrum master, Agile methodology
 Develop in the open whenever possible
• cfpb.github.io/source-code-policy
This is the footer
This is the footer
17
CFPB design principles
1. Public service, public trust
2. Aesthetic integrity
3. Coherent end-to-end user experience
4. Give the user control
5. Design with data
6. Inclusion and accessibility
This is the footer
19
20
This is the footer
This is the footer
This is the footer
This is the footer
25
26
Coding standards
 No standard build process
 Mixture of Less and straight CSS
 Wild west of JavaScript library usage
 Coding style anarchy
27
Why we needed shared standards
 Large group of designers and developers working on
separate projects, across the country
 Off-site contractors working on web products, print
collateral, and marketing
 Consistent branding and user experience builds trust with
consumers
This is the footer
This is the footer
30
Design Manual goals
 Establish an empirical source of the latest standards
 Ensure that employees and contract agencies understand how to
use our brand and UI patterns effectively, and in a way that
is consistent with existing work
 Enable other government agencies to use or learn from our
standards
This is the footer
This is the footer
This is the footer
This is the footer
This is the footer
This is the footer
This is the footer
This is the footer
This is the footer
This is the footer
This is the footer
Join the conversation!
github.com/cfpb/design-manual/issues
42
43
“A framework, you say?”
44
45
What is it?
1. A collection of modular HTML/CSS/JavaScript
components
2. A build process that brings them together
3. A recommended workflow that eases the burden of
keeping the front end in sync across multiple projects with
different developers
“You’ve heard of Bootstrap, right?”
46
Because government.
47
Because government usability.
48
49
Why build our own?
 Browser support
 Accessibility
• Section 508
• WCAG 2.0 Level AA
 Effort
 Modularity
Modularity
51
Advantages of a modular structure
 Ease of updating
 Use only what you need
 Encourages contributions
52
Workflow for an existing project
edit project source
edit
component
source
rebuild
component
push
component to
remote repo
clone
install Grunt
dependencies
install cf or
third-party
components build project
test in
browser
This is the footer
54
Workflow for an existing project
edit project source
edit
component
source
rebuild
component
push
component to
remote repo
clone
install Grunt
dependencies
install cf or
third-party
components build project
test in
browser
Component update workflow in detail
cf-buttons
1.1.0
cf.gov hmda-site future-project
Component update workflow in detail
cf-buttons
1.1.0
cf-buttons
1.1.0
Component update workflow in detail
cf-buttons
new-feature
future-project
58
Modifying dependency version for testing
Component update workflow in detail
cf-buttons
1.1.0
cf-buttons
new-feature
60
Component update workflow in detail
cf.gov hmda-site future-project
cf-buttons
1.2.0
cf.gov hmda-site future-project
This is the footer
This is the footer
This is the footer
64
Capital Framework/Design Manual integration
 Design Manual is built on Capital Framework
 When design standard is updated, to see in the manual,
must be updated in the framework
 Interdependency keeps designers and developers in sync
This is the footer
This is the footer
This is really hard.
67
This is the footer
This is the footer
This is the footer
This is the footer
This is the footer
This is the footer
This is the footer
This is the footer
This is the footer
This is the footer
Give it a try!
78
79
Getting started docs:
cfpb.github.io/capital-framework
80
Contribute!
github.com/cfpb/capital-framework
81
This is the footer
83
In summary
 Problem: How do you keep design and code consistent
with a large, remote team working across disciplines and
different projects?
 Our solution, in one sentence: Design and publish your
standards in the open, and build a front-end framework that
enables developers to easily implement and maintain them.
scott.cranfill@cfpb.gov, @scott_ish
mollie.bates@cfpb.gov, @mebates
Thank you! Questions?
84

More Related Content

PDF
Mobile App Development for Startups | Phase Specific Presentation
PPTX
W J L A B S R E M I T V2
PPTX
Low code platform and Outsystems
PPTX
Open Source, Joomla and Magento by Espen
PPTX
BX PX UX CX
PPTX
Designing for (all of) America at the CFPB, AIGA conference presentation
PDF
Regulatory Oversight Essentials, Part II: Monitoring and Shaping the Debate
PDF
Design and the CFPB
Mobile App Development for Startups | Phase Specific Presentation
W J L A B S R E M I T V2
Low code platform and Outsystems
Open Source, Joomla and Magento by Espen
BX PX UX CX
Designing for (all of) America at the CFPB, AIGA conference presentation
Regulatory Oversight Essentials, Part II: Monitoring and Shaping the Debate
Design and the CFPB

Similar to CFPB Design Manual & Capital Framework at OSCON (20)

PPTX
Modernize Development with Agile Engineering Practices
PDF
Guiding a Product Roadmap in a Chaotic World
PPTX
A One Stop Solution Platform for various Services Helping Tools.pptx
DOCX
Software development life cycle
PDF
INTERFACE by apidays 2023 - Governance Doesn't Have to be a Dirty Word, Jason...
PPTX
CodeValue Architecture Next 2018 - Executive track dilemmas and solutions in...
PPT
DevOps for Enterprise Systems - Rosalind Radcliffe
PDF
Web20 report excerpt
PDF
ANIn Pune Sep 2024 | From Friction to Flow: Empowering Developers with IDP by...
PDF
Agile ALM with Traceability: Release of codeBeamer 5.5
PDF
JourneyToLowCode_3of4.pdf
PDF
BUDDY White Paper
PDF
IBM Innovate - Uderstanding DevOps
PPTX
Poc vs pototype vs mvp an explanatory discussion
PDF
Application Migration: How to Start, Scale and Succeed
PPTX
Migrating from ClearCase
PPTX
In From the Cold: Open Source as Part of Mainstream Software Asset Management
PDF
DELIVER QUALITY SOFTWARE PRODUCTS BY FOLLOWING SIMPLE STEPS
PPTX
Draftkings: Launching w/ Confidence at Scale, FutureStack17 NYC
PDF
Why MVP Development Matters Creating User-Centric Products?
Modernize Development with Agile Engineering Practices
Guiding a Product Roadmap in a Chaotic World
A One Stop Solution Platform for various Services Helping Tools.pptx
Software development life cycle
INTERFACE by apidays 2023 - Governance Doesn't Have to be a Dirty Word, Jason...
CodeValue Architecture Next 2018 - Executive track dilemmas and solutions in...
DevOps for Enterprise Systems - Rosalind Radcliffe
Web20 report excerpt
ANIn Pune Sep 2024 | From Friction to Flow: Empowering Developers with IDP by...
Agile ALM with Traceability: Release of codeBeamer 5.5
JourneyToLowCode_3of4.pdf
BUDDY White Paper
IBM Innovate - Uderstanding DevOps
Poc vs pototype vs mvp an explanatory discussion
Application Migration: How to Start, Scale and Succeed
Migrating from ClearCase
In From the Cold: Open Source as Part of Mainstream Software Asset Management
DELIVER QUALITY SOFTWARE PRODUCTS BY FOLLOWING SIMPLE STEPS
Draftkings: Launching w/ Confidence at Scale, FutureStack17 NYC
Why MVP Development Matters Creating User-Centric Products?
Ad

Recently uploaded (20)

PDF
PTS Company Brochure 2025 (1).pdf.......
PPTX
L1 - Introduction to python Backend.pptx
PDF
System and Network Administraation Chapter 3
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PPTX
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
PPTX
ai tools demonstartion for schools and inter college
PPTX
history of c programming in notes for students .pptx
PPTX
Introduction to Artificial Intelligence
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
PDF
medical staffing services at VALiNTRY
PDF
AI in Product Development-omnex systems
PPTX
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
PDF
top salesforce developer skills in 2025.pdf
PPTX
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PDF
Wondershare Filmora 15 Crack With Activation Key [2025
PTS Company Brochure 2025 (1).pdf.......
L1 - Introduction to python Backend.pptx
System and Network Administraation Chapter 3
Design an Analysis of Algorithms I-SECS-1021-03
Oracle E-Business Suite: A Comprehensive Guide for Modern Enterprises
ai tools demonstartion for schools and inter college
history of c programming in notes for students .pptx
Introduction to Artificial Intelligence
Navsoft: AI-Powered Business Solutions & Custom Software Development
How to Migrate SBCGlobal Email to Yahoo Easily
medical staffing services at VALiNTRY
AI in Product Development-omnex systems
CHAPTER 12 - CYBER SECURITY AND FUTURE SKILLS (1) (1).pptx
top salesforce developer skills in 2025.pdf
Lecture 3: Operating Systems Introduction to Computer Hardware Systems
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Design an Analysis of Algorithms II-SECS-1021-03
Operating system designcfffgfgggggggvggggggggg
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
Wondershare Filmora 15 Crack With Activation Key [2025
Ad

CFPB Design Manual & Capital Framework at OSCON

Editor's Notes

  • #5: http://www.consumerfinance.gov/
  • #6: http://www.consumerfinance.gov/the-bureau/ We were created by the Dodd Frank Wall Street Reform and Consumer Protection Act – which was signed into law on July 21, 2010. We launched our first website less than 7 months later and officially opened our doors in July 2011 …
  • #7: which means that yesterday was our fourth birthday! http://www.consumerfinance.gov/blog/four-years-working-for-you/
  • #10: Technology is core to accomplishing our mission. We need to develop and leverage technology to enhance our reach, impact, and effectiveness. We also want to serve as a model for innovation within government.
  • #12: http://www.consumerfinance.gov/jobs/technology-innovation-fellows/
  • #16: https://cfpb.github.io/
  • #18: https://cfpb.github.io/design-manual/guides/design-principles.html
  • #20: We had traditional design standards in the form of a printed style guide, which went through several iterations from 2011 to 2013. Though it spoke to some aspects of web design – most notably, basic 508 accessibility guidelines– It did not include interactive web patterns.
  • #21: The early design staff also made a smart move to prioritize tools for all of our employees -- in the form of Microsoft Office templates -- so everyone at the Bureau could all be part of disseminating our brand. We continually maintain and update these templates.
  • #23: consumerfinance.gov on the day that the first fellows started, January 2013
  • #24: http://www.consumerfinance.gov/es/
  • #25: http://www.consumerfinance.gov/hmda/
  • #26: So, by September 2013, we have a landscape that looks like this – and there are still more examples of divergent designs that were live at that time that could be shown. Actually, all three of these designs are still live! Unifying disparate designs across many projects is a long process, and we still have a lot of work to do.
  • #30: We weren’t the first to think of this, of course. Many corporations have digital style guides or web patterns, and we were heavily influenced by the UK’s amazing Government Service Design Manual.
  • #32: https://cfpb.github.io/design-manual/
  • #33: It includes guides like our design principles,
  • #34: traditional style guide elements like logo standards,
  • #35: our full color palette,
  • #36: and our custom icon set. These standards were ripped straight from our printed style guide, and transferred over with little to no discussion.
  • #37: But the manual also now includes user interface elements like links
  • #38: and buttons. These did require a lot of discussion,
  • #39: and we used GitHub to do it. We discuss new standards and changes to existing standards in issues
  • #40: so you can hop on anytime and see our open discussions and process.
  • #41: In each issue, you can see us discuss and debate: Best practices for design Alignment to our brand Learnings from past usability testing 508 compliance Ease of implementation for our developers https://github.com/cfpb/design-manual/issues/143
  • #42: This isn’t the most efficient way to make decisions, but it is collaborative, inclusive, transparent and works for us. The documentation is open and extensive, so new employees (and the public!) can see how and why decisions were made.
  • #44: As the Design Manual was off and running and picking up steam, the front-end development team knew that we needed a way to catalogue all of the recommended code needed to produce the web design patterns being standardized there. So, we decided to build our own in-house framework, which we call “Capital Framework”.
  • #45: Here’s what it means to us…
  • #46: The framework comprises these three things:
  • #48: I kid a little bit, but I’m also serious. Maybe not for the reasons you think, though. It’s not that we’re afraid of using third party software. On the contrary, we love standing on the shoulders of open source software, and as mentioned earlier, we even have an official policy that encourages it!
  • #49: The real answer is because it’s ultimately better for our users—both the public, who will be using the products that run on the framework, and our developers, who use the framework itself to develop the products.
  • #51: What do we mean by modular? Well, this means we break the framework down into pieces, which we call “components”. Each component has a narrow focus, like defining typographical styles, specifying button types and states, or providing icons. We store each component in its own GitHub repository. Breaking it up like this is helpful because by making the framework a set of modular components, versus one monolithic folder (like other frameworks), it becomes easier to update it in bite-sized chunks, rather than all at once, and it becomes easier to share and distribute updates to each project using the framework. This approach was inspired by the Topcoat project from Adobe (shout out to Garth Brathwaite, who just presented here in another room last session), and is now gaining popularity with new frameworks like Basscss.
  • #54: A quick rundown of how npm and Bower dependency management works, for those who might not be familiar. In your project’s source code, you can create these two configuration files, package.json for npm, and bower.json for Bower. In these files, you can list dependencies, which are other packages (also called modules or components) that others have written, or maybe you’ve written yourself. Having them listed in these files will tell npm and Bower to look at their package registries and fetch each of these dependencies at the specified version number.
  • #55: So, back to the workflow. Here are the basic steps: Clone the project you’re starting to work on to your local development environment. Run `npm install` to get build dependencies installed. Run `bower install` to get front-end dependencies installed. Run `grunt` to build the project. Test it out in the browser. From there, there are two paths of work, so to speak. First to work on project-specific code, following the top loop, you’d edit the project source, build, test again, rinse and repeat. As you’re working on your project, you might find the need to update a Capital Framework component, which will take us down the lower loop path. To update a component, you’d edit the component’s source, push the new version, update your dependency version in the project and reinstall the component. Rebuild and test to ensure the update didn’t break anything. Editing the component and testing it out is a little more complicated than that, and I’ll give an example of that now.
  • #63: We use a mixture of milestones, labels, and checklists in GitHub. Process is documented in the ReadMe
  • #64: Non-developers can use Prose.io to update the design manual.
  • #70: http://www.consumerfinance.gov/your-story/
  • #71: http://www.consumerfinance.gov/owning-a-home
  • #72: http://www.consumerfinance.gov/eregulations
  • #73: http://www.consumerfinance.gov/complaints
  • #74: http://www.consumerfinance.gov/complaintdatabase/
  • #75: http://beta.consumerfinance.gov/
  • #76: We continue to evaluate technologies and consider whether to incorporate them into CF. Gulp? cssnext? ES6? And at a higher level of government, a project partially inspired by our work is taking shape...
  • #77: https://pages.18f.gov/govt-wide-patternlibrary/
  • #78: https://github.com/18F/govt-wide-patternlibrary
  • #80: https://cfpb.github.io/capital-framework/
  • #82: Also, we could use your help! If you give it a try, please let us know what you think can be added or improved. Or do it yourself :) We love to receive issues and pull requests from the public.
  • #83: Like this one, from our former CFPB colleague and Capital Framework co-creator Mike Morici.