školení frontend Organizace CSS

Podobné dokumenty
školení frontend CSS Preprocesory

Základy CSS (3. přednáška)

NSWI096 - INTERNET. CSS kaskádové styly. Mgr. Petr Lasák

Internetové publikování. Doc. Ing. Petr Zámostný, Ph.D. místnost: A-72a tel.: 4222, 4167 (sekretariát ústavu 111)

tvoříme web Bootstrap

CSS Kaskádové styly. formátování webových stránek

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové aplikace

(X)HTML, CSS a jquery

CSS Stylování stránek. Zpracoval: Petr Lasák

TVORBA WEBOVÝCH STRÁNEK

O CSS podrobněji. Box model Document flow Layout

tvoříme web HTML/CSS

Přehled základních html tagů

Kaskádové styly (CSS)

TNPW1 Cvičení

Mgr. Vlastislav Kučera Header, footer, navv, article, section, boxy, margin, padding, border

CSS Selektory tříd a ID, dědičnost, další vlastnosti. Formátování HTML dokumentu, které je více či méně oddělené od obsahu Způsoby implementace

CSS 1 Relativní pozicování Relativní pozicované bloky jsou pozicované vůči nornálnímu toku elementů dokumentu. (nejsou vyjmuty z normálního toku jako

CSS (Cascading Sytle Sheets) neboli kaskádové styly vznikly jako souhrn metod pro úpravu vzhledu stránek.

TNPW1 Cvičení aneta.bartuskova@uhk.cz

Dokumentace k ročníkové práci

Kaskadové styly (CSS) VOŠG Hellichova Praha 2010 Jirka Jahoda

KIV/PIA 2012 Ing. Jan Tichava

Tvorba webových stránek

Vývoj Internetových Aplikací

Skripta ke školení. Autor: Tomáš Herout Telefon: (+420)

CSS styly. Cascading Style Sheets kaskádové styly

<html> - párový tag, uzavírá celý dokument <head> - párový, určuje hlavičku dokumentu <body> - párový, uzavírá tělo dokumentu Př. Základní struktura

12. Základy HTML a formuláře v HTML

Tvorba webových stránek

Neprogramuj, pokud to není nezbytně nutné. Michal Lupečka

Podpora nových webových technologií HTML5 a CSS3 v aktuálních verzích prohlížečů

Název: VY_32_INOVACE_PG4119 Tipy a triky, rozdíly mezi prohlížeči

Mgr. Vlastislav Kučera Struktura stránky, hlavička,

OBALKYKNIH.CZ API 3.0, IMPLEMENTACE PRO ALEPH OPAC

Dokument XHTML. Prohlížeč. styl CSS. Výstupní dokument. Soubor DTD

CSS Kaskádní styly. Založeno na přednášce Lukáše Bařinky

Úvod do jazyka HTML (Hypertext Markup Language)

Tvorba webových stránek

ŠKODA Portal Platform

Child selektory. Adjacent sibling selektory. Pseudoelementy. Atributové selektory. Tabulky. Obtékané elementy. »!!!

Kaskádové styly. CSS (Cascading Sytle Sheets) neboli kaskádové styly vznikly jako souhrn metod pro úpravu vzhledu stránek.

Bloky. Tag Význam Párový. p odstavec nepovinně. br řádkový zlom ne. div oddíl ano. center vycentrování ano. h1 nadpis 1.

TNPW1 Cvičení

Programování v jazyce JavaScript

Rozvržení stránky. Co se v modulu dozvíte? Pozicování

Název: VY_32_INOVACE_PG4113 Relativní pozicovaní a jeho využití

1: Úvod 9. Co a kde v knize naleznete... 9 Zdroje Doporučení pro další studium... 11

Rozměry, okraje a rámečky

DESETIMINUTOVKY CSS - DOVEDNOSTI TÉMATA:

Základy informatiky. HTML, tvorba WWW stránek. Daniela Szturcová Část převzata z přednášky P. Děrgela

HTML - Úvod. Zpracoval: Petr Lasák

Základy informatiky. 03 HTML, tvorba webových stránek. Kačmařík/Szturcová/Děrgel/Rapant

Tvorba www-stránek. Příkazy jazyka HTML. Budeme pracovat následovně: Základní struktura webové stránky. Příkazy sekce HEAD

Obrázky. Tag Význam Párový Výskyt. img obrázek ne. img video ne. map klikací mapa. area oblast v klikací mapě ne

Připravil: Ing. Jiří Lýsek, Ph.D. Verze: Webové technologie

selektor {vlastnost1: hodnota_vlastnosti1; vlastnost2: hodnota_vlastnosti2;}

22. Tvorba webových stránek

Soukromá střední odborná škola Frýdek-Místek, s.r.o. VY_32_INOVACE_92_IVT_HTML_12_nase_www

Blokový model v CSS:

Front-end responzivního webu v HTML5 a CSS3.

Úvod do CSS. Střední škola informatiky, elektrotechniky a řemesel Rožnov pod Radhoštěm. Modernizace výuky s využitím ICT, CZ.1.07/1.5.00/34.

Tématická oblast: dědičnost, kaskáda. CSS a média. Stylové předpisy pro různé typy zobrazovacích zařízení

Tomáš Herout

Ukázka knihy z internetového knihkupectví

Internet cvičení. ZS 2009/10, Cvičení 3., Tomáš Pop. DISTRIBUTED SYSTEMS RESEARCH GROUP

Referenční přehled vlastností CSS1 (Cascading Style Sheets, level 1)

První kapitola úvod do problematiky

Škola. Téma hodiny HTML - Základní návrh stránky Informační a komunikační technologie

IE1 jazyk HTML a kaskádové styly

KAPITOLA 5. Základní stylování seznamů

Univerzita Karlova Pedagogická fakulta BAKALÁŘSKÁ PRÁCE. Vývoj a trendy stylování www stránek. Development and trends websites styling

Tabulky. Přehled tagů z oblasti tabulek. Tag Význam Párový Výskyt. tr řádek tabulky nepovinně <table>, <tbody>, <thead>, <tfoot>

13. Vytváření webových stránek

Úvod do tvorby internetových stránek v jazyce HTML

Kaskádové styly základy grafiky

CSS 1. Blokový model Každý element tvoří obdélník. Dva druhy obdélníků: - Blokové; - Vložené. Zde je dlouhý text v kterém nachazí vložené...

IE1 jazyk HTML a kaskádové styly

Vytvoření pokročilé Fotogalerie v Drupalu - Views

Zá klady HTML. Tag HTML <HTML> Párová značka, který definuje webovou stránku. Obsah stránky končí značkou

Manuál tvorby webových stránek dle webu Jihočeské univerzity v Českých Budějovicích Guideline pro fakulty a celoškolská pracoviště

Internetové publikování. Doc. Ing. Petr Zámostný, Ph.D. místnost: A-72a tel.: 4222, 4167 (sekretariát ústavu 111)

Moderní webové technologie. Jakub ŽÁK

+ knihovna funkcí usnadňujících práci v javascriptu

Tvorba WWW stránek. přehled technologií používaných na webu principy jednotlivých technologií a možnosti jejich vzájemného kombinování

NSWI142 Webové aplikace Zkouškový test

CSS. Internetové publikování

Tvorba WWW stránek. Mgr. Petr Jakubec. Katedra fyzikální chemie Univerzita Palackého v Olomouci Tř. 17. listopadu

Kaskádové styly 4IZ228 tvorba webových stránek a aplikací

Název DUM: VY_32_INOVACE_2B_14_ Programovací_jazyk_HTML

Základy programovacího jazyka HTML. Autor: Ing. Jan Nožička SOŠ a SOU Česká Lípa VY_32_INOVACE_1133_Základy programovacího jazyka HTML_PWP

Informatika pro moderní fyziky (8) Javascript, CSS - stylování dokumentů, SVG - tvorba obrázků, složitější interaktivní dokument

Tvorba webových stránek pomocí HTML kódu v příkladech. M. Seménka, 2014

Webové stránky. 5. Kaskádové styly formátování textu. Datum vytvoření: str ánk y. Vytvořil: Petr Lerch.

Mgr. Vlastislav Kučera lekce č. 2

Čtvrtek 11. dubna. Základy HTML. Obecná syntaxe HTML. Struktura HTML

Grafika na webu. Lukáš Bařinka

Obsah. Úvod 11 O autorovi 11 Koncept knihy 11 Zpětná vazba od čtenářů 12 Zdrojové kódy ke knize 12 Errata 12 ČÁST I VÝVOJ MOBILNÍ APLIKACE

Mgr. Vlastislav Kučera Nadpisy, odstavce, odkazy,

HTML - pokračování. Co už víme?

Transkript:

školení frontend Organizace CSS

organizace CSS Nastavení editoru Editor Config http://editorconfig.org zajistí stejné formátování kódu Prettier https://prettier.io/ hlídá řádky mezi selektory, čárky v hodnotách, 0 na začátku desetinných hodnot Stylelint https://stylelint.io/ hlídá specificitu, zanoření, BEM pravidla, zápis barev, jednotky,... plugin do většiny editorů VS Code, Sublime, Atom,... https://css-tricks.com/prettier-stylelint-writing-clean-css-keeping-clean-code-two-tool-game/

organizace CSS Editor Config [*] end_of_line = lf indent_size = 2 indent_style = space charset = utf-8 trim_trailing_whitespace = true insert_final_newline = true [package.json] indent_style = space indent_size = 2...

organizace CSS Prettier Upozornění a oprava obecných chyb v kódu automatická oprava kódu možnost spouštět při každém uložení souboru integrovaný v editorech nebo jako Gulp/Grunt plugin opravy odsazení, destinných míst, velikosti písem, uvozovky, délka řádku,...

organizace CSS Stylelint Upozornění na chyby v CSS zapomenuté prázdné deklarace nebo komentáře překlepy v názvech vlastností zakázání pojmenovaných barev omezení počtu desetinných míst velikost znaků v zápisu barev...

organizace CSS Stylelint "extends": "stylelint-config-standard", "rules": { "at-rule-empty-line-before": null, "at-rule-name-space-after": null, "at-rule-no-unknown": null, "color-hex-case": "lower", "color-named": "never",... Konfigurace: https://maximgatilin.github.io/stylelint-config/

organizace CSS Demo ukázka stylelint & prettier v akci

CSS Metodiky zápisu CSS OOCSS http://editorconfig.org jak psát komponenty v CSS BEM http://getbem.com/ jak pojmenovávat komponenty v CSS SMACSS, ITCSS https://smacss.com/ metodiky organizace celého CSS v rámci projektu

CSS Metodiky Atomic webdesign

CSS Metodiky ITCSS

CSS Metodiky ITCSS ITCSS co tam patří příklady css tříd Settings proměnné $bg-color, $font-base,... Tools funkce, mixiny @function calc-spacing... Generic reset (Reboot, Normalize) body, input,... Elements základní nastavení layoutu body, input, h1, p,... Objects základní komponenty.media,.button, Components ostatní komponenty.article-item,.list,.footer-nav,... Utilities pomocné třídy.img-fluid,.text-center,...

CSS Metodiky SMACSS Scalable and Modular Architecture for CSS

CSS Metodiky SMACSS SMACSS co tam patří příklady css tříd Base normalizace, základní styly body, input, h1, p,... Layout grid, responsivní fw, wrappery.row,.container,.header,... Modules komponenty.article-list,.header-nav,... State stavy.active,.focus,...

CSS Metodiky SMACSS

CSS Metodiky SMACSS

organizace CSS Rozložení specificity https://cssstats.com/ https://csswizardry.com/2014/10/the-specificity-graph/

organizace CSS Rozložení specificity H1, p, a,....header,.grid,....media-article,.pagination,... https://snook.ca/archives/html_and_css/specificity-graphs

organizace CSS Refaktoring - Struktura zkuste opravit CSS strukturu projektu: https://codepen.io/svobodalukas/pen/epybxa

CSS Metodiky Object oriented CSS Cíle OOCSS 1. Zrychlení psaní kódu i načtení CSS souboru 2. Škálovatelnost 3. Efektivita 4. Snazší údržba 5. Lepší čitelnost 6. Příbuznost s ostatními koncepty zápisu CSS Nevýhody 1. Roste počet tříd u elementu 2. Může být zbytečné u menších projektů 3. Chvilku trvá, než se dostane do krve

CSS Metodiky OOCSS 1. Oddělení CSS od struktury nikdy nepoužíváme HTML tagy jako selektory (kromě základní typografie) 2. Nezávislost na kontextu.footer.nav {....nav-footer {... 3. Snaha o minimální specifičnost nepoužíváme id selektory,!important nebo kombinace selektorů.nav.nav-footer {....nav-footer {...

CSS Metodiky OOCSS <a href="#" class="button-blue-small">click me!</a> <style>.button-blue-small { display: inline-block; text-align: center; margin: 10px 5px; text-decoration: none; color: #FFF; border: 1px solid #0082BE; background: #00A4EF; font-size: 13px; padding: 5px 20px; </style>

CSS Metodiky OOCSS 1. Struktura 2. Velikost 3. Styly

CSS Metodiky OOCSS základní struktura.button { display: inline-block; text-align: center; margin: 10px 5px; text-decoration: none;

CSS Metodiky OOCSS velikost.button-small { font-size: 13px; padding: 6px 20px;

CSS Metodiky OOCSS styly.button-blue { color: #FFF; border: 1px solid #0082BE; background: #00A4EF;

CSS Metodiky OOCSS <a href="#" class="button button-small button-blue">click me!</a> <style>.button {....button-small {....button-blue {... </style>

CSS Metodiky OOCSS - problémy <div class="article article-list"> <div class="article-header">... </div> </div>

CSS Metodiky komponenta versus kontext https://codepen.io/machal/pen/jmdraa

organizace CSS Refaktoring Začít malými často používanými částmi Atomizace komponent.article.article-main h3.article-heading Izolovat nový kód od ostatního obsahu Kusy "šeredného" kódu sdružovat do jednoho místa (shame.css)

organizace CSS Refaktoring - Komponenta refaktorujte CSS komponentu: https://codepen.io/svobodalukas/pen/oapmww

CSS Metodiky Block Element - Modifier Výhody 1. "Nadstavba" OOCSS (platí všechny podmínky OOCSS) 2. Jedná se především o metodiku jak pojmenovávat komponenty 3. Jednoduše lze poznat význam třídy 4. Snadno pochopitelný Nevýhody 1. Hledání vhodného jména 2. Nezvyklý a často zdlouhavý zápis tříd

CSS Metodiky Block Element - Modifier http://getbem.com/ Blok.nav-main { Nezávislá část stránky, znovupoužitelná Bloky lze do sebe zanořit Element.nav-main list { Prvek uvnitř bloku, nefunguje bez bloku Modifikátor.nav-main--dark { Varianta bloku nebo elementu Mění vzhled, chování nebo stav

CSS Metodiky BEM - modifikátory <! - Takhle ne --> <figure class="photo"> <img src="me.jpg"> <figcaption>look at me!</figcaption> </figure> <style>.photo {.photo img {.photo figcaption { </style>

CSS Metodiky BEM - modifikátory <!- Takhle ano --> <figure class="photo"> <img class="photo img" src="me.jpg"> <figcaption class="photo caption">look at me!</figcaption> </figure> <style>.photo {.photo img {.photo caption { </style>

CSS Metodiky BEM - modifikátory <a href="#" class="button button--small button--blue"> Click me! </a> <style>.button {....button--small {....button--blue {... </style>

CSS Metodiky BEM - modifikátory <!- Takhle ne --> <figure class="photo"> <img class="photo img" src="me.jpg"> <figcaption class="photo caption"> <blockquote class="photo caption quote"> Look at me! </blockquote> </figcaption> </figure> <style>.photo {.photo img {.photo caption {.photo caption quote { </style> </body>

CSS Metodiky BEM - modifikátory <!- Takhle ano --> <figure class="photo"> <img class="photo img" src="me.jpg"> <figcaption class="photo caption"> <blockquote class="photo quote"> Look at me! </blockquote> </figcaption> </figure> <style>.photo {.photo img {.photo caption {.photo quote { </style> </body>

CSS Metodiky BEM - modifikátory <!- Takhle ne --> <figure class="photo"> <img class="photo img photo img--highlighted" src="me.jpg"> <figcaption class="photo caption photo caption--highlighted"> Look at me! </figcaption> </figure> <style>.photo img--highlighted {.photo caption--highlighted { </style>

CSS Metodiky BEM - modifikátory <!- Takhle ano --> <figure class="photo photo--highlighted"> <img class="photo img" src="me.jpg"> <figcaption class="photo caption"> Look at me! </figcaption> </figure> <style>.photo--highlighted.photo img {.photo--highlighted.photo caption { </style>

CSS Metodiky BEM - modifikátory <!- Takhle ne --> <div class="somethesis somethesis--fastread"> <div class="somethesis someelement"></div> </div> <style>.somethesis {.somethesis--fastread {.somethesis someelement { </style>

CSS Metodiky BEM - modifikátory <!- Takhle ano --> <div class="some-thesis some-thesis--fast-read"> <div class="some-thesis some-element"></div> </div> <style>.some-thesis {.some-thesis--fast-read {.some-thesis some-element { </style>

organizace CSS Refaktoring - BEM Upravte v naší refaktorované komponentě zápis, aby odpovídal metodice BEM. Můžete využít codepen: https://codepen.io/svobodalukas/pen/xxzmwy

organizace CSS Základní pravidla Co nejnižší specificita.heading { font-size: 24px; #header.nav h3 { font-size: 16px;.heading { font-size: 24px;.heading--sm { font-size: 16px;

organizace CSS Základní pravidla CSS nezávislé na HTML h1.heading { font-size: 24px; nav > ul > li { font-size: 16px;.heading { font-size: 24px;.list-item { font-size: 16px;

organizace CSS Základní pravidla Snadno pochopitelné CSS.heading { @include my-font-b(24px, 30px, #d5d5d5);.heading { font-size: 24px; margin-bottom: 30px; border-bottom: 1px solid #d5d5d5;

organizace CSS Základní pravidla Využívání globálních a lokálních proměnných.heading { font-size: 24px; color: #d5d5d5;.heading { font-size: $text-xl; color: $color-secondary; @media (min-width: 768px) {... @media (min-width: $screen-md) {...

organizace CSS Základní pravidla Snažíme se nezanořovat (pokud to není nezbytně nutné).heading.nav.nav-footer ul > li a {....heading-link {...

organizace CSS Základní pravidla Zbytečně nevyužíváme zanořování pomocí &.header { background: #f5f5f5; & nav { font-size: 16px; &--large { font-size: 18px;.header { background: #f5f5f5;.header nav { font-size: 16px;.header nav--large { font-size: 18px;

organizace CSS Základní pravidla Matematické výrazy píšeme pochopitelně.content { border-top: 76px; $header-height: 60px; $spacing-base: 16px;.content { border-top: calc($header-height + $spacing-base);

organizace CSS Základní pravidla Komentujeme kód, ideálně v angličtině.content { position: relative;.content { // used by.ad-banner (has absolute position) position: relative;

organizace CSS Základní pravidla Vyhneme se!important.text-red { color: red!important;.text-red.text-more-red { color: #e30604!important; #main.text-blue { color: blue!important;

organizace CSS Základní pravidla Nepoužíváme inline styly.text-red { color: red; <li class="text-red" style="color: blue;" >... </li>

organizace CSS Základní pravidla nemícháme různé jednotky h1 { font-size: 24px;.heading { font-size: 3em;.heading-2 { font-size: 2rem; h1 { font-size: 1.5rem;.heading { font-size: 3rem;.heading-2 { font-size: 2rem;

organizace CSS Základní pravidla fallbacky necháme strojům.block { -ms-transform: rotate(90deg); -webkit-transform: rotate(90deg); transform: rotate(90deg);.block { transform: rotate(90deg); /* autoprefixer for build */

organizace CSS Kdy to smrdí podezřelé CSS konstrukce h2 { font-size: 2em; margin-bottom: 0.5em; padding-bottom: 0.5em; border-bottom: 1px solid #ccc;.no-border { padding-bottom: 0; border-bottom: none; h2 { font-size: 2em; margin-bottom: 0.5em;.headline { padding-bottom: 0.5em; border-bottom: 1px solid #ccc;

organizace CSS Kdy to smrdí no Single Source of Truth.btn {.header.btn,.header.btn:hover {.sidebar.btn {.btn {.btn--large {.btn--primary {.btn--nav {.modal.btn {.page aside.btn { nav.btn {

organizace CSS Kdy to smrdí Brute Force.foo { margin-top: -12px; position: relative; z-index: 1000; height: 48px; float: left;

organizace CSS Demo ukázka špatného CSS

organizace CSS Základní pravidla Zásady psaní respektujícího CSS https://www.vzhurudolu.cz/prirucka/rcss-zasady

CSS Metodiky Utility CSS <ul class="list-reset text-center pt-6"> <li class="pl-2 pr-1 inline-block"> <a href="..." target="_blank" class="relative block w-10 h-10 text-black opacity-50 border-2 border-black rounded-full"> <svg width="20" height="20" class="fill-current absolute left-50 top-50 translate-xy"> <use xlink:href="#ic_facebook" /> </svg> </a> </li> <li class="pl-2 pr-1 inline-block"> <a href="..." target="_blank" class="relative block w-10 h-10 text-black opacity-50 border-2 border-black rounded-full"> <svg width="20" height="20" class="fill-current absolute left-50 top-50 translate-xy"> <use xlink:href="#ic_twitter" /> </svg> </a> </li> </ul>

CSS Metodiky Utility CSS Výhody 1. kód se píše velmi rychle 2. není potřeba zasahovat do CSS 3. malý výsledný CSS 4. styly jsou nezávislé na kontextu 5. nemusíte přemýšlet nad názvem třídy Nevýhody 1. vypadá to jako inline styly 2. méně přehledný kód - je to ukecané 3. je potřeba si pamatovat jak se co styluje

CSS Metodiky Utility CSS Tailwind https://tailwindcss.com Tachyons https://tachyons.io/

CSS Metodiky Styled components & CSS Modules https://www.styled-components.com/docs/basics https://medium.com/@perezpriego7/css-evolution-from-css-sass-bem-css-modules-to-styled-components-d4c1da3a659b

CSS Metodiky Styled components const Button = styled.a` display: inline-block; border-radius: 3px; padding: 0.5rem 0; margin: 0.5rem 1rem; width: 11rem; background: transparent; color: white; border: 2px solid white; ${props => props.primary && css` background: white; color: palevioletred; ` ` render( <div> <Button href="https://github.com/styledcomponents/styled-components" target="_blank" rel="noopener" primary > GitHub </Button> <Button as={link href="/docs" prefetch> Documentation </Button> </div> )

CSS Metodiky Styled components Výhody 1. CSS kód není globální, neexistuje dědičnost 2. vždy se vypíše jen potřebný CSS kód 3. při události mohu na jednom místě řešit vzhled i fungování 4. nemusíte přemýšlet nad názvem třídy Nevýhody 1. závislost na JS

CSS Metodiky Design systems https://adele.uxpin.com/

organizace CSS Code review

organizace CSS Git workflow

organizace CSS Git workflow

Hledání chyb Chyby v kódu Editory kódu W3C validátor Chrome Developer Tools Automatizační nástroje (Gulp, WebPack)

Hledání chyb Chrome DevTools CTRL+SHIFT+I / CMD+OPT+I pro zobrazení Elements CTRL+F / CMD+F - vyhledá selektor v kódu filtrování CSS vlastností možnost přidávat vlastní selektor přepínání :hover stavů možnost testování responsivity Sources možnost modifikovat CSS a JS soubory CTRL+P / CMD+P pro přepínání mezi soubory

Hledání chyb Vizuální chyby, použitelnost Fyzická zařízení Browserstack (https://www.browserstack.com) alternativy: https://crossbrowsertesting.com/ https://www.androidauthority.com/best-android-emulators-for-pc-655308/ https://docs.microsoft.com/en-us/previous-versions/windows/apps/ff402563(v=vs.105) Automatické testování Guerilla testing

Hledání chyb Ladění Codepen izolovaný kód, lze vyzkoušet kritický kus Chrome DevTools úpravy CSS, testování hover a focus, emulace pomalého internetu Prohlížeče Firefox, IE, Edge, Safari Reálné zařízení mobil, tablet