Changeset 356347
- Timestamp:
- 10/30/2026 06:25:09 PM (4 hours ago)
- Location:
- seaglass/0.10.4
- Files:
-
- 2 added
- 15 edited
- 1 copied
-
. (copied) (copied from seaglass/0.10.3 )
-
assets/css/blocks.css (modified) (12 diffs)
-
assets/css/capsule.css (modified) (6 diffs)
-
assets/js/capsule.js (added)
-
functions.php (modified) (8 diffs)
-
inc/capsule.php (modified) (13 diffs)
-
inc/companion.php (modified) (2 diffs)
-
inc/footer.php (modified) (1 diff)
-
inc/no-woocommerce.php (added)
-
inc/term-content.php (modified) (3 diffs)
-
inc/woocommerce.php (modified) (21 diffs)
-
languages/seaglass.pot (modified) (13 diffs)
-
readme.txt (modified) (3 diffs)
-
style.css (modified) (1 diff)
-
templates/front-page.html (modified) (2 diffs)
-
templates/page-no-title.html (modified) (1 diff)
-
templates/page.html (modified) (1 diff)
-
templates/single.html (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
seaglass/0.10.4/assets/css/blocks.css
r353328 r356347 162 162 .wp-block-categories-list, 163 163 .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), 165 165 .wp-block-latest-comments { padding-left: 0; list-style: none; } 166 166 .wp-block-latest-posts li, … … 240 240 .sg-comment__head .wp-block-avatar { margin: 0; flex: none; } 241 241 .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; } 242 249 .sg-comment .wp-block-comment-content { margin: .7rem 0 0; } 243 250 .sg-comment .wp-block-comment-content > :first-child { margin-top: 0; } … … 420 427 .sg-footer :is(.sg-footer__links, .sg-footer__nav, .sg-footer__contact) a:is(:hover, :focus-visible) { text-decoration: underline; text-underline-offset: .2em; } 421 428 .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; } 422 453 .sg-footer__contact p { margin: 0 0 .6rem; } 423 454 .sg-footer__hours { font-size: .85rem; color: var(--wp--custom--on-primary-muted); } … … 443 474 Akapit z wyrownaniem ustawionym w edytorze (do lewej/srodka/prawej) zostaje bez zmian. 444 475 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) { 446 478 text-align: justify; 447 479 -webkit-hyphens: auto; … … 457 489 } 458 490 459 /* Styl bloku „Karty” (is-style-s g-cards): kazda kolumna jako karta, przyciski przyklejone do dolu */460 .wp-block-columns.is-style-s g-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 { 461 493 display: flex; 462 494 flex-direction: column; … … 466 498 box-shadow: var(--wp--preset--shadow--soft); 467 499 } 468 .wp-block-columns.is-style-s g-cards > .wp-block-column:where(:not(.has-background)) { background: var(--wp--preset--color--surface); }469 .wp-block-columns.is-style-s g-cards > .wp-block-column > :first-child { margin-top: 0; }470 .wp-block-columns.is-style-s g-cards > .wp-block-column > :last-child { margin-bottom: 0; }471 .wp-block-columns.is-style-s g-cards > .wp-block-column > .wp-block-buttons:last-child { margin-top: auto; padding-top: .75rem; }472 .wp-block-columns.is-style-s g-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 { 473 505 margin: calc(-1 * clamp(1.1rem, 2.4vw, 1.5rem)) calc(-1 * clamp(1.1rem, 2.4vw, 1.5rem)) .25rem; 474 506 } 475 .wp-block-columns.is-style-s g-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 { 476 508 width: 100%; 477 509 border-radius: var(--wp--custom--radius--medium) var(--wp--custom--radius--medium) 0 0; … … 521 553 /* ---------- Nawigacja w tresci (np. blok Nawigacja z lista stron) ---------- 522 554 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 { 524 556 padding: .35rem; 525 557 border: 1px solid var(--wp--preset--color--line) !important; … … 530 562 } 531 563 /* 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 { 535 567 padding: .5rem .75rem !important; 536 568 border-radius: 8px; 537 569 text-decoration: none; 538 570 } 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 { 541 573 background: var(--wp--preset--color--base); 542 574 color: var(--wp--preset--color--primary); … … 544 576 /* Podmenu 2. poziomu: odstep od karty rodzica, zeby nie nachodzily na siebie ramki */ 545 577 @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); } 552 584 553 585 /* ---------- Paginacja petli wpisow (wszedzie, nie tylko na blogu) ---------- */ … … 600 632 /* ---------- Bloki widzetow w tresci: listy bez punktorow i wciec ---------- 601 633 (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 { 604 636 margin-left: 0; 605 637 padding-left: 0 !important; 606 638 list-style: none !important; 607 639 } 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; } 610 642 611 643 /* 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 { 613 645 margin: .35rem 0 .1rem .35rem; 614 646 padding-left: .9rem !important; 615 647 border-left: 2px solid var(--wp--preset--color--sea-foam); 616 648 } 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; } 619 651 620 652 /* 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); } 624 656 .wp-block-page-list .current-menu-item > a, 625 657 .wp-block-page-list a[aria-current="page"] { color: var(--wp--preset--color--primary); } 626 658 /* 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; } 628 660 629 661 /* Ostatnie komentarze: awatar w kolku, autor pogrubiony, data pod spodem */ … … 906 938 907 939 /* 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-s g-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-s g-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-s g-cards .wp-block-column p:not([class*="has-text-align-"]) { text-align: left; hyphens: manual; }911 .wp-block-columns.is-style-s g-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; } 912 944 913 945 /* ---------- Lead wpisu/strony (pole wtyczki Seaglass Tools, Block Bindings) ---------- */ … … 964 996 .sg-emoji > span { transform: none; filter: none; } 965 997 } 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 187 187 .sg-capsule__nav .wp-block-navigation__submenu-icon { display: none !important; } 188 188 /* 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; } 190 190 .sg-capsule__nav .sg-sub-trigger { display: flex !important; } 191 191 … … 257 257 .sg-capsule__nav .wp-block-navigation__submenu-container, 258 258 .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; } 260 260 .sg-capsule__nav .sg-sub-trigger { display: flex !important; } 261 261 } … … 335 335 /* Komputer (mysz): pozycja z podmenu to jedna kapsulka – link + strzalka w srodku */ 336 336 @media (min-width: 783px) and (hover: hover) { 337 .sg-capsule__nav .wp-block-navigation-submenu {337 .sg-capsule__nav li.wp-block-navigation-submenu { 338 338 display: flex; 339 339 align-items: center; … … 341 341 transition: background-color .15s ease, color .15s ease; 342 342 } 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 { 345 345 display: flex; 346 346 align-items: center; … … 353 353 color: inherit; 354 354 } 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) { 358 358 background: var(--wp--preset--color--primary); 359 359 color: var(--wp--preset--color--surface); 360 360 } 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; } 362 362 } 363 363 … … 410 410 nav.sg-capsule__nav.sg-nav-fits .wp-block-navigation__container { padding-right: 0; } 411 411 } 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 15 15 /** 16 16 * Asset version: file time on local/development sites (no stale cache), theme version elsewhere. 17 * 18 * @param string $file Sciezka pliku wzgledem katalogu motywu. 17 19 */ 18 20 function seaglass_asset_ver( $file ) { … … 98 100 /** 99 101 * 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. 100 104 */ 101 105 function seaglass_theme_image_dims( $rel ) { … … 127 131 * przegladarka rezerwuje miejsce (bez CLS, audyt Lighthouse „obrazy bez wymiarow”). Ikony SVG dostaja loading="lazy". 128 132 * Znaczniki bloku w edytorze bez zmian. 133 * 134 * @param string $content Kod HTML bloku. 129 135 */ 130 136 function seaglass_theme_image_size( $content ) { … … 208 214 'core/columns', 209 215 array( 210 'name' => 's g-cards',216 'name' => 'seaglass-cards', 211 217 'label' => __( 'Cards', 'seaglass' ), 212 218 ) … … 222 228 require get_template_directory() . '/inc/woocommerce.php'; 223 229 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 */ 242 function 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 } 248 add_filter( 'render_block_core/paragraph', 'seaglass_remove_editor_hints', 5, 2 ); 225 249 226 250 /** 227 251 * Wpis bez tytulu: na stronie pokazujemy „(Bez tytulu)”, zeby karta na blogu miala klikalny link, 228 252 * 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. 229 256 */ 230 257 function seaglass_untitled( $title, $post_id = 0 ) { … … 240 267 add_filter( 'the_title', 'seaglass_untitled', 10, 2 ); 241 268 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 */ 242 276 function seaglass_untitled_single( $title, $post = null ) { 243 277 return seaglass_untitled( $title, $post instanceof WP_Post ? $post->ID : get_queried_object_id() ); … … 253 287 * Bloki powiazane z polami wtyczki Seaglass Tools (zrodlo „seaglass/field”): puste pole albo brak wtyczki 254 288 * = blok znika (bez pustego akapitu z marginesami). 289 * 290 * @param string $content Kod HTML bloku. 291 * @param array $block Blok (nazwa, atrybuty, bloki wewnetrzne). 255 292 */ 256 293 function seaglass_hide_empty_bound( $content, $block ) { … … 267 304 add_filter( 'render_block_core/paragraph', 'seaglass_hide_empty_bound', 20, 2 ); 268 305 add_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 */ 314 function 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 } 321 add_filter( 'render_block_core/post-content', 'seaglass_classic_page_links' ); -
seaglass/0.10.4/inc/capsule.php
r353328 r356347 42 42 '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"/>', 43 43 '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"/>', 44 45 'language' => '<path d="M4 4h11v8H9l-4 3v-3H4z"/><path d="M15 8h5v8h-1v3l-4-3h-4v-2"/>', 45 46 'music' => '<path d="M9 18V5l11-2v13"/><circle cx="6.5" cy="18" r="2.5"/><circle cx="17.5" cy="16" r="2.5"/>', … … 117 118 118 119 $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' ), 128 129 ); 129 130 foreach ( $map as $icon => $needles ) { … … 153 154 /** 154 155 * Start renderowania nawigacji kapsuly. 156 * 157 * @param string|null $pre Wynik innego filtra albo null. 158 * @param array $parsed_block Blok (nazwa, atrybuty). 155 159 */ 156 160 function seaglass_capsule_pre_render( $pre, $parsed_block ) { … … 164 168 /** 165 169 * Koniec renderowania nawigacji kapsuly. 170 * 171 * @param string $content Kod HTML bloku. 172 * @param array $block Blok (nazwa, atrybuty, bloki wewnetrzne). 166 173 */ 167 174 function seaglass_capsule_post_render( $content, $block ) { … … 175 182 /** 176 183 * Ikona przed tekstem pozycji menu w kapsule. 184 * 185 * @param string $content Kod HTML bloku. 186 * @param array $block Blok (nazwa, atrybuty, bloki wewnetrzne). 177 187 */ 178 188 function seaglass_capsule_link_icon( $content, $block ) { … … 192 202 * Popover lezy w warstwie nad strona, wiec nie przeszkadza mu ani przewijanie, ani maska kapsuly. 193 203 * 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). 194 207 */ 195 208 function 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'] ) ) { 197 211 return $content; 198 212 } … … 239 253 240 254 /** 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 */ 262 function 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 } 268 add_filter( 'render_block_data', 'seaglass_mark_nested_submenu', 10, 3 ); 269 270 /** 241 271 * Pozycja z podmenu (np. Audiobooki) jako aktywna – WordPress oznacza tylko zwykle linki. 242 272 * 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). 243 276 */ 244 277 function seaglass_submenu_current( $content, $block ) { … … 246 279 return $content; 247 280 } 248 $norm = static function ( $url ) {281 $norm = static function ( $url ) { 249 282 return untrailingslashit( wp_make_link_relative( strtok( html_entity_decode( (string) $url ), '?#' ) ) ); 250 283 }; 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 ); 252 289 $obj = get_queried_object(); 253 290 $state = ''; … … 285 322 /** 286 323 * Lista stron (domyslne menu, gdy nie ma wlasnego) – ikony dla kazdego linku. 324 * 325 * @param string $content Kod HTML bloku. 287 326 */ 288 327 function seaglass_capsule_page_list( $content ) { … … 302 341 /** 303 342 * 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). 304 346 */ 305 347 function seaglass_search_popover( $content, $block ) { … … 324 366 /** 325 367 * 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). 326 371 */ 327 372 function seaglass_capsule_labels( $content, $block ) { … … 344 389 * Woo samo doczepia konto i mini-koszyk za kazda nawigacja (block hooks). 345 390 * 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. 346 395 */ 347 396 function seaglass_unhook_woo_header_blocks( $hooked, $position, $anchor ) { … … 359 408 wp_enqueue_style( 'seaglass-capsule', get_theme_file_uri( 'assets/css/capsule.css' ), array(), seaglass_asset_ver( 'assets/css/capsule.css' ) ); 360 409 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( 365 412 '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' ); 368 429 } 369 430 add_action( 'wp_enqueue_scripts', 'seaglass_capsule_styles' ); -
seaglass/0.10.4/inc/companion.php
r353328 r356347 96 96 /** 97 97 * 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”). 98 101 */ 99 function seaglass_companion_notice_script() { 102 function seaglass_companion_notice_script( $hook_suffix ) { 103 if ( ! in_array( $hook_suffix, array( 'index.php', 'themes.php', 'plugins.php' ), true ) ) { 104 return; 105 } 100 106 if ( seaglass_companion_active() || get_user_meta( get_current_user_id(), 'seaglass_tools_notice_dismissed', true ) ) { 101 107 return; … … 133 139 'sg-product-faq' => __( 'Product FAQ – questions from the Digital details tab of the product.', 'seaglass' ) . $needs, 134 140 ); 135 $css = '';141 $css = ''; 136 142 foreach ( $notes as $class => $text ) { 137 143 $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 128 128 <!-- /wp:separator --> 129 129 <!-- 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 131 132 /* translators: 1: theme name with a link, 2: theme author */ 132 133 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> 134 136 <!-- /wp:paragraph --> 135 137 </footer> -
seaglass/0.10.4/inc/term-content.php
r353328 r356347 44 44 * Obrazek naglowka kategorii: pusta grupa „sg-term-hero” zamieniana na obrazek (albo znika). 45 45 * 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). 46 49 */ 47 50 function seaglass_term_hero_render( $content, $block ) { … … 76 79 /** 77 80 * 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). 78 84 */ 79 85 function seaglass_term_bottom_placeholder( $content, $block ) { … … 88 94 * Podkategorie jako kapsulki pod opisem kategorii (pusta grupa „sg-subcats” w szablonie). 89 95 * 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). 90 99 */ 91 100 function seaglass_subcats_render( $content, $block ) { -
seaglass/0.10.4/inc/woocommerce.php
r353328 r356347 17 17 */ 18 18 function 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(); 20 20 $product = $id ? wc_get_product( $id ) : null; 21 21 return $product instanceof WC_Product ? $product : null; … … 52 52 'file_size' => array( 'Rozmiar pliku', 'File size' ), 53 53 ); 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 ) : ''; 56 56 // Seaglass Tools 0.7+: format w globalnym atrybucie „Format” (takze o innym slugu – wtyczka wie, ktory to). 57 57 if ( '' === $value && 'format' === $key && function_exists( 'seaglass_tools_product_formats' ) ) { … … 126 126 * Nakladki na zdjeciu produktu w siatce: promocja, nowosc, bestseller, format. 127 127 * 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. 128 132 */ 129 133 function seaglass_product_image_badges( $block_content, $block, $instance ) { … … 140 144 $percent = seaglass_sale_percent( $product ); 141 145 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>'; 143 147 } 144 148 … … 152 156 153 157 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>' ); 155 159 } 156 160 … … 180 184 /** 181 185 * 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. 182 190 */ 183 191 function seaglass_stock_indicator( $block_content, $block, $instance ) { … … 313 321 } 314 322 $allowed = array( 315 'a' => array( 'href' => true, 'target' => true, 'rel' => true ), 323 'a' => array( 324 'href' => true, 325 'target' => true, 326 'rel' => true, 327 ), 316 328 'strong' => array(), 317 329 'b' => array(), … … 345 357 * Po wyswietleniu: akcja „seaglass_product_faq_rendered” – wtyczka dodaje wtedy schema FAQPage 346 358 * 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). 347 362 */ 348 363 function seaglass_product_faq_render( $content, $block ) { … … 385 400 function seaglass_is_digital_product( $product ) { 386 401 static $cache = array(); 387 $id = $product->get_id();402 $id = $product->get_id(); 388 403 if ( isset( $cache[ $id ] ) ) { 389 404 return $cache[ $id ]; … … 432 447 } 433 448 449 /** 450 * Naglowek zakladki „Opis” z nazwa produktu. 451 * 452 * @param string $heading Domyslny naglowek. 453 * @return string 454 */ 434 455 function seaglass_description_heading( $heading ) { 435 456 $name = seaglass_product_name_for_heading(); … … 439 460 add_filter( 'woocommerce_product_description_heading', 'seaglass_description_heading' ); 440 461 462 /** 463 * Naglowek zakladki „Informacje dodatkowe” z nazwa produktu. 464 * 465 * @param string $heading Domyslny naglowek. 466 * @return string 467 */ 441 468 function seaglass_additional_info_heading( $heading ) { 442 469 $name = seaglass_product_name_for_heading(); … … 448 475 /** 449 476 * Naglowek opinii bez opinii (Woo nie ma na niego filtra). 477 * 478 * @param string $content Kod HTML bloku. 450 479 */ 451 480 function seaglass_product_details_headings( $content ) { … … 460 489 '/(<h2[^>]*class="[^"]*woocommerce-Reviews-title[^"]*"[^>]*>)(.*?)(<\/h2>)/s', 461 490 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 ) { 463 494 return $m[0]; 464 495 } … … 485 516 * Kapsula: zamiast mini-koszyka Woo (szuflada + skrypty + dwa ukryte naglowki H2 na kazdej stronie) 486 517 * 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). 487 521 */ 488 522 function seaglass_cart_link( $pre, $parsed_block ) { … … 493 527 $label = __( 'Cart', 'seaglass' ); 494 528 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 } 497 542 498 543 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 . ')' : '' ) ) . '">' … … 504 549 /** 505 550 * Okruszki: separator jako osobny element (strzalka rysowana w CSS), bez ukosnika. 551 * 552 * @param array $args Ustawienia okruszkow WooCommerce. 506 553 */ 507 554 function seaglass_breadcrumb_defaults( $args ) { … … 513 560 /** 514 561 * 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). 515 565 */ 516 566 function seaglass_home_more_link( $content, $block ) { … … 571 621 * Kafelki kategorii na stronie glownej: pusta grupa „sg-cat-tiles-auto” zamieniana przy kazdym 572 622 * 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). 573 626 */ 574 627 function seaglass_cat_tiles_render( $content, $block ) { … … 603 656 $visual = $chosen; 604 657 } 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 ); 606 668 } else { 607 669 $icon = seaglass_guess_icon( array( 'label' => $cat->name ), $cat->name ); … … 619 681 620 682 /** 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 roznic624 * 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 renderowanie637 * w <head>) oraz wc-add-to-cart poza sklepem nie maja nic do roboty: strona glowna, blog i wpisy uzywaja638 * blokow Woo (Interactivity API). Zostaja, gdy na stronie jest klasyczna petla produktow / shortcode639 * 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 /**659 683 * Okladki produktow na pierwszym ekranie bez leniwego ladowania (blok Woo zawsze daje loading="lazy", 660 684 * a to zwykle element LCP): na stronie produktu glowna okladka z fetchpriority="high", 661 685 * w sklepie i kategoriach pierwsze 4 karty (pierwsza z fetchpriority="high"). 686 * 687 * @param string $content Kod HTML bloku. 662 688 */ 663 689 function seaglass_product_image_priority( $content ) { … … 701 727 * Starsze siatki produktow Woo (np. „Nowe w sklepie” w pustym koszyku): 702 728 * 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. 703 733 */ 704 734 function seaglass_product_grid_item_image( $html, $data, $product ) { -
seaglass/0.10.4/languages/seaglass.pot
r353328 r356347 3 3 msgid "" 4 4 msgstr "" 5 "Project-Id-Version: Seaglass 0.10. 0\n"5 "Project-Id-Version: Seaglass 0.10.4\n" 6 6 "Report-Msgid-Bugs-To: https://wordpress.org/support/theme/seaglass\n" 7 7 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" … … 10 10 "Content-Type: text/plain; charset=UTF-8\n" 11 11 "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" 13 13 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 14 14 "X-Generator: WP-CLI 2.11.0\n" … … 17 17 #. Theme Name of the theme 18 18 #: style.css 19 #: functions.php:20 019 #: functions.php:204 20 20 msgid "Seaglass" 21 21 msgstr "" … … 36 36 msgstr "" 37 37 38 #: functions.php:21 338 #: functions.php:217 39 39 msgid "Cards" 40 40 msgstr "" 41 41 42 #: functions.php:2 4042 #: functions.php:265 43 43 msgid "(no title)" 44 44 msgstr "" 45 45 46 #: inc/capsule.php:7 146 #: inc/capsule.php:72 47 47 msgid "Book" 48 48 msgstr "" 49 49 50 #: inc/capsule.php:7 250 #: inc/capsule.php:73 51 51 msgid "Headphones" 52 52 msgstr "" 53 53 54 #: inc/capsule.php:7 354 #: inc/capsule.php:74 55 55 msgid "Video" 56 56 msgstr "" 57 57 58 #: inc/capsule.php:7 458 #: inc/capsule.php:75 59 59 msgid "Course" 60 60 msgstr "" 61 61 62 #: inc/capsule.php:7 562 #: inc/capsule.php:76 63 63 msgid "Languages" 64 64 msgstr "" 65 65 66 #: inc/capsule.php:7 666 #: inc/capsule.php:77 67 67 msgid "Music" 68 68 msgstr "" 69 69 70 #: inc/capsule.php:7 770 #: inc/capsule.php:78 71 71 msgid "Microphone" 72 72 msgstr "" 73 73 74 #: inc/capsule.php:7 874 #: inc/capsule.php:79 75 75 msgid "Writing" 76 76 msgstr "" 77 77 78 #: inc/capsule.php: 7978 #: inc/capsule.php:80 79 79 msgid "Business" 80 80 msgstr "" 81 81 82 #: inc/capsule.php:8 082 #: inc/capsule.php:81 83 83 msgid "Cooking" 84 84 msgstr "" 85 85 86 #: inc/capsule.php:8 186 #: inc/capsule.php:82 87 87 msgid "Health" 88 88 msgstr "" 89 89 90 #: inc/capsule.php:8 290 #: inc/capsule.php:83 91 91 msgid "Sport" 92 92 msgstr "" 93 93 94 #: inc/capsule.php:8 394 #: inc/capsule.php:84 95 95 msgid "Nature" 96 96 msgstr "" 97 97 98 #: inc/capsule.php:8 498 #: inc/capsule.php:85 99 99 msgid "Art" 100 100 msgstr "" 101 101 102 #: inc/capsule.php:8 5102 #: inc/capsule.php:86 103 103 msgid "Photos" 104 104 msgstr "" 105 105 106 #: inc/capsule.php:8 6106 #: inc/capsule.php:87 107 107 msgid "Programming" 108 108 msgstr "" 109 109 110 #: inc/capsule.php:8 7110 #: inc/capsule.php:88 111 111 msgid "Travel" 112 112 msgstr "" 113 113 114 #: inc/capsule.php:8 8114 #: inc/capsule.php:89 115 115 msgid "Kids" 116 116 msgstr "" 117 117 118 #: inc/capsule.php: 89118 #: inc/capsule.php:90 119 119 msgid "Highlighted" 120 120 msgstr "" 121 121 122 #: inc/capsule.php:9 0122 #: inc/capsule.php:91 123 123 msgid "Gifts" 124 124 msgstr "" 125 125 126 #: inc/capsule.php:9 1126 #: inc/capsule.php:92 127 127 msgid "Promotions" 128 128 msgstr "" 129 129 130 #: inc/capsule.php:9 2130 #: inc/capsule.php:93 131 131 msgid "Shopping" 132 132 msgstr "" 133 133 134 134 #. translators: %s: category name 135 #: inc/capsule.php:2 21135 #: inc/capsule.php:235 136 136 msgid "All: %s" 137 137 msgstr "" 138 138 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 141 142 msgid "Close" 142 143 msgstr "" 143 144 144 #: inc/capsule.php:3 14145 #: inc/capsule.php:356 145 146 msgid "Open search" 146 147 msgstr "" 147 148 148 #: inc/capsule.php:3 15149 #: inc/capsule.php:357 149 150 #: patterns/404.php:20 150 151 #: patterns/header.php:33 … … 153 154 msgstr "" 154 155 155 #: inc/capsule.php:3 17156 #: inc/capsule.php:359 156 157 #: patterns/header.php:33 157 158 msgid "What are you looking for?" 158 159 msgstr "" 159 160 160 #: inc/capsule.php:3 33161 #: inc/capsule.php:378 161 162 msgid "Account" 162 163 msgstr "" 163 164 164 #: inc/capsule.php:3 36165 #: inc/woocommerce.php: 484165 #: inc/capsule.php:381 166 #: inc/woocommerce.php:527 166 167 msgid "Cart" 168 msgstr "" 169 170 #: inc/capsule.php:422 171 msgid "Menu" 172 msgstr "" 173 174 #: inc/capsule.php:423 175 msgid "More" 176 msgstr "" 177 178 #: inc/capsule.php:424 179 msgid "More menu items" 167 180 msgstr "" 168 181 … … 171 184 msgstr "" 172 185 173 #: inc/companion.php:8 0186 #: inc/companion.php:81 174 187 msgid "Install Seaglass Tools" 175 188 msgstr "" 176 189 177 #: inc/companion.php:8 5190 #: inc/companion.php:86 178 191 msgid "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." 179 192 msgstr "" 180 193 181 #: inc/companion.php:8 8194 #: inc/companion.php:89 182 195 msgid "Don’t show again" 183 196 msgstr "" 184 197 185 #: inc/companion.php:1 27186 #: inc/companion.php:16 0198 #: inc/companion.php:134 199 #: inc/companion.php:167 187 200 msgid "(requires the Seaglass Tools plugin)" 188 201 msgstr "" 189 202 190 #: inc/companion.php:1 29203 #: inc/companion.php:136 191 204 msgid "Category header image – set it in Products → Categories." 192 205 msgstr "" 193 206 194 #: inc/companion.php:13 0207 #: inc/companion.php:137 195 208 msgid "Subcategories of the current category appear here." 196 209 msgstr "" 197 210 198 #: inc/companion.php:13 1211 #: inc/companion.php:138 199 212 msgid "Category description below the products – set it in Products → Categories." 200 213 msgstr "" 201 214 202 #: inc/companion.php:13 2215 #: inc/companion.php:139 203 216 msgid "Product FAQ – questions from the Digital details tab of the product." 204 217 msgstr "" 205 218 206 #: inc/companion.php:1 55219 #: inc/companion.php:162 207 220 msgid "Lead under the title" 208 221 msgstr "" … … 238 251 239 252 #. translators: 1: theme name with a link, 2: theme author 240 #: inc/footer.php:13 2253 #: inc/footer.php:133 241 254 msgid "Theme %1$s by %2$s" 242 255 msgstr "" 243 256 244 257 #. translators: %s: category name 245 #: inc/term-content.php:1 21258 #: inc/term-content.php:130 246 259 msgid "Subcategories: %s" 247 260 msgstr "" … … 263 276 msgstr "" 264 277 265 #: inc/woocommerce.php:142 278 #. translators: %d: discount percentage 279 #: inc/woocommerce.php:146 280 msgid "−%d%%" 281 msgstr "" 282 283 #. translators: %d: discount percentage 284 #: inc/woocommerce.php:146 266 285 msgid "Sale" 267 286 msgstr "" 268 287 269 #: inc/woocommerce.php:1 46288 #: inc/woocommerce.php:150 270 289 msgid "New" 271 290 msgstr "" 272 291 273 #: inc/woocommerce.php:15 0292 #: inc/woocommerce.php:154 274 293 msgid "Bestseller" 275 294 msgstr "" 276 295 277 #: inc/woocommerce.php:15 4296 #: inc/woocommerce.php:158 278 297 msgid "Unavailable" 279 298 msgstr "" 280 299 281 #: inc/woocommerce.php:2 03300 #: inc/woocommerce.php:211 282 301 msgid "Instant download" 283 302 msgstr "" 284 303 285 #: inc/woocommerce.php:2 39304 #: inc/woocommerce.php:247 286 305 msgid "Opens on your phone, tablet and computer – even offline." 287 306 msgstr "" 288 307 289 #: inc/woocommerce.php:24 1308 #: inc/woocommerce.php:249 290 309 msgid "Read it on your phone, computer and e-reader – even offline." 291 310 msgstr "" 292 311 293 #: inc/woocommerce.php:2 43312 #: inc/woocommerce.php:251 294 313 msgid "Listen on your phone and computer – even offline." 295 314 msgstr "" 296 315 297 #: inc/woocommerce.php:2 45316 #: inc/woocommerce.php:253 298 317 msgid "Watch it on your phone, tablet and computer – even offline." 299 318 msgstr "" 300 319 301 #: inc/woocommerce.php:2 63320 #: inc/woocommerce.php:271 302 321 msgid "Author" 303 322 msgstr "" 304 323 305 #: inc/woocommerce.php:2 64324 #: inc/woocommerce.php:272 306 325 msgid "Narrator" 307 326 msgstr "" 308 327 309 #: inc/woocommerce.php:2 65328 #: inc/woocommerce.php:273 310 329 #: patterns/shop-sidebar-filters.php:75 311 330 msgid "Format" 312 331 msgstr "" 313 332 314 #: inc/woocommerce.php:2 66333 #: inc/woocommerce.php:274 315 334 msgid "Length" 316 335 msgstr "" 317 336 318 #: inc/woocommerce.php:2 67337 #: inc/woocommerce.php:275 319 338 msgid "Language" 320 339 msgstr "" 321 340 322 #: inc/woocommerce.php:2 68341 #: inc/woocommerce.php:276 323 342 msgid "File size" 324 343 msgstr "" 325 344 326 #: inc/woocommerce.php:2 77345 #: inc/woocommerce.php:285 327 346 msgid "Delivery" 328 347 msgstr "" 329 348 330 #: inc/woocommerce.php:2 77349 #: inc/woocommerce.php:285 331 350 msgid "Right after payment: a link on screen and by e-mail" 332 351 msgstr "" 333 352 334 #: inc/woocommerce.php:2 82353 #: inc/woocommerce.php:290 335 354 msgid "Download right after purchase" 336 355 msgstr "" 337 356 338 357 #. translators: %s: product name 339 #: inc/woocommerce.php:3 63358 #: inc/woocommerce.php:378 340 359 msgid "Frequently asked questions: %s" 341 360 msgstr "" 342 361 343 362 #. translators: %s: product name 344 #: inc/woocommerce.php:4 28363 #: inc/woocommerce.php:458 345 364 msgid "Description: %s" 346 365 msgstr "" 347 366 348 367 #. translators: %s: product name 349 #: inc/woocommerce.php:4 35368 #: inc/woocommerce.php:471 350 369 msgid "Details: %s" 351 370 msgstr "" 352 371 353 372 #. translators: %s: product name 354 #: inc/woocommerce.php:4 57373 #: inc/woocommerce.php:497 355 374 msgid "Reviews: %s" 356 375 msgstr "" 357 376 358 377 #. translators: %d: number of products 359 #: inc/woocommerce.php:5 23378 #: inc/woocommerce.php:582 360 379 msgid "%d product" 361 380 msgid_plural "%d products" … … 364 383 365 384 #. translators: %s: the word „automatic” (seaglass_chosen_categories() also accepts it). 366 #: inc/woocommerce.php: 544385 #: inc/woocommerce.php:603 367 386 #: patterns/categories.php:20 368 387 msgid "automatic" … … 861 880 msgstr "" 862 881 863 #: styles/ksiegarnia.json styles/kuchnia.json styles/minimal.json styles/scena.json theme.json882 #: theme.json styles/ksiegarnia.json styles/kuchnia.json styles/minimal.json styles/scena.json 864 883 msgctxt "Font family name" 865 884 msgid "System sans-serif" … … 871 890 msgstr "" 872 891 873 #: styles/cieply-pastel.json styles/fiolek.json styles/ksiegarnia.json styles/kuchnia.json styles/minimal.json styles/scena.json theme.json892 #: theme.json styles/cieply-pastel.json styles/fiolek.json styles/ksiegarnia.json styles/kuchnia.json styles/minimal.json styles/scena.json 874 893 msgctxt "Color name" 875 894 msgid "Background" 876 895 msgstr "" 877 896 878 #: styles/cieply-pastel.json styles/fiolek.json styles/ksiegarnia.json styles/kuchnia.json styles/minimal.json styles/scena.json theme.json897 #: theme.json styles/cieply-pastel.json styles/fiolek.json styles/ksiegarnia.json styles/kuchnia.json styles/minimal.json styles/scena.json 879 898 msgctxt "Color name" 880 899 msgid "Surface" … … 906 925 msgstr "" 907 926 908 #: styles/cieply-pastel.json styles/fiolek.json styles/ksiegarnia.json styles/kuchnia.json styles/minimal.json styles/scena.json theme.json927 #: theme.json styles/cieply-pastel.json styles/fiolek.json styles/ksiegarnia.json styles/kuchnia.json styles/minimal.json styles/scena.json 909 928 msgctxt "Color name" 910 929 msgid "Muted text" 911 930 msgstr "" 912 931 913 #: styles/cieply-pastel.json styles/fiolek.json styles/ksiegarnia.json styles/kuchnia.json styles/minimal.json styles/scena.json theme.json932 #: theme.json styles/cieply-pastel.json styles/fiolek.json styles/ksiegarnia.json styles/kuchnia.json styles/minimal.json styles/scena.json 914 933 msgctxt "Color name" 915 934 msgid "Lines" … … 921 940 msgstr "" 922 941 923 #: styles/cieply-pastel.json styles/fiolek.json styles/ksiegarnia.json styles/kuchnia.json styles/minimal.json styles/scena.json theme.json942 #: theme.json styles/cieply-pastel.json styles/fiolek.json styles/ksiegarnia.json styles/kuchnia.json styles/minimal.json styles/scena.json 924 943 msgctxt "Color name" 925 944 msgid "In stock" 926 945 msgstr "" 927 946 928 #: styles/cieply-pastel.json styles/fiolek.json styles/ksiegarnia.json styles/kuchnia.json styles/minimal.json styles/scena.json theme.json947 #: theme.json styles/cieply-pastel.json styles/fiolek.json styles/ksiegarnia.json styles/kuchnia.json styles/minimal.json styles/scena.json 929 948 msgctxt "Gradient name" 930 949 msgid "Sea" 931 950 msgstr "" 932 951 933 #: styles/cieply-pastel.json styles/fiolek.json styles/ksiegarnia.json styles/kuchnia.json styles/minimal.json styles/scena.json theme.json952 #: theme.json styles/cieply-pastel.json styles/fiolek.json styles/ksiegarnia.json styles/kuchnia.json styles/minimal.json styles/scena.json 934 953 msgctxt "Gradient name" 935 954 msgid "Soft sea" -
seaglass/0.10.4/readme.txt
r353377 r356347 4 4 Tested up to: 7.1 5 5 Requires PHP: 7.4 6 Stable tag: 0.10. 36 Stable tag: 0.10.4 7 7 License: GPLv2 or later 8 8 License URI: http://www.gnu.org/licenses/gpl-2.0.html … … 16 16 * Product page with a facts box (author, narrator, format, length, language, file size), sample link or audio player and product FAQ. 17 17 * 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. 19 19 * Six style variations: Minimal, Bookshop, Kitchen, Stage, Warm pastel and Violet. 20 21 WooCommerce is recommended, but not required: without it the shop sections are hidden and the theme works as a regular blog theme. 20 22 21 23 The theme is translation ready. Translations are provided through translate.wordpress.org. … … 39 41 40 42 == 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 41 52 = 0.10.3 = 42 53 * 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 7 7 Tested up to: 7.1 8 8 Requires PHP: 7.4 9 Version: 0.10. 39 Version: 0.10.4 10 10 License: GNU General Public License v2 or later 11 11 License URI: http://www.gnu.org/licenses/gpl-2.0.html 12 12 Text Domain: seaglass 13 Tags: e-commerce, blog, block-patterns, full-site-editing, wide-blocks, one-column, custom-colors, editor-style 13 Tags: e-commerce, blog, block-patterns, full-site-editing, wide-blocks, one-column, custom-colors, editor-style, style-variations, translation-ready 14 14 */ 15 15 -
seaglass/0.10.4/templates/front-page.html
r353328 r356347 5 5 <!-- wp:pattern {"slug":"seaglass/hero"} /--> 6 6 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"> 9 9 <!-- wp:pattern {"slug":"seaglass/categories"} /--> 10 10 </div> 11 11 <!-- /wp:group --> 12 12 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"> 15 15 <!-- wp:pattern {"slug":"seaglass/home-new"} /--> 16 16 </div> … … 23 23 <!-- /wp:group --> 24 24 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"> 27 27 <!-- wp:pattern {"slug":"seaglass/home-featured"} /--> 28 28 </div> -
seaglass/0.10.4/templates/page-no-title.html
r353328 r356347 2 2 <!-- wp:group {"tagName":"main","anchor":"main","layout":{"type":"constrained"}} --> 3 3 <main class="wp-block-group" id="main"> 4 <!-- wp:post-content {" layout":{"type":"constrained"}} /-->4 <!-- wp:post-content {"align":"full","layout":{"type":"constrained"}} /--> 5 5 </main> 6 6 <!-- /wp:group --> -
seaglass/0.10.4/templates/page.html
r353328 r356347 7 7 <!-- /wp:paragraph --> 8 8 <!-- wp:post-featured-image {"align":"wide"} /--> 9 <!-- wp:post-content {" layout":{"type":"constrained"}} /-->9 <!-- wp:post-content {"align":"full","layout":{"type":"constrained"}} /--> 10 10 </main> 11 11 <!-- /wp:group --> -
seaglass/0.10.4/templates/single.html
r353328 r356347 3 3 <!-- wp:group {"tagName":"main","anchor":"main","style":{"spacing":{"padding":{"top":"var:preset|spacing|60"}}},"layout":{"type":"constrained"}} --> 4 4 <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"> 7 7 <!-- wp:post-terms {"term":"category","className":"sg-post-cat"} /--> 8 8 <!-- wp:post-title {"level":1,"className":"sg-article__title"} /--> … … 17 17 <!-- /wp:group --> 18 18 <!-- 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"}} /--> 20 20 <!-- wp:pattern {"slug":"seaglass/post-footer"} /--> 21 21 <!-- wp:comments {"className":"sg-comments"} -->
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)