BunStackDocs

Kaupat

Koukut ja CSS-viite

Kaupan HTML:n koukut komponenteittain, sivun koukut, komponentin CSS:n rajaus ja mitä CSS:n puhdistus poistaa.

Päivitetty viimeksi · 11 min lukuaika

Koukut ovat kaupan HTML:n attribuutteja, joihin CSS:si voi kohdistua.

Missä: Käytetään koodieditorin kohdassa Code › CSS, paneelissa Code ja kohdassa Theme › Custom CSS. Katso Oma CSS ja head-koodi.

Oman HTML:n mallisyntaksi, muuttujat ja actionit ovat sivulla Malliviite.

Koukut komponenteittain

Koukkujen nimet eivät muutu ilman, että taulukko muuttuu. Jokaisella komponentilla on kolmenlaisia koukkuja:

  • juuri, johon komponentin CSS rajataan ja jonka JS saa nimellä root
  • sisäiset elementit
  • tilat, jotka kauppa asettaa juureen näyttääkseen näkymän

Tila kirjoitetaan juureen: [data-bs-header][data-bs-transparent], ei lapsena.

KomponenttiKoukkuTyyppiArvotMitä
Header[data-bs-header]juuriYlätunniste jokaisella sivulla
Header[data-bs-header-inner]sisäinenRivi ylätunnisteen sisällä: sivun leveys valinnalla Page, sivumarginaaliin asti valinnalla Full
Header[data-bs-logo]sisäinenLogolinkki. Kapealla puhelimella se kutistuu, jotta kuvakkeet ja valikkopainike mahtuvat näkyviin
Header[data-bs-header-nav]sisäinenstart, endLinkkirivi asetteluissa Logo left ja Centered. Split-asettelussa se on kaksi puoliskoa
Header[data-bs-header-icons]sisäinenKuvakerivi Icons + panel -asettelussa
Header[data-bs-menu-button]sisäinenPainike, joka avaa valikkopaneelin
Header[data-bs-cart-icon]sisäinenOstoskorikuvake
Header[data-bs-cart-count]sisäinenTuotteiden määrä ostoskorikuvakkeen vieressä, pidetään ajan tasalla
Header[data-bs-wishlist-icon]sisäinenToivelistakuvake
Header[data-bs-announcement]sisäinenIlmoituspalkki ylätunnisteen yläpuolella
Header[data-bs-transparent]tilaAsetetaan etusivulla, kun Transparent over hero on päällä
Header[data-bs-scrolled]tilaAsetetaan 24 px:n vierityksen jälkeen ja valikkopaneelin ollessa auki (vain läpinäkyvä ylätunniste)
Header[data-bs-sticky]tilaAsetetaan, kun Sticky on päällä
Header[data-bs-header-width]tilapage, fullValinta Width: page asettaa rivin linjaan sivun sisällön kanssa, full vie sen sivumarginaaliin asti
Menu panel[data-bs-menu]juuriPaneeli, joka avautuu ylätunnisteesta
Menu panel[data-bs-menu-layout]sisäinensplit, megaPaneelin ruudukko: Shop + information (split) tai Links, products, contact (mega)
Menu panel[data-bs-menu-links]sisäinenIsojen linkkien lista
Menu panel[data-bs-menu-link]sisäinenIso linkki. Rivikorkeus seuraa tekstikokoa. data-active merkitsee linkin, jota kortit seuraavat, aria-current sivun, jolla asiakas on
Menu panel[data-bs-menu-secondary]sisäinenPienten linkkien lista
Menu panel[data-bs-menu-products]sisäinenTuotesarake linkkien vieressä (Links, products, contact)
Menu panel[data-bs-menu-heading]sisäinenTuotteiden yläpuolinen otsikko, kun se on täytetty
Menu panel[data-bs-menu-cards]sisäinenKortit. Joukko vaihtuu aktiivisen linkin mukana
Menu panel[data-bs-menu-contact]sisäinenYhteystietorivi paneelin alalaidassa
Footer[data-bs-footer]juuriAlatunniste jokaisella sivulla
Footer[data-bs-footer-inner]sisäinenRivi alatunnisteen sisällä: sivun leveys valinnalla Page, sivumarginaaliin asti valinnalla Full
Footer[data-footer-column]sisäinenbrand, shop, help, legalYksi alatunnisteen sarake
Footer[data-bs-footer-links]sisäinenSarakkeen linkkilista. Tässä token-CSS asettaa linkkien koon ja läpinäkyvyyden
Footer[data-bs-footer-social]sisäinenAlarivin somelinkit. Tässä token-CSS piirtää linkkien ruudut
Footer[data-footer-copyright]sisäinenCopyright-rivi
Footer[data-bs-footer-width]tilapage, fullValinta Width, kuten Headerissa
Product card[data-bs-card]juuriYksi tuote ruudukossa. Kaikkialla missä tuotteita luetellaan
Product card[data-bs-card-media]sisäinenKuvalevy
Product card[data-bs-card-hover]sisäinenToinen kuva, joka näytetään hover-tilassa
Product card[data-bs-card-body]sisäinenOtsikko, tagirivi ja hinta
Product card[data-bs-card-title]sisäinenOtsikko
Product card[data-bs-card-meta]sisäinenTagirivi otsikon alla
Product card[data-bs-card-price]sisäinenHintarivi
Product card[data-bs-card-variant]tilacard, plate, editorialMinkä pinnan kortti käyttää
Product page[data-bs-product-layout]juuriclassic, splitTuotesivu: galleria ja ostopaneeli
Product page[data-bs-product-info]sisäinenOstopaneeli: otsikko, hinta, valinnat, lisää ostoskoriin
Product page[data-bs-swatch]sisäinenVäripiste varianttivalitsimessa
Product page[data-bs-cta="primary"]sisäinenLisää ostoskoriin ja muut ensisijaiset painikkeet
Product page[data-bs-image-side]tilaleft, rightKummalla puolella galleria on (Split-asettelu)
Gallery[data-bs-gallery]juuriTuotekuvat tuotesivulla
Collection page[data-bs-category]juuriKokoelmasivu: kategoria, All products tai hakutulokset
Collection page[data-bs-category-header]sisäinenPalkki, jossa kategorian nimi on
Collection page[data-bs-category-header-inner]sisäinenSarake palkin sisällä
Collection page[data-bs-collection-body]sisäinenSuodattimet ja ruudukko. Desktop-koosta alkaen sivupalkki on ruudukon vieressä
Collection page[data-bs-filters-layout]sisäinensidebar, top, noneMiten sivu asettelee suodattimet
Collection page[data-bs-filters]sisäinenSuodattimet, sivupalkissa tai rivissä, Desktop-koosta alkaen
Collection page[data-bs-filters-mode]sisäinentop, sidebarMiten suodattimet on aseteltu
Collection page[data-bs-sticky]sisäinenAsetetaan suodattimiin ja riviin, kun Filters stay in view on päällä. Ruudukon yläpuoliseen riviin vain, kun sen suodattimet mahtuvat yhdelle riville
Collection page[data-bs-stuck]sisäinenAsetetaan riviin, kun se pysyy ylätunnisteen alla
Collection page[data-bs-facet]sisäinenYksi suodatin ruudukon yläpuolella olevalla rivillä: painike ja lista
Collection page[data-bs-facet-panel]sisäinenArvolista, joka avautuu suodatinpainikkeen alle
Collection page[data-bs-open]sisäinenAsetetaan suodattimeen, jonka lista on auki (yksi kerrallaan), ja avoimeen ryhmään
Collection page[data-bs-facet-group]sisäinenYksi ryhmä sivupalkissa ja puhelinpaneelissa: nimi ja arvot
Collection page[data-bs-facet-toggle]sisäinenRyhmän nimi, joka taittaa ryhmän kokoon
Collection page[data-bs-facet-body]sisäinenRyhmän osa, joka taittuu kokoon
Collection page[data-bs-facet-values]sisäinenRyhmän arvot. Yli 240 px:n kohdalla ne vierivät ryhmän sisällä
Collection page[data-bs-facet-value]sisäinenYksi arvo: ruutu, nimi ja määrä
Collection page[data-bs-on]sisäinenAsetetaan rastitettuun arvoon
Collection page[data-bs-count]sisäinenMäärä arvon perässä
Collection page[data-bs-clear-filters]sisäinenTyhjennä suodattimet (n), sivupalkin yläreunassa
Collection page[data-bs-cta="primary"]sisäinenTyhjennä suodattimet rivillä. Näytä N tuotetta puhelinpaneelissa
Collection page[data-bs-filter-bar]sisäinencountRuudukon yläpuolinen rivi: määrä ja lajittelu. Puhelimessa ja tabletissa myös suodatinpainike. count, kun kumpaakaan ei ole: vain määrä, tekstirivi kaikilla näytöillä
Collection page[data-bs-filter-open]sisäinenSuodatinpainike puhelimessa ja tabletissa
Collection page[data-bs-result-count]sisäinenKuinka monta tuotetta sivu näyttää
Collection page[data-bs-sort]sisäinenLajittelu
Collection page[data-bs-filter-panel]sisäinenPuhelimen ja tabletin paneeli sivun päällä
Collection page[data-bs-filter-sheet]sisäinenItse paneeli, vasemmalta
Collection page[data-bs-filter-shade]sisäinenVarjo paneelin takana
Collection page[data-bs-closing]sisäinenAsetetaan paneeliin, kun se liukuu pois
Banners[data-bs-banner]juuriKuvabanneri sivun osioiden joukossa
Banners[data-bs-banner-inner]sisäinenTekstisarake kuvan päällä
Banners[data-bs-banner-heading]sisäinenOtsikko
Banners[data-bs-banner-subtitle]sisäinenAlaotsikko
Banners[data-bs-cta]sisäinenprimary, light, outlinePainike
Banners[data-bs-banner-img]sisäinenKuva bannerissa, jossa ei ole tekstiä. Korkeuden yläraja seuraa näyttöä
Banners[data-bs-banner-size]tilaxs, sm, md, lg, xl, screenKorkeusvalinta tietokoneella
Banners[data-bs-banner-size-tablet]tilaxs, sm, md, lg, xl, screenKorkeusvalinta tabletilla: oma tai tietokoneen
Banners[data-bs-banner-size-mobile]tilaxs, sm, md, lg, xl, screenKorkeusvalinta puhelimessa: oma tai tabletin
Banners[data-bs-bleed]tilafull, customFull: banneri ulottuu reunasta reunaan. Custom: muu kuin sivun leveys

Sivun koukut

KoukkuMitä
[data-bs-main]Sisältösarake ylä- ja alatunnisteen välissä. Leveys on --bs-content-max ja sivumarginaali --bs-gutter
[data-bs-block="<osion-id>"], #bs-<osion-id>Osio millä tahansa sivulla. Toimii linkkien ankkurina. Custom component -osion CSS:n ja JS:n juuri
[data-bs-section-width]Osion leveys osion kääreessä: page, xs, sm, md, lg, xl, 2xl, full tai custom. Laskettu leveys on muuttujassa --bs-sec-w
[data-bs-hide~="mobile"]Puhelimessa piilotettu osio (Show on). Arvot ovat desktop, tablet ja mobile välilyönnein erotettuina
[data-bs-first-on~="mobile"]Ensimmäinen puhelimessa näkyvä osio, kun ensimmäinen osio on piilotettu siellä. Arvot ovat desktop, tablet ja mobile välilyönnein erotettuina
[data-bs-video-frame]Video-osion soitin. --bs-video-ratio on videon leveys jaettuna korkeudella, esimerkiksi 1.7778 muodolle 16:9
[data-bs-grid-more]"View all" -linkki tuoterivillä
[data-bs-grid]Ruudukko osioissa Product grid, Categories, Gallery, Testimonials, Stats, Cards, Collection list ja Recently viewed. Sarakkeet näytöittäin (Per screen size) ovat muuttujissa --bs-cols, --bs-cols-tablet ja --bs-cols-mobile. Koukun grid-template-columns voittaa ilman !important-sääntöä
[data-bs-cta="secondary"]Load more -painike tuoteruudukon alla
[data-bs-section-tone]Osio, jonka Background ei ole Page. Arvo on light, dark, brand tai custom. Värit ovat muuttujissa --bs-tone-bg ja --bs-tone-fg, pystysuuntainen täyte muuttujassa --bs-tone-pad
[data-bs-cards], [data-bs-cards-item]Osio Cards arvolla grid tai rows ja yksi sen kortti. Korttien ulkoasu on määritteessä [data-bs-cards-look]: plain, panel tai panel-line
--bs-main-padSisältösarakkeen pystysuuntainen marginaali, 2.5rem. margin-top: calc(-1 * var(--bs-main-pad)) vetää osion kiinni ylätunnisteeseen
--bs-content-maxSivun leveys kohdasta Theme › Layout, esimerkiksi 1024px
--bs-gutterSivumarginaali: puhelimessa 16px, tabletilla 24px ja tietokoneella 32px
[data-bs-legal-line]Peruutusoikeuslinkin rivi oman alatunnisteen alla tai sivulla ilman alatunnistetta. [data-bs-legal-line-inner] on rivi sen sisällä
--bs-header-offsetYlätunnisteen korkeus, kun se pysyy näkyvissä sivua vieritettäessä, muuten 0. Kokoelmasivujen suodattimet ovat sen alla, kun Filters stay in view on päällä

Tokenien CSS:n säännöt

Nämä ovat tokenien CSS:n sääntöjä, eivät elementtien inline-tyylejä:

  • ylätunnisteen täyte, väri, tausta ja reuna
  • alatunnisteen linkit
  • bannerin otsikko, alaotsikko, korkeus ja kulmat
  • bannerin painikkeen värit
  • tuotekortin alusta ja kuvan kulmat
  • ruudukoiden sarakkeet näytöittäin
  • sivun leveys ja sivumarginaali, ylä- ja alatunnisteen rivit ja osioiden leveys
  • näytöt, joilla osio näkyy, ja bannerin korkeus näytöittäin
  • kokoelmasivujen suodattimet: sivupalkki, rivi ja puhelimen ja tabletin kapea rivi

Tavallinen sääntö koukussa voittaa tokenien CSS:n ilman !important-merkintää. Vain sääntö, jossa on !important kohdassa Theme › Custom CSS tai komponenttityylin omassa CSS:ssä, menee edelle.

Näin komponentin CSS rajataan

Kohdan Code › CSS CSS koskee vain komponenttia. Jokaisen valitsimen eteen lisätään komponentin juuri, kun teema käännetään. Tämä koskee myös @media-, @supports-, @container- ja @layer-lohkojen sisältöä.

KirjoitatKauppa saa
nav a { … }[data-bs-header] nav a { … }
[data-bs-header] nav a { … }Ennallaan. Juuri on jo mukana
& { padding: 32px; } tai [data-bs-header] { … }Itse juuren sääntö
:hover { … }[data-bs-header]:hover { … }
[data-bs-transparent]:not([data-bs-scrolled]) svg { … }[data-bs-header][data-bs-transparent]:not([data-bs-scrolled]) svg { … }. Juuren tila liitetään juureen
:root { … }, html { … }, body { … }Ennallaan, varoituksen kera. Säännöt ulottuvat koko sivulle
@keyframes, @font-faceEnnallaan. @font-face-säännön src-arvon on osoitettava mediakirjaston tiedostoon
@import …;Poistetaan
[data-bs-transparent]:not([data-bs-scrolled]) svg { stroke-width: 1.4; }

CSS:n puhdistus

Kaikki CSS puhdistetaan komponenteissa, osioissa, sivuilla ja teemassa.

  • < poistetaan, joten </style>-tagia ei voi muodostua.
  • @import, expression(), javascript: ja muut skriptireitit poistetaan.
  • > säilyy, joten lapsikombinaattorit, kuten [data-bs-menu] > a, toimivat. ::before ja ::after säilyvät.
  • !important säilyy. Komponentin CSS tulee tokenien CSS:n, tyylin ja kohdan Theme › Custom CSS jälkeen, joten tavallinen sääntö koukussa riittää yleensä.

CSS, jota ei voi lukea, poistetaan varoituksella, joka nimeää sen. Varoitus näkyy suunnittelutyökalussa ja muodossa <!-- bs-component-warning: … --> kaupan HTML:ssä.

  • Sääntö, jota ei koskaan suljeta, poistetaan.
  • Teksti, joka ei ole CSS:ää, poistetaan erikseen. Sitä ei koskaan liitetä seuraavaan sääntöön.
  • Seuraavalle riville jatkuva valitsin tarvitsee rivinvaihdon kohdalle pilkun tai kombinaattorin. Muuten ensimmäinen rivi tulkitaan huomautukseksi ja poistetaan.

Muu CSS toimii.

Fontit

  1. Lataa fontti muodossa .woff2 tai .woff mediakirjastoon.
  2. Paina tiedoston kohdalla Copy URL.
  3. Osoita @font-face { src: url(…) } tähän osoitteeseen.

Kaupan käytäntö lataa fontit vain mediakirjastosta. Muusta osoitteesta tuleva fontti ei lataudu kaupassa eikä työtilassa.

Teeman muuttujat

Hae värit, fontit ja säteet teeman muuttujista. Silloin ne seuraavat teemaa:

MuuttujaArvo
var(--bunstack-color-primary)Pääväri
var(--bunstack-color-fg)Tekstin väri
var(--bunstack-font-heading)Otsikkofontti
var(--bs-surface)Korttien ja alustojen pintaväri
var(--bs-radius-lg)Kuvien kulmat
var(--bunstack-button-radius)Painikkeiden kulmat