SlideShare uma empresa Scribd logo
1 de 43
Baixar para ler offline
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
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
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
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

Mais conteúdo relacionado

Mais procurados

Front End Best Practices
Front End Best PracticesFront End Best Practices
Front End Best PracticesHolger Bartel
 
Bootstrap 3 - Sleek, intuitive, and powerful mobile first front-end framework...
Bootstrap 3 - Sleek, intuitive, and powerful mobile first front-end framework...Bootstrap 3 - Sleek, intuitive, and powerful mobile first front-end framework...
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 - Brighton SEO 2018 - How to expand to different marketsSabine Langmann - Brighton SEO 2018 - How to expand to different markets
Sabine Langmann - Brighton SEO 2018 - How to expand to different marketsSabine Langmann
 
Developing WordPress Plugins Using the MVC Methodology
Developing WordPress Plugins Using the MVC MethodologyDeveloping WordPress Plugins Using the MVC Methodology
Developing WordPress Plugins Using the MVC MethodologyNate Allen
 
Guide To Web Development
Guide To Web DevelopmentGuide To Web Development
Guide To Web DevelopmentFaisalBinHassan
 
Building a Moodle theme with bootstrap
Building a Moodle theme with bootstrapBuilding a Moodle theme with bootstrap
Building a Moodle theme with bootstrapBas Brands
 
WeBB MeetUp#1 Web applications caching techniques
WeBB MeetUp#1 Web applications caching techniquesWeBB MeetUp#1 Web applications caching techniques
WeBB MeetUp#1 Web applications caching techniquesMaciej Grajcarek
 
光速テーマ開発のコツ
光速テーマ開発のコツ光速テーマ開発のコツ
光速テーマ開発のコツHishikawa Takuro
 
CCSP 2012F 早點下班的工具
CCSP 2012F 早點下班的工具 CCSP 2012F 早點下班的工具
CCSP 2012F 早點下班的工具 裕欽 林
 
A modern front end development workflow for Magnolia at Atlassian
A modern front end development workflow for Magnolia at AtlassianA modern front end development workflow for Magnolia at Atlassian
A modern front end development workflow for Magnolia at AtlassianMagnolia
 
Responsive Web Design with Bootstrap
Responsive Web Design with BootstrapResponsive Web Design with Bootstrap
Responsive Web Design with BootstrapJason Stehle
 
WordPress plugin development
WordPress plugin developmentWordPress plugin development
WordPress plugin developmentarryaas
 
Wordpress Underscores & foundation5
Wordpress Underscores & foundation5Wordpress Underscores & foundation5
Wordpress Underscores & foundation5Aum Watcharapol
 
You wanna crypto in AEM
You wanna crypto in AEMYou wanna crypto in AEM
You wanna crypto in AEMDamien Antipa
 
Why You Need a Front End Developer
Why You Need a Front End DeveloperWhy You Need a Front End Developer
Why You Need a Front End DeveloperMike Wilcox
 
WordPress Security : What We Learnt When We Were Hacked : WordCamp Mumbai 2017
WordPress Security : What We Learnt When We Were Hacked : WordCamp Mumbai 2017WordPress Security : What We Learnt When We Were Hacked : WordCamp Mumbai 2017
WordPress Security : What We Learnt When We Were Hacked : WordCamp Mumbai 2017Bhushan Jawle
 
Frameworks for the web
Frameworks for the webFrameworks for the web
Frameworks for the webnetfuel
 
Building the next generation of themes with WP Rig 2.0
Building the next generation of themes with WP Rig 2.0Building the next generation of themes with WP Rig 2.0
Building the next generation of themes with WP Rig 2.0Morten Rand-Hendriksen
 

Mais procurados (20)

Front End Best Practices
Front End Best PracticesFront End Best Practices
Front End Best Practices
 
Bootstrap 3 - Sleek, intuitive, and powerful mobile first front-end framework...
Bootstrap 3 - Sleek, intuitive, and powerful mobile first front-end framework...Bootstrap 3 - Sleek, intuitive, and powerful mobile first front-end framework...
Bootstrap 3 - Sleek, intuitive, and powerful mobile first front-end framework...
 
Sabine Langmann - Brighton SEO 2018 - How to expand to different markets
Sabine Langmann - Brighton SEO 2018 - How to expand to different marketsSabine Langmann - Brighton SEO 2018 - How to expand to different markets
Sabine Langmann - Brighton SEO 2018 - How to expand to different markets
 
Developing WordPress Plugins Using the MVC Methodology
Developing WordPress Plugins Using the MVC MethodologyDeveloping WordPress Plugins Using the MVC Methodology
Developing WordPress Plugins Using the MVC Methodology
 
Guide To Web Development
Guide To Web DevelopmentGuide To Web Development
Guide To Web Development
 
Building a Moodle theme with bootstrap
Building a Moodle theme with bootstrapBuilding a Moodle theme with bootstrap
Building a Moodle theme with bootstrap
 
WeBB MeetUp#1 Web applications caching techniques
WeBB MeetUp#1 Web applications caching techniquesWeBB MeetUp#1 Web applications caching techniques
WeBB MeetUp#1 Web applications caching techniques
 
光速テーマ開発のコツ
光速テーマ開発のコツ光速テーマ開発のコツ
光速テーマ開発のコツ
 
CCSP 2012F 早點下班的工具
CCSP 2012F 早點下班的工具 CCSP 2012F 早點下班的工具
CCSP 2012F 早點下班的工具
 
A modern front end development workflow for Magnolia at Atlassian
A modern front end development workflow for Magnolia at AtlassianA modern front end development workflow for Magnolia at Atlassian
A modern front end development workflow for Magnolia at Atlassian
 
HTML/CSS for WordPress
HTML/CSS for WordPressHTML/CSS for WordPress
HTML/CSS for WordPress
 
Responsive Web Design with Bootstrap
Responsive Web Design with BootstrapResponsive Web Design with Bootstrap
Responsive Web Design with Bootstrap
 
WordPress plugin development
WordPress plugin developmentWordPress plugin development
WordPress plugin development
 
Wordpress Underscores & foundation5
Wordpress Underscores & foundation5Wordpress Underscores & foundation5
Wordpress Underscores & foundation5
 
You wanna crypto in AEM
You wanna crypto in AEMYou wanna crypto in AEM
You wanna crypto in AEM
 
Why You Need a Front End Developer
Why You Need a Front End DeveloperWhy You Need a Front End Developer
Why You Need a Front End Developer
 
WordPress Security : What We Learnt When We Were Hacked : WordCamp Mumbai 2017
WordPress Security : What We Learnt When We Were Hacked : WordCamp Mumbai 2017WordPress Security : What We Learnt When We Were Hacked : WordCamp Mumbai 2017
WordPress Security : What We Learnt When We Were Hacked : WordCamp Mumbai 2017
 
Frameworks for the web
Frameworks for the webFrameworks for the web
Frameworks for the web
 
How to Build Custom WordPress Blocks
How to Build Custom WordPress BlocksHow to Build Custom WordPress Blocks
How to Build Custom WordPress Blocks
 
Building the next generation of themes with WP Rig 2.0
Building the next generation of themes with WP Rig 2.0Building the next generation of themes with WP Rig 2.0
Building the next generation of themes with WP Rig 2.0
 

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

2009_09_11_Grid960
2009_09_11_Grid9602009_09_11_Grid960
2009_09_11_Grid960LightSpeed
 
EnterJS 2015 - Continuous Integration for Frontend Code
EnterJS 2015 - Continuous Integration for Frontend CodeEnterJS 2015 - Continuous Integration for Frontend Code
EnterJS 2015 - Continuous Integration for Frontend CodeMarcel Birkner
 
Style Guides Are The New Photoshop (Smashing Conference 2012)
Style Guides Are The New Photoshop (Smashing Conference 2012)Style Guides Are The New Photoshop (Smashing Conference 2012)
Style Guides Are The New Photoshop (Smashing Conference 2012)Stephen Hay
 
Structuring your CSS for maintainability: rules and guile lines to write CSS
Structuring your CSS for maintainability: rules and guile lines to write CSSStructuring your CSS for maintainability: rules and guile lines to write CSS
Structuring your CSS for maintainability: rules and guile lines to write CSSSanjoy Kr. Paul
 
Style Guides Are The New Photoshop (Fronteers 2012)
Style Guides Are The New Photoshop (Fronteers 2012)Style Guides Are The New Photoshop (Fronteers 2012)
Style Guides Are The New Photoshop (Fronteers 2012)Stephen Hay
 
Creating a Business Oriented UI in APEX
Creating a Business Oriented UI in APEXCreating a Business Oriented UI in APEX
Creating a Business Oriented UI in APEXEnkitec
 
Drupal Theming with CSS Frameworks (960grid)
Drupal Theming with CSS Frameworks (960grid)Drupal Theming with CSS Frameworks (960grid)
Drupal Theming with CSS Frameworks (960grid)Ryan Cross
 
CSS framework By Palash
CSS framework By PalashCSS framework By Palash
CSS framework By PalashPalashBajpai
 
An Introduction to CSS Frameworks
An Introduction to CSS FrameworksAn Introduction to CSS Frameworks
An Introduction to CSS FrameworksAdrian Westlake
 
Css masterclass book
Css masterclass bookCss masterclass book
Css masterclass bookPhoenix
 
Get Started With Tailwind React and Create Beautiful Apps.pdf
Get Started With Tailwind React and Create Beautiful Apps.pdfGet Started With Tailwind React and Create Beautiful Apps.pdf
Get Started With Tailwind React and Create Beautiful Apps.pdfRonDosh
 
Mobile Monday Presentation: Responsive Web Design
Mobile Monday Presentation: Responsive Web DesignMobile Monday Presentation: Responsive Web Design
Mobile Monday Presentation: Responsive Web DesignCantina
 
CSS vs. JavaScript - Trust vs. Control
CSS vs. JavaScript - Trust vs. ControlCSS vs. JavaScript - Trust vs. Control
CSS vs. JavaScript - Trust vs. ControlChristian Heilmann
 
CSS3 and a brief introduction to Google Maps API v3
CSS3 and a brief introduction to Google Maps API v3 CSS3 and a brief introduction to Google Maps API v3
CSS3 and a brief introduction to Google Maps API v3 Jeffrey Barke
 
Intro to html5 Boilerplate
Intro to html5 BoilerplateIntro to html5 Boilerplate
Intro to html5 BoilerplateMichael Enslow
 
Neoito — NativeScript Best Coding Practices
Neoito — NativeScript Best Coding PracticesNeoito — NativeScript Best Coding Practices
Neoito — NativeScript Best Coding PracticesNeoito
 

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

Using a CSS Framework
Using a CSS FrameworkUsing a CSS Framework
Using a CSS Framework
 
2009_09_11_Grid960
2009_09_11_Grid9602009_09_11_Grid960
2009_09_11_Grid960
 
EnterJS 2015 - Continuous Integration for Frontend Code
EnterJS 2015 - Continuous Integration for Frontend CodeEnterJS 2015 - Continuous Integration for Frontend Code
EnterJS 2015 - Continuous Integration for Frontend Code
 
Style Guides Are The New Photoshop (Smashing Conference 2012)
Style Guides Are The New Photoshop (Smashing Conference 2012)Style Guides Are The New Photoshop (Smashing Conference 2012)
Style Guides Are The New Photoshop (Smashing Conference 2012)
 
Structuring your CSS for maintainability: rules and guile lines to write CSS
Structuring your CSS for maintainability: rules and guile lines to write CSSStructuring your CSS for maintainability: rules and guile lines to write CSS
Structuring your CSS for maintainability: rules and guile lines to write CSS
 
Style Guides Are The New Photoshop (Fronteers 2012)
Style Guides Are The New Photoshop (Fronteers 2012)Style Guides Are The New Photoshop (Fronteers 2012)
Style Guides Are The New Photoshop (Fronteers 2012)
 
Creating a Business Oriented UI in APEX
Creating a Business Oriented UI in APEXCreating a Business Oriented UI in APEX
Creating a Business Oriented UI in APEX
 
Drupal Theming with CSS Frameworks (960grid)
Drupal Theming with CSS Frameworks (960grid)Drupal Theming with CSS Frameworks (960grid)
Drupal Theming with CSS Frameworks (960grid)
 
CSS framework By Palash
CSS framework By PalashCSS framework By Palash
CSS framework By Palash
 
An Introduction to CSS Frameworks
An Introduction to CSS FrameworksAn Introduction to CSS Frameworks
An Introduction to CSS Frameworks
 
Roadmap 01
Roadmap 01Roadmap 01
Roadmap 01
 
Css masterclass book
Css masterclass bookCss masterclass book
Css masterclass book
 
Get Started With Tailwind React and Create Beautiful Apps.pdf
Get Started With Tailwind React and Create Beautiful Apps.pdfGet Started With Tailwind React and Create Beautiful Apps.pdf
Get Started With Tailwind React and Create Beautiful Apps.pdf
 
Mobile Monday Presentation: Responsive Web Design
Mobile Monday Presentation: Responsive Web DesignMobile Monday Presentation: Responsive Web Design
Mobile Monday Presentation: Responsive Web Design
 
6 css week12 2020 2021 for g10
6 css week12 2020 2021 for g106 css week12 2020 2021 for g10
6 css week12 2020 2021 for g10
 
CSS vs. JavaScript - Trust vs. Control
CSS vs. JavaScript - Trust vs. ControlCSS vs. JavaScript - Trust vs. Control
CSS vs. JavaScript - Trust vs. Control
 
Html5 & less css
Html5 & less cssHtml5 & less css
Html5 & less css
 
CSS3 and a brief introduction to Google Maps API v3
CSS3 and a brief introduction to Google Maps API v3 CSS3 and a brief introduction to Google Maps API v3
CSS3 and a brief introduction to Google Maps API v3
 
Intro to html5 Boilerplate
Intro to html5 BoilerplateIntro to html5 Boilerplate
Intro to html5 Boilerplate
 
Neoito — NativeScript Best Coding Practices
Neoito — NativeScript Best Coding PracticesNeoito — NativeScript Best Coding Practices
Neoito — NativeScript Best Coding Practices
 

Último

Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyKhushali Kathiriya
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Principled Technologies
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024SynarionITSolutions
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 

Último (20)

Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 

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
  • 13.
  • 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
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 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
  • 29.
  • 30.
  • 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