Modulul 04 din 06

Text & Tipografie în CSS3: Ghid Tehnic și Fonturi Web

Peste 90% din informația de pe web este transmisă sub formă de text. CSS3 a revoluționat tipografia digitală: de la fonturi web CSS și @font-face, până la text-shadow, font-feature-settings, variable fonts, hyphens, word-break, writing-mode, text-overflow și text-wrap: balance. Acest ghid CSS explică cum să stilizezi textul pentru legibilitate, UX, accesibilitate și optimizare SEO pe site-uri moderne.

Tipografia CSS nu este doar despre alegerea unui font bun — este despre ritm, lizibilitate, contrast și claritate. Prin CSS modern poți controla distanța dintre litere, lățimea liniilor, despărțirea silabelor, trunchierea textului pe blocuri, accentuarea semnelor de punctuație și adaptarea textului pentru ecrane mobile, desktop și citire accesibilă. Află cum să construiești un text elegant, funcțional și optimizat pentru SEO, fără a sacrifica experiența utilizatorului.

text-shadow

Umbre de text și efecte vizuale de strălucire

Proprietatea text-shadow permite aplicarea uneia sau mai multor umbre direct pe literele unui titlu sau paragraf. Sintaxa primește offset orizontal, offset vertical, rază de blur și culoarea umbrei (ex: text-shadow: 2px 2px 4px rgba(0,0,0,0.3)).

Este utilizată frecvent pentru garantarea lizibilității textului plasat deasupra imaginilor de fundal aglomerate sau pentru crearea de efecte stilistice precum litere în relief sau efecte de neon.

cod CSS3

/* Efect de neon cu umbre duble */
.titlu-neon {
  color: #fff;
  text-shadow:
    0 0 5px #e8b339,
    0 0 20px #d6472e;
}

/* Umbra discreta pentru lizibilitate */
.subtitlu-umbra {
  text-shadow: 2px 2px 0 #e3d8bb;
}

rezultat vizual

Efect de umbră pe text în CSS3
@font-face & Web Fonts

Includerea fonturilor personalizate în site-uri web

Regula @font-face permite încărcarea de fișiere de fonturi (în formate moderne optimizate precum WOFF2 sau WOFF) direct de pe propriul server web sau prin servicii CDN precum Google Fonts, oferind identitate vizuală unică brandului tău.

cod CSS3

@font-face {
  font-family: 'CustomFont';
  src: url('fonts/custom.woff2') format('woff2');
  font-display: swap;
}

body {
  font-family: 'CustomFont', sans-serif;
}

rezultat vizual

Tipografie încărcată prin Web Fonts
Optimizare Core Web Vitals (SEO Google):
  • Folosirea proprietății font-display: swap previne efectul de text nevăzut în timpul încărcării (FOIT) și îmbunătățește scorul CLS și LCP.
word-break & overflow-wrap

Prevenirea ruperii layout-ului din cauza cuvintelor lungi

Cuvintele extrem de lungi, codurile hash sau adresele URL pot depăși lățimea containerului lor pe ecrane mici de mobil. Cu overflow-wrap: break-word, cuvântul este rupt pe mai multe linii doar atunci când depășește fizic cadrul.

cod CSS3

.link-lung {
  overflow-wrap: break-word;
  word-break: break-word;
}

rezultat vizual

https://css3.ro/tutoriale/proprietati-si-selectori-lungi
-webkit-text-stroke

Conturul literelor pentru titluri de impact

Proprietatea -webkit-text-stroke adaugă un contur colorat în jurul fiecărui caracter. Combinată cu o culoare de text transparentă (color: transparent), creează titluri decorative "hollow" extrem de populare în designul modern.

cod CSS3

.titlu-conturat {
  color: transparent;
  -webkit-text-stroke: 2px #d6472e;
}

rezultat vizual

CONTUR TEXT
hyphens & text-justify

Despărțire automată în silabe la capăt de rând

Proprietatea hyphens: auto instruiește browserul să despartă cuvintele în silabe la capătul fiecărui rând folosind linia de cratimă (în funcție de limba declarată în atributul HTML lang="ro").

cod CSS3

p.articol-editorial {
  text-align: justify;
  hyphens: auto;
}

rezultat vizual

Despărțirea automată în silabe îmbunătățește considerabil aspectul blocurilor de text aliniate pe ambele margini.
-webkit-line-clamp

Trunchierea textului pe un număr fix de rânduri

Tăierea blocurilor lungi de text după un număr fix de linii (ex: 2 sau 3 rânduri) și adăugarea automată a punctelor de suspensie (...) este rezolvată nativ prin -webkit-line-clamp.

cod CSS3

.rezumat-card {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

rezultat vizual

Acest text este foarte lung și conține multe detalii suplimentare, dar va fi tăiat exact după primele două rânduri și va afișa elipsă la sfârșit.
Fonturi variabile

Grosime și lățime flexibilă dintr-un singur fișier

Fonturile variabile (Variable Fonts) permit ajustarea continuă a grosimii (weight), înclinării (slant) sau lățimii (width) dintr-o singură resursă de font descărcată de pe server.

cod CSS3

.titlu-variabil {
  font-family: 'Roboto Flex', sans-serif;
  font-variation-settings: 'wght' 650, 'wdth' 110;
}

rezultat vizual

Grosime ajustată fin: font-weight: 650
text-underline-offset

Distanțarea și stilizarea liniilor de subliniere

Proprietatea text-underline-offset controlează spațiul exact dintre text și linia sa de subliniere, iar text-decoration-color și text-decoration-thickness permit stilizarea liniilor fără hack-uri de border-bottom.

cod CSS3

a.link-stilizat {
  text-decoration: underline;
  text-decoration-color: #e8b339;
  text-decoration-thickness: 3px;
  text-underline-offset: 6px;
}
writing-mode

Orientarea textului pe verticală

Proprietatea writing-mode schimba direcția de curgere a textului: vertical-rl (de la dreapta la stânga) sau vertical-lr (de la stânga la dreapta), utilă pentru etichete de margine sau antete de tabel.

cod CSS3

.eticheta-verticala {
  writing-mode: vertical-rl;
  transform: rotate(180deg);
}

rezultat vizual

ETICHETĂ VERTICALĂ
Text normal orizontal lângă etichetă.
font-feature-settings

Ligaturi OpenType și cifre cu lățime fixă (tnum)

Permite activarea caracteristicilor avansate OpenType din fonturi: ligaturi speciale ("liga"), cifre tabelare cu lățime fixă pentru alinierea numerelor în tabele ("tnum") sau fracții formate automat.

cod CSS3

.preturi-tabel {
  font-feature-settings: "tnum" 1, "zero" 1;
}

rezultat vizual

111.00 RON
999.00 RON (Cifre tabelare perfect aliniate)
::first-letter & ::first-line

Letrine editoriale și prima linie stilizată

Pseudo-elementul ::first-letter stilizează prima literă a unui paragraf (pentru efectul editorial clasic de letrină), în timp ce ::first-line modifică automat primul rând de text din paragraf.

cod CSS3

p.articol::first-letter {
  font-size: 2.8em;
  float: left;
  line-height: 0.8;
  margin-right: 8px;
  color: #d6472e;
}

rezultat vizual

Acest paragraf folosește o letrină mare la începutul primului cuvânt pentru un aspect editorial distins.
font-synthesis

Sinteza automată a stilurilor fontului

Proprietatea font-synthesis decide dacă browserul poate sintetiza stiluri precum italic sau bold când fontul principal nu le are disponibile, ajutând la consistența tipografiei.

cod CSS3

.titlu {
  font-synthesis-weight: auto;
  font-synthesis-style: auto;
}

rezultat vizual

Text generat automat cu stiluri sintetizate.
font-variant-ligatures

Ligaturi tipografice pentru un aspect editorial

Cu font-variant-ligatures poți activa ligaturi precum fi, fl sau ff pentru un aspect mai elegant și mai profesionist al textului.

cod CSS3

.editorial {
  font-variant-ligatures: common-ligatures discretionary-ligatures;
}

rezultat vizual

Ligația profesională îmbunătățește aspectul textului.
word-break

Împărțirea cuvintelor lungi în blocuri responsiv

word-break este util pentru URL-uri lungi, e-mailuri și date generate automat, pentru a evita overflow-ul în layout-uri mobile și liste complexe.

cod CSS3

.url-long {
  word-break: break-word;
}

rezultat vizual

https://www.exemplufoartelungdedomeniu.com/continut-extrem-de-lung
hyphens

Împărțirea silabelor și text în limbi europene

Proprietatea hyphens permite despărțirea cuvintelor la final de rând, ceea ce funcționează excelent pentru text lung într-o coloană îngustă sau într-un layout cu două coloane.

cod CSS3

.text-lung {
  hyphens: auto;
}

rezultat vizual

Textul foarte lung poate fi despărțit automat la sfârșit de linie pentru un aspect mai curat.
text-wrap: balance

Împărțirea titlurilor pe linii echilibrate

text-wrap: balance ajusteză numărul de cuvinte dintr-un titlu sau text scurt astfel încât liniile să pară echilibrate și elegante pe mobile și desktop.

cod CSS3

.title {
  text-wrap: balance;
}

rezultat vizual

Titlu echilibrat pe mai multe linii
text-overflow

Trunchierea elegantă a textului în blocuri fixe

text-overflow: ellipsis este ideal pentru categoriile scurte, nume de produse și liste de link-uri din componente compacte.

cod CSS3

.truncate {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

rezultat vizual

Acesta este un text foarte lung care este tăiat elegant cu ellipsis.
text-decoration-skip

Suprapunerea liniilor de text peste spații și caractere

Proprietatea text-decoration-skip controlează dacă sublinierea sau tăierea textului trece prin spații, caractere speciale sau litere mari.

cod CSS3

a {
  text-decoration: underline;
  text-decoration-skip-ink: auto;
}
font-variant-numeric

Numerotarea și cifrele pentru tipografie precisă

font-variant-numeric ajută la stilizarea numerelor, din ambii factori: cifre tabulare, fracții, numere ordinale și cifre cu zero redus.

cod CSS3

.prices {
  font-variant-numeric: tabular-nums slashed-zero;
}

rezultat vizual

1 2 3 4 5 6 7 8 9 0
text-emphasis

Marcaje de accent pentru text oriental

Proprietatea text-emphasis este utilă pentru texturi tipografice orientale, cu puncte sau simboluri de accent deasupra literelor și cu rol SEO de a sublinia text roșu.

cod CSS3

.kanji {
  text-emphasis: circle #d6472e;
}

rezultat vizual

中文
tab-size

Controlul lățimii tab-urilor în preformatare

tab-size reglează spațiul creat de tab-ul din blocurile <pre> și <code>, important pentru prezentarea de coduri și snippets-uri.

cod CSS3

pre {
  tab-size: 2;
}

rezultat vizual

if (a) {
	return true;
}
user-select

Permite selectarea textului doar unde e nevoie

user-select stabilește dacă utilizatorul poate selecta textul. Este util în interfețe cu butoane, etichete, controale și module de UI unde unele zone trebuie să fie clicabile, dar nu selectabile. În exemplul de mai jos, textul din stânga poate fi marcat, iar textul din dreapta este intenționat ne-selectabil.

cod CSS3

.selectable {
  user-select: text;
}

.non-selectable {
  user-select: none;
}

rezultat vizual

Alege acest text cu mouse-ul. user-select poate fi controlat.
Acest text nu poate fi selectat — este o zonă de interfață.
letter-spacing

Controlul distanței dintre litere

Proprietatea letter-spacing schimbă spațiul dintre caractere și poate fi folosită pentru titluri, etichete, logouri sau pentru a îmbunătăți lectura pe text scurt.

cod CSS3

.label {
  letter-spacing: .12em;
  text-transform: uppercase;
}

rezultat vizual

css3.ro
text-transform

Transformarea textului fără a schimba HTML

Cu text-transform poți converti textul în majuscule, minuscule sau mod titlu de către CSS, fără a afecta semantica HTML.

cod CSS3

.title {
  text-transform: capitalize;
}

.menu-item {
  text-transform: uppercase;
}

rezultat vizual

tutorial css3 în română
menu principal