52. Angular - komponenty
Vytvoríme si Angular projekt, vysvetlíme si základnú štruktúru, porozprávame si o entitách a princípe MVC v komponentoch.
Server spustíme v konzole, ak máme nainštalovanú javu aspoň vo verzii 17, príkazom:
Predmet Webové technológie je určený pre študentov Košickej akadémie softvérového vývoja, prvý ročník. Predmet poskytuje vedomosti a skúsenosti v práci s HTML5, CSS3 a Typescript-om.
Vytvoríme si Angular projekt, vysvetlíme si základnú štruktúru, porozprávame si o entitách a princípe MVC v komponentoch.
Server spustíme v konzole, ak máme nainštalovanú javu aspoň vo verzii 17, príkazom:
Pokračujeme zo Star Wars úlohami.
Úlohy:
[ { planet: 'Tatooine',
people: [ {'name':'Luke Skywalker','url':'https://swapi.dev/api/people/1/'},
{'name':'C-3PO','url':'https://swapi.dev/api/people/2/'},
{'name':'Darth Vader','url':'https://swapi.dev/api/people/4/'},
...]},
{ planet: 'Alderaan',
people: [ {"name":"Leia Organa","url":"https://swapi.dev/api/people/5/"},
{"name":"Bail Prestor Organa","url":"https://swapi.dev/api/people/68/"},
{"name":"Raymus Antilles","url":"https://swapi.dev/api/people/81/"}
...] },
{ planet: 'Yavin IV',
people: [] },...]
[ { planet: 'Tatooine', species: [ 'Droid' ] },
{ planet: 'Alderaan', species: [ 'Human' ] },
{ planet: 'Yavin IV', species: [] },
...
{ planet: 'Naboo', species: [ 'Droid', 'Gungan', 'Human' ] },
...]
Pokračujeme zo Star Wars úlohami.
Úlohy:
[ 'Ackbar', 'Adi Gallia', 'Anakin Skywalker', 'Arvel Crynyd', 'Ayla Secura',... ]
[ 'Ackbar', 'Mas Amedda', 'Padmé Amidala', 'Wedge Antilles', 'Raymus Antilles',... ]
[ 'Yoda', 'Bossk', 'C-3PO', 'IG-88', 'Lobot', 'R2-D2', 'Han Solo', ... ]
[ { name: 'Luke Skywalker', specimen: [] },
{ name: 'C-3PO', specimen: [ 'Droid' ] },
{ name: 'R2-D2', specimen: [ 'Droid' ] },
{ name: 'Darth Vader', specimen: [] },... ]Budeme pracovať s JSON dokumentmi získanými z adresy https://swapi.dev/ podľa úloh uvedených nižšie.
Úlohy:
[ 'Luke Skywalker', 'C-3PO', 'R2-D2', 'Darth Vader',... ]
Pokračujeme s higher-order funkciami v poliach.
Úlohy:
[
{"langName":"Pashto","population":27657145},
{"langName":"Uzbek","population":27657145},
{"langName":"Turkmen","population":27657145},
{"langName":"Swedish","population":28875},
...]
{
Pashto: 27657145,
Uzbek: 59233545,
Turkmen: 32408265,
Swedish: 15415580,
...}
[
{ language: 'Pashto', count: 27657145 },
{ language: 'Uzbek', count: 59233545 },
{ language: 'Turkmen', count: 32408265 },
...]
English: 2.655 mld Chinese: 1.414 mld Hindi: 1.296 mld ...
Pokračujeme s higher-order funkciami v poliach.
Úlohy:
[ { currency: 'New Zealand dollar',
countries: [ 'Cook Islands', 'New Zealand', 'Niue', 'Pitcairn', 'Tokelau' ],
count: 5 },
{ currency: 'Central African CFA franc',
countries: ['Cameroon', 'Central African Republic', 'Chad', 'Congo', 'Equatorial Guinea', 'Gabon'],
count: 6 },
...
]
Pokračujeme s higher-order funkciami v poliach. Povieme si ako reťaziť funkcie prostredníctvom rúry.
Úlohy:
{
Spanish: ['Argentina', 'Bolivia (Plurinational State of)', 'Chile',...],
Portuguese: [ 'Brazil' ],
English: [ 'Falkland Islands (Malvinas)', 'Guyana',...],
...
}
[ { language: 'Spanish', countries: ['Argentina', 'Bolivia (Plurinational State of)', 'Chile',...]},
{ language: 'Portuguese', countries: [ 'Brazil' ]},
{ language: 'English', countries: [ 'Falkland Islands (Malvinas)', 'Guyana',...]},
...
]
[ { currency: 'New Zealand dollar',
countries: [ 'Cook Islands', 'New Zealand', 'Niue', 'Pitcairn', 'Tokelau' ],
count: 5 },
{ currency: 'Central African CFA franc',
countries: ['Cameroon', 'Central African Republic', 'Chad', 'Congo', 'Equatorial Guinea', 'Gabon'],
count: 6 },
...
]
Pokračujeme s higher-order funkciami v poliach - flat, flatMap, reduce a reduceRight.
Úlohy:
[ { name: 'Bangladesh', area: '147570 km2' },
{ name: 'Brazil', area: '8515767 km2' },
{ name: 'China', area: '9640011 km2' },
...
]
[ { iso639_1: 'es', iso639_2: 'spa', name: 'Spanish', nativeName: 'Español' },
{ iso639_1: 'gn', iso639_2: 'grn', name: 'Guaraní', nativeName: "Avañe'ẽ" },
{ iso639_1: 'ay', iso639_2: 'aym', name: 'Aymara', nativeName: 'aymar aru'},
...
]
Porovnáme si klasické a arrow funkcie a použitie this v nich. Vysvetlíme si základné higher-order funkcie v poliach - forEach, filter, map. Budeme pracovať s JSON dokumentom countries.json podľa úloh uvedených nižšie.
Úlohy:
Dokončíme si rozprávanie o CSS pre tento rok krátkou ukážkou použitia clip-path v kombinácii so skrolovaním. Potom sa začneme baviť hlbšie o jazyku Javascript. Prejdeme si také súčasti jazyka JavaScript, ktoré sa v Jave nenachádzajú - globálne vs. lokálne premenné a konštanty, template strings, pravdivé a nepravdivé výrazy, rôzna práca s objektami a poľami, object destructuring, spread operátor
Povieme si o Sass a spravíme si vrstevnatý text.
Vyrobíme si 3D kocku a spravíme z nej checkbox.
Dnes si spravíme carousel.
Dnes sa budeme venovať animáciám.
Dnes sa budeme venovať naprv použitiu pseudoelemenov pri tvorbe responzívnej tabuľky a potom prejdeme na štýlovanie formulárov, vrátanie štýlovania validity aj s hláškami na spätnú väzbu. Využijeme pri tom významne CSS premenné.
Ukážeme si aké neskutočne užitočné vedia byť pseudoelementy ::before a ::after na viacerých miniprojektíkoch.
Dokončíme tému grid layout predstavením hodnoty subgrid a jej použitia. Potom si povieme o premenných v CSS a aké vedia byť užitočné. V zadaní použite premenné aspoň pri farebnej téme projektu.
Pokračujeme v téme Grid layout.
Na začiatok dorobíme animovanú galériu a potom si ukážeme veľkého "konkurenta" Flexboxu na nastavovanie rozmiestnenia obsahu a to Grid layout. Zadanie je iba na precvičovanie počas hodiny, nie ako domáca úloha.
Dorobíme si responzívny navbar, pričom si precvičíme aj flexbox a javascript. Ukážeme si nastavovanie responzivity na základe veľkosti kontajnerov. Začneme animovanú galériu.
Dokončíme projekt s rotačnou stránkou. Porozprávame sa o responzivite stránok. Ukážeme si klasické @media dopyty podľa vlastností max-width a min-width, ale aj modernejšie možnosti @media dopytov.
Ukážeme si, ako cez Javascript meniť triedy elementom v DOM modeli. Spravíme si projekt s rotačnou stránkou.
Porozprávame sa o transformácii elementov - posun, rotácia a zošikmenie. Následne si povieme o základnom kameni animácií, o vlastnosti transition.
Spoločne si doklepneme návrh stránky z minula a zahráme sa so žabkami.
Pokračujeme v téme Flexbox. Možno si ukážeme podstatné časti domácej, ak bude záujem a nastavíme si základný responzívny layout kostry stránky cez Flexbox.
Pokračujeme v téme Flexbox. Domáca je do nedele 25.1.2026 18:00.
Začneme tému Flexbox, čo je asi najpopulárnejší layoutovací nástroj súčasnosti. Domáca nebude.
Na začiatku si vzorovo vyriešime projekt Dúha. Na záver si dokončíme tému poziciovanie, konkrétne fixed a sticky.
Povieme si o všetkých možnostiach poziciovania, dnes stihneme - static, relative a absolute.
Dokončíme rozprávanie o pozadiach ako obrázkových tak aj grandientných. Domáca je do 11.1.2026 18:00
Povieme si o základných jednotkách vzdialenosti.Vysvetlíme si kedysi široko využívanú schopnosť obtekania. Začneme tému pozadia. Obrázky na hranie.
Prejdeme si domácu Špagety 2 a vypichneme dôležité časti, kde boli časté problémy. Vysvetlíme si ako funguje špecifickosť selektorov.
Porozprávame si o pseudotriedach a pseudoelementoch a začneme domácu úlohu Špagety 2, ktorej dokončenie bude na domácu úlohu.
Dokončíme projekt stránky tvorcu keramiky. Začneme rozprávanie o súdoreneckých spojkách v selektoroch a atribútových selektoroch.
Dnes dáme novým veciam na chvíľu pokoj. Budeme spoločne vytvárať trochu komplexnejšiu webstránku pre tvorcu keramiky.
Prejdeme si náš projekt vizitka a porozprávame o ďalších vlastnostiach súvisiacich s box modelom - tieňovaní, rámčekoch outline, flexibilných veľkostiach a ako sa vysporiadať s obsahom, ktorý do bloku nevojde.
Porozprávame asi najdôležitejšiu súčasť CSS a to je box model. Predstavíme si jeho hlavné súčasti content, padding, border a margin. Pri ich nastavovaní nemôžeme vynechať okrem absolútnych aj relatívne veľkosti týchto vlastností a ich kombináciu. Povieme si o tom, ako tieto vlastnosti fungujú pre inline, inline-block a block elementy aj ako medzi nimi prepínať cez vlastnosť display. Na záver si povieme o zaobľovaní rámčekov.
Porozprávame si spôsoboch dekorovania textu a liniek - tiene, čiary; transofrmácie textu napr. na veľké písmená. Predstavíme si spôsoby úpravy odrážok v číslovaných aj nečíslovaných zoznamoch.Domáca bude 7. zadanie - do utorka 18.11. 18:00.
Nastavíme si medzery v písme, výšku písma. Povieme si ako použiť externé fonty z Google fonts a ako importovať externé fonty do lokálnych súborov. Dnes domáca nebude.
Budeme sa venovať nastavovaniu vlastností fontov - family, size, weight, style, align. Nastavíme si medzery v písme, výšku písma. Povieme si ako použiť externé fonty z Google fonts. Dnes domáca nebude, užite si prázdniny.
Dokončíme rozprávanie o farbách. Povieme si o využití atribútov id a class pri určení cieľov štýlovania a možno už začneme rozprávať o fontoch. Domáca dnes nebude.
Predstavíme si 3 základné spôsoby, ako vkladať CSS do HTML, potom začneme rozprávanie o farbách. Domáca bude 6. zadanie - do utorka 21.10. 18:00.
Predstavíme si spôsob pridania sémantiky zvanú Mikrodáta. Dnes domáca nebude.
Dokončíme sémantické elementy a porozprávame si o pokročilých metódach pridávania sémantiky cez Mikroformáty. Dnes domáca nebude.
Porozprávane si o tabuľkách v HTML - domáce zadanie bude z nich. Začneme rozprávanie o sémantických elemetoch. Piate zadanie slúži iba ako štartovací projektík.
Povieme si o tom, ako sa vkladajú do HTML špeciálne znaky cez HTML Entity. Z rýchlika si predstavíme niekoľko nesémantických elementov ako <meter>, <progress>, <details>, <dialog>, <pre>, <template>, <iframe>, <video> a podobne. Dnes domáca nebude.
Prejdeme si formulárové elementy - input typy text, password, number, email, color, ale aj elementy textarea, select, radio, checkbox, range a fieldset. Zadanie treba vypracovať do nedele 5.10.2025 18:00.
Prejdeme si základné formulárové elementy input (typu text), form a label
Porozprávame si o linkách a obrázkoch.
Dokončíme si skúšanie práce s gitom s našim prvým zadaním aj so zdrojákmi z výučby. Ukážeme si ako efektívne pracovať s Visual Studio Code.
Vysvetlíme si základnú prácu s gitom. Ukážeme si základnú kostru HTML5 a ošaháme si niekoľko základných HTML elementov.
Rozbeháme si prostredie - nainštalujeme si Git, Visual Studio Code, vytvoríme si kontá na Githube a vytvoríme si svoj repozitár prvého zadania v classroom.github.com.