Invatare Atomica

Vreau sa construiesc site-ul meu personal!

Progres lectie:
0%
🎯

Obiectivul lectiei

Sa construiesti o pagina web completa de tip portofoliu personal, combinand toate cunostintele HTML si CSS dobandite in lectiile anterioare: structura, titluri, paragrafe, liste, linkuri, imagini si stilizare CSS intr-un singur fisier functional.

Dupa aceasta lectie vei putea:

  • Sa utilizezi recAPItulare rAPIda: tag-uri HTML folOSite in proiect
  • Sa implementezi recAPItulare CSS
  • Sa implementezi portofoliu complet - tot codul intr-un singur fisier
  • Sa aplici idee 1: gradient pe fundal
  • Sa aplici idee 2: efecte animate la hover

Incearca singur!

🛠 CONSTRUIESTE

Construieste pas cu pas!

Urmeaza fiecare pas in ordine. La final vei avea un site complet! Copiaza codul, lipeste-l intr-un fisier portofoliu.html si deschide-l in browser.

1
Scheletul HTML

Orice pagina web incepe cu structura de baza. Creeaza un fisier nou numit portofoliu.html si scrie acest cod:

Pasul 1: portofoliu.html - Structura de baza
<!DOCTYPE html> <html lang="ro"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Portofoliul lui [Numele Tau]</title> <style> /* CSS-ul va fi adaugat la Pasul 6 */ </style> </head> <body> <!-- Continutul va fi adaugat in pasii urmatori --> </body> </html>
💡 Inlocuieste [Numele Tau]

Scrie numele tau real in <title>. Acesta apare in tab-ul browserului.

2
Header cu nume si meniu de navigare

Adauga in <body> un header cu numele tau (h1), un subtitlu (p) si un meniu de navigare cu linkuri interne:

Pasul 2: Header + Navigare
<!-- HEADER - partea de sus a paginii --> <header> <h1>Maria Popescu</h1> <p>Eleva in clasa a VII-a | Pasionata de tehnologie</p> <!-- Meniu de navigare --> <nav> <ul> <li><a href="#despre">Despre mine</a></li> <li><a href="#hobby">Hobby-uri</a></li> <li><a href="#galerie">Galerie</a></li> <li><a href="#contact">Contact</a></li> </ul> </nav> </header>
💡 Ce sunt linkurile cu #?

Linkurile de forma href="#despre" sunt ancore interne. Cand dai click pe ele, pagina sare la sectiunea cu id="despre". Le vom adauga la fiecare sectiune.

3
Sectiunea "Despre mine" cu poza si text

Dupa </header>, adauga o sectiune cu o imagine si cateva paragrafe despre tine. Observa atributul id="despre" care face legatura cu meniul de navigare:

Pasul 3: Sectiunea Despre Mine
<!-- DESPRE MINE --> <section id="despre"> <h2>Despre mine</h2> <img src="poza-mea.jpg" alt="Fotografia mea" width="150"> <p>Buna! Ma numesc Maria si sunt eleva in clasa a VII-a la Scoala Gimnaziala Nr. 1.</p> <p>Sunt pasionata de informatica si imi place sa creez lucruri noi folosind tehnologia. Am inceput sa invat HTML si CSS si vreau sa devin programator web.</p> </section>
⚠ Nu ai o poza? Nicio problema!

Daca nu ai o poza, poti folosi un emoji mare in loc de <img>. Pur si simplu scrie un emoji in HTML: <p style="font-size: 5rem;">&#128100;</p> sau foloseste o imagine gratuita de pe Unsplash.

4
Sectiunea "Hobby-uri" cu lista ordonata

Dupa sectiunea "Despre mine", adauga hobby-urile tale intr-o lista ordonata (<ol>), de la cel mai important la cel mai putin important:

Pasul 4: Sectiunea Hobby-uri
<!-- HOBBY-URI --> <section id="hobby"> <h2>Hobby-urile mele</h2> <p>Iata ce imi place sa fac in timpul liber, in ordinea preferintelor:</p> <ol> <li>Programare si design web</li> <li>Citit carti de science-fiction</li> <li>Fotografie digitala</li> <li>Jocuri video</li> <li>Desen pe tableta grafica</li> </ol> </section>
💡 ol vs ul - care e diferenta?

<ol> = ordered list (lista ordonata cu numere: 1, 2, 3...).
<ul> = unordered list (lista neordonata cu buline). Alege ce se potriveste!

5
Galerie cu imagini si subtitrari

Adauga o galerie cu 2-3 imagini. Fiecare imagine are un text descriptiv dedesubt. Folosim <figure> si <figcaption> pentru a grupa imaginea cu textul ei:

Pasul 5: Sectiunea Galerie
<!-- GALERIE --> <section id="galerie"> <h2>Galeria mea</h2> <p>Cateva imagini din proiectele mele:</p> <div class="galerie-container"> <figure> <img src="proiect1.jpg" alt="Primul meu proiect web" width="250"> <figcaption>Primul meu site HTML</figcaption> </figure> <figure> <img src="proiect2.jpg" alt="Proiect de desen" width="250"> <figcaption>Desen digital realizat pe tableta</figcaption> </figure> <figure> <img src="proiect3.jpg" alt="Fotografie nature" width="250"> <figcaption>Fotografie din vacanta</figcaption> </figure> </div> </section>
📷 Imagini gratuite

Poti descarca imagini gratuite de pe Unsplash sau Pixabay. Salveaza-le in acelasi folder cu fisierul HTML. Asigura-te ca numele fisierului din src se potriveste exact cu numele imaginii descarcate!

6
Sectiunea de contact si footer
🔒 Siguranta online — citeste inainte de a scrie emailul!

NU folosi adresa ta reala de email in cod! In exemplele de mai jos vei vedea adresa fictiva maria@email.com — aceasta este doar un exemplu de format, nu una reala.

Daca publici fisierul HTML pe internet (sau il impartasesti cu altii), oricine poate vedea adresa de email scrisa acolo. Roboții de spam o pot colecta si vei primi mesaje nedorite.

Ce poti face in schimb: lasa camp gol (omite sectiunea de contact), scrie contact@exemplu.com ca placeholder vizibil, sau cere unui parinte/profesor sfatul inainte de a pune date de contact reale.

Adauga sectiunea de contact cu un link de email si un footer cu drepturile de autor. Inlocuieste adresa din exemplu cu un placeholder sau lasa-o necompletata pana cand un adult te ajuta sa decizi:

Pasul 6: Contact + Footer
<!-- CONTACT --> <section id="contact"> <h2>Contact</h2> <p>Vrei sa imi scrii? Trimite-mi un email:</p> <p> <a href="mailto:maria@email.com"> maria@email.com </a> </p> <p>Site-uri care imi plac:</p> <ul> <li> <a href="https://scratch.mit.edu" target="_blank">Scratch</a> </li> <li> <a href="https://code.org" target="_blank">Code.org</a> </li> </ul> </section> <!-- FOOTER --> <footer> <p>&copy; 2026 Maria Popescu - Proiect scolar</p> </footer>
📧 Cum functioneaza mailto?

Cand un utilizator da click pe un link cu href="mailto:...", browserul deschide automat aplicatia de email cu adresa precompletata. Iar target="_blank" deschide linkul intr-un tab nou.

Retine: adresa maria@email.com din exemplu este fictiva — nu o folosi pe a ta fara acordul unui parinte sau profesor.

7
Stilizarea cu CSS - fa pagina sa arate profesional!

Acum vine partea magica! Inlocuieste comentariul din <style> (Pasul 1) cu acest CSS. Salveaza si reincarca pagina - vei vedea o transformare completa:

Pasul 7: CSS complet
/* === STILURI GENERALE === */ body { font-family: Arial, sans-serif; background-color: #0a0a12; color: #f1f5f9; margin: 0; padding: 0; } /* === HEADER === */ header { text-align: center; padding: 40px 20px; background-color: #1a1a2e; border-bottom: 3px solid #8b5cf6; } h1 { color: #8b5cf6; font-size: 2.5em; margin-bottom: 10px; } /* === MENIU NAVIGARE === */ nav ul { list-style: none; padding: 0; display: flex; justify-content: center; gap: 20px; margin-top: 15px; } nav a { color: #8b5cf6; text-decoration: none; font-weight: bold; padding: 5px 10px; border-radius: 5px; transition: background-color 0.2s, color 0.2s; } nav a:hover { background-color: #8b5cf6; color: white; } /* === SECTIUNI === */ section { max-width: 700px; margin: 20px auto; padding: 25px; background-color: #12121f; border-radius: 15px; } h2 { color: #06b6d4; border-bottom: 2px solid #8b5cf6; padding-bottom: 10px; margin-bottom: 15px; } /* === IMAGINE PROFIL === */ img { border-radius: 10px; border: 3px solid #8b5cf6; } /* === GALERIE === */ .galerie-container { display: flex; gap: 15px; flex-wrap: wrap; justify-content: center; } figure { text-align: center; margin: 0; } figcaption { color: #94a3b8; font-size: 0.85em; margin-top: 5px; font-style: italic; } /* === LINKURI === */ a { color: #8b5cf6; text-decoration: none; } a:hover { color: #06b6d4; text-decoration: underline; } /* === FOOTER === */ footer { text-align: center; padding: 20px; color: #64748b; border-top: 1px solid #2d2d44; margin-top: 20px; }
Ceva nu functioneaza? Click aici pentru sfaturi de depanare

Imaginile nu apar: Verifica ca fisierul imagine (ex: poza-mea.jpg) este in acelasi folder cu portofoliu.html. Numele trebuie sa fie identic, inclusiv extensia (.jpg, .png, etc.).

CSS-ul nu se aplica: Verifica ca ai scris CSS-ul intre <style> si </style> in sectiunea <head>, nu in <body>.

Meniul nu functioneaza: Verifica ca id-ul din href="#despre" se potriveste exact cu id="despre" pe sectiune. Fara spatii, fara majuscule diferite.

Pagina arata diferit: Salveaza fisierul (Ctrl+S) si reincarca pagina in browser (F5 sau Ctrl+R).

1

Recapitulare rapida: tag-uri HTML folosite in proiect

Recapitulare rapida: tag-uri HTML folosite in proiect

In proiectul tau ai folosit tag-uri din toate cele 5 lectii anterioare. Iata un rezumat:

Tag HTML Ce face Lectia
<!DOCTYPE html> Spune browserului ca pagina e HTML5 L1
<html>, <head>, <body> Structura de baza a oricarei pagini L1
<h1>, <h2> Titluri (h1 = cel mai mare si important) L2
<p> Paragraf de text L2
<ul>, <ol>, <li> Liste neordonate / ordonate / element de lista L3
<a href="..."> Link catre alta pagina sau sectiune L3
<img src="..." alt="..."> Imagine cu text alternativ L4
<figure>, <figcaption> Imagine cu legenda/subtitlu L4
<header>, <section>, <footer> Tag-uri semantice - organizeaza pagina L1-L2
<nav> Meniu de navigare L3
<style> CSS intern - stilizeaza pagina L5
2

Recapitulare CSS

Recapitulare CSS

In proiect ai folosit mai multe proprietati CSS. Iata ce face fiecare:

Proprietate CSS Ce face Exemplu
background-color Culoarea fundalului #0a0a12 (negru-albastru)
color Culoarea textului #8b5cf6 (violet)
font-family Tipul de font Arial, sans-serif
font-size Marimea textului 2.5em (de 2.5 ori marimea normala)
padding Spatiu interior (intre continut si margine) 25px
margin Spatiu exterior (intre element si vecini) 20px auto (centreaza)
border-radius Colturi rotunjite 15px (colturi rotunde)
border Bordura vizibila 3px solid #8b5cf6
text-align Aliniere text center
text-decoration Subliniere / decorare text none (scoate sublinierea)
:hover Stil cand mouse-ul e deasupra Schimba culoarea la hover
display: flex Asaza elementele pe acelasi rand Meniul de navigare
3

Portofoliu complet - tot codul intr-un singur fisier

Portofoliu complet - tot codul intr-un singur fisier

Iata intreaga pagina de la inceput pana la sfarsit. Copiaz-o si salveaz-o ca portofoliu.html:

portofoliu.html - Codul complet
<!DOCTYPE html> <html lang="ro"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Portofoliul lui Maria Popescu</title> <style> body { font-family: Arial, sans-serif; background-color: #0a0a12; color: #f1f5f9; margin: 0; padding: 0; } header { text-align: center; padding: 40px 20px; background-color: #1a1a2e; border-bottom: 3px solid #8b5cf6; } h1 { color: #8b5cf6; font-size: 2.5em; } h2 { color: #06b6d4; border-bottom: 2px solid #8b5cf6; padding-bottom: 10px; } nav ul { list-style: none; padding: 0; display: flex; justify-content: center; gap: 20px; } nav a { color: #8b5cf6; text-decoration: none; font-weight: bold; padding: 5px 10px; border-radius: 5px; } nav a:hover { background-color: #8b5cf6; color: white; } section { max-width: 700px; margin: 20px auto; padding: 25px; background-color: #12121f; border-radius: 15px; } img { border-radius: 10px; border: 3px solid #8b5cf6; } .galerie-container { display: flex; gap: 15px; flex-wrap: wrap; justify-content: center; } figcaption { color: #94a3b8; font-style: italic; } a { color: #8b5cf6; text-decoration: none; } a:hover { color: #06b6d4; text-decoration: underline; } footer { text-align: center; padding: 20px; color: #64748b; border-top: 1px solid #2d2d44; } </style> </head> <body> <header> <h1>Maria Popescu</h1> <p>Eleva in clasa a VII-a</p> <nav> <ul> <li><a href="#despre">Despre</a></li> <li><a href="#hobby">Hobby-uri</a></li> <li><a href="#galerie">Galerie</a></li> <li><a href="#contact">Contact</a></li> </ul> </nav> </header> <section id="despre"> <h2>Despre mine</h2> <img src="https://picsum.photos/150/150?grayscale" alt="Poza mea" width="150"> <p>Buna! Sunt Maria si imi place tehnologia.</p> </section> <section id="hobby"> <h2>Hobby-urile mele</h2> <ol> <li>Programare</li> <li>Citit</li> <li>Fotografie</li> </ol> </section> <section id="galerie"> <h2>Galeria mea</h2> <div class="galerie-container"> <figure> <img src="https://picsum.photos/200/150?random=1" alt="Proiect 1" width="200"> <figcaption>Primul site</figcaption> </figure> <figure> <img src="https://picsum.photos/200/150?random=2" alt="Proiect 2" width="200"> <figcaption>Desen digital</figcaption> </figure> </div> </section> <section id="contact"> <h2>Contact</h2> <p>Email: <a href="mailto:maria@email.com">maria@email.com</a></p> </section> <footer> <p>&copy; 2026 Maria Popescu</p> </footer> </body> </html>
4

Idee 1: Gradient pe fundal

Idee 1: Gradient pe fundal

In loc de o singura culoare de fundal, poti folosi un gradient (trecere intre doua culori):

Gradient CSS
header { background: linear-gradient(135deg, #1a1a2e, #16213e); /* Trecere de la un albastru-inchis la altul */ }
5

Idee 2: Efecte animate la hover

Idee 2: Efecte animate la hover

Poti face imaginile sa se mareasca usor cand treci mouse-ul peste ele:

Hover cu tranzitie
img { transition: transform 0.3s; /* tranzitia dureaza 0.3 secunde */ } img:hover { transform: scale(1.05); /* mareste imaginea cu 5% */ }
6

Idee 3: O a doua pagina!

Idee 3: O a doua pagina!

Creeaza un al doilea fisier HTML (ex: proiecte.html) si leaga-l din meniul de navigare. In loc de #, foloseste numele fisierului:

Link catre alta pagina
<!-- In meniul de navigare --> <li><a href="proiecte.html">Proiectele mele</a></li>

Exercitii practice

Exercitiul 1 (Nivel minim) - Personalizeaza portofoliul

Pornind de la codul complet din Atomul 3, personalizeaza pagina cu datele tale (inventate daca preferi — nu trebuie sa fie reale):

Cerinte:

Indicii:

  • Copiaza tot codul din Atomul 3 si lipeste-l intr-un fisier nou
  • Cauta textul Maria Popescu si inlocuieste-l (apar de mai multe ori)
  • Pentru culori, schimba toate aparitiile lui #8b5cf6 cu o alta culoare (ex: #e11d48 = rosu, #0891b2 = albastru)
  • Nu uita: sectiunea Contact — nu pune adresa ta reala de email (lasa contact@exemplu.com sau omite linkul)

Exercitiul 2 (Nivel standard) - Adauga animatii CSS

Cerinta: Adauga la portofoliu cel putin 3 efecte vizuale diferite folosind CSS:

  1. Imaginile se maresc usor la hover (transform: scale(1.05) + transition)
  2. Linkurile din meniu isi schimba fundalul la hover
  3. Sectiunile au o umbra subtila (box-shadow)

Exemplu box-shadow:

section { box-shadow: 0 4px 15px rgba(139, 92, 246, 0.1); }

Indicii:

  • Proprietatea transition: all 0.3s; face orice schimbare sa fie animata
  • Poti anima: culori, dimensiuni, umbre, borduri
  • Nu exagera cu animatiile - subtilitatea e cheia!

Exercitiul 3 (Nivel performanta) - Analizeaza si compara

Deschide un site web real (site-ul scolii, Wikipedia, sau alt site simplu) si raspunde:

  1. Ce tag-uri HTML ai putea identifica pe acea pagina? (Foloseste Click dreapta > Inspectare in browser pentru a vedea codul)
  2. Ce proprietati CSS recunosti? Identifica cel putin 5 proprietati pe care le-ai invatat.
  3. Ce ai face diferit pe acel site daca l-ai crea tu? Ce ai schimba la design?

Raspunde numerotat: 1. ... 2. ... 3. ...

Ce ai invatat astazi

  • Ai invatat recapitulare rapida: tag-uri HTML folosite in proiect
  • Acum stii recapitulare CSS
  • Ai descoperit portofoliu complet - tot codul intr-un singur fisier
  • Ai explorat idee 1: gradient pe fundal
  • Ai inteles idee 2: efecte animate la hover
  • Ai invatat idee 3: o a doua pagina

Urmatoarea lectie

Continua cu lectia urmatoare pentru a aprofunda cunostintele.

Continua →