SlideShare a Scribd company logo
1 of 40
Download to read offline
CZEŚĆ! 
bartłomiejkrztuk 2014
BOOTSTRAP W JOOMLA 
modyfikować, rozszerzać, nadpisywać oraz czy 
w ogóle jest on niezbędny? 
bartłomiejkrztuk 2014
CZYM JEST BOOTSTRAP? 
bartłomiejkrztuk 2014
‣ Framework HTML, CSS oraz JavaScript 
‣ Dystrybuowany na licencji MIT (Open 
Source) 
‣ Stworzony przez Twitter’a 
‣ Najpopularniejsze repozytorium 
GitHub’a (~ 72k ★) 
‣ Ponad 20 wydań w tym dwa 
kluczowe: v2 oraz v3 
‣ Mobile first (v3) 
‣ Responsywny 
bartłomiejkrztuk 2014
Główne zalety Bootstrap’a… 
‣“Scaffolding” czyli rusztowanie - style resetujące, 
12 kolumnowy grid, globalne style itd. 
‣ Komponenty - przyciski, nawigacja, etykiety, alerty, 
menu, paginacja… 
‣Wsparcie dla LESS/Sass a co za tym idzie możliwość 
dostosowania wyglądu 
‣Prostota użycia i szybkość wdrożenia projektów 
opartych o Bootstrap 
‣Spójność 
bartłomiejkrztuk 2014
…i trochę wad 
‣Waga (~ 160KB na starcie) 
‣130KB - CSS (wersja skompresowana) 
‣29KB - JavaScript (wersja skompresowana) 
‣Konflikty wersji v2 i v3 
‣Wymaga aktualizacji 
‣bootstrap.css nie przechodzi walidacji W3C dając 31 
błędów i 141 ostrzeżeń 
‣bootstrap.js nie używa średników w wielu miejscach 
(w wersji surowej) więc narzędzia sprawdzające jakość 
kodu produkują znaczącą ilość ostrzeżeń 
bartłomiejkrztuk 2014
“Bootstrap 3 is not backwards compatible with v2.x” 
– getbootstrap.com 
bartłomiejkrztuk 2014
Struktura kodu HTML 
bartłomiejkrztuk 2014
Podobieństwo 
bartłomiejkrztuk 2014
Jak opisać Bootstrap’a w 160 znakach? 
bartłomiejkrztuk 2014
BOOTSTRAP W JOOMLA! 
bartłomiejkrztuk 2014
‣ Bootstrap został dodany do Joomla wraz z wydaniem 
wersji 3.0.0 (27.09.2012) 
‣ Wchodzi w część biblioteki JUI (Joomla User Interface) 
‣ Wraz z dodaniem Bootstrap’a przebudowano back-end 
(Isis) oraz front-end (Prostar) 
‣ Wsparcie dla LESS (media/jui/less) 
‣ Aktualnie używana wersja - 2.3.2 
bartłomiejkrztuk 2014
Timeline 
Bootstrap v.2.0.0 
31.01.2012 
Bootstrap v.2.3.2 
Joomla 3.0.x 
17.06.2013 
Bootstrap v.3.0.0 
19.08.2013 
Bootstrap v.3.2.0 
26.06.2014 
27.09.2012 
Joomla 3.3.x 
25.07.2014 
do dnia dzisiejszego 
bartłomiejkrztuk 2014
Zalety użycia framework’a Bootstrap 
w Joomla 
‣ Ujednolicenie interfejsu (back-end) 
‣ Responsywność - OOTB (out of the box) 
‣ Korzystanie ze wspólnych zasobów przez 
komponenty, szablony i moduły (bootstrap.css, 
bootstrap.js) 
‣ Łatwość modyfikacji dzięki LESS 
‣ Droga na skróty dla deweloperów nie lubiących CSS 
i JavaScript 
bartłomiejkrztuk 2014
WARIANT IDEALNY 
bartłomiejkrztuk 2014
MODUŁ KOMPONENT 
bootstrap.css 
bootstrap.js 
… 
JUI 
SZABLON WTYCZKA 
bartłomiejkrztuk 2014
A JAK TO CZĘSTO WYGLĄDA 
W PRAKTYCE? 
bartłomiejkrztuk 2014
MODUŁ KOMPONENT 
bootstrap.css 
bootstrap.js 
… 
JUI 
Własny CSS/JS 
Zakłada, że szablon korzysta 
z BS v.2.3.2 ale tego nie 
sprawdza. Korzysta zatem 
z klas Bootstrap, które nie są 
wczytane co w efekcie daje 
brak styli. 
SZABLON Bootstrap v.3 WTYCZKA 
bartłomiejkrztuk 2014
JAK UŻYWAĆ BOOTSTRAP Z 
JOOMLA? 
bartłomiejkrztuk 2014
Wariant minimum - wykorzystanie JUI 
bartłomiejkrztuk 2014
Z wykorzystaniem LESS 
bartłomiejkrztuk 2014
JAK NADPISYWAĆ LUB 
DODAWAĆ WŁASNE STYLE? 
bartłomiejkrztuk 2014
Gdy korzystamy z plików .css/.js (JUI) 
‣ Wykluczamy możliwość edycji styli oryginalnych tak 
więc każda zmiana wymaga nadpisania istniejących już 
reguł = ekstra kod 
‣ Duży problem przy kompletnej zmianie kolorystyki 
‣ Uciążliwe resetowanie styli (vendor prefixes) 
‣ Proponuję stworzyć oddzielny plik np. 
bootstrap_override.css, gdzie znajdować się będą tylko 
style nadpisujące oryginalne 
‣ Poprzedzamy każdą nadpisaną klasę BS własnym 
ID lub klasą, co pozwoli nam nie wchodzić w konflikt z 
innymi rozszerzeniami 
bartłomiejkrztuk 2014
Przykład nadpisywania reguł CSS 
.yourSuffix a.label:hover { color: #ffffff; } 
KOD POCHODZĄCY Z BOOTSTRAP’A 
DODATKOWA KLASA LUB ID POZWALAJĄCE 
UNIKNĄĆ KONFLIKTÓW Z INNYMI 
ROZSZERZENIAMI 
bartłomiejkrztuk 2014
Gdy korzystamy z LESS 
‣ Szczególnie polecane dla twórców szablonów 
‣ Pozwala szybko stworzyć mocno zmodyfikowaną 
wersję BS 
‣ Należy skorzystać z variables.less 
‣ Istnieje wiele narzędzi ułatwiających dostosowanie 
zmiennych BS 
‣ Większość zmian wprowadzanych jest bez 
dodatkowego kodu 
bartłomiejkrztuk 2014
variables.less 
// Grays 
// ------------------------- 
@black: #000; 
@grayDarker: #222; 
@grayDark: #333; 
@gray: #555; 
@grayLight: #999; 
@grayLighter: #eee; 
@white: #fff; 
! 
! 
// Accent colors 
// ------------------------- 
@blue: #049cdb; 
@blueDark: #0064cd; 
@green: #46a546; 
@red: #9d261d; 
@yellow: #ffc40d; 
@orange: #f89406; 
@pink: #c3325f; 
@purple: #7a43b6; 
bartłomiejkrztuk 2014
Co można zmodyfikować dzięki variables.less? 
‣ Wszystkie kolory występujące w stylach CSS 
‣ Fonty - font-family, font-size, line-height 
‣ Style tabel 
‣ Buttony 
‣ Tabele 
‣ Grid - odstępy, szerokość itp. 
bartłomiejkrztuk 2014
Jak zrobić to jeszcze szybciej? 
Bootstrap Magic 
bartłomiejkrztuk 2014
bartłomiejkrztuk 2014
Podobne rozwiązania 
‣ BootSwatchr - http://bootswatchr.com/ 
‣ StyleBootstrap - http://stylebootstrap.info/ 
‣ Fancyboot - http://fancyboot.designspebam.com/ 
bartłomiejkrztuk 2014
CZY BOOTSTRAP JEST MI 
WŁAŚCIWIE POTRZEBNY? 
TO ZALEŻY 
bartłomiejkrztuk 2014
Tak, jeśli: 
‣ Masz wrodzoną awersję do CSS i JavaScript 
‣ Czas odgrywa kluczową rolę w projekcie 
‣ Zależy Ci na responsywności a nie masz w tej kwestii 
doświadczenia 
‣ Tworzysz prototyp, makietę itp. lub narzędzie dla 
wąskiego grona użytkowników, które nie wymaga 
dedykowanego projektu graficznego 
‣ Zamierzasz wykorzystać tę samą wersję BS co Joomla 
bartłomiejkrztuk 2014
Nie, jeśli: 
‣Wydajność, optymalizacja i szybkość działania jest 
priorytetem 
‣ Użycie BS będzie wymagało dużej ilości nadpisanych 
styli 
‣ Nie potrafisz zadbać o kompatybilność z innymi 
rozszerzeniami wykorzystującymi BS 
‣ Projekt graficzny posiada oryginalny układ i 
dostosowanie BS będzie wymagające 
bartłomiejkrztuk 2014
JAKICH PRZYPADKÓW 
SZCZEGÓLNIE UNIKAĆ? 
bartłomiejkrztuk 2014
Znacząca ilość niewykorzystanych 
reguł CSS 
Z wykorzystaniem BS Bez wykorzystania BS 
bartłomiejkrztuk 2014
Wyniki z Chrome Dev Tools (Audits) 
3941 
rules (90%) of CSS not used 
by the current page. 
1738 
rules (78%) of CSS not used 
by the current page. 
‣ bootstrap.min.css: 94% is not used by the current page 
bartłomiejkrztuk 2014
Dla dociekliwych… 
bartłomiejkrztuk 2014
Kontakt 
@BartekKrztuk 
www.krztuk.pl 
bartłomiejkrztuk 2014
PYTANIA? 
bartłomiejkrztuk 2014
DZIĘKUJĘ! 
bartłomiejkrztuk 2014

More Related Content

Similar to Bootstrap w Joomla - modyfikować, rozszerzać, nadpisywać oraz czy 
w ogóle jest on niezbędny?

Gavern Framework - Joomla! Day Poland 2013
Gavern Framework - Joomla! Day Poland 2013Gavern Framework - Joomla! Day Poland 2013
Gavern Framework - Joomla! Day Poland 2013
Bartłomiej Krztuk
 

Similar to Bootstrap w Joomla - modyfikować, rozszerzać, nadpisywać oraz czy 
w ogóle jest on niezbędny? (20)

4Developers 2023: frontendowe optymalizacje wydajności / Bartek Miś / Web Dev...
4Developers 2023: frontendowe optymalizacje wydajności / Bartek Miś / Web Dev...4Developers 2023: frontendowe optymalizacje wydajności / Bartek Miś / Web Dev...
4Developers 2023: frontendowe optymalizacje wydajności / Bartek Miś / Web Dev...
 
Wydajny frontend 2023
Wydajny frontend 2023Wydajny frontend 2023
Wydajny frontend 2023
 
WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom
WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistomWordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom
WordUp Gdynia - Jak tworzyć motywy przyjazne użytkownikom i programistom
 
Gavern Framework - Joomla! Day Poland 2013
Gavern Framework - Joomla! Day Poland 2013Gavern Framework - Joomla! Day Poland 2013
Gavern Framework - Joomla! Day Poland 2013
 
Inqub.it - responsive web design na przykładzie twitter bootstrap
Inqub.it - responsive web design na przykładzie twitter bootstrapInqub.it - responsive web design na przykładzie twitter bootstrap
Inqub.it - responsive web design na przykładzie twitter bootstrap
 
Responsive Web Design - co z tego wynikło?
Responsive Web Design - co z tego wynikło?Responsive Web Design - co z tego wynikło?
Responsive Web Design - co z tego wynikło?
 
Wordpress dla początkujących szkolenie / warsztat 07/10 Sidebary, Widgety, Mo...
Wordpress dla początkujących szkolenie / warsztat 07/10 Sidebary, Widgety, Mo...Wordpress dla początkujących szkolenie / warsztat 07/10 Sidebary, Widgety, Mo...
Wordpress dla początkujących szkolenie / warsztat 07/10 Sidebary, Widgety, Mo...
 
Nie takie bloki straszne… czyli wstęp do Gutenberga
Nie takie bloki straszne… czyli wstęp do GutenbergaNie takie bloki straszne… czyli wstęp do Gutenberga
Nie takie bloki straszne… czyli wstęp do Gutenberga
 
PHP i microsoft
PHP i microsoftPHP i microsoft
PHP i microsoft
 
Php i Microsoft
Php i MicrosoftPhp i Microsoft
Php i Microsoft
 
PHP i Microsoft - kto się lubi, ten się czubi
PHP i Microsoft - kto się lubi, ten się czubiPHP i Microsoft - kto się lubi, ten się czubi
PHP i Microsoft - kto się lubi, ten się czubi
 
Wordpress dla każdego
Wordpress dla każdegoWordpress dla każdego
Wordpress dla każdego
 
Jak nadążyć za światem front-endu - WordPress Training Day
Jak nadążyć za światem front-endu - WordPress Training DayJak nadążyć za światem front-endu - WordPress Training Day
Jak nadążyć za światem front-endu - WordPress Training Day
 
Jaki framework wybrać
Jaki framework wybraćJaki framework wybrać
Jaki framework wybrać
 
Co nowego w ASP.NET MVC 4?
Co nowego w ASP.NET MVC 4?Co nowego w ASP.NET MVC 4?
Co nowego w ASP.NET MVC 4?
 
Łebski Development czyli kiedy i dlaczego tworzyć oprogramowanie pod klucz i ...
Łebski Development czyli kiedy i dlaczego tworzyć oprogramowanie pod klucz i ...Łebski Development czyli kiedy i dlaczego tworzyć oprogramowanie pod klucz i ...
Łebski Development czyli kiedy i dlaczego tworzyć oprogramowanie pod klucz i ...
 
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać
"Administrator z przypadku" - Jak działa SQL Server i jak o niego dbać
 
Responsive Web Design
Responsive Web DesignResponsive Web Design
Responsive Web Design
 
Statycznie czy dynamicznie?
Statycznie czy dynamicznie?Statycznie czy dynamicznie?
Statycznie czy dynamicznie?
 
JavaScript, Moduły
JavaScript, ModułyJavaScript, Moduły
JavaScript, Moduły
 

Bootstrap w Joomla - modyfikować, rozszerzać, nadpisywać oraz czy 
w ogóle jest on niezbędny?

  • 2. BOOTSTRAP W JOOMLA modyfikować, rozszerzać, nadpisywać oraz czy w ogóle jest on niezbędny? bartłomiejkrztuk 2014
  • 3. CZYM JEST BOOTSTRAP? bartłomiejkrztuk 2014
  • 4. ‣ Framework HTML, CSS oraz JavaScript ‣ Dystrybuowany na licencji MIT (Open Source) ‣ Stworzony przez Twitter’a ‣ Najpopularniejsze repozytorium GitHub’a (~ 72k ★) ‣ Ponad 20 wydań w tym dwa kluczowe: v2 oraz v3 ‣ Mobile first (v3) ‣ Responsywny bartłomiejkrztuk 2014
  • 5. Główne zalety Bootstrap’a… ‣“Scaffolding” czyli rusztowanie - style resetujące, 12 kolumnowy grid, globalne style itd. ‣ Komponenty - przyciski, nawigacja, etykiety, alerty, menu, paginacja… ‣Wsparcie dla LESS/Sass a co za tym idzie możliwość dostosowania wyglądu ‣Prostota użycia i szybkość wdrożenia projektów opartych o Bootstrap ‣Spójność bartłomiejkrztuk 2014
  • 6. …i trochę wad ‣Waga (~ 160KB na starcie) ‣130KB - CSS (wersja skompresowana) ‣29KB - JavaScript (wersja skompresowana) ‣Konflikty wersji v2 i v3 ‣Wymaga aktualizacji ‣bootstrap.css nie przechodzi walidacji W3C dając 31 błędów i 141 ostrzeżeń ‣bootstrap.js nie używa średników w wielu miejscach (w wersji surowej) więc narzędzia sprawdzające jakość kodu produkują znaczącą ilość ostrzeżeń bartłomiejkrztuk 2014
  • 7. “Bootstrap 3 is not backwards compatible with v2.x” – getbootstrap.com bartłomiejkrztuk 2014
  • 8. Struktura kodu HTML bartłomiejkrztuk 2014
  • 10. Jak opisać Bootstrap’a w 160 znakach? bartłomiejkrztuk 2014
  • 11. BOOTSTRAP W JOOMLA! bartłomiejkrztuk 2014
  • 12. ‣ Bootstrap został dodany do Joomla wraz z wydaniem wersji 3.0.0 (27.09.2012) ‣ Wchodzi w część biblioteki JUI (Joomla User Interface) ‣ Wraz z dodaniem Bootstrap’a przebudowano back-end (Isis) oraz front-end (Prostar) ‣ Wsparcie dla LESS (media/jui/less) ‣ Aktualnie używana wersja - 2.3.2 bartłomiejkrztuk 2014
  • 13. Timeline Bootstrap v.2.0.0 31.01.2012 Bootstrap v.2.3.2 Joomla 3.0.x 17.06.2013 Bootstrap v.3.0.0 19.08.2013 Bootstrap v.3.2.0 26.06.2014 27.09.2012 Joomla 3.3.x 25.07.2014 do dnia dzisiejszego bartłomiejkrztuk 2014
  • 14. Zalety użycia framework’a Bootstrap w Joomla ‣ Ujednolicenie interfejsu (back-end) ‣ Responsywność - OOTB (out of the box) ‣ Korzystanie ze wspólnych zasobów przez komponenty, szablony i moduły (bootstrap.css, bootstrap.js) ‣ Łatwość modyfikacji dzięki LESS ‣ Droga na skróty dla deweloperów nie lubiących CSS i JavaScript bartłomiejkrztuk 2014
  • 16. MODUŁ KOMPONENT bootstrap.css bootstrap.js … JUI SZABLON WTYCZKA bartłomiejkrztuk 2014
  • 17. A JAK TO CZĘSTO WYGLĄDA W PRAKTYCE? bartłomiejkrztuk 2014
  • 18. MODUŁ KOMPONENT bootstrap.css bootstrap.js … JUI Własny CSS/JS Zakłada, że szablon korzysta z BS v.2.3.2 ale tego nie sprawdza. Korzysta zatem z klas Bootstrap, które nie są wczytane co w efekcie daje brak styli. SZABLON Bootstrap v.3 WTYCZKA bartłomiejkrztuk 2014
  • 19. JAK UŻYWAĆ BOOTSTRAP Z JOOMLA? bartłomiejkrztuk 2014
  • 20. Wariant minimum - wykorzystanie JUI bartłomiejkrztuk 2014
  • 21. Z wykorzystaniem LESS bartłomiejkrztuk 2014
  • 22. JAK NADPISYWAĆ LUB DODAWAĆ WŁASNE STYLE? bartłomiejkrztuk 2014
  • 23. Gdy korzystamy z plików .css/.js (JUI) ‣ Wykluczamy możliwość edycji styli oryginalnych tak więc każda zmiana wymaga nadpisania istniejących już reguł = ekstra kod ‣ Duży problem przy kompletnej zmianie kolorystyki ‣ Uciążliwe resetowanie styli (vendor prefixes) ‣ Proponuję stworzyć oddzielny plik np. bootstrap_override.css, gdzie znajdować się będą tylko style nadpisujące oryginalne ‣ Poprzedzamy każdą nadpisaną klasę BS własnym ID lub klasą, co pozwoli nam nie wchodzić w konflikt z innymi rozszerzeniami bartłomiejkrztuk 2014
  • 24. Przykład nadpisywania reguł CSS .yourSuffix a.label:hover { color: #ffffff; } KOD POCHODZĄCY Z BOOTSTRAP’A DODATKOWA KLASA LUB ID POZWALAJĄCE UNIKNĄĆ KONFLIKTÓW Z INNYMI ROZSZERZENIAMI bartłomiejkrztuk 2014
  • 25. Gdy korzystamy z LESS ‣ Szczególnie polecane dla twórców szablonów ‣ Pozwala szybko stworzyć mocno zmodyfikowaną wersję BS ‣ Należy skorzystać z variables.less ‣ Istnieje wiele narzędzi ułatwiających dostosowanie zmiennych BS ‣ Większość zmian wprowadzanych jest bez dodatkowego kodu bartłomiejkrztuk 2014
  • 26. variables.less // Grays // ------------------------- @black: #000; @grayDarker: #222; @grayDark: #333; @gray: #555; @grayLight: #999; @grayLighter: #eee; @white: #fff; ! ! // Accent colors // ------------------------- @blue: #049cdb; @blueDark: #0064cd; @green: #46a546; @red: #9d261d; @yellow: #ffc40d; @orange: #f89406; @pink: #c3325f; @purple: #7a43b6; bartłomiejkrztuk 2014
  • 27. Co można zmodyfikować dzięki variables.less? ‣ Wszystkie kolory występujące w stylach CSS ‣ Fonty - font-family, font-size, line-height ‣ Style tabel ‣ Buttony ‣ Tabele ‣ Grid - odstępy, szerokość itp. bartłomiejkrztuk 2014
  • 28. Jak zrobić to jeszcze szybciej? Bootstrap Magic bartłomiejkrztuk 2014
  • 30. Podobne rozwiązania ‣ BootSwatchr - http://bootswatchr.com/ ‣ StyleBootstrap - http://stylebootstrap.info/ ‣ Fancyboot - http://fancyboot.designspebam.com/ bartłomiejkrztuk 2014
  • 31. CZY BOOTSTRAP JEST MI WŁAŚCIWIE POTRZEBNY? TO ZALEŻY bartłomiejkrztuk 2014
  • 32. Tak, jeśli: ‣ Masz wrodzoną awersję do CSS i JavaScript ‣ Czas odgrywa kluczową rolę w projekcie ‣ Zależy Ci na responsywności a nie masz w tej kwestii doświadczenia ‣ Tworzysz prototyp, makietę itp. lub narzędzie dla wąskiego grona użytkowników, które nie wymaga dedykowanego projektu graficznego ‣ Zamierzasz wykorzystać tę samą wersję BS co Joomla bartłomiejkrztuk 2014
  • 33. Nie, jeśli: ‣Wydajność, optymalizacja i szybkość działania jest priorytetem ‣ Użycie BS będzie wymagało dużej ilości nadpisanych styli ‣ Nie potrafisz zadbać o kompatybilność z innymi rozszerzeniami wykorzystującymi BS ‣ Projekt graficzny posiada oryginalny układ i dostosowanie BS będzie wymagające bartłomiejkrztuk 2014
  • 34. JAKICH PRZYPADKÓW SZCZEGÓLNIE UNIKAĆ? bartłomiejkrztuk 2014
  • 35. Znacząca ilość niewykorzystanych reguł CSS Z wykorzystaniem BS Bez wykorzystania BS bartłomiejkrztuk 2014
  • 36. Wyniki z Chrome Dev Tools (Audits) 3941 rules (90%) of CSS not used by the current page. 1738 rules (78%) of CSS not used by the current page. ‣ bootstrap.min.css: 94% is not used by the current page bartłomiejkrztuk 2014
  • 38. Kontakt @BartekKrztuk www.krztuk.pl bartłomiejkrztuk 2014