@primestyleai/tryon 3.10.0 → 3.12.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.
|
@@ -207,6 +207,7 @@ const en = {
|
|
|
207
207
|
"Looking for size chart data for this product": "Looking for size chart data for this product",
|
|
208
208
|
"How would you like to find your size?": "How would you like to find your size?",
|
|
209
209
|
"Size guide is not available for this product — sizing will use standard measurements": "Size guide is not available for this product — sizing will use standard measurements",
|
|
210
|
+
"This product doesn't have a size guide — you can still see how it looks on you!": "This product doesn't have a size guide — you can still see how it looks on you!",
|
|
210
211
|
"Size guide found for this product": "Size guide found for this product",
|
|
211
212
|
"Enter my measurements": "Enter my measurements",
|
|
212
213
|
"Chest, waist, hips, shoes & more": "Chest, waist, hips, shoes & more",
|
package/dist/primestyle-tryon.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { c as createT, A as ApiClient, S as SseClient, i as isValidImageFile, a as compressImage } from "./index-
|
|
2
|
-
import { P, b, T, d, r } from "./index-
|
|
1
|
+
import { c as createT, A as ApiClient, S as SseClient, i as isValidImageFile, a as compressImage } from "./index-25Bm_pob.js";
|
|
2
|
+
import { P, b, T, d, r } from "./index-25Bm_pob.js";
|
|
3
3
|
function detectProductImage() {
|
|
4
4
|
const ogImage = document.querySelector(
|
|
5
5
|
'meta[property="og:image"]'
|
package/dist/react/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx, jsxs, Fragment } from "react/jsx-runtime";
|
|
3
3
|
import { useState, useEffect, useMemo, useRef, useCallback } from "react";
|
|
4
|
-
import { c as createT, A as ApiClient, S as SseClient, i as isValidImageFile, a as compressImage, P as PrimeStyleError,
|
|
4
|
+
import { c as createT, A as ApiClient, S as SseClient, i as isValidImageFile, a as compressImage, P as PrimeStyleError, L as LOCALE_LABELS, b as SUPPORTED_LOCALES } from "../index-25Bm_pob.js";
|
|
5
5
|
const HEADER_ALIASES = {
|
|
6
6
|
// ── Size label columns (skipped during field derivation) ──
|
|
7
7
|
size: "__size__",
|
|
@@ -406,20 +406,6 @@ const FALLBACK_FIELDS_MALE = [
|
|
|
406
406
|
{ key: "inseam", label: "Inseam", required: false, unit: "cm", placeholder: "e.g. 81", category: "body" },
|
|
407
407
|
{ key: "footLengthCm", label: "Foot length", required: false, unit: "cm", placeholder: "e.g. 27", category: "shoe" }
|
|
408
408
|
];
|
|
409
|
-
const SIZING_COUNTRIES = [
|
|
410
|
-
{ code: "US", label: "United States" },
|
|
411
|
-
{ code: "UK", label: "United Kingdom" },
|
|
412
|
-
{ code: "EU", label: "Europe (EU)" },
|
|
413
|
-
{ code: "FR", label: "France" },
|
|
414
|
-
{ code: "IT", label: "Italy" },
|
|
415
|
-
{ code: "DE", label: "Germany" },
|
|
416
|
-
{ code: "ES", label: "Spain" },
|
|
417
|
-
{ code: "JP", label: "Japan" },
|
|
418
|
-
{ code: "CN", label: "China" },
|
|
419
|
-
{ code: "KR", label: "South Korea" },
|
|
420
|
-
{ code: "AU", label: "Australia" },
|
|
421
|
-
{ code: "BR", label: "Brazil" }
|
|
422
|
-
];
|
|
423
409
|
const STEP_LABELS = ["", "Welcome", "Size", "Your Fit", "Try On"];
|
|
424
410
|
const TOTAL_STEPS = 4;
|
|
425
411
|
function detectLocale() {
|
|
@@ -1268,11 +1254,16 @@ function PrimeStyleTryonInner({
|
|
|
1268
1254
|
}
|
|
1269
1255
|
return /* @__PURE__ */ jsxs("div", { className: "ps-tryon-sizing-choice", children: [
|
|
1270
1256
|
/* @__PURE__ */ jsx("h3", { className: "ps-tryon-section-title", children: t("How would you like to find your size?") }),
|
|
1271
|
-
sgChecked && !sgAvailable && /* @__PURE__ */
|
|
1272
|
-
|
|
1273
|
-
/* @__PURE__ */
|
|
1274
|
-
|
|
1275
|
-
|
|
1257
|
+
sgChecked && !sgAvailable && /* @__PURE__ */ jsxs("div", { className: "ps-tryon-sg-notice", children: [
|
|
1258
|
+
t("This product doesn't have a size guide — you can still see how it looks on you!"),
|
|
1259
|
+
/* @__PURE__ */ jsxs("button", { className: "ps-tryon-sg-notice-cta", onClick: () => {
|
|
1260
|
+
setSizingMethod(null);
|
|
1261
|
+
setView("upload");
|
|
1262
|
+
}, children: [
|
|
1263
|
+
t("Try It On"),
|
|
1264
|
+
" ",
|
|
1265
|
+
/* @__PURE__ */ jsx(ArrowRightIcon, {})
|
|
1266
|
+
] })
|
|
1276
1267
|
] }),
|
|
1277
1268
|
/* @__PURE__ */ jsxs("div", { className: "ps-tryon-choice-cards", children: [
|
|
1278
1269
|
/* @__PURE__ */ jsxs("button", { className: "ps-tryon-choice-card", onClick: () => {
|
|
@@ -1331,28 +1322,24 @@ function PrimeStyleTryonInner({
|
|
|
1331
1322
|
")"
|
|
1332
1323
|
] }, p.id))
|
|
1333
1324
|
] }) }),
|
|
1334
|
-
/* @__PURE__ */ jsxs("div", { className: "ps-tryon-
|
|
1335
|
-
/* @__PURE__ */
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
/* @__PURE__ */ jsx("
|
|
1342
|
-
|
|
1343
|
-
|
|
1344
|
-
|
|
1325
|
+
sizingMethod === "exact" && /* @__PURE__ */ jsxs("div", { className: "ps-tryon-unit-switch", children: [
|
|
1326
|
+
/* @__PURE__ */ jsxs("button", { className: `ps-tryon-unit-switch-btn${isCm ? " ps-active" : ""}`, onClick: () => {
|
|
1327
|
+
setSizingUnit("cm");
|
|
1328
|
+
setHeightUnit("cm");
|
|
1329
|
+
setWeightUnit("kg");
|
|
1330
|
+
}, children: [
|
|
1331
|
+
/* @__PURE__ */ jsx("span", { className: "ps-tryon-unit-switch-label", children: t("cm") }),
|
|
1332
|
+
/* @__PURE__ */ jsx("span", { className: "ps-tryon-unit-switch-sub", children: "cm / kg" })
|
|
1333
|
+
] }),
|
|
1334
|
+
/* @__PURE__ */ jsxs("button", { className: `ps-tryon-unit-switch-btn${!isCm ? " ps-active" : ""}`, onClick: () => {
|
|
1335
|
+
setSizingUnit("in");
|
|
1336
|
+
setHeightUnit("ft");
|
|
1337
|
+
setWeightUnit("lbs");
|
|
1338
|
+
}, children: [
|
|
1339
|
+
/* @__PURE__ */ jsx("span", { className: "ps-tryon-unit-switch-label", children: t("in") }),
|
|
1340
|
+
/* @__PURE__ */ jsx("span", { className: "ps-tryon-unit-switch-sub", children: "in / lbs" })
|
|
1345
1341
|
] })
|
|
1346
1342
|
] }),
|
|
1347
|
-
/* @__PURE__ */ jsxs("div", { className: "ps-tryon-input-row", children: [
|
|
1348
|
-
/* @__PURE__ */ jsx("label", { children: t("Sizing region") }),
|
|
1349
|
-
/* @__PURE__ */ jsx("select", { className: "ps-tryon-country-select", value: sizingCountry, onChange: (e) => setSizingCountry(e.target.value), children: SIZING_COUNTRIES.map((c) => /* @__PURE__ */ jsx("option", { value: c.code, children: t(c.label) }, c.code)) })
|
|
1350
|
-
] }),
|
|
1351
|
-
sizingMethod === "exact" && /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(UnitToggle, { options: [{ label: t("cm"), value: "cm" }, { label: t("in"), value: "in" }], value: sizingUnit, onChange: (v) => {
|
|
1352
|
-
setSizingUnit(v);
|
|
1353
|
-
setHeightUnit(v === "cm" ? "cm" : "ft");
|
|
1354
|
-
setWeightUnit(v === "cm" ? "kg" : "lbs");
|
|
1355
|
-
} }) }),
|
|
1356
1343
|
sizingMethod === "exact" ? /* @__PURE__ */ jsx(Fragment, { children: (() => {
|
|
1357
1344
|
const reqFields = dynamicFields.filter((f) => f.required);
|
|
1358
1345
|
const optFields = dynamicFields.filter((f) => !f.required);
|
|
@@ -1707,6 +1694,42 @@ function PrimeStyleTryonInner({
|
|
|
1707
1694
|
] })
|
|
1708
1695
|
] }) });
|
|
1709
1696
|
}
|
|
1697
|
+
function LangSwitcher({ activeLocale: current, onSelect }) {
|
|
1698
|
+
const [open, setOpen] = useState(false);
|
|
1699
|
+
const ref = useRef(null);
|
|
1700
|
+
const currentLabel = LOCALE_LABELS[current] || "English";
|
|
1701
|
+
useEffect(() => {
|
|
1702
|
+
if (!open) return;
|
|
1703
|
+
const handler = (e) => {
|
|
1704
|
+
if (ref.current && !ref.current.contains(e.target)) setOpen(false);
|
|
1705
|
+
};
|
|
1706
|
+
document.addEventListener("mousedown", handler);
|
|
1707
|
+
return () => document.removeEventListener("mousedown", handler);
|
|
1708
|
+
}, [open]);
|
|
1709
|
+
return /* @__PURE__ */ jsxs("div", { ref, className: "ps-tryon-lang-wrap", children: [
|
|
1710
|
+
/* @__PURE__ */ jsxs("button", { className: `ps-tryon-lang-trigger${open ? " ps-active" : ""}`, onClick: () => setOpen(!open), children: [
|
|
1711
|
+
/* @__PURE__ */ jsx(GlobeIcon, { size: 15 }),
|
|
1712
|
+
/* @__PURE__ */ jsx("span", { className: "ps-tryon-lang-current", children: currentLabel }),
|
|
1713
|
+
/* @__PURE__ */ jsx("span", { className: `ps-tryon-lang-arrow${open ? " ps-open" : ""}`, children: "▾" })
|
|
1714
|
+
] }),
|
|
1715
|
+
open && /* @__PURE__ */ jsx("div", { className: "ps-tryon-lang-dropdown", children: /* @__PURE__ */ jsx("div", { className: "ps-tryon-lang-list", children: SUPPORTED_LOCALES.map((code) => /* @__PURE__ */ jsxs(
|
|
1716
|
+
"button",
|
|
1717
|
+
{
|
|
1718
|
+
className: `ps-tryon-lang-item${code === current ? " ps-selected" : ""}`,
|
|
1719
|
+
onClick: () => {
|
|
1720
|
+
onSelect(code);
|
|
1721
|
+
setOpen(false);
|
|
1722
|
+
},
|
|
1723
|
+
children: [
|
|
1724
|
+
/* @__PURE__ */ jsx("span", { className: "ps-tryon-lang-name", children: LOCALE_LABELS[code] || code }),
|
|
1725
|
+
/* @__PURE__ */ jsx("span", { className: "ps-tryon-lang-code", children: code.toUpperCase() }),
|
|
1726
|
+
code === current && /* @__PURE__ */ jsx("span", { className: "ps-tryon-lang-check", children: /* @__PURE__ */ jsx(CheckIcon, { size: 12 }) })
|
|
1727
|
+
]
|
|
1728
|
+
},
|
|
1729
|
+
code
|
|
1730
|
+
)) }) })
|
|
1731
|
+
] });
|
|
1732
|
+
}
|
|
1710
1733
|
function renderBody() {
|
|
1711
1734
|
switch (view) {
|
|
1712
1735
|
case "welcome":
|
|
@@ -1740,18 +1763,7 @@ function PrimeStyleTryonInner({
|
|
|
1740
1763
|
/* @__PURE__ */ jsxs("div", { className: cx("ps-tryon-header", cn.header), children: [
|
|
1741
1764
|
/* @__PURE__ */ jsx("span", { className: cx("ps-tryon-title", cn.title), children: t("Virtual Try-On") }),
|
|
1742
1765
|
/* @__PURE__ */ jsxs("div", { className: "ps-tryon-header-actions", children: [
|
|
1743
|
-
/* @__PURE__ */
|
|
1744
|
-
/* @__PURE__ */ jsx(GlobeIcon, {}),
|
|
1745
|
-
/* @__PURE__ */ jsx(
|
|
1746
|
-
"select",
|
|
1747
|
-
{
|
|
1748
|
-
value: activeLocale,
|
|
1749
|
-
onChange: (e) => setActiveLocale(e.target.value),
|
|
1750
|
-
className: "ps-tryon-lang-select",
|
|
1751
|
-
children: SUPPORTED_LOCALES.map((code) => /* @__PURE__ */ jsx("option", { value: code, children: LOCALE_LABELS[code] || code }, code))
|
|
1752
|
-
}
|
|
1753
|
-
)
|
|
1754
|
-
] }),
|
|
1766
|
+
/* @__PURE__ */ jsx(LangSwitcher, { activeLocale, onSelect: setActiveLocale }),
|
|
1755
1767
|
profiles.length > 0 && /* @__PURE__ */ jsx("button", { className: "ps-tryon-header-icon", title: t("Profiles"), onClick: () => setDrawer(drawer === "profiles" ? null : "profiles"), children: /* @__PURE__ */ jsx(UserIcon, {}) }),
|
|
1756
1768
|
history.length > 0 && /* @__PURE__ */ jsx("button", { className: "ps-tryon-header-icon", title: t("History"), onClick: () => setDrawer(drawer === "history" ? null : "history"), children: /* @__PURE__ */ jsx(ClockIcon, {}) }),
|
|
1757
1769
|
/* @__PURE__ */ jsx("button", { onClick: handleClose, className: cx("ps-tryon-close", cn.closeButton), children: /* @__PURE__ */ jsx(XIcon, {}) })
|
|
@@ -1837,21 +1849,63 @@ const STYLES = `
|
|
|
1837
1849
|
.ps-tryon-close:hover { background: rgba(255,255,255,0.1); }
|
|
1838
1850
|
|
|
1839
1851
|
/* Language switcher */
|
|
1840
|
-
.ps-tryon-lang-
|
|
1841
|
-
|
|
1842
|
-
|
|
1843
|
-
|
|
1844
|
-
|
|
1845
|
-
|
|
1846
|
-
|
|
1847
|
-
|
|
1848
|
-
.ps-tryon-lang-
|
|
1849
|
-
|
|
1850
|
-
|
|
1851
|
-
|
|
1852
|
-
|
|
1853
|
-
|
|
1854
|
-
|
|
1852
|
+
.ps-tryon-lang-wrap { position: relative; z-index: 10; }
|
|
1853
|
+
.ps-tryon-lang-trigger {
|
|
1854
|
+
display: flex; align-items: center; gap: clamp(5px, 0.36vw, 7px);
|
|
1855
|
+
padding: clamp(5px, 0.36vw, 7px) clamp(10px, 0.73vw, 14px);
|
|
1856
|
+
border: 1.5px solid #333; border-radius: clamp(8px, 0.57vw, 11px);
|
|
1857
|
+
background: transparent; cursor: pointer; color: #999;
|
|
1858
|
+
transition: all 0.25s ease; font-family: inherit; white-space: nowrap;
|
|
1859
|
+
}
|
|
1860
|
+
.ps-tryon-lang-trigger:hover, .ps-tryon-lang-trigger.ps-active {
|
|
1861
|
+
border-color: #bb945c; color: #bb945c; background: rgba(187,148,92,0.06);
|
|
1862
|
+
}
|
|
1863
|
+
.ps-tryon-lang-trigger svg { stroke: currentColor; fill: none; flex-shrink: 0; }
|
|
1864
|
+
.ps-tryon-lang-current {
|
|
1865
|
+
font-size: clamp(11px, 0.68vw, 13px); font-weight: 500; letter-spacing: 0.01em;
|
|
1866
|
+
}
|
|
1867
|
+
.ps-tryon-lang-arrow {
|
|
1868
|
+
font-size: clamp(10px, 0.57vw, 12px); transition: transform 0.25s ease; display: inline-block;
|
|
1869
|
+
}
|
|
1870
|
+
.ps-tryon-lang-arrow.ps-open { transform: rotate(180deg); }
|
|
1871
|
+
|
|
1872
|
+
.ps-tryon-lang-dropdown {
|
|
1873
|
+
position: absolute; top: calc(100% + clamp(6px, 0.42vw, 8px)); right: 0;
|
|
1874
|
+
min-width: clamp(180px, 13vw, 240px);
|
|
1875
|
+
background: #1a1b1a; border: 1.5px solid #333;
|
|
1876
|
+
border-radius: clamp(10px, 0.73vw, 14px);
|
|
1877
|
+
box-shadow: 0 clamp(12px, 1vw, 20px) clamp(40px, 3vw, 60px) rgba(0,0,0,0.5),
|
|
1878
|
+
0 0 0 1px rgba(255,255,255,0.03);
|
|
1879
|
+
overflow: hidden;
|
|
1880
|
+
animation: ps-lang-open 0.2s ease both;
|
|
1881
|
+
}
|
|
1882
|
+
@keyframes ps-lang-open {
|
|
1883
|
+
from { opacity: 0; transform: translateY(clamp(-6px, -0.42vw, -8px)) scale(0.96); }
|
|
1884
|
+
to { opacity: 1; transform: translateY(0) scale(1); }
|
|
1885
|
+
}
|
|
1886
|
+
|
|
1887
|
+
.ps-tryon-lang-list {
|
|
1888
|
+
max-height: clamp(240px, 18vw, 340px); overflow-y: auto; padding: clamp(4px, 0.31vw, 6px);
|
|
1889
|
+
scrollbar-width: thin; scrollbar-color: #333 transparent;
|
|
1890
|
+
}
|
|
1891
|
+
.ps-tryon-lang-item {
|
|
1892
|
+
display: flex; align-items: center; gap: clamp(8px, 0.57vw, 12px);
|
|
1893
|
+
width: 100%; padding: clamp(8px, 0.57vw, 11px) clamp(12px, 0.83vw, 16px);
|
|
1894
|
+
border: none; background: transparent; color: #ccc; cursor: pointer;
|
|
1895
|
+
border-radius: clamp(6px, 0.47vw, 9px); transition: all 0.15s ease;
|
|
1896
|
+
font-family: inherit; text-align: left;
|
|
1897
|
+
}
|
|
1898
|
+
.ps-tryon-lang-item:hover { background: rgba(255,255,255,0.06); color: #fff; }
|
|
1899
|
+
.ps-tryon-lang-item.ps-selected { background: rgba(187,148,92,0.1); color: #bb945c; }
|
|
1900
|
+
.ps-tryon-lang-name {
|
|
1901
|
+
flex: 1; font-size: clamp(12px, 0.73vw, 14px); font-weight: 500;
|
|
1902
|
+
}
|
|
1903
|
+
.ps-tryon-lang-code {
|
|
1904
|
+
font-size: clamp(9px, 0.52vw, 11px); color: #666; font-weight: 600;
|
|
1905
|
+
letter-spacing: 0.05em; font-family: ui-monospace, monospace;
|
|
1906
|
+
}
|
|
1907
|
+
.ps-tryon-lang-item.ps-selected .ps-tryon-lang-code { color: #bb945c; opacity: 0.7; }
|
|
1908
|
+
.ps-tryon-lang-check { color: #bb945c; display: flex; align-items: center; }
|
|
1855
1909
|
|
|
1856
1910
|
/* Stepper */
|
|
1857
1911
|
.ps-tryon-stepper { padding: clamp(12px, 1.04vw, 20px) clamp(14px, 1.25vw, 24px) clamp(7px, 0.63vw, 12px); }
|
|
@@ -1977,13 +2031,19 @@ const STYLES = `
|
|
|
1977
2031
|
background: rgba(187,148,92,0.12); color: #bb945c; font-size: clamp(8px, 0.52vw, 10px); font-weight: 600;
|
|
1978
2032
|
}
|
|
1979
2033
|
.ps-tryon-sg-notice {
|
|
1980
|
-
font-size: clamp(
|
|
1981
|
-
margin-bottom: clamp(
|
|
1982
|
-
|
|
1983
|
-
|
|
1984
|
-
|
|
1985
|
-
display: flex; align-items: center;
|
|
1986
|
-
|
|
2034
|
+
font-size: clamp(10px, 0.68vw, 13px); color: #999; text-align: center; padding: clamp(10px, 0.73vw, 14px) clamp(12px, 0.83vw, 16px);
|
|
2035
|
+
margin-bottom: clamp(10px, 0.73vw, 14px); border: 1px solid #333; border-radius: clamp(8px, 0.63vw, 12px); background: #1a1b1a;
|
|
2036
|
+
display: flex; flex-direction: column; align-items: center; gap: clamp(8px, 0.57vw, 12px);
|
|
2037
|
+
}
|
|
2038
|
+
.ps-tryon-sg-notice-cta {
|
|
2039
|
+
display: inline-flex; align-items: center; gap: clamp(4px, 0.31vw, 6px);
|
|
2040
|
+
padding: clamp(6px, 0.42vw, 8px) clamp(14px, 1vw, 18px);
|
|
2041
|
+
background: #bb945c; color: #111; border: none; border-radius: clamp(6px, 0.42vw, 8px);
|
|
2042
|
+
font-size: clamp(10px, 0.68vw, 13px); font-weight: 700; cursor: pointer;
|
|
2043
|
+
transition: all 0.2s; font-family: inherit;
|
|
2044
|
+
}
|
|
2045
|
+
.ps-tryon-sg-notice-cta:hover { background: #a07d4e; }
|
|
2046
|
+
.ps-tryon-sg-notice-cta svg { stroke: #111; }
|
|
1987
2047
|
.ps-tryon-sg-found svg { stroke: #4ade80; }
|
|
1988
2048
|
.ps-tryon-sg-checking { display: flex; flex-direction: column; align-items: center; padding: clamp(24px, 2.08vw, 40px) clamp(12px, 1.04vw, 20px); text-align: center; }
|
|
1989
2049
|
.ps-tryon-sg-checking-icon { color: #bb945c; margin-bottom: clamp(10px, 0.83vw, 16px); animation: ps-pulse-ruler 1.5s ease-in-out infinite; }
|
|
@@ -2032,6 +2092,29 @@ const STYLES = `
|
|
|
2032
2092
|
font-size: clamp(9px, 0.63vw, 12px); font-weight: 600; cursor: pointer; transition: all 0.2s; font-family: inherit;
|
|
2033
2093
|
}
|
|
2034
2094
|
.ps-tryon-unit-btn.ps-active { background: #bb945c; color: #111; }
|
|
2095
|
+
|
|
2096
|
+
/* Prominent unit switch (cm/in) */
|
|
2097
|
+
.ps-tryon-unit-switch {
|
|
2098
|
+
display: flex; gap: clamp(6px, 0.42vw, 8px); margin-bottom: clamp(10px, 0.83vw, 16px);
|
|
2099
|
+
}
|
|
2100
|
+
.ps-tryon-unit-switch-btn {
|
|
2101
|
+
flex: 1; display: flex; flex-direction: column; align-items: center; gap: clamp(2px, 0.16vw, 3px);
|
|
2102
|
+
padding: clamp(10px, 0.73vw, 14px) clamp(8px, 0.57vw, 12px);
|
|
2103
|
+
border: 2px solid #333; border-radius: clamp(10px, 0.73vw, 14px);
|
|
2104
|
+
background: transparent; color: #666; cursor: pointer;
|
|
2105
|
+
transition: all 0.25s ease; font-family: inherit;
|
|
2106
|
+
}
|
|
2107
|
+
.ps-tryon-unit-switch-btn:hover { border-color: #555; color: #999; }
|
|
2108
|
+
.ps-tryon-unit-switch-btn.ps-active {
|
|
2109
|
+
border-color: #bb945c; background: rgba(187,148,92,0.08); color: #bb945c;
|
|
2110
|
+
box-shadow: 0 0 0 clamp(3px, 0.21vw, 4px) rgba(187,148,92,0.08);
|
|
2111
|
+
}
|
|
2112
|
+
.ps-tryon-unit-switch-label {
|
|
2113
|
+
font-size: clamp(16px, 1.04vw, 20px); font-weight: 700; letter-spacing: 0.02em;
|
|
2114
|
+
}
|
|
2115
|
+
.ps-tryon-unit-switch-sub {
|
|
2116
|
+
font-size: clamp(9px, 0.52vw, 11px); font-weight: 500; opacity: 0.6;
|
|
2117
|
+
}
|
|
2035
2118
|
.ps-tryon-section-label { font-size: clamp(8px, 0.57vw, 11px); font-weight: 700; color: #bb945c; text-transform: uppercase; letter-spacing: 0.08em; margin: clamp(2px, 0.21vw, 4px) 0 clamp(1px, 0.1vw, 2px); }
|
|
2036
2119
|
.ps-tryon-optional-section { border-top: 1px solid #333; padding-top: clamp(6px, 0.52vw, 10px); margin-top: clamp(4px, 0.31vw, 6px); }
|
|
2037
2120
|
.ps-tryon-optional-toggle { display: flex; align-items: center; justify-content: space-between; width: 100%; background: none; border: 1px solid #333; border-radius: clamp(6px, 0.52vw, 10px); padding: clamp(6px, 0.52vw, 10px) clamp(8px, 0.73vw, 14px); color: #999; font-size: clamp(10px, 0.68vw, 13px); font-weight: 600; cursor: pointer; font-family: inherit; transition: all 0.2s; }
|