Architecture Decision Record

Active theme: Light

← Erabaki-erregistroen adibideak

Arkitektura-erabakien erregistroa: CSS markoa

Edukia:

Laburpena

Arazoa

CSS marko bat erabili nahi dugu gure web aplikazioak sortzeko:

  • Erabiltzaile-esperientzia azkarra eta fidagarria nahi dugu, nabigatzaile eta pantaila-tamaina ezagun guztietan.

  • Diseinuan, antolaeran, UI/UX-an eta abarretan iterazio azkarra nahi dugu.

  • Aplikazio erantzunkorrak nahi ditugu, bereziki pantaila txikietarako, hala nola gailu mugikorretan, pantaila handietarako, hala nola 4K pantaila zabaletan, eta pantaila dinamikoetarako, hala nola biratu daitezkeen pantailetarako.

Erabakia

Bulma aukeratu da.

Egoera

Bulma aukeratu da. CSS marko berrien aukerei irekia, iristen diren heinean.

Xehetasunak

Hipotesiak

Web aplikazio modernoak, azkarrak, fidagarriak, erantzunkorrak eta abar sortu nahi ditugu.

Web aplikazio moderno tipikoek jQuery-ren erabilera murrizten/ezabatzen ari dira arrazoi anitzengatik:

  • JavaScript modernoak jQuery-k eskaini dituen gaitasun asko pixkanaka sartzen ari da, beraz jQuery gutxiago behar da, eta inplementazio espezifikoak eskaintzen dituzten modulu hobeak/azkarragoak/txikiagoak daude

  • jQuery-ren ikuspegi zabala DOM-aren zuzeneko manipulazioa da, eta hori anti-eredua da JavaScript esparru modernoentzat (adib. React, Vue, Svelte)

  • jQuery-k bere buruarekin interferitzen du birritan kargatzen bada, eta abar

Murriztapenak

jQuery erabiltzen duen CSS marko bat aukeratzen badugu, jQuery inportatzera behartuta gaude. Adibidez, Semantic UI-k jQuery erabiltzen du, eta Tachyons-ek ez.

CSS marko minimo bat aukeratzen badugu, orain edo laster nahi ditzakegun marko-osagaiei uko egiten diegu. Adibidez, Semantic UI-k irudi-karrusela eskaintzen du, eta Tachyons-ek ez.

Jarrerak

Markorik ez erabiltzea aztertu dugu. Hori bideragarria dirudi oraindik, bereziki CSS grid-ek gure proiektuak behar duen zati handi bat eskaintzen duelako..

CSS marko asko aztertu ditugu zerrenda labur azkar baten bidez: Bootstrap, Bulma, Foundation, Materialize, Semantic UI, Tachyons, eta abar. Sakonago berrikusteko gure bi aukerak Semantic UI (ikuspegirik semantikoena duelako) eta Bulma (orain nahi ditugun osagaiak eskaintzen dituen ikuspegirik arinena duelako) dira.

Semantic UI aztertu dugu. Osagai asko eskaintzen ditu, gure proiekturako nahi ditugunak barne: fitxak, sareak, botoiak eta abar. Semantic UI-rekin pilotu bat egin dugu bi modutan: CDN fitxategi tipikoak erabiliz, eta NPM biltegiak erabiliz. Arrakasta izan dugu Semantic UI-rekin HTML orri estatiko batean, baina ez dugu arrakastarik lortu JavaScript SPA bat eraikitzeko dugun denbora-mugan (batez ere jQuery karga-arazoengatik). Aurkitu dugu beste kodetzaile batzuek Semantic UI-ren garatzaileei jQuery gabeko bertsio bat sortzeko eskatzen ari direla, guk ditugun arrazoi berberengatik. Beste kodetzaile batzuek urte askotan eskatu dute jQuery gabeko bertsio bat, baina garatzaileek ezetz esan dute, eta jQuery gabeko edozein bertsio idazteko zailegia izango litzatekeela adierazi dute, adib. ~"Semantic UI proiektuak jQuery erabiltzen duten 22.000 ukipen-puntu baino gehiago ditu".

Semantic-ekin adibidea:

<div class="ui top attached tabular menu">
  <a class="item">Alpha</a>
  <a class="item">Bravo</a>
</div>

Bulma aztertu dugu. Bulma-k Semantic UI-ren antzeko gaitasun asko ditu, nahiz eta osagai sofistikatu horrenbeste ez eduki. Bulma teknika modernoekin eraikita dago, hala nola jQuery gabe. Bulma-k hirugarrenen osagai batzuk ditu, eta horietako batzuk erabili nahi izango ditugu.

Bulma-rekin adibidea:

<div class="tabs">
  <ul>
    <li><a>Alpha</a></li>
    <li><a>Bravo</a></li>
  </ul>
</div>

Arrazoibidea

Goian bezala.

Zehazki, Semantic UI-k kontu-banderola bat duela dirudi, bai teknologiari dagokionez (hau da, jQuery ukipen-puntu horrenbeste), bai lidergoari dagokionez (hau da, jQuery gabekoa ezezko tinko bat izan zen, ibilbide-orri bat, etengabeko hobekuntza edo dirua biltzeko ekimenak eta abar saiatu beharrean).

Ondorioak

jQuery gabeko CSS marko on bat aurkitzen badugu, orokorrean lagungarria eta ona da.

Erlazionatuta

Erlazionatutako erabakiak

Aukeratzen dugun CSS markoak probagarritasunean eragin dezake.

Erlazionatutako eskakizunak

Aplikazio guztiz modernoa azkar bidali nahi dugu.

Ez dugu denbora galdu nahi mendekotasun zaharrak (bereziki jQuery) erabiltzen dituzten marko zaharretan (bereziki Semantic UI) lanean.

Erlazionatutako artefaktuak

CSS-a erabiliko duen HTML tipiko guztian eragiten du.

Erlazionatutako printzipioak

Erraz atzera egin daitekeena.

Abiadura beharra.

Oharrak

Edozein ohar hemen.