Make WordPress Themes

Changeset 356347


Ignore:
Timestamp:
10/30/2026 06:25:09 PM (4 hours ago)
Author:
themedropbox
Message:

New version of Seaglass - 0.10.4

Location:
seaglass/0.10.4
Files:
2 added
15 edited
1 copied

Legend:

Unmodified
Added
Removed
  • seaglass/0.10.4/assets/css/blocks.css

    r353328 r356347  
    162162.wp-block-categories-list,
    163163.wp-block-archives-list,
    164 .wp-block-page-list:not(.wp-block-navigation__container),
     164.wp-block-page-list:not(.wp-block-navigation .wp-block-page-list),
    165165.wp-block-latest-comments { padding-left: 0; list-style: none; }
    166166.wp-block-latest-posts li,
    … …  
    240240.sg-comment__head .wp-block-avatar { margin: 0; flex: none; }
    241241.sg-comment__who > * { margin: 0 !important; }
     242/* Awatar zawsze 40×40 (takze gdy obrazek sie nie wczyta i widac tekst alternatywny), dlugie nazwy autorow sie lamia */
     243.sg-comment__head .wp-block-avatar img { display: block; width: 40px; height: 40px; overflow: hidden; font-size: 0; }
     244.sg-comment__who { min-width: 0; overflow-wrap: anywhere; }
     245/* Listy w tresci komentarza z punktorami i numerami (lista komentarzy sama jest bez punktorow) */
     246.sg-comment .wp-block-comment-content :is(ul, ol) { padding-left: 1.4em; }
     247.sg-comment .wp-block-comment-content ul { list-style: disc; }
     248.sg-comment .wp-block-comment-content ol { list-style: decimal; }
    242249.sg-comment .wp-block-comment-content { margin: .7rem 0 0; }
    243250.sg-comment .wp-block-comment-content > :first-child { margin-top: 0; }
    … …  
    420427.sg-footer :is(.sg-footer__links, .sg-footer__nav, .sg-footer__contact) a:is(:hover, :focus-visible) { text-decoration: underline; text-underline-offset: .2em; }
    421428.sg-footer__nav .wp-block-navigation__container { gap: .6rem; }
     429/* Podmenu w stopce: zawsze rozwiniete, jako wcieta lista w kolorach stopki (bez rozwijanych okienek) */
     430.sg-footer__nav .wp-block-navigation-item.has-child { flex-direction: column; align-items: flex-start; }
     431.sg-footer__nav .wp-block-navigation__submenu-icon { display: none !important; }
     432.sg-footer__nav .has-child .wp-block-navigation__submenu-container {
     433        position: static !important;
     434        visibility: visible !important;
     435        opacity: 1 !important;
     436        width: auto !important;
     437        height: auto !important;
     438        min-width: 0 !important;
     439        overflow: visible !important;
     440        display: grid;
     441        gap: .5rem;
     442        margin: .5rem 0 0 !important;
     443        padding: 0 0 0 .8rem !important;
     444        border: 0 !important;
     445        border-left: 1px solid var(--wp--custom--on-primary-line) !important;
     446        background: transparent !important;
     447        color: inherit !important;
     448        box-shadow: none !important;
     449        transform: none !important;
     450}
     451.sg-footer__nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 0 !important; font-weight: 500 !important; color: var(--wp--custom--on-primary-muted) !important; }
     452.sg-footer__nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content:is(:hover, :focus-visible) { color: var(--wp--preset--color--surface) !important; }
    422453.sg-footer__contact p { margin: 0 0 .6rem; }
    423454.sg-footer__hours { font-size: .85rem; color: var(--wp--custom--on-primary-muted); }
    … …  
    443474   Akapit z wyrownaniem ustawionym w edytorze (do lewej/srodka/prawej) zostaje bez zmian.
    444475   Kolumny w szablonach motywu (hero, strona produktu, komentarze) nie sa ruszane. */
    445 :where([class*="wp-block-post-content"]) .wp-block-column p:not([class*="has-text-align-"]):not(:is(.wp-block-cover, .wp-block-pullquote, blockquote) p) {
     476/* Tylko w ukladach do 2 kolumn – w wezszych kolumnach wyjustowanie robi duze odstepy miedzy slowami. */
     477:where([class*="wp-block-post-content"]) .wp-block-columns:not(:has(> .wp-block-column:nth-child(3))) > .wp-block-column p:not([class*="has-text-align-"]):not(:is(.wp-block-cover, .wp-block-pullquote, blockquote) p) {
    446478        text-align: justify;
    447479        -webkit-hyphens: auto;
    … …  
    457489}
    458490
    459 /* Styl bloku „Karty” (is-style-sg-cards): kazda kolumna jako karta, przyciski przyklejone do dolu */
    460 .wp-block-columns.is-style-sg-cards > .wp-block-column {
     491/* Styl bloku „Karty” (is-style-seaglass-cards): kazda kolumna jako karta, przyciski przyklejone do dolu */
     492.wp-block-columns.is-style-seaglass-cards > .wp-block-column {
    461493        display: flex;
    462494        flex-direction: column;
    … …  
    466498        box-shadow: var(--wp--preset--shadow--soft);
    467499}
    468 .wp-block-columns.is-style-sg-cards > .wp-block-column:where(:not(.has-background)) { background: var(--wp--preset--color--surface); }
    469 .wp-block-columns.is-style-sg-cards > .wp-block-column > :first-child { margin-top: 0; }
    470 .wp-block-columns.is-style-sg-cards > .wp-block-column > :last-child { margin-bottom: 0; }
    471 .wp-block-columns.is-style-sg-cards > .wp-block-column > .wp-block-buttons:last-child { margin-top: auto; padding-top: .75rem; }
    472 .wp-block-columns.is-style-sg-cards > .wp-block-column > .wp-block-image:first-child {
     500.wp-block-columns.is-style-seaglass-cards > .wp-block-column:where(:not(.has-background)) { background: var(--wp--preset--color--surface); }
     501.wp-block-columns.is-style-seaglass-cards > .wp-block-column > :first-child { margin-top: 0; }
     502.wp-block-columns.is-style-seaglass-cards > .wp-block-column > :last-child { margin-bottom: 0; }
     503.wp-block-columns.is-style-seaglass-cards > .wp-block-column > .wp-block-buttons:last-child { margin-top: auto; padding-top: .75rem; }
     504.wp-block-columns.is-style-seaglass-cards > .wp-block-column > .wp-block-image:first-child {
    473505        margin: calc(-1 * clamp(1.1rem, 2.4vw, 1.5rem)) calc(-1 * clamp(1.1rem, 2.4vw, 1.5rem)) .25rem;
    474506}
    475 .wp-block-columns.is-style-sg-cards > .wp-block-column > .wp-block-image:first-child img {
     507.wp-block-columns.is-style-seaglass-cards > .wp-block-column > .wp-block-image:first-child img {
    476508        width: 100%;
    477509        border-radius: var(--wp--custom--radius--medium) var(--wp--custom--radius--medium) 0 0;
    … …  
    521553/* ---------- Nawigacja w tresci (np. blok Nawigacja z lista stron) ----------
    522554   Rozwijane podmenu jako karta jak w kapsule; menu w naglowku ma wlasne style (capsule.css). */
    523 .wp-block-navigation:not(.sg-capsule__nav) .wp-block-navigation__submenu-container {
     555.wp-block-navigation:not(.sg-capsule__nav, .sg-footer__nav) .wp-block-navigation__submenu-container {
    524556        padding: .35rem;
    525557        border: 1px solid var(--wp--preset--color--line) !important;
    … …  
    530562}
    531563/* Szerokosc tylko dla otwartego podmenu (ukryte ma width 0 – inaczej poziome przewijanie) */
    532 .wp-block-navigation:not(.sg-capsule__nav) .has-child:is(:hover, :focus-within) > .wp-block-navigation__submenu-container,
    533 .wp-block-navigation:not(.sg-capsule__nav) .has-child > [aria-expanded="true"] ~ .wp-block-navigation__submenu-container { min-width: 220px; }
    534 .wp-block-navigation:not(.sg-capsule__nav) .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
     564.wp-block-navigation:not(.sg-capsule__nav, .sg-footer__nav) .has-child:is(:hover, :focus-within) > .wp-block-navigation__submenu-container,
     565.wp-block-navigation:not(.sg-capsule__nav, .sg-footer__nav) .has-child > [aria-expanded="true"] ~ .wp-block-navigation__submenu-container { min-width: 220px; }
     566.wp-block-navigation:not(.sg-capsule__nav, .sg-footer__nav) .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
    535567        padding: .5rem .75rem !important;
    536568        border-radius: 8px;
    537569        text-decoration: none;
    538570}
    539 .wp-block-navigation:not(.sg-capsule__nav) .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
    540 .wp-block-navigation:not(.sg-capsule__nav) .wp-block-navigation__submenu-container .wp-block-navigation-item__content:focus-visible {
     571.wp-block-navigation:not(.sg-capsule__nav, .sg-footer__nav) .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover,
     572.wp-block-navigation:not(.sg-capsule__nav, .sg-footer__nav) .wp-block-navigation__submenu-container .wp-block-navigation-item__content:focus-visible {
    541573        background: var(--wp--preset--color--base);
    542574        color: var(--wp--preset--color--primary);
    … …  
    544576/* Podmenu 2. poziomu: odstep od karty rodzica, zeby nie nachodzily na siebie ramki */
    545577@media (min-width: 600px) {
    546         .wp-block-navigation:not(.sg-capsule__nav) .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container { top: -.4rem; left: calc(100% + .35rem); }
    547         .wp-block-navigation:not(.sg-capsule__nav) .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container::before { content: ""; position: absolute; inset: 0 auto 0 -.5rem; width: .5rem; }
    548 }
    549 .wp-block-navigation:not(.sg-capsule__nav) .wp-block-navigation__submenu-icon { color: var(--wp--preset--color--dusty-sky); }
    550 .wp-block-post-content .wp-block-navigation:not(.sg-capsule__nav) .wp-block-navigation-item__content { text-decoration: none; }
    551 .wp-block-post-content .wp-block-navigation:not(.sg-capsule__nav) .wp-block-navigation-item__content:hover { color: var(--wp--preset--color--primary); }
     578        .wp-block-navigation:not(.sg-capsule__nav, .sg-footer__nav) .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container { top: -.4rem; left: calc(100% + .35rem); }
     579        .wp-block-navigation:not(.sg-capsule__nav, .sg-footer__nav) .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container::before { content: ""; position: absolute; inset: 0 auto 0 -.5rem; width: .5rem; }
     580}
     581.wp-block-navigation:not(.sg-capsule__nav, .sg-footer__nav) .wp-block-navigation__submenu-icon { color: var(--wp--preset--color--dusty-sky); }
     582.wp-block-post-content .wp-block-navigation:not(.sg-capsule__nav, .sg-footer__nav) .wp-block-navigation-item__content { text-decoration: none; }
     583.wp-block-post-content .wp-block-navigation:not(.sg-capsule__nav, .sg-footer__nav) .wp-block-navigation-item__content:hover { color: var(--wp--preset--color--primary); }
    552584
    553585/* ---------- Paginacja petli wpisow (wszedzie, nie tylko na blogu) ---------- */
    … …  
    600632/* ---------- Bloki widzetow w tresci: listy bez punktorow i wciec ----------
    601633   (styl list we wpisach .sg-prose dodawal wciecie 22 px, podlisty mialy kolka) */
    602 :is(.wp-block-latest-posts, .wp-block-categories-list, .wp-block-archives-list, .wp-block-page-list:not(.wp-block-navigation__container),  .wp-block-latest-comments, .wp-block-rss),
    603 :is(.wp-block-categories-list, .wp-block-page-list:not(.wp-block-navigation__container)) ul {
     634:is(.wp-block-latest-posts, .wp-block-categories-list, .wp-block-archives-list, .wp-block-page-list:not(.wp-block-navigation .wp-block-page-list),  .wp-block-latest-comments, .wp-block-rss),
     635:is(.wp-block-categories-list, .wp-block-page-list:not(.wp-block-navigation .wp-block-page-list)) ul {
    604636        margin-left: 0;
    605637        padding-left: 0 !important;
    606638        list-style: none !important;
    607639}
    608 :is(.wp-block-latest-posts, .wp-block-categories-list, .wp-block-archives-list, .wp-block-page-list:not(.wp-block-navigation__container),  .wp-block-latest-comments, .wp-block-rss) li { list-style: none; margin: 0; }
    609 :is(.wp-block-latest-posts, .wp-block-categories-list, .wp-block-archives-list, .wp-block-page-list:not(.wp-block-navigation__container),  .wp-block-latest-comments, .wp-block-rss) li::before { content: none !important; }
     640:is(.wp-block-latest-posts, .wp-block-categories-list, .wp-block-archives-list, .wp-block-page-list:not(.wp-block-navigation .wp-block-page-list),  .wp-block-latest-comments, .wp-block-rss) li { list-style: none; margin: 0; }
     641:is(.wp-block-latest-posts, .wp-block-categories-list, .wp-block-archives-list, .wp-block-page-list:not(.wp-block-navigation .wp-block-page-list),  .wp-block-latest-comments, .wp-block-rss) li::before { content: none !important; }
    610642
    611643/* Podkategorie i podstrony: drzewko z cienka linia zamiast punktorow */
    612 :is(.wp-block-categories-list, .wp-block-page-list:not(.wp-block-navigation__container)) ul {
     644:is(.wp-block-categories-list, .wp-block-page-list:not(.wp-block-navigation .wp-block-page-list)) ul {
    613645        margin: .35rem 0 .1rem .35rem;
    614646        padding-left: .9rem !important;
    615647        border-left: 2px solid var(--wp--preset--color--sea-foam);
    616648}
    617 :is(.wp-block-categories-list, .wp-block-page-list:not(.wp-block-navigation__container)) ul li { border-bottom: 0; padding: .25rem 0; font-size: .95em; }
    618 :is(.wp-block-categories-list, .wp-block-page-list:not(.wp-block-navigation__container)) ul a { font-weight: 500; }
     649:is(.wp-block-categories-list, .wp-block-page-list:not(.wp-block-navigation .wp-block-page-list)) ul li { border-bottom: 0; padding: .25rem 0; font-size: .95em; }
     650:is(.wp-block-categories-list, .wp-block-page-list:not(.wp-block-navigation .wp-block-page-list)) ul a { font-weight: 500; }
    619651
    620652/* Lista stron (poza nawigacja) jak lista kategorii */
    621 .wp-block-page-list:not(.wp-block-navigation__container) > li { padding: .45rem 0; border-bottom: 1px solid var(--wp--preset--color--line); }
    622 .wp-block-page-list:not(.wp-block-navigation__container) a { color: var(--wp--preset--color--contrast); font-weight: 600; text-decoration: none; }
    623 .wp-block-page-list:not(.wp-block-navigation__container) a:hover { color: var(--wp--preset--color--primary); }
     653.wp-block-page-list:not(.wp-block-navigation .wp-block-page-list) > li { padding: .45rem 0; border-bottom: 1px solid var(--wp--preset--color--line); }
     654.wp-block-page-list:not(.wp-block-navigation .wp-block-page-list) a { color: var(--wp--preset--color--contrast); font-weight: 600; text-decoration: none; }
     655.wp-block-page-list:not(.wp-block-navigation .wp-block-page-list) a:hover { color: var(--wp--preset--color--primary); }
    624656.wp-block-page-list .current-menu-item > a,
    625657.wp-block-page-list a[aria-current="page"] { color: var(--wp--preset--color--primary); }
    626658/* W bloku Lista stron podlisty maja klase nawigacji – nie moga byc ukryte jak podmenu */
    627 .wp-block-page-list:not(.wp-block-navigation__container) .wp-block-navigation__submenu-container { position: static; visibility: visible; opacity: 1; width: auto; height: auto; overflow: visible; box-shadow: none; background: none; border-width: 0 0 0 2px !important; border-radius: 0; min-width: 0 !important; }
     659.wp-block-page-list:not(.wp-block-navigation .wp-block-page-list) .wp-block-navigation__submenu-container { position: static; visibility: visible; opacity: 1; width: auto; height: auto; overflow: visible; box-shadow: none; background: none; border-width: 0 0 0 2px !important; border-radius: 0; min-width: 0 !important; }
    628660
    629661/* Ostatnie komentarze: awatar w kolku, autor pogrubiony, data pod spodem */
    … …  
    906938
    907939/* Karty: naglowek blisko obrazka (wpis dodaje naglowkom H2/H3 duzy odstep u gory), tekst do lewej (waska karta + justowanie = dziury) */
    908 .wp-block-columns.is-style-sg-cards > .wp-block-column > :is(h2, h3, h4, h5, h6) { margin-top: .6rem !important; margin-bottom: .4rem !important; line-height: 1.2; }
    909 .wp-block-columns.is-style-sg-cards > .wp-block-column > .wp-block-image:first-child + :is(h2, h3, h4, h5, h6, p) { margin-top: .9rem !important; }
    910 .wp-block-columns.is-style-sg-cards .wp-block-column p:not([class*="has-text-align-"]) { text-align: left; hyphens: manual; }
    911 .wp-block-columns.is-style-sg-cards > .wp-block-column > .wp-block-buttons { gap: .5rem; }
     940.wp-block-columns.is-style-seaglass-cards > .wp-block-column > :is(h2, h3, h4, h5, h6) { margin-top: .6rem !important; margin-bottom: .4rem !important; line-height: 1.2; }
     941.wp-block-columns.is-style-seaglass-cards > .wp-block-column > .wp-block-image:first-child + :is(h2, h3, h4, h5, h6, p) { margin-top: .9rem !important; }
     942.wp-block-columns.is-style-seaglass-cards .wp-block-column p:not([class*="has-text-align-"]) { text-align: left; hyphens: manual; }
     943.wp-block-columns.is-style-seaglass-cards > .wp-block-column > .wp-block-buttons { gap: .5rem; }
    912944
    913945/* ---------- Lead wpisu/strony (pole wtyczki Seaglass Tools, Block Bindings) ---------- */
    … …  
    964996        .sg-emoji > span { transform: none; filter: none; }
    965997}
     998
     999/* Tresc wpisu/strony na pelna szerokosc (zeby dzialaly „szeroki” i „pelna szerokosc”):
     1000   bloki wyrownane do lewej/prawej zostaja przy krawedzi kolumny tekstu, a nie ekranu. */
     1001.wp-block-post-content.is-layout-constrained > .alignleft { margin-inline-start: max(0px, calc((100% - var(--wp--style--global--content-size)) / 2)) !important; }
     1002.wp-block-post-content.is-layout-constrained > .alignright { margin-inline-end: max(0px, calc((100% - var(--wp--style--global--content-size)) / 2)) !important; }
  • seaglass/0.10.4/assets/css/capsule.css

    r353328 r356347  
    187187        .sg-capsule__nav .wp-block-navigation__submenu-icon { display: none !important; }
    188188        /* Pozycja z podkategoriami: zamiast linku przycisk otwierajacy karte */
    189         .sg-capsule__nav .wp-block-navigation-submenu > a.wp-block-navigation-item__content { display: none !important; }
     189        .sg-capsule__nav li.wp-block-navigation-submenu > a.wp-block-navigation-item__content { display: none !important; }
    190190        .sg-capsule__nav .sg-sub-trigger { display: flex !important; }
    191191
    … …  
    257257        .sg-capsule__nav .wp-block-navigation__submenu-container,
    258258        .sg-capsule__nav .wp-block-navigation__submenu-icon,
    259         .sg-capsule__nav .wp-block-navigation-submenu > a.wp-block-navigation-item__content { display: none !important; }
     259        .sg-capsule__nav li.wp-block-navigation-submenu > a.wp-block-navigation-item__content { display: none !important; }
    260260        .sg-capsule__nav .sg-sub-trigger { display: flex !important; }
    261261}
    … …  
    335335/* Komputer (mysz): pozycja z podmenu to jedna kapsulka – link + strzalka w srodku */
    336336@media (min-width: 783px) and (hover: hover) {
    337         .sg-capsule__nav .wp-block-navigation-submenu {
     337        .sg-capsule__nav li.wp-block-navigation-submenu {
    338338                display: flex;
    339339                align-items: center;
    … …  
    341341                transition: background-color .15s ease, color .15s ease;
    342342        }
    343         .sg-capsule__nav .wp-block-navigation-submenu > .wp-block-navigation-item__content { padding-right: .2rem; background: transparent !important; color: inherit !important; }
    344         .sg-capsule__nav .wp-block-navigation-submenu > .wp-block-navigation__submenu-icon {
     343        .sg-capsule__nav li.wp-block-navigation-submenu > .wp-block-navigation-item__content { padding-right: .2rem; background: transparent !important; color: inherit !important; }
     344        .sg-capsule__nav li.wp-block-navigation-submenu > .wp-block-navigation__submenu-icon {
    345345                display: flex;
    346346                align-items: center;
    … …  
    353353                color: inherit;
    354354        }
    355         .sg-capsule__nav .wp-block-navigation-submenu > .wp-block-navigation__submenu-icon svg { width: 10px; height: 10px; }
    356         .sg-capsule__nav .wp-block-navigation-submenu:hover { background: var(--wp--preset--color--surface); }
    357         .sg-capsule__nav .wp-block-navigation-submenu:is(.current-menu-item, .current-menu-ancestor) {
     355        .sg-capsule__nav li.wp-block-navigation-submenu > .wp-block-navigation__submenu-icon svg { width: 10px; height: 10px; }
     356        .sg-capsule__nav li.wp-block-navigation-submenu:hover { background: var(--wp--preset--color--surface); }
     357        .sg-capsule__nav li.wp-block-navigation-submenu:is(.current-menu-item, .current-menu-ancestor) {
    358358                background: var(--wp--preset--color--primary);
    359359                color: var(--wp--preset--color--surface);
    360360        }
    361         .sg-capsule__nav .wp-block-navigation-submenu:is(.current-menu-item, .current-menu-ancestor) > .wp-block-navigation__submenu-container { color: var(--wp--preset--color--contrast) !important; }
     361        .sg-capsule__nav li.wp-block-navigation-submenu:is(.current-menu-item, .current-menu-ancestor) > .wp-block-navigation__submenu-container { color: var(--wp--preset--color--contrast) !important; }
    362362}
    363363
    … …  
    410410        nav.sg-capsule__nav.sg-nav-fits .wp-block-navigation__container { padding-right: 0; }
    411411}
     412
     413/* ---------- Duze menu (wiele pozycji) ---------- */
     414/* Kapsula moze sie zwezic (nie wypycha strony w bok), logo i nazwa sklepu zostaja czytelne */
     415.sg-capsule { min-width: 0; }
     416.sg-capsule__nav { min-width: 0; }
     417/* Bez JavaScriptu: na komputerze pozycje zawijaja sie do kolejnych wierszy (kapsula z mniejszym zaokragleniem) */
     418@media (min-width: 783px) {
     419        .sg-header__row > .sg-brand { flex-shrink: 0; max-width: 45%; }
     420        .sg-capsule { border-radius: 26px; }
     421        .sg-capsule__nav:not(.sg-js) .wp-block-navigation__container { flex-wrap: wrap; justify-content: flex-end; }
     422        .sg-capsule__nav.sg-js { flex: 0 1 auto; }
     423}
     424/* Z JavaScriptem: pozycje, ktore sie nie mieszcza, sa w karcie „Wiecej” */
     425.sg-capsule__nav .sg-cap-hidden { display: none !important; }
     426.sg-more-btn[hidden] { display: none !important; }
     427@media (max-width: 782px) {
     428        nav.sg-capsule__nav.sg-nav-more {
     429                overflow: hidden;
     430                touch-action: manipulation;
     431                -webkit-mask-image: none;
     432                mask-image: none;
     433        }
     434        nav.sg-capsule__nav.sg-nav-more .wp-block-navigation__container { padding-right: 0; }
     435        /* Bardzo dlugie nazwy pozycji na telefonie skracane wielokropkiem (pelna nazwa jest w karcie „Wiecej”) */
     436        .sg-capsule__nav .wp-block-navigation-item__label {
     437                display: block;
     438                max-width: 5.5rem;
     439                overflow: hidden;
     440                text-overflow: ellipsis;
     441                white-space: nowrap;
     442        }
     443        .sg-capsule > .sg-more-btn { border-left: 1px solid rgba(255, 255, 255, .14); padding-left: 2px; }
     444        /* Ciasno (klasa z capsule.js): przyciski po prawej bez widocznych podpisow */
     445        .sg-capsule.sg-cap-compact > :not(.sg-capsule__nav) :is(.sg-cap-btn, a, .sg-cart-link, .wc-block-mini-cart__button),
     446        .sg-capsule.sg-cap-compact > :is(.sg-cap-btn, .sg-cart-link),
     447        .sg-capsule.sg-cap-compact .sg-capsule__nav :is(.wp-block-navigation-item__content, .sg-sub-trigger) { min-width: 40px !important; }
     448        .sg-capsule.sg-cap-compact > :not(.sg-capsule__nav) .sg-cap-label {
     449                position: absolute;
     450                width: 1px;
     451                height: 1px;
     452                overflow: hidden;
     453                clip-path: inset(50%);
     454                white-space: nowrap;
     455        }
     456}
     457/* Karta z calym menu: podmenu jako wciete listy */
     458.sg-menu-sheet .sg-menu-sheet__sub {
     459        list-style: none;
     460        margin: .35rem 0 0 .9rem;
     461        padding: 0 0 0 .6rem;
     462        display: grid;
     463        gap: .3rem;
     464        border-left: 2px solid var(--wp--custom--tint--strong);
     465}
     466.sg-menu-sheet .sg-menu-sheet__sub a { padding: .55rem .85rem; background: transparent; font-weight: 400; }
     467.sg-menu-sheet .sg-menu-sheet__sub a:hover,
     468.sg-menu-sheet .sg-menu-sheet__sub a:focus-visible { background: var(--wp--custom--tint--soft); }
     469.sg-menu-sheet a[aria-current="page"] { color: var(--wp--preset--color--primary); font-weight: 600; }
     470.sg-menu-sheet__group { display: block; padding: .55rem .95rem; font-weight: 600; }
     471@media (max-width: 782px) {
     472        /* Pozycja z podmenu (przycisk karty) – ta sama czcionka i wysokosc co zwykle linki */
     473        .sg-capsule__nav button.sg-sub-trigger { font-size: .62rem; line-height: 1; }
     474}
  • seaglass/0.10.4/functions.php

    r353328 r356347  
    1515/**
    1616 * Asset version: file time on local/development sites (no stale cache), theme version elsewhere.
     17 *
     18 * @param string $file Sciezka pliku wzgledem katalogu motywu.
    1719 */
    1820function seaglass_asset_ver( $file ) {
    … …  
    98100/**
    99101 * Wymiary obrazka z plikow motywu (wzorce: okladki w hero, ikony korzysci). Wynik: [szerokosc, wysokosc] albo null.
     102 *
     103 * @param string $rel Sciezka pliku wzgledem katalogu motywu.
    100104 */
    101105function seaglass_theme_image_dims( $rel ) {
    … …  
    127131 * przegladarka rezerwuje miejsce (bez CLS, audyt Lighthouse „obrazy bez wymiarow”). Ikony SVG dostaja loading="lazy".
    128132 * Znaczniki bloku w edytorze bez zmian.
     133 *
     134 * @param string $content Kod HTML bloku.
    129135 */
    130136function seaglass_theme_image_size( $content ) {
    … …  
    208214                'core/columns',
    209215                array(
    210                         'name'  => 'sg-cards',
     216                        'name'  => 'seaglass-cards',
    211217                        'label' => __( 'Cards', 'seaglass' ),
    212218                )
    … …  
    222228        require get_template_directory() . '/inc/woocommerce.php';
    223229        require get_template_directory() . '/inc/term-content.php';
    224 }
     230} else {
     231        require get_template_directory() . '/inc/no-woocommerce.php';
     232}
     233
     234/**
     235 * Notki dla edytora (akapity „sg-editor-hint”, np. wybor kategorii na stronie glownej) nigdy nie trafiaja na strone.
     236 * W edytorze bloki nie przechodza przez ten filtr, wiec tam notki zostaja widoczne.
     237 *
     238 * @param string $content Kod HTML akapitu.
     239 * @param array  $block   Blok (nazwa, atrybuty).
     240 * @return string
     241 */
     242function seaglass_remove_editor_hints( $content, $block ) {
     243        if ( ! empty( $block['attrs']['className'] ) && false !== strpos( $block['attrs']['className'], 'sg-editor-hint' ) ) {
     244                return '';
     245        }
     246        return $content;
     247}
     248add_filter( 'render_block_core/paragraph', 'seaglass_remove_editor_hints', 5, 2 );
    225249
    226250/**
    227251 * Wpis bez tytulu: na stronie pokazujemy „(Bez tytulu)”, zeby karta na blogu miala klikalny link,
    228252 * wpis mial H1, a karta przegladarki i nawigacja poprzedni/nastepny – czytelna nazwe.
     253 *
     254 * @param string $title   Tytul.
     255 * @param int    $post_id ID wpisu.
    229256 */
    230257function seaglass_untitled( $title, $post_id = 0 ) {
    … …  
    240267add_filter( 'the_title', 'seaglass_untitled', 10, 2 );
    241268
     269/**
     270 * To samo co seaglass_untitled() dla tytulu strony wpisu (filtr single_post_title).
     271 *
     272 * @param string       $title Tytul.
     273 * @param WP_Post|null $post  Wpis.
     274 * @return string
     275 */
    242276function seaglass_untitled_single( $title, $post = null ) {
    243277        return seaglass_untitled( $title, $post instanceof WP_Post ? $post->ID : get_queried_object_id() );
    … …  
    253287 * Bloki powiazane z polami wtyczki Seaglass Tools (zrodlo „seaglass/field”): puste pole albo brak wtyczki
    254288 * = blok znika (bez pustego akapitu z marginesami).
     289 *
     290 * @param string $content Kod HTML bloku.
     291 * @param array  $block   Blok (nazwa, atrybuty, bloki wewnetrzne).
    255292 */
    256293function seaglass_hide_empty_bound( $content, $block ) {
    … …  
    267304add_filter( 'render_block_core/paragraph', 'seaglass_hide_empty_bound', 20, 2 );
    268305add_filter( 'render_block_core/heading', 'seaglass_hide_empty_bound', 20, 2 );
     306
     307/**
     308 * Wpis podzielony na strony starym znacznikiem <!--nextpage--> (bez bloku „Podzial strony”):
     309 * WordPress dodaje linki do kolejnych stron tylko przy bloku, wiec uzupelniamy je tutaj.
     310 *
     311 * @param string $content Kod HTML bloku Tresc wpisu.
     312 * @return string
     313 */
     314function seaglass_classic_page_links( $content ) {
     315        global $multipage;
     316        if ( ! $multipage || ! is_singular() || false !== strpos( $content, 'post-page-numbers' ) ) {
     317                return $content;
     318        }
     319        return $content . wp_link_pages( array( 'echo' => 0 ) );
     320}
     321add_filter( 'render_block_core/post-content', 'seaglass_classic_page_links' );
  • seaglass/0.10.4/inc/capsule.php

    r353328 r356347  
    4242                'fish'     => '<path d="M3 12c3-4.5 7.5-6 11.5-4.5 1.5.6 3 1.7 4 3L22 8v8l-3.5-2.5c-1 1.3-2.5 2.4-4 3C10.5 18 6 16.5 3 12z"/><circle cx="8" cy="11.5" r=".8"/>',
    4343                'dot'      => '<circle cx="12" cy="12" r="3.5"/>',
     44                'more'     => '<circle cx="5" cy="12" r="1.4"/><circle cx="12" cy="12" r="1.4"/><circle cx="19" cy="12" r="1.4"/>',
    4445                'language' => '<path d="M4 4h11v8H9l-4 3v-3H4z"/><path d="M15 8h5v8h-1v3l-4-3h-4v-2"/>',
    4546                'music'    => '<path d="M9 18V5l11-2v13"/><circle cx="6.5" cy="18" r="2.5"/><circle cx="17.5" cy="16" r="2.5"/>',
    … …  
    117118
    118119        $map = array(
    119                 'audio'  => array( 'audio', 'podcast', 'słuch', 'sluch' ),
    120                 'video'  => array( 'video', 'wideo', 'kurs', 'course', 'film' ),
    121                 'book'   => array( 'ebook', 'e-book', 'książ', 'ksiaz', 'book' ),
    122                 'pen'    => array( 'blog', 'porad', 'artyku', 'article', 'news' ),
    123                 'mail'   => array( 'kontakt', 'contact' ),
    124                 'info'   => array( 'o nas', 'about', 'faq', 'pomoc', 'help' ),
    125                 'tag'    => array( 'promoc', 'okazj', 'sale', 'wyprzed', 'deal' ),
    126                 'shop'   => array( 'sklep', 'shop', 'produkt', 'product', 'store' ),
    127                 'home'   => array( 'start', 'główna', 'glowna', 'home' ),
     120                'audio' => array( 'audio', 'podcast', 'słuch', 'sluch' ),
     121                'video' => array( 'video', 'wideo', 'kurs', 'course', 'film' ),
     122                'book'  => array( 'ebook', 'e-book', 'książ', 'ksiaz', 'book' ),
     123                'pen'   => array( 'blog', 'porad', 'artyku', 'article', 'news' ),
     124                'mail'  => array( 'kontakt', 'contact' ),
     125                'info'  => array( 'o nas', 'about', 'faq', 'pomoc', 'help' ),
     126                'tag'   => array( 'promoc', 'okazj', 'sale', 'wyprzed', 'deal' ),
     127                'shop'  => array( 'sklep', 'shop', 'produkt', 'product', 'store' ),
     128                'home'  => array( 'start', 'główna', 'glowna', 'home' ),
    128129        );
    129130        foreach ( $map as $icon => $needles ) {
    … …  
    153154/**
    154155 * Start renderowania nawigacji kapsuly.
     156 *
     157 * @param string|null $pre          Wynik innego filtra albo null.
     158 * @param array       $parsed_block Blok (nazwa, atrybuty).
    155159 */
    156160function seaglass_capsule_pre_render( $pre, $parsed_block ) {
    … …  
    164168/**
    165169 * Koniec renderowania nawigacji kapsuly.
     170 *
     171 * @param string $content Kod HTML bloku.
     172 * @param array  $block   Blok (nazwa, atrybuty, bloki wewnetrzne).
    166173 */
    167174function seaglass_capsule_post_render( $content, $block ) {
    … …  
    175182/**
    176183 * Ikona przed tekstem pozycji menu w kapsule.
     184 *
     185 * @param string $content Kod HTML bloku.
     186 * @param array  $block   Blok (nazwa, atrybuty, bloki wewnetrzne).
    177187 */
    178188function seaglass_capsule_link_icon( $content, $block ) {
    … …  
    192202 * Popover lezy w warstwie nad strona, wiec nie przeszkadza mu ani przewijanie, ani maska kapsuly.
    193203 * Na komputerze dziala zwykle rozwijane podmenu po najechaniu.
     204 *
     205 * @param string $content Kod HTML bloku.
     206 * @param array  $block   Blok (nazwa, atrybuty, bloki wewnetrzne).
    194207 */
    195208function seaglass_capsule_submenu_sheet( $content, $block ) {
    196         if ( ! seaglass_in_capsule() || '' === trim( $content ) ) {
     209        // Karta tylko dla pozycji glownego poziomu – zawiera tez podmenu glebszych poziomow.
     210        if ( ! seaglass_in_capsule() || '' === trim( $content ) || ! empty( $block['attrs']['seaglassNested'] ) ) {
    197211                return $content;
    198212        }
    … …  
    239253
    240254/**
     255 * Oznacza podmenu zagniezdzone w innym podmenu (karta na telefonie powstaje tylko dla glownego poziomu).
     256 *
     257 * @param array         $parsed_block Blok.
     258 * @param array         $source_block Blok przed filtrami.
     259 * @param WP_Block|null $parent_block Blok nadrzedny.
     260 * @return array
     261 */
     262function seaglass_mark_nested_submenu( $parsed_block, $source_block, $parent_block = null ) {
     263        if ( 'core/navigation-submenu' === $parsed_block['blockName'] && $parent_block instanceof WP_Block && 'core/navigation-submenu' === $parent_block->name ) {
     264                $parsed_block['attrs']['seaglassNested'] = true;
     265        }
     266        return $parsed_block;
     267}
     268add_filter( 'render_block_data', 'seaglass_mark_nested_submenu', 10, 3 );
     269
     270/**
    241271 * Pozycja z podmenu (np. Audiobooki) jako aktywna – WordPress oznacza tylko zwykle linki.
    242272 * Na stronie tej kategorii: current-menu-item + aria-current; na jej podkategorii: current-menu-ancestor.
     273 *
     274 * @param string $content Kod HTML bloku.
     275 * @param array  $block   Blok (nazwa, atrybuty, bloki wewnetrzne).
    243276 */
    244277function seaglass_submenu_current( $content, $block ) {
    … …  
    246279                return $content;
    247280        }
    248         $norm  = static function ( $url ) {
     281        $norm = static function ( $url ) {
    249282                return untrailingslashit( wp_make_link_relative( strtok( html_entity_decode( (string) $url ), '?#' ) ) );
    250283        };
    251         $href  = $norm( $m[1] );
     284        $raw  = trim( html_entity_decode( $m[1] ) );
     285        if ( '' === $raw || '#' === $raw[0] ) {
     286                return $content; // Pozycja bez adresu (np. „#” jako naglowek podmenu) nigdy nie jest „aktywna”.
     287        }
     288        $href  = $norm( $raw );
    252289        $obj   = get_queried_object();
    253290        $state = '';
    … …  
    285322/**
    286323 * Lista stron (domyslne menu, gdy nie ma wlasnego) – ikony dla kazdego linku.
     324 *
     325 * @param string $content Kod HTML bloku.
    287326 */
    288327function seaglass_capsule_page_list( $content ) {
    … …  
    302341/**
    303342 * Wyszukiwarka w kapsule: przycisk z ikona + formularz w natywnym popoverze (warstwa nad wszystkim, bez JS).
     343 *
     344 * @param string $content Kod HTML bloku.
     345 * @param array  $block   Blok (nazwa, atrybuty, bloki wewnetrzne).
    304346 */
    305347function seaglass_search_popover( $content, $block ) {
    … …  
    324366/**
    325367 * Podpisy pod ikonami konta i koszyka (widoczne na telefonie).
     368 *
     369 * @param string $content Kod HTML bloku.
     370 * @param array  $block   Blok (nazwa, atrybuty, bloki wewnetrzne).
    326371 */
    327372function seaglass_capsule_labels( $content, $block ) {
    … …  
    344389 * Woo samo doczepia konto i mini-koszyk za kazda nawigacja (block hooks).
    345390 * Kapsula ma je juz w sobie, wiec wylaczamy doczepianie.
     391 *
     392 * @param string[] $hooked   Doczepiane typy blokow.
     393 * @param string   $position Pozycja doczepienia (before, after, first_child, last_child).
     394 * @param string   $anchor   Blok, do ktorego doczepiane sa inne bloki.
    346395 */
    347396function seaglass_unhook_woo_header_blocks( $hooked, $position, $anchor ) {
    … …  
    359408        wp_enqueue_style( 'seaglass-capsule', get_theme_file_uri( 'assets/css/capsule.css' ), array(), seaglass_asset_ver( 'assets/css/capsule.css' ) );
    360409
    361         // Telefon: gdy wszystkie pozycje menu sie mieszcza, menu nie jest przewijane (bez „bujania” pod palcem i bez zanikania przy krawedzi).
    362         wp_register_script( 'seaglass-capsule', false, array(), SEAGLASS_VERSION, array( 'in_footer' => true ) );
    363         wp_enqueue_script( 'seaglass-capsule' );
    364         wp_add_inline_script(
     410        // Menu, ktore sie nie miesci, chowa nadmiarowe pozycje pod przyciskiem „Wiecej” (assets/js/capsule.js).
     411        wp_enqueue_script(
    365412                'seaglass-capsule',
    366                 "(function(){var n=document.querySelector('nav.sg-capsule__nav');if(!n)return;var u=n.querySelector('ul');function c(){n.classList.remove('sg-nav-fits');var pad=u?parseFloat(getComputedStyle(u).paddingRight)||0:0;n.classList.toggle('sg-nav-fits',n.scrollWidth-pad<=n.clientWidth+1);}c();addEventListener('resize',c);if(document.fonts&&document.fonts.ready)document.fonts.ready.then(c);})();"
    367         );
     413                get_theme_file_uri( 'assets/js/capsule.js' ),
     414                array(),
     415                seaglass_asset_ver( 'assets/js/capsule.js' ),
     416                array(
     417                        'in_footer' => true,
     418                        'strategy'  => 'defer',
     419                )
     420        );
     421        $config = array(
     422                'menu'      => __( 'Menu', 'seaglass' ),
     423                'more'      => __( 'More', 'seaglass' ),
     424                'moreLabel' => __( 'More menu items', 'seaglass' ),
     425                'close'     => __( 'Close', 'seaglass' ),
     426                'icon'      => seaglass_icon( 'more' ),
     427        );
     428        wp_add_inline_script( 'seaglass-capsule', 'window.seaglassCapsule = ' . wp_json_encode( $config ) . ';', 'before' );
    368429}
    369430add_action( 'wp_enqueue_scripts', 'seaglass_capsule_styles' );
  • seaglass/0.10.4/inc/companion.php

    r353328 r356347  
    9696/**
    9797 * Krzyzyk w powiadomieniu (WordPress chowa je skryptem) – zapamietujemy zamkniecie na stale.
     98 * Skrypt tylko na tych ekranach, na ktorych pokazuje sie powiadomienie (kokpit, motywy, wtyczki).
     99 *
     100 * @param string $hook_suffix Ekran panelu (np. „index.php”).
    98101 */
    99 function seaglass_companion_notice_script() {
     102function seaglass_companion_notice_script( $hook_suffix ) {
     103        if ( ! in_array( $hook_suffix, array( 'index.php', 'themes.php', 'plugins.php' ), true ) ) {
     104                return;
     105        }
    100106        if ( seaglass_companion_active() || get_user_meta( get_current_user_id(), 'seaglass_tools_notice_dismissed', true ) ) {
    101107                return;
    … …  
    133139                'sg-product-faq' => __( 'Product FAQ – questions from the Digital details tab of the product.', 'seaglass' ) . $needs,
    134140        );
    135         $css = '';
     141        $css   = '';
    136142        foreach ( $notes as $class => $text ) {
    137143                $css .= '.editor-styles-wrapper .' . $class . '::before{content:' . seaglass_css_string( $text ) . ';display:block;padding:.75rem 1rem;border:1px dashed var(--wp--preset--color--dusty-sky);border-radius:12px;background:var(--wp--custom--tint--subtle);color:var(--wp--preset--color--muted);font-size:.85rem;line-height:1.4}';
  • seaglass/0.10.4/inc/footer.php

    r353328 r356347  
    128128        <!-- /wp:separator -->
    129129        <!-- wp:paragraph {"style":{"color":{"text":"var(--wp--custom--on-primary-muted)"}},"fontSize":"small"} -->
    130         <p class="has-text-color has-small-font-size" style="color:var(--wp--custom--on-primary-muted)"><?php
     130        <p class="has-text-color has-small-font-size" style="color:var(--wp--custom--on-primary-muted)">
     131        <?php
    131132        /* translators: 1: theme name with a link, 2: theme author */
    132133        printf( esc_html__( 'Theme %1$s by %2$s', 'seaglass' ), '<a href="' . esc_url( 'https://vibepic.pl/' ) . '">Seaglass</a>', 'vibepic' );
    133         ?></p>
     134        ?>
     135        </p>
    134136        <!-- /wp:paragraph -->
    135137</footer>
  • seaglass/0.10.4/inc/term-content.php

    r353328 r356347  
    4444 * Obrazek naglowka kategorii: pusta grupa „sg-term-hero” zamieniana na obrazek (albo znika).
    4545 * Pelny rozmiar z srcset, ladowany od razu (zwykle najwiekszy element na ekranie).
     46 *
     47 * @param string $content Kod HTML bloku.
     48 * @param array  $block   Blok (nazwa, atrybuty, bloki wewnetrzne).
    4649 */
    4750function seaglass_term_hero_render( $content, $block ) {
    … …  
    7679/**
    7780 * Pusta grupa „sg-term-bottom” (wtyczka nic w nia nie wstawila) – usuwamy, zeby nie zostala pusta ramka.
     81 *
     82 * @param string $content Kod HTML bloku.
     83 * @param array  $block   Blok (nazwa, atrybuty, bloki wewnetrzne).
    7884 */
    7985function seaglass_term_bottom_placeholder( $content, $block ) {
    … …  
    8894 * Podkategorie jako kapsulki pod opisem kategorii (pusta grupa „sg-subcats” w szablonie).
    8995 * Pokazuje dzieci biezacej kategorii; gdy ich brak – nic.
     96 *
     97 * @param string $content Kod HTML bloku.
     98 * @param array  $block   Blok (nazwa, atrybuty, bloki wewnetrzne).
    9099 */
    91100function seaglass_subcats_render( $content, $block ) {
  • seaglass/0.10.4/inc/woocommerce.php

    r353328 r356347  
    1717 */
    1818function seaglass_block_product( $instance ) {
    19         $id = ( $instance instanceof WP_Block && ! empty( $instance->context['postId'] ) ) ? (int) $instance->context['postId'] : get_the_ID();
     19        $id      = ( $instance instanceof WP_Block && ! empty( $instance->context['postId'] ) ) ? (int) $instance->context['postId'] : get_the_ID();
    2020        $product = $id ? wc_get_product( $id ) : null;
    2121        return $product instanceof WC_Product ? $product : null;
    … …  
    5252                'file_size' => array( 'Rozmiar pliku', 'File size' ),
    5353        );
    54         $value = $product->get_meta( 'seaglass_' . $key );
    55         $value = is_scalar( $value ) ? trim( (string) $value ) : '';
     54        $value      = $product->get_meta( 'seaglass_' . $key );
     55        $value      = is_scalar( $value ) ? trim( (string) $value ) : '';
    5656        // Seaglass Tools 0.7+: format w globalnym atrybucie „Format” (takze o innym slugu – wtyczka wie, ktory to).
    5757        if ( '' === $value && 'format' === $key && function_exists( 'seaglass_tools_product_formats' ) ) {
    … …  
    126126 * Nakladki na zdjeciu produktu w siatce: promocja, nowosc, bestseller, format.
    127127 * Nowosc/bestseller: tagi produktu „nowosc” (albo „new”) / „bestseller” (slug).
     128 *
     129 * @param string   $block_content Kod HTML bloku.
     130 * @param array    $block         Blok (nazwa, atrybuty, bloki wewnetrzne).
     131 * @param WP_Block $instance      Instancja bloku.
    128132 */
    129133function seaglass_product_image_badges( $block_content, $block, $instance ) {
    … …  
    140144        $percent = seaglass_sale_percent( $product );
    141145        if ( $product->is_on_sale() ) {
    142                 $badges[] = '<span class="sg-badge sg-badge--sale">' . ( $percent > 0 ? esc_html( '−' . $percent . '%' ) : esc_html__( 'Sale', 'seaglass' ) ) . '</span>';
     146                $badges[] = '<span class="sg-badge sg-badge--sale">' . ( $percent > 0 ? esc_html( sprintf( /* translators: %d: discount percentage */ __( '−%d%%', 'seaglass' ), $percent ) ) : esc_html__( 'Sale', 'seaglass' ) ) . '</span>';
    143147        }
    144148
    … …  
    152156
    153157        if ( ! $product->is_in_stock() ) {
    154                 $badges   = array( '<span class="sg-badge sg-badge--out">' . esc_html__( 'Unavailable', 'seaglass' ) . '</span>' );
     158                $badges = array( '<span class="sg-badge sg-badge--out">' . esc_html__( 'Unavailable', 'seaglass' ) . '</span>' );
    155159        }
    156160
    … …  
    180184/**
    181185 * Wskaznik dostepnosci: dla plikow „Pobierz od razu” + linia z formatem i objetoscia.
     186 *
     187 * @param string   $block_content Kod HTML bloku.
     188 * @param array    $block         Blok (nazwa, atrybuty, bloki wewnetrzne).
     189 * @param WP_Block $instance      Instancja bloku.
    182190 */
    183191function seaglass_stock_indicator( $block_content, $block, $instance ) {
    … …  
    313321        }
    314322        $allowed = array(
    315                 'a'      => array( 'href' => true, 'target' => true, 'rel' => true ),
     323                'a'      => array(
     324                        'href'   => true,
     325                        'target' => true,
     326                        'rel'    => true,
     327                ),
    316328                'strong' => array(),
    317329                'b'      => array(),
    … …  
    345357 * Po wyswietleniu: akcja „seaglass_product_faq_rendered” – wtyczka dodaje wtedy schema FAQPage
    346358 * dokladnie z tych pytan, ktore widac na stronie.
     359 *
     360 * @param string $content Kod HTML bloku.
     361 * @param array  $block   Blok (nazwa, atrybuty, bloki wewnetrzne).
    347362 */
    348363function seaglass_product_faq_render( $content, $block ) {
    … …  
    385400function seaglass_is_digital_product( $product ) {
    386401        static $cache = array();
    387         $id = $product->get_id();
     402        $id           = $product->get_id();
    388403        if ( isset( $cache[ $id ] ) ) {
    389404                return $cache[ $id ];
    … …  
    432447}
    433448
     449/**
     450 * Naglowek zakladki „Opis” z nazwa produktu.
     451 *
     452 * @param string $heading Domyslny naglowek.
     453 * @return string
     454 */
    434455function seaglass_description_heading( $heading ) {
    435456        $name = seaglass_product_name_for_heading();
    … …  
    439460add_filter( 'woocommerce_product_description_heading', 'seaglass_description_heading' );
    440461
     462/**
     463 * Naglowek zakladki „Informacje dodatkowe” z nazwa produktu.
     464 *
     465 * @param string $heading Domyslny naglowek.
     466 * @return string
     467 */
    441468function seaglass_additional_info_heading( $heading ) {
    442469        $name = seaglass_product_name_for_heading();
    … …  
    448475/**
    449476 * Naglowek opinii bez opinii (Woo nie ma na niego filtra).
     477 *
     478 * @param string $content Kod HTML bloku.
    450479 */
    451480function seaglass_product_details_headings( $content ) {
    … …  
    460489                '/(<h2[^>]*class="[^"]*woocommerce-Reviews-title[^"]*"[^>]*>)(.*?)(<\/h2>)/s',
    461490                function ( $m ) use ( $name ) {
    462                         if ( false !== mb_stripos( wp_strip_all_tags( $m[2] ), $name ) ) {
     491                        $text  = wp_strip_all_tags( $m[2] );
     492                        $found = function_exists( 'mb_stripos' ) ? mb_stripos( $text, $name ) : stripos( $text, $name );
     493                        if ( false !== $found ) {
    463494                                return $m[0];
    464495                        }
    … …  
    485516 * Kapsula: zamiast mini-koszyka Woo (szuflada + skrypty + dwa ukryte naglowki H2 na kazdej stronie)
    486517 * prosty link do koszyka z licznikiem. Blok mini-cart z klasa „sg-cap-cart” nie jest w ogole renderowany.
     518 *
     519 * @param string|null $pre          Wynik innego filtra albo null.
     520 * @param array       $parsed_block Blok (nazwa, atrybuty).
    487521 */
    488522function seaglass_cart_link( $pre, $parsed_block ) {
    … …  
    493527        $label = __( 'Cart', 'seaglass' );
    494528
    495         wp_enqueue_script( 'seaglass-cart-count', get_theme_file_uri( 'assets/js/cart-count.js' ), array(), seaglass_asset_ver( 'assets/js/cart-count.js' ), array( 'in_footer' => true, 'strategy' => 'defer' ) );
    496         wp_localize_script( 'seaglass-cart-count', 'seaglassCart', array( 'api' => esc_url_raw( rest_url( 'wc/store/v1/cart' ) ) ) );
     529        wp_enqueue_script(
     530                'seaglass-cart-count',
     531                get_theme_file_uri( 'assets/js/cart-count.js' ),
     532                array(),
     533                seaglass_asset_ver( 'assets/js/cart-count.js' ),
     534                array(
     535                        'in_footer' => true,
     536                        'strategy'  => 'defer',
     537                )
     538        );
     539        if ( ! wp_scripts()->get_data( 'seaglass-cart-count', 'before' ) ) {
     540                wp_add_inline_script( 'seaglass-cart-count', 'window.seaglassCart = ' . wp_json_encode( array( 'api' => esc_url_raw( rest_url( 'wc/store/v1/cart' ) ) ) ) . ';', 'before' );
     541        }
    497542
    498543        return '<a class="sg-cart-link" href="' . esc_url( wc_get_cart_url() ) . '" data-label="' . esc_attr( $label ) . '" aria-label="' . esc_attr( $label . ( $count ? ' (' . $count . ')' : '' ) ) . '">'
    … …  
    504549/**
    505550 * Okruszki: separator jako osobny element (strzalka rysowana w CSS), bez ukosnika.
     551 *
     552 * @param array $args Ustawienia okruszkow WooCommerce.
    506553 */
    507554function seaglass_breadcrumb_defaults( $args ) {
    … …  
    513560/**
    514561 * Linki „Wszystkie produkty →” na stronie glownej prowadza do strony sklepu (adres zalezy od instalacji).
     562 *
     563 * @param string $content Kod HTML bloku.
     564 * @param array  $block   Blok (nazwa, atrybuty, bloki wewnetrzne).
    515565 */
    516566function seaglass_home_more_link( $content, $block ) {
    … …  
    571621 * Kafelki kategorii na stronie glownej: pusta grupa „sg-cat-tiles-auto” zamieniana przy kazdym
    572622 * wyswietleniu na aktualna liste kategorii (dziala tez po edycji szablonu w edytorze).
     623 *
     624 * @param string $content Kod HTML bloku.
     625 * @param array  $block   Blok (nazwa, atrybuty, bloki wewnetrzne).
    573626 */
    574627function seaglass_cat_tiles_render( $content, $block ) {
    … …  
    603656                        $visual = $chosen;
    604657                } elseif ( $thumb_id ) {
    605                         $visual = wp_get_attachment_image( $thumb_id, 'thumbnail', false, array( 'class' => 'sg-cat-tile__img', 'alt' => '', 'loading' => 'lazy' ) );
     658                        $visual = wp_get_attachment_image(
     659                                $thumb_id,
     660                                'thumbnail',
     661                                false,
     662                                array(
     663                                        'class'   => 'sg-cat-tile__img',
     664                                        'alt'     => '',
     665                                        'loading' => 'lazy',
     666                                )
     667                        );
    606668                } else {
    607669                        $icon   = seaglass_guess_icon( array( 'label' => $cat->name ), $cat->name );
    … …  
    619681
    620682/**
    621  * Klasyczne arkusze WooCommerce (layout, smallscreen, general – ok. 120 KB blokujacego CSS) tylko tam,
    622  * gdzie sa klasyczne elementy: strona produktu (formularz, opinie, gwiazdki), koszyk, zamowienie, konto.
    623  * Sklep i kategorie sa w calosci na blokach Woo z wlasnymi stylami (sprawdzone 09.10.2026: bez roznic
    624  * w ukladzie; znika tylko pusty element clearfix, ktory przesuwal okruszki o 5 px).
    625  * (Nie sprawdzamy did_action( 'woocommerce_before_shop_loop_item' ) – Woo odpala te akcje takze w blokowych archiwach.)
    626  */
    627 function seaglass_limit_woo_classic_styles( $styles ) {
    628         if ( is_product() || is_cart() || is_checkout() || is_account_page() ) {
    629                 return $styles;
    630         }
    631         return array();
    632 }
    633 add_filter( 'woocommerce_enqueue_styles', 'seaglass_limit_woo_classic_styles' );
    634 
    635 /**
    636  * Klasyczny skrypt woocommerce.js (a z nim jQuery, jQuery Migrate, blockUI i js-cookie – blokujace renderowanie
    637  * w <head>) oraz wc-add-to-cart poza sklepem nie maja nic do roboty: strona glowna, blog i wpisy uzywaja
    638  * blokow Woo (Interactivity API). Zostaja, gdy na stronie jest klasyczna petla produktow / shortcode
    639  * albo widoczna informacja sklepu (store notice – jej zamykanie obsluguje woocommerce.js).
    640  * Szablon blokowy renderuje sie przed wp_head, wiec did_action() widzi juz klasyczne petle.
    641  * Wylaczenie: add_filter( 'seaglass_trim_woocommerce_scripts', '__return_false' );
    642  */
    643 function seaglass_trim_woo_scripts() {
    644         if ( is_woocommerce() || is_cart() || is_checkout() || is_account_page() ) {
    645                 return;
    646         }
    647         if ( ( function_exists( 'is_store_notice_showing' ) && is_store_notice_showing() ) || did_action( 'woocommerce_before_shop_loop_item' ) || did_action( 'woocommerce_before_single_product' ) ) {
    648                 return;
    649         }
    650         if ( ! apply_filters( 'seaglass_trim_woocommerce_scripts', true ) ) {
    651                 return;
    652         }
    653         wp_dequeue_script( 'woocommerce' );
    654         wp_dequeue_script( 'wc-add-to-cart' );
    655 }
    656 add_action( 'wp_enqueue_scripts', 'seaglass_trim_woo_scripts', 20 );
    657 
    658 /**
    659683 * Okladki produktow na pierwszym ekranie bez leniwego ladowania (blok Woo zawsze daje loading="lazy",
    660684 * a to zwykle element LCP): na stronie produktu glowna okladka z fetchpriority="high",
    661685 * w sklepie i kategoriach pierwsze 4 karty (pierwsza z fetchpriority="high").
     686 *
     687 * @param string $content Kod HTML bloku.
    662688 */
    663689function seaglass_product_image_priority( $content ) {
    … …  
    701727 * Starsze siatki produktow Woo (np. „Nowe w sklepie” w pustym koszyku):
    702728 * zamiast kwadratowej miniatury (300x300, przycieta okladka) pelna okladka w proporcjach 2:3.
     729 *
     730 * @param string     $html    Kod HTML pozycji siatki.
     731 * @param object     $data    Dane produktu w siatce.
     732 * @param WC_Product $product Produkt.
    703733 */
    704734function seaglass_product_grid_item_image( $html, $data, $product ) {
  • seaglass/0.10.4/languages/seaglass.pot

    r353328 r356347  
    33msgid ""
    44msgstr ""
    5 "Project-Id-Version: Seaglass 0.10.0\n"
     5"Project-Id-Version: Seaglass 0.10.4\n"
    66"Report-Msgid-Bugs-To: https://wordpress.org/support/theme/seaglass\n"
    77"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
    … …  
    1010"Content-Type: text/plain; charset=UTF-8\n"
    1111"Content-Transfer-Encoding: 8bit\n"
    12 "POT-Creation-Date: 2026-10-09T16:32:05+00:00\n"
     12"POT-Creation-Date: 2026-10-30T17:50:50+00:00\n"
    1313"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
    1414"X-Generator: WP-CLI 2.11.0\n"
    … …  
    1717#. Theme Name of the theme
    1818#: style.css
    19 #: functions.php:200
     19#: functions.php:204
    2020msgid "Seaglass"
    2121msgstr ""
    … …  
    3636msgstr ""
    3737
    38 #: functions.php:213
     38#: functions.php:217
    3939msgid "Cards"
    4040msgstr ""
    4141
    42 #: functions.php:240
     42#: functions.php:265
    4343msgid "(no title)"
    4444msgstr ""
    4545
    46 #: inc/capsule.php:71
     46#: inc/capsule.php:72
    4747msgid "Book"
    4848msgstr ""
    4949
    50 #: inc/capsule.php:72
     50#: inc/capsule.php:73
    5151msgid "Headphones"
    5252msgstr ""
    5353
    54 #: inc/capsule.php:73
     54#: inc/capsule.php:74
    5555msgid "Video"
    5656msgstr ""
    5757
    58 #: inc/capsule.php:74
     58#: inc/capsule.php:75
    5959msgid "Course"
    6060msgstr ""
    6161
    62 #: inc/capsule.php:75
     62#: inc/capsule.php:76
    6363msgid "Languages"
    6464msgstr ""
    6565
    66 #: inc/capsule.php:76
     66#: inc/capsule.php:77
    6767msgid "Music"
    6868msgstr ""
    6969
    70 #: inc/capsule.php:77
     70#: inc/capsule.php:78
    7171msgid "Microphone"
    7272msgstr ""
    7373
    74 #: inc/capsule.php:78
     74#: inc/capsule.php:79
    7575msgid "Writing"
    7676msgstr ""
    7777
    78 #: inc/capsule.php:79
     78#: inc/capsule.php:80
    7979msgid "Business"
    8080msgstr ""
    8181
    82 #: inc/capsule.php:80
     82#: inc/capsule.php:81
    8383msgid "Cooking"
    8484msgstr ""
    8585
    86 #: inc/capsule.php:81
     86#: inc/capsule.php:82
    8787msgid "Health"
    8888msgstr ""
    8989
    90 #: inc/capsule.php:82
     90#: inc/capsule.php:83
    9191msgid "Sport"
    9292msgstr ""
    9393
    94 #: inc/capsule.php:83
     94#: inc/capsule.php:84
    9595msgid "Nature"
    9696msgstr ""
    9797
    98 #: inc/capsule.php:84
     98#: inc/capsule.php:85
    9999msgid "Art"
    100100msgstr ""
    101101
    102 #: inc/capsule.php:85
     102#: inc/capsule.php:86
    103103msgid "Photos"
    104104msgstr ""
    105105
    106 #: inc/capsule.php:86
     106#: inc/capsule.php:87
    107107msgid "Programming"
    108108msgstr ""
    109109
    110 #: inc/capsule.php:87
     110#: inc/capsule.php:88
    111111msgid "Travel"
    112112msgstr ""
    113113
    114 #: inc/capsule.php:88
     114#: inc/capsule.php:89
    115115msgid "Kids"
    116116msgstr ""
    117117
    118 #: inc/capsule.php:89
     118#: inc/capsule.php:90
    119119msgid "Highlighted"
    120120msgstr ""
    121121
    122 #: inc/capsule.php:90
     122#: inc/capsule.php:91
    123123msgid "Gifts"
    124124msgstr ""
    125125
    126 #: inc/capsule.php:91
     126#: inc/capsule.php:92
    127127msgid "Promotions"
    128128msgstr ""
    129129
    130 #: inc/capsule.php:92
     130#: inc/capsule.php:93
    131131msgid "Shopping"
    132132msgstr ""
    133133
    134134#. translators: %s: category name
    135 #: inc/capsule.php:221
     135#: inc/capsule.php:235
    136136msgid "All: %s"
    137137msgstr ""
    138138
    139 #: inc/capsule.php:232
    140 #: inc/capsule.php:319
     139#: inc/capsule.php:246
     140#: inc/capsule.php:361
     141#: inc/capsule.php:425
    141142msgid "Close"
    142143msgstr ""
    143144
    144 #: inc/capsule.php:314
     145#: inc/capsule.php:356
    145146msgid "Open search"
    146147msgstr ""
    147148
    148 #: inc/capsule.php:315
     149#: inc/capsule.php:357
    149150#: patterns/404.php:20
    150151#: patterns/header.php:33
    … …  
    153154msgstr ""
    154155
    155 #: inc/capsule.php:317
     156#: inc/capsule.php:359
    156157#: patterns/header.php:33
    157158msgid "What are you looking for?"
    158159msgstr ""
    159160
    160 #: inc/capsule.php:333
     161#: inc/capsule.php:378
    161162msgid "Account"
    162163msgstr ""
    163164
    164 #: inc/capsule.php:336
    165 #: inc/woocommerce.php:484
     165#: inc/capsule.php:381
     166#: inc/woocommerce.php:527
    166167msgid "Cart"
     168msgstr ""
     169
     170#: inc/capsule.php:422
     171msgid "Menu"
     172msgstr ""
     173
     174#: inc/capsule.php:423
     175msgid "More"
     176msgstr ""
     177
     178#: inc/capsule.php:424
     179msgid "More menu items"
    167180msgstr ""
    168181
    … …  
    171184msgstr ""
    172185
    173 #: inc/companion.php:80
     186#: inc/companion.php:81
    174187msgid "Install Seaglass Tools"
    175188msgstr ""
    176189
    177 #: inc/companion.php:85
     190#: inc/companion.php:86
    178191msgid "Seaglass works best with the free Seaglass Tools plugin: digital product details (author, narrator, format, length), product FAQ, category header images and icons, and a lead under post titles. The theme also works without it – empty places are simply hidden."
    179192msgstr ""
    180193
    181 #: inc/companion.php:88
     194#: inc/companion.php:89
    182195msgid "Don’t show again"
    183196msgstr ""
    184197
    185 #: inc/companion.php:127
    186 #: inc/companion.php:160
     198#: inc/companion.php:134
     199#: inc/companion.php:167
    187200msgid "(requires the Seaglass Tools plugin)"
    188201msgstr ""
    189202
    190 #: inc/companion.php:129
     203#: inc/companion.php:136
    191204msgid "Category header image – set it in Products → Categories."
    192205msgstr ""
    193206
    194 #: inc/companion.php:130
     207#: inc/companion.php:137
    195208msgid "Subcategories of the current category appear here."
    196209msgstr ""
    197210
    198 #: inc/companion.php:131
     211#: inc/companion.php:138
    199212msgid "Category description below the products – set it in Products → Categories."
    200213msgstr ""
    201214
    202 #: inc/companion.php:132
     215#: inc/companion.php:139
    203216msgid "Product FAQ – questions from the Digital details tab of the product."
    204217msgstr ""
    205218
    206 #: inc/companion.php:155
     219#: inc/companion.php:162
    207220msgid "Lead under the title"
    208221msgstr ""
    … …  
    238251
    239252#. translators: 1: theme name with a link, 2: theme author
    240 #: inc/footer.php:132
     253#: inc/footer.php:133
    241254msgid "Theme %1$s by %2$s"
    242255msgstr ""
    243256
    244257#. translators: %s: category name
    245 #: inc/term-content.php:121
     258#: inc/term-content.php:130
    246259msgid "Subcategories: %s"
    247260msgstr ""
    … …  
    263276msgstr ""
    264277
    265 #: inc/woocommerce.php:142
     278#. translators: %d: discount percentage
     279#: inc/woocommerce.php:146
     280msgid "−%d%%"
     281msgstr ""
     282
     283#. translators: %d: discount percentage
     284#: inc/woocommerce.php:146
    266285msgid "Sale"
    267286msgstr ""
    268287
    269 #: inc/woocommerce.php:146
     288#: inc/woocommerce.php:150
    270289msgid "New"
    271290msgstr ""
    272291
    273 #: inc/woocommerce.php:150
     292#: inc/woocommerce.php:154
    274293msgid "Bestseller"
    275294msgstr ""
    276295
    277 #: inc/woocommerce.php:154
     296#: inc/woocommerce.php:158
    278297msgid "Unavailable"
    279298msgstr ""
    280299
    281 #: inc/woocommerce.php:203
     300#: inc/woocommerce.php:211
    282301msgid "Instant download"
    283302msgstr ""
    284303
    285 #: inc/woocommerce.php:239
     304#: inc/woocommerce.php:247
    286305msgid "Opens on your phone, tablet and computer – even offline."
    287306msgstr ""
    288307
    289 #: inc/woocommerce.php:241
     308#: inc/woocommerce.php:249
    290309msgid "Read it on your phone, computer and e-reader – even offline."
    291310msgstr ""
    292311
    293 #: inc/woocommerce.php:243
     312#: inc/woocommerce.php:251
    294313msgid "Listen on your phone and computer – even offline."
    295314msgstr ""
    296315
    297 #: inc/woocommerce.php:245
     316#: inc/woocommerce.php:253
    298317msgid "Watch it on your phone, tablet and computer – even offline."
    299318msgstr ""
    300319
    301 #: inc/woocommerce.php:263
     320#: inc/woocommerce.php:271
    302321msgid "Author"
    303322msgstr ""
    304323
    305 #: inc/woocommerce.php:264
     324#: inc/woocommerce.php:272
    306325msgid "Narrator"
    307326msgstr ""
    308327
    309 #: inc/woocommerce.php:265
     328#: inc/woocommerce.php:273
    310329#: patterns/shop-sidebar-filters.php:75
    311330msgid "Format"
    312331msgstr ""
    313332
    314 #: inc/woocommerce.php:266
     333#: inc/woocommerce.php:274
    315334msgid "Length"
    316335msgstr ""
    317336
    318 #: inc/woocommerce.php:267
     337#: inc/woocommerce.php:275
    319338msgid "Language"
    320339msgstr ""
    321340
    322 #: inc/woocommerce.php:268
     341#: inc/woocommerce.php:276
    323342msgid "File size"
    324343msgstr ""
    325344
    326 #: inc/woocommerce.php:277
     345#: inc/woocommerce.php:285
    327346msgid "Delivery"
    328347msgstr ""
    329348
    330 #: inc/woocommerce.php:277
     349#: inc/woocommerce.php:285
    331350msgid "Right after payment: a link on screen and by e-mail"
    332351msgstr ""
    333352
    334 #: inc/woocommerce.php:282
     353#: inc/woocommerce.php:290
    335354msgid "Download right after purchase"
    336355msgstr ""
    337356
    338357#. translators: %s: product name
    339 #: inc/woocommerce.php:363
     358#: inc/woocommerce.php:378
    340359msgid "Frequently asked questions: %s"
    341360msgstr ""
    342361
    343362#. translators: %s: product name
    344 #: inc/woocommerce.php:428
     363#: inc/woocommerce.php:458
    345364msgid "Description: %s"
    346365msgstr ""
    347366
    348367#. translators: %s: product name
    349 #: inc/woocommerce.php:435
     368#: inc/woocommerce.php:471
    350369msgid "Details: %s"
    351370msgstr ""
    352371
    353372#. translators: %s: product name
    354 #: inc/woocommerce.php:457
     373#: inc/woocommerce.php:497
    355374msgid "Reviews: %s"
    356375msgstr ""
    357376
    358377#. translators: %d: number of products
    359 #: inc/woocommerce.php:523
     378#: inc/woocommerce.php:582
    360379msgid "%d product"
    361380msgid_plural "%d products"
    … …  
    364383
    365384#. translators: %s: the word „automatic” (seaglass_chosen_categories() also accepts it).
    366 #: inc/woocommerce.php:544
     385#: inc/woocommerce.php:603
    367386#: patterns/categories.php:20
    368387msgid "automatic"
    … …  
    861880msgstr ""
    862881
    863 #: styles/ksiegarnia.json styles/kuchnia.json styles/minimal.json styles/scena.json theme.json
     882#: theme.json styles/ksiegarnia.json styles/kuchnia.json styles/minimal.json styles/scena.json
    864883msgctxt "Font family name"
    865884msgid "System sans-serif"
    … …  
    871890msgstr ""
    872891
    873 #: styles/cieply-pastel.json styles/fiolek.json styles/ksiegarnia.json styles/kuchnia.json styles/minimal.json styles/scena.json theme.json
     892#: theme.json styles/cieply-pastel.json styles/fiolek.json styles/ksiegarnia.json styles/kuchnia.json styles/minimal.json styles/scena.json
    874893msgctxt "Color name"
    875894msgid "Background"
    876895msgstr ""
    877896
    878 #: styles/cieply-pastel.json styles/fiolek.json styles/ksiegarnia.json styles/kuchnia.json styles/minimal.json styles/scena.json theme.json
     897#: theme.json styles/cieply-pastel.json styles/fiolek.json styles/ksiegarnia.json styles/kuchnia.json styles/minimal.json styles/scena.json
    879898msgctxt "Color name"
    880899msgid "Surface"
    … …  
    906925msgstr ""
    907926
    908 #: styles/cieply-pastel.json styles/fiolek.json styles/ksiegarnia.json styles/kuchnia.json styles/minimal.json styles/scena.json theme.json
     927#: theme.json styles/cieply-pastel.json styles/fiolek.json styles/ksiegarnia.json styles/kuchnia.json styles/minimal.json styles/scena.json
    909928msgctxt "Color name"
    910929msgid "Muted text"
    911930msgstr ""
    912931
    913 #: styles/cieply-pastel.json styles/fiolek.json styles/ksiegarnia.json styles/kuchnia.json styles/minimal.json styles/scena.json theme.json
     932#: theme.json styles/cieply-pastel.json styles/fiolek.json styles/ksiegarnia.json styles/kuchnia.json styles/minimal.json styles/scena.json
    914933msgctxt "Color name"
    915934msgid "Lines"
    … …  
    921940msgstr ""
    922941
    923 #: styles/cieply-pastel.json styles/fiolek.json styles/ksiegarnia.json styles/kuchnia.json styles/minimal.json styles/scena.json theme.json
     942#: theme.json styles/cieply-pastel.json styles/fiolek.json styles/ksiegarnia.json styles/kuchnia.json styles/minimal.json styles/scena.json
    924943msgctxt "Color name"
    925944msgid "In stock"
    926945msgstr ""
    927946
    928 #: styles/cieply-pastel.json styles/fiolek.json styles/ksiegarnia.json styles/kuchnia.json styles/minimal.json styles/scena.json theme.json
     947#: theme.json styles/cieply-pastel.json styles/fiolek.json styles/ksiegarnia.json styles/kuchnia.json styles/minimal.json styles/scena.json
    929948msgctxt "Gradient name"
    930949msgid "Sea"
    931950msgstr ""
    932951
    933 #: styles/cieply-pastel.json styles/fiolek.json styles/ksiegarnia.json styles/kuchnia.json styles/minimal.json styles/scena.json theme.json
     952#: theme.json styles/cieply-pastel.json styles/fiolek.json styles/ksiegarnia.json styles/kuchnia.json styles/minimal.json styles/scena.json
    934953msgctxt "Gradient name"
    935954msgid "Soft sea"
  • seaglass/0.10.4/readme.txt

    r353377 r356347  
    44Tested up to: 7.1
    55Requires PHP: 7.4
    6 Stable tag: 0.10.3
     6Stable tag: 0.10.4
    77License: GPLv2 or later
    88License URI: http://www.gnu.org/licenses/gpl-2.0.html
    … …  
    1616* Product page with a facts box (author, narrator, format, length, language, file size), sample link or audio player and product FAQ.
    1717* Order confirmation that shows the downloads first.
    18 * Capsule navigation: icons in the menu, search in a popover, account and cart – at the bottom of the screen on phones, without JavaScript.
     18* Capsule navigation: icons in the menu, search in a popover, account and cart – at the bottom of the screen on phones. Menu items that do not fit go into a "More" card with the full menu.
    1919* Six style variations: Minimal, Bookshop, Kitchen, Stage, Warm pastel and Violet.
     20
     21WooCommerce is recommended, but not required: without it the shop sections are hidden and the theme works as a regular blog theme.
    2022
    2123The theme is translation ready. Translations are provided through translate.wordpress.org.
    … …  
    3941
    4042== Changelog ==
     43= 0.10.4 =
     44* Without WooCommerce the front page, posts and header no longer show shop sections, editor notes or empty WooCommerce blocks.
     45* The theme no longer removes WooCommerce scripts or stylesheets.
     46* Large menus: items that do not fit in the capsule go into a "More" card (desktop and phones); submenus in the header no longer open inside the page list; footer menu shows submenus as a readable nested list.
     47* Posts and pages: wide and full width blocks now work; left/right aligned blocks stay next to the text column.
     48* Posts split into pages with the classic "nextpage" tag show page links; numbered lists in comments; long comment author names wrap.
     49* Sale badge percentage is translatable; mb_stripos() fallback; block style renamed to seaglass-cards; admin notice script only on the screens with the notice; cart script data passed with wp_add_inline_script().
     50* Function documentation, regenerated .pot file, theme tags style-variations and translation-ready.
     51
    4152= 0.10.3 =
    4253* Fix: on phones the bottom capsule menu could slide under product cards (the header now stays above the page content).
  • seaglass/0.10.4/style.css

    r353377 r356347  
    77Tested up to: 7.1
    88Requires PHP: 7.4
    9 Version: 0.10.3
     9Version: 0.10.4
    1010License: GNU General Public License v2 or later
    1111License URI: http://www.gnu.org/licenses/gpl-2.0.html
    1212Text Domain: seaglass
    13 Tags: e-commerce, blog, block-patterns, full-site-editing, wide-blocks, one-column, custom-colors, editor-style
     13Tags: e-commerce, blog, block-patterns, full-site-editing, wide-blocks, one-column, custom-colors, editor-style, style-variations, translation-ready
    1414*/
    1515
  • seaglass/0.10.4/templates/front-page.html

    r353328 r356347  
    55        <!-- wp:pattern {"slug":"seaglass/hero"} /-->
    66
    7         <!-- wp:group {"className":"sg-home-section","layout":{"type":"constrained","contentSize":"1240px"}} -->
    8         <div class="wp-block-group sg-home-section">
     7        <!-- wp:group {"className":"sg-home-section seaglass-shop-section","layout":{"type":"constrained","contentSize":"1240px"}} -->
     8        <div class="wp-block-group sg-home-section seaglass-shop-section">
    99                <!-- wp:pattern {"slug":"seaglass/categories"} /-->
    1010        </div>
    1111        <!-- /wp:group -->
    1212
    13         <!-- wp:group {"className":"sg-home-section","layout":{"type":"constrained","contentSize":"1240px"}} -->
    14         <div class="wp-block-group sg-home-section">
     13        <!-- wp:group {"className":"sg-home-section seaglass-shop-section","layout":{"type":"constrained","contentSize":"1240px"}} -->
     14        <div class="wp-block-group sg-home-section seaglass-shop-section">
    1515                <!-- wp:pattern {"slug":"seaglass/home-new"} /-->
    1616        </div>
    … …  
    2323        <!-- /wp:group -->
    2424
    25         <!-- wp:group {"className":"sg-home-section","layout":{"type":"constrained","contentSize":"1240px"}} -->
    26         <div class="wp-block-group sg-home-section">
     25        <!-- wp:group {"className":"sg-home-section seaglass-shop-section","layout":{"type":"constrained","contentSize":"1240px"}} -->
     26        <div class="wp-block-group sg-home-section seaglass-shop-section">
    2727                <!-- wp:pattern {"slug":"seaglass/home-featured"} /-->
    2828        </div>
  • seaglass/0.10.4/templates/page-no-title.html

    r353328 r356347  
    22<!-- wp:group {"tagName":"main","anchor":"main","layout":{"type":"constrained"}} -->
    33<main class="wp-block-group" id="main">
    4         <!-- wp:post-content {"layout":{"type":"constrained"}} /-->
     4        <!-- wp:post-content {"align":"full","layout":{"type":"constrained"}} /-->
    55</main>
    66<!-- /wp:group -->
  • seaglass/0.10.4/templates/page.html

    r353328 r356347  
    77        <!-- /wp:paragraph -->
    88        <!-- wp:post-featured-image {"align":"wide"} /-->
    9         <!-- wp:post-content {"layout":{"type":"constrained"}} /-->
     9        <!-- wp:post-content {"align":"full","layout":{"type":"constrained"}} /-->
    1010</main>
    1111<!-- /wp:group -->
  • seaglass/0.10.4/templates/single.html

    r353328 r356347  
    33<!-- wp:group {"tagName":"main","anchor":"main","style":{"spacing":{"padding":{"top":"var:preset|spacing|60"}}},"layout":{"type":"constrained"}} -->
    44<main class="wp-block-group" id="main" style="padding-top:var(--wp--preset--spacing--60)">
    5         <!-- wp:group {"tagName":"article","className":"sg-article","layout":{"type":"constrained"}} -->
    6         <article class="wp-block-group sg-article">
     5        <!-- wp:group {"tagName":"article","align":"full","className":"sg-article","layout":{"type":"constrained"}} -->
     6        <article class="wp-block-group alignfull sg-article">
    77                <!-- wp:post-terms {"term":"category","className":"sg-post-cat"} /-->
    88                <!-- wp:post-title {"level":1,"className":"sg-article__title"} /-->
    … …  
    1717                <!-- /wp:group -->
    1818                <!-- wp:post-featured-image {"align":"wide","aspectRatio":"16/9","className":"sg-article__img"} /-->
    19                 <!-- wp:post-content {"className":"sg-prose","layout":{"type":"constrained"}} /-->
     19                <!-- wp:post-content {"align":"full","className":"sg-prose","layout":{"type":"constrained"}} /-->
    2020                <!-- wp:pattern {"slug":"seaglass/post-footer"} /-->
    2121                <!-- wp:comments {"className":"sg-comments"} -->
Note: See TracChangeset for help on using the changeset viewer.