際際滷

際際滷Share a Scribd company logo
Modular Web Design
With Components
Think modular, think smart
[`nadal sol ear]
Meticulous Front-end Developer.
Proudly coding since 2001.
@nadalsol
Were not designing pages,
were designing systems of components.
Stephen Hay
Introducing modularity
Blocks
Components
Modules
Elements
Atoms
Molecules
Organisms
PagesTemplates
OOCSS
SMACSS
BEM
SUIT CSS
Bootstrap
Foundation
Widgets
Material Design
Modularity is the key to creating a flexible design
system. For a system to be modular, it must have
interchangeable parts (components).
Dennis Kardys
CompoWHAT?
Whats a
component*?
Definition
(*) aka module or widget.
1. Generic term for any pre-defined
object that you intend to use
across multiple pages.
2. In order to be reusable, they
must be standardized in
appearance and function.
3. Each component will render
reliably regardless of the context
it's used in.
Think of components as Legos:
interchangeable building blocks
you can assemble into pages.
Modular Web Design With Components
The benefits of components
The benefits of
components
1. Modularity.
2. Extensibility.
3. Testability.
4. Reusability.
5. Consistency.
What makes a
component
modular?
1. Standardized design:
Predetermined appearance.
2. Centralized code: Unique code
should not be needed each time
you reuse the component.
3. Controlled via system logic:
Predefined formatting should
occur based on system rules, not
content author discretion.
4. Customizable: Display, content,
and functional options.
Modularizing your design
Modularizing
your design
Eliminate discrepancies and boil each
component down into a standardized
model.
Be deliberately lean, removing any
page-specific component
customization that doesnt benefit the
system as a whole.
Modular Web Design With Components
Modular Web Design With Components
Define & document
system logic
To make components reusable, they
need rules.
Without system logic defining how
they can and should be used, wed be
back at freeform design.
Define & document
system logic
Documenting component rules lead
to more efficient UI and code.
It can provide reference to content
authors seeking to understand what
components they have access to, and
what the expectations and best
practices of use are.
Good component logic provides
useful constraints.
Dennis Kardys
Component creation process
Source: https://design.canonical.com/2016/07/getting-vanilla-ready-for-v1-the-roadmap/
Follow the
steps
1. Respect your Design System.
2. Check the purpose.
3. Define expected behavior and
interactions.
4. Consider context.
5. Dogfood your Design System.
Always respect the rules already
defined in your Design System.
Things like:
 Grid
 Spacing
 Color palette
 Typography
 etc...
1. Respect your
Design System
Modular Web Design With Components
Follow the
steps
1. Respect your Design System.
2. Check the purpose.
3. Define expected behavior and
interactions.
4. Consider context.
5. Dogfood your Design System.
2. Check the
purpose
Existing component?
Purpose
Create new
component
No
Yes
Same
structure/behavior?
No
Yes
Same appearance
(skin)?
YesUse existing
component
Modify existing
component
No
Lets create a new
component when...
 When you DONT HAVE an
existing component with the
same purpose.
 When you DONT HAVE an
existing component with the
same structure/behavior.
Create new
component
Existing component?
Purpose
Create new
component
No
Yes
Same
structure/behavior?
No
Yes
Same appearance
(skin)?
YesUse existing
component
Modify existing
component
No
Lets use an existing
component...
 When you ALREADY HAVE an
existing component with the
same purpose.
 When you ALREADY HAVE an
existing component with the
same structure/behavior.
 When you ALREADY HAVE an
existing component with the
same appearance (skin).
Use existing
component
Existing component?
Purpose
Create new
component
No
Yes
Same
structure/behavior?
No
Yes
Same appearance
(skin)?
YesUse existing
component
Modify existing
component
No
Modify existing
component
Lets modify an existing
component...
 When you ALREADY HAVE an
existing component with the
same purpose.
 When you ALREADY HAVE an
existing component with the
same structure/behavior.
 When you DONT HAVE an
existing component with the
same appearance (skin).
Modular Web Design With Components
Beware of Redesigns
Avoid redesigns as much as possible
(unless theres a good reason to).
Redesign
Modify existing
component
Beware of Redesigns
Redesigns may imply code refactors,
or even breaking design consistency
across different contexts, causing
collateral damage (atoms tend to be
used in different molecules).
Example: Button size (atom) in
different contexts (molecules).
Redesign
Modify existing
component
Modular Web Design With Components
Modular Web Design With Components
Follow the
steps
1. Respect your Design System.
2. Check the purpose.
3. Define expected behavior and
interactions.
4. Consider context.
5. Dogfood your Design System.
At DO we want to be agile, so we're
far from creating Functional
Specifications Documents (FSD).
The FSD is what's given to:
 Developers: so they know what
to build.
 Testers: so they know what to
test.
 Stakeholders: so they know
exactly what's being created.
3. Define expected
behavior and
interactions
Therefore, the best way to describe
interaction is to model it with an
interactive prototype.
In other words...
What happens when you interact
with elements in the mockup?
3. Define expected
behavior and
interactions
3. Define expected
behavior and
interactions
Follow the
steps
1. Respect your Design System.
2. Check the purpose.
3. Define expected behavior and
interactions.
4. Consider context.
5. Dogfood your Design System.
Context is important
Always test your new component
proposal in many contexts, in order to
detect different use cases, as well as
possible inconsistencies.
4. Consider
context
Follow the
steps
1. Respect your Design System.
2. Check the purpose.
3. Define expected behavior and
interactions.
4. Consider context.
5. Dogfood your Design System.
Last, but not least...
Dont forget to update your Design
System with whatever changes you
made.
5. Dogfood your
Design System
A classic problem
Im a developer.
What do you expect
me to implement?
Imagine you're designing a new
popover component.
Im a developer.
What do you expect
me to implement?
In order to build and test popovers,
Developers and Testers need to know:
 Do you expect to be dismissible?
 Do you expect to be repositioned
(i.e. on window resize)?
 Do you expect to be placed on
top, right, bottom, left?
 Do you expect the same behavior
on mobile and desktop devices?
 etc...
Im a developer.
What do you expect
me to implement?
Anatomy of a component
Modular Web Design With Components
Let's take a real world example, based
on DO Notification component.
Anatomy of a
component
Modular Web Design With Components
How this component could be
affected?
1. Different appearance (skin):
yellow background, green
background
2. Different content (structure):
message only, message plus
heading, message plus action
3. Different interaction: always
visible, flash message (toast),
dismissible, contextual
messages...
Anatomy of a
component
When you need to change your
component appearance (skin) or
content (structure), but not its
purpose, CSS modifiers are handy.
Other examples:
 Notification: alert, success, info...
 Button: small, medium, large...
 Popover: top, right, bottom, left...
 etc...
Anatomy of a
component
The cost of creating new
components
What do you think?
Lets discuss...
Its not just about using a design system,
its about creating your system.
Brad Frost
Q&A
References:
Atomic Design, by Brad Frost.
Modular Web Design: Designing With Components, by Dennis Kardys.
SMACSS (Scalable and Modular Architecture for CSS), by Jonathan Snook.
BEM (Block Element Modifier) methodology.
My own experience ;)
Made with love by @nadalsol , on Nov. 2017
Ad

Recommended

Design on a Budget
Design on a Budget
Amanda Luker
Governing conflict in design systems
Governing conflict in design systems
JD Jones
Design Processes and Systems in Craft
Design Processes and Systems in Craft
Courtney Bradford
Creating a Component Library
Creating a Component Library
nathanacurtis
Design systems - Razvan Rosu
Design systems - Razvan Rosu
Razvan Rosu
LvivCSS: Web Components as a foundation for Design System
LvivCSS: Web Components as a foundation for Design System
Vlad Fedosov
Design Systems: Enterprise UX Evolution
Design Systems: Enterprise UX Evolution
Anne Grundhoefer
CSS Architecture 101
CSS Architecture 101
Alex Carbajo Regueiro
Thinking in Components
Thinking in Components
FITC
Accessibility in Pattern Libraries
Accessibility in Pattern Libraries
Russ Weakley
Fullstack Web Components Complete Guide to Building UI Libraries with Web Com...
Fullstack Web Components Complete Guide to Building UI Libraries with Web Com...
muncanbrshaw
A Future Friendly Workflow
A Future Friendly Workflow
Luke Brooker
Design Systems: Parts, Products & People
Design Systems: Parts, Products & People
nathanacurtis
User Interface is King: Developing a Web App UI
User Interface is King: Developing a Web App UI
Dave Olsen
Designing a Moving Experience
Designing a Moving Experience
Andrew Fisher
2016 NTC Conference - Design on a Budget
2016 NTC Conference - Design on a Budget
Aaron Welch
Ux gsg
Ux gsg
Lama K Banna
X-TREME THEMES
X-TREME THEMES
FITC
Design system for new O2 CRM and web apps
Design system for new O2 CRM and web apps
Czech Design Systems Community
Future Friendly Style Guides
Future Friendly Style Guides
Luke Brooker
Pimp My App Shane Morris
Pimp My App Shane Morris
Shane Morris
Maintainable design
Maintainable design
Filip Rakowski
The Fast And The Fabulous
The Fast And The Fabulous
Nicole Sullivan
Cristiano Rastelli - Atomic Design, Design Systems and React. Cool, but... - ...
Cristiano Rastelli - Atomic Design, Design Systems and React. Cool, but... - ...
Codemotion
Cristiano Rastelli - Atomic Design, Design Systems and React. Cool, but... - ...
Cristiano Rastelli - Atomic Design, Design Systems and React. Cool, but... - ...
Codemotion
Zeeto Tech Exchange: Design for Scalability - UX
Zeeto Tech Exchange: Design for Scalability - UX
Zeeto際際滷s
Mobile first: A future friendly approach to UX design
Mobile first: A future friendly approach to UX design
InVision App
UI Design Trends
UI Design Trends
Karthikeyan Dhanasekaran CUA
Design Systems
Design Systems
Nadal Soler
The power of Markdown
The power of Markdown
Nadal Soler

More Related Content

Similar to Modular Web Design With Components (20)

Thinking in Components
Thinking in Components
FITC
Accessibility in Pattern Libraries
Accessibility in Pattern Libraries
Russ Weakley
Fullstack Web Components Complete Guide to Building UI Libraries with Web Com...
Fullstack Web Components Complete Guide to Building UI Libraries with Web Com...
muncanbrshaw
A Future Friendly Workflow
A Future Friendly Workflow
Luke Brooker
Design Systems: Parts, Products & People
Design Systems: Parts, Products & People
nathanacurtis
User Interface is King: Developing a Web App UI
User Interface is King: Developing a Web App UI
Dave Olsen
Designing a Moving Experience
Designing a Moving Experience
Andrew Fisher
2016 NTC Conference - Design on a Budget
2016 NTC Conference - Design on a Budget
Aaron Welch
Ux gsg
Ux gsg
Lama K Banna
X-TREME THEMES
X-TREME THEMES
FITC
Design system for new O2 CRM and web apps
Design system for new O2 CRM and web apps
Czech Design Systems Community
Future Friendly Style Guides
Future Friendly Style Guides
Luke Brooker
Pimp My App Shane Morris
Pimp My App Shane Morris
Shane Morris
Maintainable design
Maintainable design
Filip Rakowski
The Fast And The Fabulous
The Fast And The Fabulous
Nicole Sullivan
Cristiano Rastelli - Atomic Design, Design Systems and React. Cool, but... - ...
Cristiano Rastelli - Atomic Design, Design Systems and React. Cool, but... - ...
Codemotion
Cristiano Rastelli - Atomic Design, Design Systems and React. Cool, but... - ...
Cristiano Rastelli - Atomic Design, Design Systems and React. Cool, but... - ...
Codemotion
Zeeto Tech Exchange: Design for Scalability - UX
Zeeto Tech Exchange: Design for Scalability - UX
Zeeto際際滷s
Mobile first: A future friendly approach to UX design
Mobile first: A future friendly approach to UX design
InVision App
UI Design Trends
UI Design Trends
Karthikeyan Dhanasekaran CUA
Thinking in Components
Thinking in Components
FITC
Accessibility in Pattern Libraries
Accessibility in Pattern Libraries
Russ Weakley
Fullstack Web Components Complete Guide to Building UI Libraries with Web Com...
Fullstack Web Components Complete Guide to Building UI Libraries with Web Com...
muncanbrshaw
A Future Friendly Workflow
A Future Friendly Workflow
Luke Brooker
Design Systems: Parts, Products & People
Design Systems: Parts, Products & People
nathanacurtis
User Interface is King: Developing a Web App UI
User Interface is King: Developing a Web App UI
Dave Olsen
Designing a Moving Experience
Designing a Moving Experience
Andrew Fisher
2016 NTC Conference - Design on a Budget
2016 NTC Conference - Design on a Budget
Aaron Welch
X-TREME THEMES
X-TREME THEMES
FITC
Future Friendly Style Guides
Future Friendly Style Guides
Luke Brooker
Pimp My App Shane Morris
Pimp My App Shane Morris
Shane Morris
Maintainable design
Maintainable design
Filip Rakowski
The Fast And The Fabulous
The Fast And The Fabulous
Nicole Sullivan
Cristiano Rastelli - Atomic Design, Design Systems and React. Cool, but... - ...
Cristiano Rastelli - Atomic Design, Design Systems and React. Cool, but... - ...
Codemotion
Cristiano Rastelli - Atomic Design, Design Systems and React. Cool, but... - ...
Cristiano Rastelli - Atomic Design, Design Systems and React. Cool, but... - ...
Codemotion
Zeeto Tech Exchange: Design for Scalability - UX
Zeeto Tech Exchange: Design for Scalability - UX
Zeeto際際滷s
Mobile first: A future friendly approach to UX design
Mobile first: A future friendly approach to UX design
InVision App

More from Nadal Soler (6)

Design Systems
Design Systems
Nadal Soler
The power of Markdown
The power of Markdown
Nadal Soler
Front end basics - Sass
Nadal Soler
Front end basics - Responsive Web Design
Nadal Soler
Front end basics - Grid System
Nadal Soler
Front-end Basics for Developers
Nadal Soler
Design Systems
Design Systems
Nadal Soler
The power of Markdown
The power of Markdown
Nadal Soler
Front end basics - Sass
Nadal Soler
Front end basics - Responsive Web Design
Nadal Soler
Front end basics - Grid System
Nadal Soler
Front-end Basics for Developers
Nadal Soler
Ad

Recently uploaded (20)

Assignment 1_ studying a roomkjdhfkeqjdhfjeqhfdjkqebf
Assignment 1_ studying a roomkjdhfkeqjdhfjeqhfdjkqebf
kunduanannya2003
week3.pptx python related programs and outputs
week3.pptx python related programs and outputs
doramira833
Ideo on friction - resource to aid you in that process
Ideo on friction - resource to aid you in that process
vikram sood
Indian_Constitution_Presentation.pptx , images
Indian_Constitution_Presentation.pptx , images
jaglandushyant
Chapter 5 - 2,Chapter 5 - 2,Chapter 5 - 2
Chapter 5 - 2,Chapter 5 - 2,Chapter 5 - 2
NaveedRehman55
Bethany Michels Architecture Portfolio.pdf
Bethany Michels Architecture Portfolio.pdf
Bethany Michels
The_Geometry_of_Natshshshshshsbsure.pptx
The_Geometry_of_Natshshshshshsbsure.pptx
sambal5
strees management for iuyagvdywyyqwdghuvuy.pptx
strees management for iuyagvdywyyqwdghuvuy.pptx
moonahish27
Bethany Michels Master of Architecture Thesis 2025
Bethany Michels Master of Architecture Thesis 2025
Bethany Michels
Genting Kecamatan Samadua Tahun 2025.pptx
Genting Kecamatan Samadua Tahun 2025.pptx
fazrulichsanmilan
overview visual graphic design for SHS.pptx
overview visual graphic design for SHS.pptx
KarlVincentNonog
Exploratory Experiences Built by Design (UXPA25)
Exploratory Experiences Built by Design (UXPA25)
Design for Context
PowerISO Crack 9.0 + Serial Key Free Download 2025
PowerISO Crack 9.0 + Serial Key Free Download 2025
Ayesha khan
3 bedroom bungalow with all bedroom ensuite
3 bedroom bungalow with all bedroom ensuite
modele dawodu
MULTI SENSORY EXPERIENCE DESIGN RESEARCH
MULTI SENSORY EXPERIENCE DESIGN RESEARCH
Samuel Thuo
Clamp_and_bend_device_exercisee_DSD.pptx
Clamp_and_bend_device_exercisee_DSD.pptx
DhanushJCS1
User Persona for a fitness CEO Founder
User Persona for a fitness CEO Founder
modele dawodu
Canva Pro Crack Free Download 2025 Latest
Canva Pro Crack Free Download 2025 Latest
chandchuhdary068
COMMERCE.pdfdxxcchbbnnnnbbnxxcvvvvvvbbbbbbbbbbbbb
COMMERCE.pdfdxxcchbbnnnnbbnxxcvvvvvvbbbbbbbbbbbbb
shivanshsahu0108
Presentation.pptx tinkercadjajsjhdhdhdhs
Presentation.pptx tinkercadjajsjhdhdhdhs
sukh27012
Assignment 1_ studying a roomkjdhfkeqjdhfjeqhfdjkqebf
Assignment 1_ studying a roomkjdhfkeqjdhfjeqhfdjkqebf
kunduanannya2003
week3.pptx python related programs and outputs
week3.pptx python related programs and outputs
doramira833
Ideo on friction - resource to aid you in that process
Ideo on friction - resource to aid you in that process
vikram sood
Indian_Constitution_Presentation.pptx , images
Indian_Constitution_Presentation.pptx , images
jaglandushyant
Chapter 5 - 2,Chapter 5 - 2,Chapter 5 - 2
Chapter 5 - 2,Chapter 5 - 2,Chapter 5 - 2
NaveedRehman55
Bethany Michels Architecture Portfolio.pdf
Bethany Michels Architecture Portfolio.pdf
Bethany Michels
The_Geometry_of_Natshshshshshsbsure.pptx
The_Geometry_of_Natshshshshshsbsure.pptx
sambal5
strees management for iuyagvdywyyqwdghuvuy.pptx
strees management for iuyagvdywyyqwdghuvuy.pptx
moonahish27
Bethany Michels Master of Architecture Thesis 2025
Bethany Michels Master of Architecture Thesis 2025
Bethany Michels
Genting Kecamatan Samadua Tahun 2025.pptx
Genting Kecamatan Samadua Tahun 2025.pptx
fazrulichsanmilan
overview visual graphic design for SHS.pptx
overview visual graphic design for SHS.pptx
KarlVincentNonog
Exploratory Experiences Built by Design (UXPA25)
Exploratory Experiences Built by Design (UXPA25)
Design for Context
PowerISO Crack 9.0 + Serial Key Free Download 2025
PowerISO Crack 9.0 + Serial Key Free Download 2025
Ayesha khan
3 bedroom bungalow with all bedroom ensuite
3 bedroom bungalow with all bedroom ensuite
modele dawodu
MULTI SENSORY EXPERIENCE DESIGN RESEARCH
MULTI SENSORY EXPERIENCE DESIGN RESEARCH
Samuel Thuo
Clamp_and_bend_device_exercisee_DSD.pptx
Clamp_and_bend_device_exercisee_DSD.pptx
DhanushJCS1
User Persona for a fitness CEO Founder
User Persona for a fitness CEO Founder
modele dawodu
Canva Pro Crack Free Download 2025 Latest
Canva Pro Crack Free Download 2025 Latest
chandchuhdary068
COMMERCE.pdfdxxcchbbnnnnbbnxxcvvvvvvbbbbbbbbbbbbb
COMMERCE.pdfdxxcchbbnnnnbbnxxcvvvvvvbbbbbbbbbbbbb
shivanshsahu0108
Presentation.pptx tinkercadjajsjhdhdhdhs
Presentation.pptx tinkercadjajsjhdhdhdhs
sukh27012
Ad

Modular Web Design With Components