galali-shoptet 1.0.7 → 1.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/style.css +512 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "galali-shoptet",
3
- "version": "1.0.7",
3
+ "version": "1.0.9",
4
4
  "description": "Custom CSS for Galali Shoptet theme (designshop.galali.cz)",
5
5
  "main": "style.css",
6
6
  "style": "style.css",
package/style.css CHANGED
@@ -6656,3 +6656,515 @@ body.type-detail .content-wrapper-in {
6656
6656
  text-align: center !important;
6657
6657
  }
6658
6658
  }
6659
+
6660
+ /* ============================================================
6661
+ === Review fixes 4 (desktop polish dle improvement.txt) ===
6662
+ ============================================================ */
6663
+
6664
+ /* --- #1 Top bar: menu odkazy vertikálně na střed + rovnoměrné oddělovače ---
6665
+ Vendor přebíjí .top-navigation-menu na display:block (UL pak sedí nahoře,
6666
+ ne na středu). Vendor oddělovač li::before "|" je position:absolute → nestejné
6667
+ rozestupy. Force flex-center + oddělovač static, symetrický v mezeře. */
6668
+ .top-navigation-bar .top-navigation-menu {
6669
+ display: flex !important;
6670
+ align-items: center !important;
6671
+ }
6672
+ .top-navigation-bar ul.top-navigation-bar-menu {
6673
+ align-items: center;
6674
+ height: auto;
6675
+ gap: 0 !important;
6676
+ }
6677
+ .top-navigation-bar ul.top-navigation-bar-menu > li > a {
6678
+ padding: 0 13px;
6679
+ }
6680
+ .top-navigation-bar ul.top-navigation-bar-menu > li::before {
6681
+ content: "|" !important;
6682
+ position: static !important;
6683
+ display: inline-block !important;
6684
+ margin: 0 !important;
6685
+ color: var(--gl-mute);
6686
+ font-weight: var(--gl-w-regular);
6687
+ line-height: 1;
6688
+ align-self: center;
6689
+ }
6690
+ .top-navigation-bar ul.top-navigation-bar-menu > li:first-child::before {
6691
+ content: none !important;
6692
+ display: none !important;
6693
+ }
6694
+
6695
+ /* --- #2 Breadcrumbs: domeček + vertikální zarovnání + čisté oddělovače ---
6696
+ Vendor dává linkům min-height:38px (text pak sedí nahoře → "Pexesa, karty"
6697
+ vypadá níž) a chevron přes a::before/a::after. Zrušit obojí, oddělovač řešit
6698
+ přes .navigation-bullet jako "›", na první položku přidat ikonu domečku. */
6699
+ body:not(.in-index) .breadcrumbs a,
6700
+ body:not(.in-index) .breadcrumbs span {
6701
+ min-height: 0 !important;
6702
+ height: auto !important;
6703
+ line-height: 1;
6704
+ }
6705
+ body:not(.in-index) .breadcrumbs a::before,
6706
+ body:not(.in-index) .breadcrumbs a::after {
6707
+ content: none !important;
6708
+ display: none !important;
6709
+ }
6710
+ body:not(.in-index) .breadcrumbs > span {
6711
+ display: inline-flex !important;
6712
+ align-items: center;
6713
+ }
6714
+ /* Oddělovač "›" z navigation-bullet (vendor "/" skrytý display:none) */
6715
+ body:not(.in-index) .breadcrumbs .navigation-bullet {
6716
+ display: inline-flex !important;
6717
+ align-items: center;
6718
+ width: auto !important;
6719
+ height: auto !important;
6720
+ margin: 0 4px !important;
6721
+ padding: 0 !important;
6722
+ font-size: 0 !important;
6723
+ color: var(--gl-fg-2);
6724
+ opacity: .5;
6725
+ }
6726
+ body:not(.in-index) .breadcrumbs .navigation-bullet::before {
6727
+ content: "\203A"; /* › */
6728
+ font-size: 18px;
6729
+ line-height: 1;
6730
+ }
6731
+ /* Ikona domečku na první (home) položce */
6732
+ body:not(.in-index) .breadcrumbs a.navigation-home-icon {
6733
+ display: inline-flex !important;
6734
+ align-items: center;
6735
+ justify-content: center;
6736
+ width: 18px !important;
6737
+ height: 18px !important;
6738
+ min-height: 18px !important;
6739
+ flex: 0 0 18px;
6740
+ padding: 0 !important;
6741
+ background: center / 16px 16px no-repeat
6742
+ url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'><path d='M3 10.5 12 3l9 7.5'/><path d='M5 9.5V20h14V9.5'/></svg>") !important;
6743
+ opacity: .55;
6744
+ transition: opacity .15s;
6745
+ }
6746
+ body:not(.in-index) .breadcrumbs a.navigation-home-icon:hover { opacity: .9; }
6747
+
6748
+ /* --- #3 Řazení produktů: položky namačkané (column-gap normal=0) → provzdušnit ---
6749
+ .listSorting (div wrapper) má gap, ale skutečný UL .listSorting__controls ne. */
6750
+ ul.listSorting__controls {
6751
+ display: flex !important;
6752
+ flex-wrap: wrap;
6753
+ align-items: center;
6754
+ gap: 8px 28px !important;
6755
+ margin: 0;
6756
+ padding: 0;
6757
+ list-style: none;
6758
+ }
6759
+
6760
+ /* --- #4 Filtr: čitelný 2-sloupcový layout v šedivém kontejneru + černý slider ---
6761
+ col1 = Cena (slider), col2 = ostatní filtry (skladem + značky). */
6762
+ #filters.filters.visible {
6763
+ display: grid !important;
6764
+ grid-template-columns: 1fr 1fr;
6765
+ gap: 24px 48px;
6766
+ align-items: start;
6767
+ background: var(--gl-paper-2);
6768
+ padding: 28px 32px;
6769
+ margin: 0 0 32px;
6770
+ box-sizing: border-box;
6771
+ }
6772
+ #filters.filters.visible .slider-wrapper {
6773
+ grid-column: 1;
6774
+ grid-row: 1;
6775
+ width: 100% !important;
6776
+ max-width: none !important;
6777
+ margin: 0 !important;
6778
+ left: auto !important;
6779
+ box-sizing: border-box;
6780
+ }
6781
+ #filters.filters.visible #price-filter-form {
6782
+ grid-column: 1;
6783
+ grid-row: 2;
6784
+ margin: 0;
6785
+ }
6786
+ #filters.filters.visible .filter-sections {
6787
+ grid-column: 2;
6788
+ grid-row: 1 / span 2;
6789
+ margin: 0;
6790
+ }
6791
+ /* Slider modrý (jQuery UI) → černý */
6792
+ #filters .ui-slider-range {
6793
+ background: var(--gl-fg-1) !important;
6794
+ }
6795
+ #filters .ui-slider-handle {
6796
+ background: var(--gl-fg-1) !important;
6797
+ border-color: var(--gl-fg-1) !important;
6798
+ }
6799
+
6800
+ /* --- #5 Patička: logo zarovnat nahoru + start kontejneru jako copyright ---
6801
+ Vendor dává .site-name position:absolute (top:96px, left:20px) → logo plave
6802
+ dolů a vlevo. Static ho vrátí do flow → respektuje footer-rows padding (60px)
6803
+ = stejný start jako footer-bottom (copyright), a top-align s ostatními sloupci. */
6804
+ footer#footer .footer-rows .site-name {
6805
+ position: static !important;
6806
+ top: auto !important;
6807
+ left: auto !important;
6808
+ }
6809
+ /* Bootstrap `.container::before/::after` clearfix se ve flex containeru chová jako
6810
+ flex-item (0 šířky) → posune první obsah o `gap` (logo +60, copyright +16) →
6811
+ logo nezačínalo na stejné x jako copyright. Skrýt phantom pseudo-itemy. */
6812
+ footer#footer .container.footer-rows::before,
6813
+ footer#footer .container.footer-rows::after,
6814
+ footer#footer .container.footer-bottom::before,
6815
+ footer#footer .container.footer-bottom::after,
6816
+ footer#footer .footer-bottom::before,
6817
+ footer#footer .footer-bottom::after {
6818
+ display: none !important;
6819
+ content: none !important;
6820
+ }
6821
+
6822
+ /* --- #7 Detail produktu: hodnocení/značka/cena k sobě + stepper polish ---
6823
+ Obrázek (col1) spanuje 3 grid-řádky (~700px) → nafoukne auto-řádky a vznikne
6824
+ obří mezera mezi značkou (row2) a cenou (row3). Poslední řádek na 1fr →
6825
+ přebytečný prostor jde POD cenu, ne mezi značku a cenu. */
6826
+ body.type-detail .p-detail-inner {
6827
+ grid-template-rows: min-content min-content 1fr !important;
6828
+ row-gap: 8px !important;
6829
+ }
6830
+ body.type-detail .row.product-top > .col-lg-6.p-info-wrapper,
6831
+ body.type-detail .row.product-top > .p-info-wrapper {
6832
+ margin-top: 16px !important; /* malý odstup značka → cena, ne 170px */
6833
+ }
6834
+
6835
+ /* Stepper: vendor zabíjí pravý border (border-right:0 → "useknutá pravá část").
6836
+ Vynutit celý rámeček. */
6837
+ body.type-detail span.quantity {
6838
+ border: 1px solid var(--gl-stroke-1) !important;
6839
+ }
6840
+ /* Odstup stepperu od "Přidat do košíku" (bylo nalepené 12px) */
6841
+ body.type-detail div.add-to-cart {
6842
+ gap: 18px !important;
6843
+ }
6844
+ /* "Šipka nad jedničkou" = vendor increase/decrease tooltip (pop-up nad buttonem
6845
+ s CSS šipkou). Skrýt úplně. */
6846
+ body.type-detail span.quantity .increase-tooltip,
6847
+ body.type-detail span.quantity .decrease-tooltip,
6848
+ body.type-detail span.quantity .js-increase,
6849
+ body.type-detail span.quantity .js-decrease {
6850
+ display: none !important;
6851
+ }
6852
+ /* Pojistka: number spinner úplně pryč (i bez .amount class) */
6853
+ body.type-detail span.quantity input[type="number"]::-webkit-inner-spin-button,
6854
+ body.type-detail span.quantity input[type="number"]::-webkit-outer-spin-button {
6855
+ -webkit-appearance: none !important;
6856
+ appearance: none !important;
6857
+ display: none !important;
6858
+ margin: 0 !important;
6859
+ }
6860
+
6861
+ /* --- #8 Cart hover popup: čitelný layout řádku produktu ---
6862
+ Vendor řádek je display:table; navíc detail span.quantity (52px) prosakuje
6863
+ do widgetu na detail stránce → stepper přeteče buňku a překryje název/cenu.
6864
+ Přestavit na flex [obrázek | název+cena | stepper | ×] + kompaktní stepper. */
6865
+ #cart-widget .cart-widget-product {
6866
+ display: flex !important;
6867
+ align-items: center;
6868
+ gap: 14px;
6869
+ width: 100% !important;
6870
+ box-sizing: border-box;
6871
+ padding: 4px 0;
6872
+ }
6873
+ #cart-widget .cart-widget-product > * {
6874
+ display: block !important; /* zrušit table-cell */
6875
+ }
6876
+ #cart-widget .cart-widget-product-image {
6877
+ order: 1;
6878
+ flex: 0 0 56px;
6879
+ width: 56px !important;
6880
+ }
6881
+ #cart-widget .cart-widget-product-image a,
6882
+ #cart-widget .cart-widget-product-image img {
6883
+ width: 56px !important;
6884
+ height: 56px !important;
6885
+ object-fit: cover;
6886
+ }
6887
+ #cart-widget .cart-widget-product-name {
6888
+ order: 2;
6889
+ flex: 1 1 auto;
6890
+ min-width: 0;
6891
+ display: flex !important;
6892
+ flex-direction: column;
6893
+ gap: 2px;
6894
+ text-align: left !important;
6895
+ }
6896
+ #cart-widget .cart-widget-product-name strong {
6897
+ font-family: var(--gl-font-ui);
6898
+ font-size: 14px;
6899
+ font-weight: var(--gl-w-medium);
6900
+ line-height: 1.3;
6901
+ color: var(--gl-fg-1);
6902
+ }
6903
+ #cart-widget .cart-widget-product-name span {
6904
+ font-size: 14px;
6905
+ color: var(--gl-fg-2);
6906
+ }
6907
+ #cart-widget .cart-widget-product-unit {
6908
+ display: none !important; /* "ks" redundantní */
6909
+ }
6910
+ #cart-widget .cart-widget-product-amount {
6911
+ order: 3;
6912
+ flex: 0 0 auto;
6913
+ }
6914
+ #cart-widget .cart-widget-product-delete {
6915
+ order: 4;
6916
+ flex: 0 0 auto;
6917
+ }
6918
+ /* Kompaktní stepper ve widgetu (override detail leak) */
6919
+ #cart-widget span.quantity {
6920
+ height: 32px !important;
6921
+ border: 1px solid var(--gl-stroke-1) !important;
6922
+ width: auto !important;
6923
+ }
6924
+ #cart-widget span.quantity button.increase,
6925
+ #cart-widget span.quantity button.decrease {
6926
+ width: 26px !important;
6927
+ min-width: 26px !important;
6928
+ height: 30px !important;
6929
+ font-size: 14px !important;
6930
+ }
6931
+ #cart-widget span.quantity > label,
6932
+ #cart-widget span.quantity input.amount,
6933
+ #cart-widget span.quantity input[type="number"] {
6934
+ width: 32px !important;
6935
+ height: 30px !important;
6936
+ font-size: 14px !important;
6937
+ line-height: 30px !important;
6938
+ }
6939
+ /* Tooltip "šipka nad 1" + spinner pryč i ve widgetu */
6940
+ #cart-widget .increase-tooltip,
6941
+ #cart-widget .decrease-tooltip,
6942
+ #cart-widget .js-increase,
6943
+ #cart-widget .js-decrease {
6944
+ display: none !important;
6945
+ }
6946
+ #cart-widget input[type="number"]::-webkit-inner-spin-button,
6947
+ #cart-widget input[type="number"]::-webkit-outer-spin-button {
6948
+ -webkit-appearance: none !important;
6949
+ appearance: none !important;
6950
+ display: none !important;
6951
+ }
6952
+ /* "Dopravu máte zdarma!" — zvýraznit + oddělit (vendor fialová na child elementu) */
6953
+ #cart-widget .cart-free-shipping {
6954
+ display: block !important;
6955
+ background: var(--gl-paper-2) !important;
6956
+ padding: 10px 14px !important;
6957
+ margin: 10px 0 !important;
6958
+ text-align: center !important;
6959
+ border-radius: 2px;
6960
+ }
6961
+ #cart-widget .cart-free-shipping,
6962
+ #cart-widget .cart-free-shipping * {
6963
+ color: var(--gl-fg-1) !important;
6964
+ font-weight: var(--gl-w-medium) !important;
6965
+ }
6966
+
6967
+ /* --- #9 Checkout krok-1/2/3: sidebar překrývá formulář (blokuje klikání) ---
6968
+ Grid layout je scoped na `#cart-wrapper .row.cart-row`, ale na checkout krocích
6969
+ je `.row.cart-row` pod `.cart-inner > main.content` (NE #cart-wrapper) → grid se
6970
+ neaplikuje, row zůstane display:block. #checkoutSidebar má width:100% (grid-column:2
6971
+ ignorováno) → plovoucí přes col-md-8 → elementFromPoint vrací sidebar = nelze klikat.
6972
+ Řešení: aplikovat grid i mimo #cart-wrapper přes body.ordering-process. */
6973
+ body.ordering-process .row.cart-row {
6974
+ display: grid !important;
6975
+ grid-template-columns: 1fr 380px;
6976
+ grid-template-rows: auto;
6977
+ gap: 40px;
6978
+ margin: 0 !important;
6979
+ direction: ltr !important;
6980
+ }
6981
+ body.ordering-process .row.cart-row > #checkoutContent.col-md-8,
6982
+ body.ordering-process .row.cart-row > .col-md-8 {
6983
+ box-sizing: border-box;
6984
+ width: 100% !important;
6985
+ max-width: none !important;
6986
+ margin: 0 !important;
6987
+ float: none !important;
6988
+ grid-column: 1 !important;
6989
+ grid-row: 1 !important;
6990
+ direction: ltr;
6991
+ }
6992
+ body.ordering-process .row.cart-row > #checkoutSidebar.col-md-4,
6993
+ body.ordering-process .row.cart-row > .col-md-4 {
6994
+ box-sizing: border-box;
6995
+ width: 100% !important;
6996
+ max-width: none !important;
6997
+ margin: 0 !important;
6998
+ float: none !important;
6999
+ grid-column: 2 !important;
7000
+ grid-row: 1 !important;
7001
+ direction: ltr;
7002
+ }
7003
+ /* Mobil: stack pod sebe (1 sloupec), reset grid-column na obou */
7004
+ @media (max-width: 1023px) {
7005
+ body.ordering-process .row.cart-row {
7006
+ grid-template-columns: 1fr !important;
7007
+ gap: 28px;
7008
+ }
7009
+ body.ordering-process .row.cart-row > #checkoutContent.col-md-8,
7010
+ body.ordering-process .row.cart-row > .col-md-8,
7011
+ body.ordering-process .row.cart-row > #checkoutSidebar.col-md-4,
7012
+ body.ordering-process .row.cart-row > .col-md-4 {
7013
+ grid-column: 1 !important;
7014
+ }
7015
+ body.ordering-process .row.cart-row > #checkoutSidebar.col-md-4,
7016
+ body.ordering-process .row.cart-row > .col-md-4 {
7017
+ grid-row: 2 !important;
7018
+ }
7019
+ }
7020
+
7021
+ /* --- #6a Našeptávač (.search-whisperer): černé písmo + černý border + padding ---
7022
+ Vendor má modré písmo (rgb(16,118,183)), žádný border, padding 5px (nalepené). */
7023
+ .search-whisperer {
7024
+ border: 1px solid var(--gl-stroke-1) !important;
7025
+ border-top: 0 !important; /* navazuje na input s černým borderem */
7026
+ background: var(--gl-white) !important;
7027
+ padding: 8px !important;
7028
+ box-shadow: none !important;
7029
+ box-sizing: border-box;
7030
+ }
7031
+ .search-whisperer,
7032
+ .search-whisperer a,
7033
+ .search-whisperer span,
7034
+ .search-whisperer em,
7035
+ .search-whisperer li,
7036
+ .search-whisperer strong,
7037
+ .search-whisperer .search-whisperer-document {
7038
+ color: var(--gl-fg-1) !important;
7039
+ }
7040
+ .search-whisperer a,
7041
+ .search-whisperer .search-whisperer-document {
7042
+ display: block;
7043
+ padding: 9px 12px !important;
7044
+ text-decoration: none !important;
7045
+ border-radius: 2px;
7046
+ transition: background .12s;
7047
+ }
7048
+ .search-whisperer a:hover,
7049
+ .search-whisperer .search-whisperer-document:hover,
7050
+ .search-whisperer li:hover > a {
7051
+ background: var(--gl-paper-2) !important;
7052
+ color: var(--gl-fg-1) !important;
7053
+ }
7054
+ /* Nadpisy skupin (Kategorie / Produkty / Články) */
7055
+ .search-whisperer .search-whisperer-title,
7056
+ .search-whisperer h3,
7057
+ .search-whisperer .whisperer-heading {
7058
+ color: var(--gl-fg-2) !important;
7059
+ font-family: var(--gl-font-ui);
7060
+ font-size: 12px;
7061
+ font-weight: var(--gl-w-medium);
7062
+ text-transform: uppercase;
7063
+ letter-spacing: 0.06em;
7064
+ padding: 8px 12px 4px !important;
7065
+ }
7066
+
7067
+ /* --- #6b Výsledky vyhledávání: produkty do gridu jako kategorie (ne starý flex) --- */
7068
+ body.type-search .products.products-block,
7069
+ body.in-vyhledavani .products.products-block {
7070
+ display: grid !important;
7071
+ grid-template-columns: repeat(4, 1fr) !important;
7072
+ column-gap: 40px !important;
7073
+ row-gap: 50px !important;
7074
+ flex-wrap: nowrap !important;
7075
+ margin: 0 0 40px !important;
7076
+ padding: 0 !important;
7077
+ }
7078
+ body.type-search .products.products-block > .product {
7079
+ box-sizing: border-box;
7080
+ width: auto !important;
7081
+ max-width: none !important;
7082
+ flex: none !important;
7083
+ margin: 0 !important;
7084
+ padding: 0 !important;
7085
+ background: transparent !important;
7086
+ border: 0 !important;
7087
+ box-shadow: none !important;
7088
+ }
7089
+ body.type-search .products.products-block .product > .p,
7090
+ body.type-search .products.products-block .product div.p {
7091
+ display: flex !important;
7092
+ flex-direction: column;
7093
+ gap: 14px;
7094
+ height: auto;
7095
+ background: transparent;
7096
+ border: 0;
7097
+ box-shadow: none;
7098
+ }
7099
+ body.type-search .products.products-block .product a.image {
7100
+ display: block;
7101
+ position: relative;
7102
+ width: 100%;
7103
+ aspect-ratio: 1 / 1;
7104
+ margin: 0;
7105
+ background: var(--gl-surface-alt);
7106
+ overflow: hidden;
7107
+ border-radius: 0;
7108
+ }
7109
+ body.type-search .products.products-block .product a.image img {
7110
+ position: absolute;
7111
+ inset: 0;
7112
+ width: 100%;
7113
+ height: 100%;
7114
+ object-fit: cover;
7115
+ transition: transform .4s ease;
7116
+ }
7117
+ body.type-search .products.products-block .product:hover a.image img {
7118
+ transform: scale(1.04);
7119
+ }
7120
+ body.type-search .products.products-block .product a.name {
7121
+ display: block;
7122
+ height: auto !important;
7123
+ max-height: none !important;
7124
+ overflow: visible !important;
7125
+ min-height: 52px;
7126
+ margin: 0;
7127
+ padding: 0;
7128
+ color: var(--gl-fg-1);
7129
+ text-decoration: none;
7130
+ font-family: var(--gl-font-ui);
7131
+ font-size: 20px;
7132
+ font-weight: var(--gl-w-medium);
7133
+ line-height: 26px;
7134
+ }
7135
+ body.type-search .products.products-block .product a.name:hover {
7136
+ text-decoration: underline;
7137
+ text-underline-offset: 4px;
7138
+ }
7139
+ body.type-search .products.products-block .product .price.price-final,
7140
+ body.type-search .products.products-block .product .price.price-final strong {
7141
+ color: var(--gl-fg-1);
7142
+ font-family: var(--gl-font-ui);
7143
+ font-size: 20px;
7144
+ font-weight: var(--gl-w-regular);
7145
+ line-height: 24px;
7146
+ }
7147
+ /* Skrýt vendor meta na search kartách (kód, dostupnost, hvězdy, tlačítka) */
7148
+ body.type-search .products.products-block .product .ratings-wrapper,
7149
+ body.type-search .products.products-block .product .stars-wrapper,
7150
+ body.type-search .products.products-block .product .availability,
7151
+ body.type-search .products.products-block .product .p-code,
7152
+ body.type-search .products.products-block .product .p-desc,
7153
+ body.type-search .products.products-block .product .p-tools,
7154
+ body.type-search .products.products-block .product .add-to-cart {
7155
+ display: none !important;
7156
+ }
7157
+ @media (max-width: 1279px) {
7158
+ body.type-search .products.products-block {
7159
+ grid-template-columns: repeat(3, 1fr) !important;
7160
+ column-gap: 24px !important; row-gap: 36px !important;
7161
+ }
7162
+ }
7163
+ @media (max-width: 767px) {
7164
+ body.type-search .products.products-block {
7165
+ grid-template-columns: repeat(2, 1fr) !important;
7166
+ column-gap: 12px !important; row-gap: 24px !important;
7167
+ }
7168
+ body.type-search .products.products-block .product a.name { font-size: 14px; line-height: 18px; min-height: 36px; }
7169
+ body.type-search .products.products-block .product .price.price-final { font-size: 14px; }
7170
+ }