SlideShare a Scribd company logo
NOT
JUST A
PRETTY
FACE
How to design and build a
cross-CMS CSS framework
@CRYSTALENKA #JAB18
ABOUT ME
User Experience Consultant
Front End Developer
UI Designer
Crystal Dionysopoulos
@CRYSTALENKA #JAB18
The pros and cons of a DIY
CSS framework, plus our
starting project requirements.
Intro
1
WHAT TO EXPECT
IN THIS TALK
How implementing FEF
affected Akeeba’s extensions
and workflow
The Results
3
From design to code, 10
useful things we learned in
the process.
The Process
2
@CRYSTALENKA #JAB18
1.
INTRO
No really, LOTS of upfront work
I’m not kidding. You will be committing a
lot of time to this.
Lots of upfront work.
I mean, you’re building your own CSS
framework, after all…
Your code…you maintain it.
As with any code you write, you’ll have to
update it over time - and that takes time too.
THE
CONS
#JAB18
BILBAO DESIGN 6
BUT IT IS
WORTH IT!
Or at least, we think so!
Lightweight and FAST Code
Only build what you need, when
you need it. Reduce the bloat and
deliver better extensions!
You’re In Control
Make changes based on your own
schedule and needs, as well as the
needs of your audience.
Ŏ
Stay Visually Consistent
Make sure your extensions provide
a consistent experience for your
users in Joomla! and WordPress.
Easier to Maintain
Same CSS framework across
extensions and CMSs means more
reusable code and less tweaking.
WHY
BOTHER?
@CRYSTALENKA #JAB18
AKEEBA’S
REQUIREMENTS
Easy to convert to
That meant not too many changes
to the HTML or PHP structure, and
easy-to-remember classes.
♥
Easy to adapt to
We didn’t want to shock the users
too much, so this was strictly a
facelift - no functional changes.
Flexible elements
From structure to buttons,
everything had to be flexible and
easy to reuse.
@CRYSTALENKA #JAB18
2.
THE
PROCESS
2.
THE
PROCESS
10 tips which willhelp YOUR process
Know your audience
and what you can do.
1
@CRYSTALENKA #JAB18
If you know your audience’s technical capabilities,
you know when to play it safe and when to push
the envelope. Future-proof when you can by
using modern approaches like CSS Grid.
APPROACH
12
A CASE FOR
CSS GRID
Why you should just
use it, already
Two options for supporting older
browsers:
- fallback to mobile-first display
(Grid default)
- polyfill
Not Just a Pretty Face: How to design and build a cross-CMS CSS framework
Auto-fill repeating tracks
with CSS Grid,
inspired by Rachel Andrews
https://codepen.io/rachelandrew/pen/GZQYOL
The magic bit:
grid-template-columns:
repeat(auto-fill,
minmax(200px, 1fr));
BILBAO DESIGN
CSS GRID
RESOURCES
Grid by Example - Rachel Andrews
https://gridbyexample.com
CSS Grid Changes Everything - Morten Rand-Hendriksen
https://mor10.com/wceu2017/
A Complete Guide to Grid - CSS Tricks
https://css-tricks.com/snippets/css/complete-guide-grid/
CSS Grid Layout - MDN Web Docs
https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Grid_Layout
Have a plan, but be
open-minded.
It’s good to have an idea of where you’re going,
but it can be unproductive to stick to it religiously.
When things go sideways, sometimes it’s better
to go with the flow.
2
@CRYSTALENKA #JAB18
APPROACH
Find your building
blocks, or “atoms”
This will help your design look good, and also will
help you later when coding as you can have
cleaner, more reusable CSS.
3
@CRYSTALENKA #JAB18
APPROACH&
DESIGN
Not Just a Pretty Face: How to design and build a cross-CMS CSS framework
Not Just a Pretty Face: How to design and build a cross-CMS CSS framework
Not Just a Pretty Face: How to design and build a cross-CMS CSS framework
Not Just a Pretty Face: How to design and build a cross-CMS CSS framework
Not Just a Pretty Face: How to design and build a cross-CMS CSS framework
Not Just a Pretty Face: How to design and build a cross-CMS CSS framework
BILBAO DESIGN
DESIGN SYSTEM
RESOURCES
Atomic Design - Brad Frost
http://atomicdesign.bradfrost.com/table-of-contents/
Be consistent with
your colors & style
Stick to your brand colors and others in that
range so your extensions are easily recognizable
on any platform. Pick an icon font (or go without)
and stick to it.
4
@CRYSTALENKA #JAB18
APPROACH&
DESIGN
BILBAO DESIGN
COLOR PALETTE
RESOURCES
Adobe Color
color.adobe.com
Coolers Color Palette Generator
coolers.co
Paletton
paletton.com
Use a preprocessor
and make life easy
Using SASS or LESS allows you to be more
organized from the beginning, which helps you
maintain the framework in the long-term.
5
@CRYSTALENKA #JAB18
APPROACH&
DESIGN&
CODE
Organize your code
based on purpose
Purposely-organized code is easier to come back
to later than location-based code. Extensions
evolve over time!
6
@CRYSTALENKA #JAB18
APPROACH&
DESIGN&
CODE
Not Just a Pretty Face: How to design and build a cross-CMS CSS framework
Not Just a Pretty Face: How to design and build a cross-CMS CSS framework
Build from outside in,
not top to bottom
This helps you think in a more function-based
mindset. Start with the structure and work your
way in. You’re likely to have more maintainable
code as a result.
7
@CRYSTALENKA #JAB18
APPROACH&
DESIGN&
CODE
Namespace ALL the
things
This prevents conflicts with any too-generic CSS
loaded by the CMS, and makes it easier to target
so you never have to use !important.
Example: .akeeba-button instead of .button
8
@CRYSTALENKA #JAB18
APPROACH&
DESIGN&
CODE
Don’t bloat your
JavaScript
Write what you need - it’s entirely possible to do it
all with just a little vanilla JS. (You don’t need that
giant JavaScript framework.)
@CRYSTALENKA #JAB18
APPROACH&
DESIGN&
CODE
9
Have CMS-specific
stylesheets
No matter how hard you try, you will end up
needing to make small tweaks for each CMS.
Keep this separate from “common” code.
@CRYSTALENKA #JAB18
APPROACH&
DESIGN&
CODE
10
It’s a journey, not a
destination.
You will need to maintain your framework as
technology changes, your audience matures, and
your knowledge grows. Things will get added and
removed over time - enjoy the process. :)
11
@CRYSTALENKA #JAB18
APPROACH&
DESIGN&
CODE&
BONUS
3.
THE
RESULTS
BEFORE
Akeeba Backup
v. 5.6.3
@CRYSTALENKA #JAB18
AFTER
Akeeba Backup
v. 6.0.0
@CRYSTALENKA #JAB18
BEFORE
Akeeba Backup
v. 5.6.3
@CRYSTALENKA #JAB18
AFTER
Akeeba Backup
v. 6.0.0
@CRYSTALENKA #JAB18
AKEEBA IS
HAPPY
File size didn’t increase.
The packaged Akeeba extensions
are no larger than they were
before, but look a lot better.
2
3
Much faster page rendering.
By ditching Bootstrap and jQuery,
Akeeba components now load way
faster because fewer page redraws.
Changes are predictable.
Akeeba can make updates to the
CSS when they need to, within their
own development timeline.
1
@CRYSTALENKA #JAB18
QUESTIONS/
DISCUSSION
@CRYSTALENKA #JAB18
THANK
YOU!
slides will be tweeted
@crystalenka

More Related Content

What's hot (20)

PDF
Front End Best Practices
Holger Bartel
 
PDF
Bootstrap 3 - Sleek, intuitive, and powerful mobile first front-end framework...
Cedric Spillebeen
 
PDF
Sabine Langmann - Brighton SEO 2018 - How to expand to different markets
Sabine Langmann
 
PDF
Developing WordPress Plugins Using the MVC Methodology
Nate Allen
 
PDF
Guide To Web Development
FaisalBinHassan
 
PPTX
Building a Moodle theme with bootstrap
Bas Brands
 
PDF
WeBB MeetUp#1 Web applications caching techniques
Maciej Grajcarek
 
PDF
光速テーマ開発のコツ
Hishikawa Takuro
 
PDF
CCSP 2012F 早點下班的工具
裕欽 林
 
PDF
A modern front end development workflow for Magnolia at Atlassian
Magnolia
 
PPTX
HTML/CSS for WordPress
Kanchha kaji Prajapati
 
PDF
Responsive Web Design with Bootstrap
Jason Stehle
 
PPTX
WordPress plugin development
arryaas
 
PDF
Wordpress Underscores & foundation5
Aum Watcharapol
 
PDF
You wanna crypto in AEM
Damien Antipa
 
KEY
Why You Need a Front End Developer
Mike Wilcox
 
PDF
WordPress Security : What We Learnt When We Were Hacked : WordCamp Mumbai 2017
Bhushan Jawle
 
PPTX
Frameworks for the web
netfuel
 
PDF
How to Build Custom WordPress Blocks
Morten Rand-Hendriksen
 
PDF
Building the next generation of themes with WP Rig 2.0
Morten Rand-Hendriksen
 
Front End Best Practices
Holger Bartel
 
Bootstrap 3 - Sleek, intuitive, and powerful mobile first front-end framework...
Cedric Spillebeen
 
Sabine Langmann - Brighton SEO 2018 - How to expand to different markets
Sabine Langmann
 
Developing WordPress Plugins Using the MVC Methodology
Nate Allen
 
Guide To Web Development
FaisalBinHassan
 
Building a Moodle theme with bootstrap
Bas Brands
 
WeBB MeetUp#1 Web applications caching techniques
Maciej Grajcarek
 
光速テーマ開発のコツ
Hishikawa Takuro
 
CCSP 2012F 早點下班的工具
裕欽 林
 
A modern front end development workflow for Magnolia at Atlassian
Magnolia
 
HTML/CSS for WordPress
Kanchha kaji Prajapati
 
Responsive Web Design with Bootstrap
Jason Stehle
 
WordPress plugin development
arryaas
 
Wordpress Underscores & foundation5
Aum Watcharapol
 
You wanna crypto in AEM
Damien Antipa
 
Why You Need a Front End Developer
Mike Wilcox
 
WordPress Security : What We Learnt When We Were Hacked : WordCamp Mumbai 2017
Bhushan Jawle
 
Frameworks for the web
netfuel
 
How to Build Custom WordPress Blocks
Morten Rand-Hendriksen
 
Building the next generation of themes with WP Rig 2.0
Morten Rand-Hendriksen
 

Similar to Not Just a Pretty Face: How to design and build a cross-CMS CSS framework (20)

PPT
Using a CSS Framework
Gareth Saunders
 
PPT
2009_09_11_Grid960
LightSpeed
 
PDF
EnterJS 2015 - Continuous Integration for Frontend Code
Marcel Birkner
 
PDF
Style Guides Are The New Photoshop (Smashing Conference 2012)
Stephen Hay
 
PDF
Structuring your CSS for maintainability: rules and guile lines to write CSS
Sanjoy Kr. Paul
 
PDF
Style Guides Are The New Photoshop (Fronteers 2012)
Stephen Hay
 
PDF
Creating a Business Oriented UI in APEX
Enkitec
 
PDF
Drupal Theming with CSS Frameworks (960grid)
Ryan Cross
 
PDF
CSS framework By Palash
PalashBajpai
 
PPT
An Introduction to CSS Frameworks
Adrian Westlake
 
PDF
Roadmap 01
quangnv17071980
 
PDF
Css masterclass book
Phoenix
 
PDF
Get Started With Tailwind React and Create Beautiful Apps.pdf
RonDosh
 
PPT
Mobile Monday Presentation: Responsive Web Design
Cantina
 
PPT
6 css week12 2020 2021 for g10
Osama Ghandour Geris
 
PDF
CSS vs. JavaScript - Trust vs. Control
Christian Heilmann
 
PPTX
Html5 & less css
Graham Johnson
 
PPT
CSS3 and a brief introduction to Google Maps API v3
Jeffrey Barke
 
KEY
Intro to html5 Boilerplate
Michael Enslow
 
PDF
Download full ebook of Css3 For Web Designers 1st Dan Cederholm instant downl...
zittabuzbyel
 
Using a CSS Framework
Gareth Saunders
 
2009_09_11_Grid960
LightSpeed
 
EnterJS 2015 - Continuous Integration for Frontend Code
Marcel Birkner
 
Style Guides Are The New Photoshop (Smashing Conference 2012)
Stephen Hay
 
Structuring your CSS for maintainability: rules and guile lines to write CSS
Sanjoy Kr. Paul
 
Style Guides Are The New Photoshop (Fronteers 2012)
Stephen Hay
 
Creating a Business Oriented UI in APEX
Enkitec
 
Drupal Theming with CSS Frameworks (960grid)
Ryan Cross
 
CSS framework By Palash
PalashBajpai
 
An Introduction to CSS Frameworks
Adrian Westlake
 
Roadmap 01
quangnv17071980
 
Css masterclass book
Phoenix
 
Get Started With Tailwind React and Create Beautiful Apps.pdf
RonDosh
 
Mobile Monday Presentation: Responsive Web Design
Cantina
 
6 css week12 2020 2021 for g10
Osama Ghandour Geris
 
CSS vs. JavaScript - Trust vs. Control
Christian Heilmann
 
Html5 & less css
Graham Johnson
 
CSS3 and a brief introduction to Google Maps API v3
Jeffrey Barke
 
Intro to html5 Boilerplate
Michael Enslow
 
Download full ebook of Css3 For Web Designers 1st Dan Cederholm instant downl...
zittabuzbyel
 
Ad

Recently uploaded (20)

PDF
Human-centred design in online workplace learning and relationship to engagem...
Tracy Tang
 
PDF
Blockchain Transactions Explained For Everyone
CIFDAQ
 
PDF
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
PDF
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
PDF
Complete JavaScript Notes: From Basics to Advanced Concepts.pdf
haydendavispro
 
PDF
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
PDF
SWEBOK Guide and Software Services Engineering Education
Hironori Washizaki
 
PPTX
Top iOS App Development Company in the USA for Innovative Apps
SynapseIndia
 
PPTX
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
PDF
Women in Automation Presents: Reinventing Yourself — Bold Career Pivots That ...
DianaGray10
 
PDF
Empowering Cloud Providers with Apache CloudStack and Stackbill
ShapeBlue
 
PDF
Français Patch Tuesday - Juillet
Ivanti
 
PPTX
Extensions Framework (XaaS) - Enabling Orchestrate Anything
ShapeBlue
 
PDF
Wojciech Ciemski for Top Cyber News MAGAZINE. June 2025
Dr. Ludmila Morozova-Buss
 
PDF
Log-Based Anomaly Detection: Enhancing System Reliability with Machine Learning
Mohammed BEKKOUCHE
 
PDF
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
PDF
The Builder’s Playbook - 2025 State of AI Report.pdf
jeroen339954
 
PDF
Meetup Kickoff & Welcome - Rohit Yadav, CSIUG Chairman
ShapeBlue
 
PDF
Why Orbit Edge Tech is a Top Next JS Development Company in 2025
mahendraalaska08
 
PPT
Interview paper part 3, It is based on Interview Prep
SoumyadeepGhosh39
 
Human-centred design in online workplace learning and relationship to engagem...
Tracy Tang
 
Blockchain Transactions Explained For Everyone
CIFDAQ
 
DevBcn - Building 10x Organizations Using Modern Productivity Metrics
Justin Reock
 
CIFDAQ Weekly Market Wrap for 11th July 2025
CIFDAQ
 
Complete JavaScript Notes: From Basics to Advanced Concepts.pdf
haydendavispro
 
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
SWEBOK Guide and Software Services Engineering Education
Hironori Washizaki
 
Top iOS App Development Company in the USA for Innovative Apps
SynapseIndia
 
WooCommerce Workshop: Bring Your Laptop
Laura Hartwig
 
Women in Automation Presents: Reinventing Yourself — Bold Career Pivots That ...
DianaGray10
 
Empowering Cloud Providers with Apache CloudStack and Stackbill
ShapeBlue
 
Français Patch Tuesday - Juillet
Ivanti
 
Extensions Framework (XaaS) - Enabling Orchestrate Anything
ShapeBlue
 
Wojciech Ciemski for Top Cyber News MAGAZINE. June 2025
Dr. Ludmila Morozova-Buss
 
Log-Based Anomaly Detection: Enhancing System Reliability with Machine Learning
Mohammed BEKKOUCHE
 
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
The Builder’s Playbook - 2025 State of AI Report.pdf
jeroen339954
 
Meetup Kickoff & Welcome - Rohit Yadav, CSIUG Chairman
ShapeBlue
 
Why Orbit Edge Tech is a Top Next JS Development Company in 2025
mahendraalaska08
 
Interview paper part 3, It is based on Interview Prep
SoumyadeepGhosh39
 
Ad

Not Just a Pretty Face: How to design and build a cross-CMS CSS framework

  • 1. NOT JUST A PRETTY FACE How to design and build a cross-CMS CSS framework @CRYSTALENKA #JAB18
  • 2. ABOUT ME User Experience Consultant Front End Developer UI Designer Crystal Dionysopoulos @CRYSTALENKA #JAB18
  • 3. The pros and cons of a DIY CSS framework, plus our starting project requirements. Intro 1 WHAT TO EXPECT IN THIS TALK How implementing FEF affected Akeeba’s extensions and workflow The Results 3 From design to code, 10 useful things we learned in the process. The Process 2 @CRYSTALENKA #JAB18
  • 5. No really, LOTS of upfront work I’m not kidding. You will be committing a lot of time to this. Lots of upfront work. I mean, you’re building your own CSS framework, after all… Your code…you maintain it. As with any code you write, you’ll have to update it over time - and that takes time too. THE CONS #JAB18
  • 6. BILBAO DESIGN 6 BUT IT IS WORTH IT! Or at least, we think so!
  • 7. Lightweight and FAST Code Only build what you need, when you need it. Reduce the bloat and deliver better extensions! You’re In Control Make changes based on your own schedule and needs, as well as the needs of your audience. Ŏ Stay Visually Consistent Make sure your extensions provide a consistent experience for your users in Joomla! and WordPress. Easier to Maintain Same CSS framework across extensions and CMSs means more reusable code and less tweaking. WHY BOTHER? @CRYSTALENKA #JAB18
  • 8. AKEEBA’S REQUIREMENTS Easy to convert to That meant not too many changes to the HTML or PHP structure, and easy-to-remember classes. ♥ Easy to adapt to We didn’t want to shock the users too much, so this was strictly a facelift - no functional changes. Flexible elements From structure to buttons, everything had to be flexible and easy to reuse. @CRYSTALENKA #JAB18
  • 10. 2. THE PROCESS 10 tips which willhelp YOUR process
  • 11. Know your audience and what you can do. 1 @CRYSTALENKA #JAB18 If you know your audience’s technical capabilities, you know when to play it safe and when to push the envelope. Future-proof when you can by using modern approaches like CSS Grid. APPROACH
  • 12. 12 A CASE FOR CSS GRID Why you should just use it, already Two options for supporting older browsers: - fallback to mobile-first display (Grid default) - polyfill
  • 14. Auto-fill repeating tracks with CSS Grid, inspired by Rachel Andrews https://codepen.io/rachelandrew/pen/GZQYOL The magic bit: grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  • 15. BILBAO DESIGN CSS GRID RESOURCES Grid by Example - Rachel Andrews https://gridbyexample.com CSS Grid Changes Everything - Morten Rand-Hendriksen https://mor10.com/wceu2017/ A Complete Guide to Grid - CSS Tricks https://css-tricks.com/snippets/css/complete-guide-grid/ CSS Grid Layout - MDN Web Docs https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Grid_Layout
  • 16. Have a plan, but be open-minded. It’s good to have an idea of where you’re going, but it can be unproductive to stick to it religiously. When things go sideways, sometimes it’s better to go with the flow. 2 @CRYSTALENKA #JAB18 APPROACH
  • 17. Find your building blocks, or “atoms” This will help your design look good, and also will help you later when coding as you can have cleaner, more reusable CSS. 3 @CRYSTALENKA #JAB18 APPROACH& DESIGN
  • 24. BILBAO DESIGN DESIGN SYSTEM RESOURCES Atomic Design - Brad Frost http://atomicdesign.bradfrost.com/table-of-contents/
  • 25. Be consistent with your colors & style Stick to your brand colors and others in that range so your extensions are easily recognizable on any platform. Pick an icon font (or go without) and stick to it. 4 @CRYSTALENKA #JAB18 APPROACH& DESIGN
  • 26. BILBAO DESIGN COLOR PALETTE RESOURCES Adobe Color color.adobe.com Coolers Color Palette Generator coolers.co Paletton paletton.com
  • 27. Use a preprocessor and make life easy Using SASS or LESS allows you to be more organized from the beginning, which helps you maintain the framework in the long-term. 5 @CRYSTALENKA #JAB18 APPROACH& DESIGN& CODE
  • 28. Organize your code based on purpose Purposely-organized code is easier to come back to later than location-based code. Extensions evolve over time! 6 @CRYSTALENKA #JAB18 APPROACH& DESIGN& CODE
  • 31. Build from outside in, not top to bottom This helps you think in a more function-based mindset. Start with the structure and work your way in. You’re likely to have more maintainable code as a result. 7 @CRYSTALENKA #JAB18 APPROACH& DESIGN& CODE
  • 32. Namespace ALL the things This prevents conflicts with any too-generic CSS loaded by the CMS, and makes it easier to target so you never have to use !important. Example: .akeeba-button instead of .button 8 @CRYSTALENKA #JAB18 APPROACH& DESIGN& CODE
  • 33. Don’t bloat your JavaScript Write what you need - it’s entirely possible to do it all with just a little vanilla JS. (You don’t need that giant JavaScript framework.) @CRYSTALENKA #JAB18 APPROACH& DESIGN& CODE 9
  • 34. Have CMS-specific stylesheets No matter how hard you try, you will end up needing to make small tweaks for each CMS. Keep this separate from “common” code. @CRYSTALENKA #JAB18 APPROACH& DESIGN& CODE 10
  • 35. It’s a journey, not a destination. You will need to maintain your framework as technology changes, your audience matures, and your knowledge grows. Things will get added and removed over time - enjoy the process. :) 11 @CRYSTALENKA #JAB18 APPROACH& DESIGN& CODE& BONUS
  • 41. AKEEBA IS HAPPY File size didn’t increase. The packaged Akeeba extensions are no larger than they were before, but look a lot better. 2 3 Much faster page rendering. By ditching Bootstrap and jQuery, Akeeba components now load way faster because fewer page redraws. Changes are predictable. Akeeba can make updates to the CSS when they need to, within their own development timeline. 1 @CRYSTALENKA #JAB18
  • 43. THANK YOU! slides will be tweeted @crystalenka