@gemboss/gem-framework 0.9.3 → 0.10.0
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.
- package/README.md +75 -0
- package/dist/SOURCE.json +3 -3
- package/dist/gem-framework.css +27 -37
- package/dist/gem-runtime.js +45 -2
- package/dist/index.js +300 -57
- package/dist/plugins/hero-slideshow.js +5 -1
- package/dist/plugins/media-gallery.js +25 -0
- package/dist/plugins/sticky-atc.js +15 -1
- package/dist/primitives.css +9 -23
- package/dist/section-gate.js +3287 -1
- package/dist/sections.css +18 -14
- package/package.json +1 -1
package/dist/sections.css
CHANGED
|
@@ -643,8 +643,8 @@ sticky-header.header-wrapper {
|
|
|
643
643
|
.gem-section__heading {
|
|
644
644
|
margin: 0;
|
|
645
645
|
font-family: var(--gem-font-heading);
|
|
646
|
-
font-size: clamp(calc(2rem * var(--gem-typography-heading-scale, 1)), calc(4vw * var(--gem-typography-heading-scale, 1)), calc(4rem * var(--gem-typography-heading-scale, 1)));
|
|
647
|
-
line-height: 1.04;
|
|
646
|
+
font-size: var(--gem-section-heading-size, clamp(calc(2rem * var(--gem-typography-heading-scale, 1)), calc(4vw * var(--gem-typography-heading-scale, 1)), calc(4rem * var(--gem-typography-heading-scale, 1))));
|
|
647
|
+
line-height: var(--gem-font-heading-line-height, 1.04);
|
|
648
648
|
}
|
|
649
649
|
.gem-section__body {
|
|
650
650
|
margin: 0;
|
|
@@ -761,20 +761,20 @@ sticky-header.header-wrapper {
|
|
|
761
761
|
}
|
|
762
762
|
}
|
|
763
763
|
@media (max-width: 760px) {
|
|
764
|
-
.gem-section { padding-block: calc(var(--gem-layout-section, 64px) * 0.72); }
|
|
764
|
+
.gem-section { padding-block: var(--gem-layout-section-mobile, calc(var(--gem-layout-section, 64px) * 0.72)); }
|
|
765
765
|
.gem-section__inner, .gem-container { width: min(100% - 32px, var(--gem-layout-page, 1180px)); }
|
|
766
|
-
.gem-section__heading { font-size: clamp(1.75rem, 9vw, 2.75rem); }
|
|
766
|
+
.gem-section__heading { font-size: var(--gem-section-heading-size-mobile, clamp(1.75rem, 9vw, 2.75rem)); }
|
|
767
767
|
.gem-section__grid { grid-template-columns: minmax(0, 1fr); }
|
|
768
768
|
.gem-section:is([data-gem-composition-mode='split-collage'], [data-gem-editorial-band-mode='media-story']) .gem-section__grid { grid-template-columns: minmax(0, 1fr); }
|
|
769
769
|
.gem-product-main[data-gem-product-main-layout='dawn-main'] .gem-product-main__inner { grid-template-columns: minmax(0, 1fr); }
|
|
770
770
|
.gem-product-main[data-gem-product-main-layout='dawn-main'] .gem-product-main__summary { position: static; }
|
|
771
771
|
.gem-section:is([data-gem-composition-mode='slideshow'], [data-gem-composition-mode='video-led']) .gem-section__inner { min-block-size: min(62vh, 560px); }
|
|
772
772
|
}
|
|
773
|
-
:where(.gem-section[data-gem-eyebrow='show']) .gem-section__eyebrow { display: block; letter-spacing: 0.12em; }
|
|
774
|
-
:where(.gem-section[data-gem-heading='section']) .gem-section__heading { margin: 0; font-family: var(--gem-font-heading); font-size: var(--gem-h2); line-height: 1.1; letter-spacing: -0.01em; text-wrap: balance; }
|
|
773
|
+
:where(.gem-section[data-gem-eyebrow='show']) .gem-section__eyebrow { display: block; font-size: var(--gem-text-sm); letter-spacing: 0.12em; }
|
|
774
|
+
:where(.gem-section[data-gem-heading='section']) .gem-section__heading { margin: 0; font-family: var(--gem-font-heading); font-size: var(--gem-section-heading-size, var(--gem-h2)); line-height: var(--gem-font-heading-line-height, 1.1); letter-spacing: -0.01em; text-wrap: balance; }
|
|
775
775
|
:where(.gem-section[data-gem-body='section']) .gem-section__body { margin: 0; color: var(--gem-color-muted); font-size: var(--gem-body); line-height: var(--gem-font-body-line-height, 1.5); }
|
|
776
776
|
@media (max-width: 760px) {
|
|
777
|
-
:where(.gem-section[data-gem-heading='section']) .gem-section__heading { font-size: min(var(--gem-h2), clamp(1.75rem, 9vw, 2.75rem)); }
|
|
777
|
+
:where(.gem-section[data-gem-heading='section']) .gem-section__heading { font-size: var(--gem-section-heading-size-mobile, min(var(--gem-h2), clamp(1.75rem, 9vw, 2.75rem))); }
|
|
778
778
|
}
|
|
779
779
|
.gem-row:where(:not([hidden])) { --gem-row-auto-sm: repeat(var(--gem-row-cols-sm), minmax(0, 1fr)); --gem-row-auto-md: repeat(var(--gem-row-cols-md), minmax(0, 1fr)); --gem-row-auto-lg: repeat(var(--gem-row-cols), minmax(0, 1fr)); display: grid; grid-template-columns: var(--gem-row-tracks-sm, var(--gem-row-auto-sm, minmax(0, 1fr))); }
|
|
780
780
|
:where(.gem-row > *) { min-width: 0; --gem-row-cols: initial; --gem-row-cols-md: initial; --gem-row-cols-sm: initial; --gem-row-tracks: initial; --gem-row-tracks-md: initial; --gem-row-tracks-sm: initial; --gem-row-gap: initial; --gem-row-gap-y: initial; }
|
|
@@ -782,7 +782,7 @@ sticky-header.header-wrapper {
|
|
|
782
782
|
@media (min-width: 990px) { .gem-row { grid-template-columns: var(--gem-row-tracks, var(--gem-row-auto-lg, repeat(2, minmax(0, 1fr)))); } }
|
|
783
783
|
|
|
784
784
|
/* Dawn parity profile: locked default baseline; morph presets must opt out before applying Gem visual identity. */
|
|
785
|
-
:root { --gem-profile-mode: dawn-parity; --gem-layout-page: 1100px; --gem-layout-gutter: 32px; --gem-layout-section: 52px; --gem-radius-md: 0px; --gem-card-radius: 0px; --gem-media-radius: 0px; --gem-grid-column-gap: 8px; --gem-grid-row-gap: 8px; }
|
|
785
|
+
:root { --gem-profile-mode: dawn-parity; --gem-layout-page: 1100px; --gem-layout-gutter: 32px; --gem-layout-section: 52px; --gem-radius-md: 0px; --gem-card-radius: 0px; --gem-media-radius: 0px; --gem-grid-column-gap: 8px; --gem-grid-row-gap: 8px; --gem-heading-phone-cap: clamp(2rem, 11vw, 3.6rem); }
|
|
786
786
|
.utility-bar, .announcement-bar, .utility-bar__grid { min-height: 38px; }
|
|
787
787
|
.announcement-bar__message { margin: 0; min-height: 38px; padding-block: 10px; font-size: 0.75rem; font-weight: 400; letter-spacing: 0.04em; }
|
|
788
788
|
.announcement-bar__message span { font-size: 0.75rem; }
|
|
@@ -835,7 +835,9 @@ main > .gem-section:first-child { padding-top: 0; }
|
|
|
835
835
|
.gem-hero-banner--split-proof .gem-hero-banner__media, .gem-hero-banner--editorial .gem-hero-banner__media { position: relative; inset: auto; min-height: 26rem; height: 100%; overflow: hidden; border-radius: 6px; background: rgb(244 244 244); }
|
|
836
836
|
.gem-hero-banner--split-proof .gem-hero-banner__image, .gem-hero-banner--split-proof .gem-hero-banner__placeholder, .gem-hero-banner--editorial .gem-hero-banner__image, .gem-hero-banner--editorial .gem-hero-banner__placeholder { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
|
|
837
837
|
.gem-hero-banner .gem-section__content { max-width: 78rem; margin-inline: auto; }
|
|
838
|
-
.gem-hero-banner h1, .gem-hero-banner h2, .gem-section__heading { margin: 0 0 1.5rem; font-
|
|
838
|
+
.gem-hero-banner h1, .gem-hero-banner h2, .gem-section__heading { margin: 0 0 1.5rem; font-weight: 400; line-height: var(--gem-font-heading-line-height, 1.08); letter-spacing: 0; }
|
|
839
|
+
.gem-section__heading { font-size: var(--gem-section-heading-size, clamp(calc(2.5rem * var(--gem-typography-heading-scale, 1)), calc(4vw * var(--gem-typography-heading-scale, 1)), calc(5.2rem * var(--gem-typography-heading-scale, 1)))); }
|
|
840
|
+
.gem-hero-banner h1, .gem-hero-banner h2 { font-size: var(--gem-hero-heading-size, clamp(calc(2.5rem * var(--gem-typography-heading-scale, 1)), calc(4vw * var(--gem-typography-heading-scale, 1)), calc(5.2rem * var(--gem-typography-heading-scale, 1)))); }
|
|
839
841
|
.gem-section__eyebrow { display: none; }
|
|
840
842
|
.gem-hero-banner--compact-collection { min-height: auto; display: block; text-align: left; padding-block: 25px; }
|
|
841
843
|
.gem-hero-banner--compact-collection .gem-section__content, .gem-product-card-grid--quick-view-grid > .gem-section__inner { width: min(var(--gem-layout-page, 1200px), calc(100% - var(--gem-layout-gutter, 32px))); margin-inline: auto; }
|
|
@@ -850,7 +852,8 @@ main > .gem-section:first-child { padding-top: 0; }
|
|
|
850
852
|
.gem-rich-text--dawn-intro .gem-section__body { width: 100%; max-width: none; margin: 20px 0 0; font-size: 16px; line-height: 28.8px; }
|
|
851
853
|
.gem-rich-text--dawn-intro .gem-section__body p { margin: 0; }
|
|
852
854
|
.gem-rich-text--dawn-intro .gem-rich-text__blocks { display: block; width: 100%; }
|
|
853
|
-
.gem-button { min-width: 12rem; border-radius: 0; font-weight: 400; box-shadow: none; }
|
|
855
|
+
.gem-button { min-width: 12rem; border-radius: var(--gem-radius-button, 0); font-weight: 400; box-shadow: none; }
|
|
856
|
+
.gem-button:where(:not(.gem-button--link)) { font-weight: var(--gem-font-button-weight, 400); }
|
|
854
857
|
.gem-product-card-wrapper { display: block; min-width: 0; }
|
|
855
858
|
.gem-card, .gem-product-card { border: 0; border-radius: 0; box-shadow: none; background: transparent; padding: 0; }
|
|
856
859
|
.gem-product-card__media, .gem-media { border: 0; border-radius: 0; box-shadow: none; background: rgb(244 244 244); }
|
|
@@ -989,8 +992,8 @@ main > .gem-section:first-child { padding-top: 0; }
|
|
|
989
992
|
.gem-shell-footer__payment-fallback { display: inline-grid; place-items: center; min-width: 38px; height: 24px; border: 1px solid rgb(18 18 18 / 12%); border-radius: 3px; background: white; color: rgb(18 18 18 / 72%); font-size: 8px; line-height: 1; }
|
|
990
993
|
.gem-shell-footer__localization { order: -1; flex: 0 0 100%; width: 100%; }
|
|
991
994
|
.gem-shell-footer__localization .gem-select, .gem-shell-footer__localization > .gem-select { display: inline-flex; align-items: center; min-width: 210px; min-height: 45px; border: 1px solid rgb(18 18 18 / 55%); border-radius: 0; background: transparent; padding: 10px 36px 10px 12px; color: rgb(18 18 18); font-size: 13px; line-height: 18px; }
|
|
992
|
-
:where(.gem-section[data-gem-eyebrow='show']) .gem-section__eyebrow { display: block; letter-spacing: 0.12em; }
|
|
993
|
-
:where(.gem-section[data-gem-heading='section']) .gem-section__heading { margin: 0; font-family: var(--gem-font-heading); font-size: var(--gem-h2); line-height: 1.1; letter-spacing: -0.01em; text-wrap: balance; }
|
|
995
|
+
:where(.gem-section[data-gem-eyebrow='show']) .gem-section__eyebrow { display: block; font-size: var(--gem-text-sm); letter-spacing: 0.12em; }
|
|
996
|
+
:where(.gem-section[data-gem-heading='section']) .gem-section__heading { margin: 0; font-family: var(--gem-font-heading); font-size: var(--gem-section-heading-size, var(--gem-h2)); line-height: var(--gem-font-heading-line-height, 1.1); letter-spacing: -0.01em; text-wrap: balance; }
|
|
994
997
|
:where(.gem-section[data-gem-body='section']) .gem-section__body { margin: 0; color: var(--gem-color-muted); font-size: var(--gem-body); line-height: var(--gem-font-body-line-height, 1.5); }
|
|
995
998
|
@media (max-width: 760px) {
|
|
996
999
|
:root { --gem-layout-gutter: 24px; --gem-layout-section: 36px; }
|
|
@@ -1027,7 +1030,8 @@ main > .gem-section:first-child { padding-top: 0; }
|
|
|
1027
1030
|
.gem-product-card__content { padding-top: 8px; gap: 4px; }
|
|
1028
1031
|
.gem-product-card__title { font-size: 15px; line-height: 24px; }
|
|
1029
1032
|
.gem-product-card__price, .gem-product-card__price .gem-price { font-size: 16px; line-height: 24px; }
|
|
1030
|
-
.gem-
|
|
1033
|
+
.gem-section__heading { font-size: var(--gem-section-heading-size-mobile, var(--gem-heading-phone-cap)); }
|
|
1034
|
+
.gem-hero-banner h1, .gem-hero-banner h2 { font-size: var(--gem-hero-heading-size-mobile, var(--gem-heading-phone-cap)); }
|
|
1031
1035
|
.gem-featured-collection--editorial-grid .gem-section__grid, .gem-product-card-grid--quick-view-grid .gem-section__grid, .gem-main-search .gem-section__grid { grid-template-columns: repeat(var(--gem-product-card-grid-mobile-columns, 2), minmax(0, 1fr)); }
|
|
1032
1036
|
.gem-product-main[data-gem-product-main-layout='dawn-main'] > .gem-section__inner { width: calc(100% - 30px); }
|
|
1033
1037
|
.gem-product-main[data-gem-product-main-layout='dawn-main'] .gem-product-media-gallery__frame { display: flex; gap: 0; overflow-x: auto; scroll-snap-type: x mandatory; }
|
|
@@ -1108,7 +1112,7 @@ main > .gem-section:first-child { padding-top: 0; }
|
|
|
1108
1112
|
.gem-hero-video--dawn-video > .gem-section__inner, .gem-hero-video--dawn-video .gem-hero-video__inner, .gem-hero-video--dawn-video .gem-hero-video__media { height: 212px; min-height: 212px; }
|
|
1109
1113
|
.gem-advanced-list--feature-grid { height: 420px; min-height: 420px; padding-block: 36px; }
|
|
1110
1114
|
.gem-advanced-list--feature-grid .gem-section__grid { grid-template-columns: 1fr; }
|
|
1111
|
-
:where(.gem-section[data-gem-heading='section']) .gem-section__heading { font-size: min(var(--gem-h2), clamp(1.75rem, 9vw, 2.75rem)); }
|
|
1115
|
+
:where(.gem-section[data-gem-heading='section']) .gem-section__heading { font-size: var(--gem-section-heading-size-mobile, min(var(--gem-h2), clamp(1.75rem, 9vw, 2.75rem))); }
|
|
1112
1116
|
}
|
|
1113
1117
|
.gem-row:where(:not([hidden])) { --gem-row-auto-sm: repeat(var(--gem-row-cols-sm), minmax(0, 1fr)); --gem-row-auto-md: repeat(var(--gem-row-cols-md), minmax(0, 1fr)); --gem-row-auto-lg: repeat(var(--gem-row-cols), minmax(0, 1fr)); display: grid; grid-template-columns: var(--gem-row-tracks-sm, var(--gem-row-auto-sm, minmax(0, 1fr))); }
|
|
1114
1118
|
:where(.gem-row > *) { min-width: 0; --gem-row-cols: initial; --gem-row-cols-md: initial; --gem-row-cols-sm: initial; --gem-row-tracks: initial; --gem-row-tracks-md: initial; --gem-row-tracks-sm: initial; --gem-row-gap: initial; --gem-row-gap-y: initial; }
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gemboss/gem-framework",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.10.0",
|
|
4
4
|
"description": "gem-framework của GemTheme (CSS, runtime, token, bộ kiểm) cộng đúng bộ kiểm section gemtheme dùng khi duyệt. Build từ gemtheme, không sửa ở đây.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|