[{"id":262179389624,"handle":"capes-wings","updated_at":"2025-10-08T12:05:20+01:00","published_at":"2021-03-16T17:29:58+00:00","sort_order":"manual","template_suffix":"","published_scope":"global","title":"Capes \u0026 Wings","body_html":"\u003cp style=\"text-align: center;\"\u003eLet little ones twirl in our enchanting tulle capes, featuring embroidered hearts, rainbows, and gold lurex sparkle, or let them feel like a beautiful butterfly in our hand-embroidered wings.\u003c\/p\u003e","image":{"created_at":"2024-03-12T11:34:36+00:00","alt":"Let little ones twirl in our enchanting tulle capes and embroidered wings.","width":3194,"height":450,"src":"\/\/stychaccessories.com\/cdn\/shop\/collections\/SHOT_08_009.jpg?v=1725534620"}},{"id":262179258552,"handle":"clothing","updated_at":"2025-10-10T12:05:34+01:00","published_at":"2021-03-16T17:28:51+00:00","sort_order":"manual","template_suffix":"new-default-collection","published_scope":"global","title":"Clothing","body_html":"\u003cdiv style=\"text-align: center;\"\u003e\n\u003cmeta charset=\"utf-8\"\u003e\n\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cmeta charset=\"utf-8\"\u003eOur Stych kids’ clothing is designed with love, care, and creativity, perfect for special occasions, parties, and everyday play. Each piece is crafted to last and be treasured or handed down, featuring unique details like embroidery, sequins, tulle, taffeta, and organic fabrics. Reflecting the quality and imagination of our talented designers, every item combines style, comfort, and durability.\u003c\/p\u003e\n\u003cp\u003eAvailable in sizes 3 to 8 years, our girls’ clothing collection offers long-lasting, wearable fashion that both parents and children will adore. Make every outfit magical with Stych premium kids’ fashion.\u003c\/p\u003e\n\u003c\/div\u003e","image":{"created_at":"2024-03-12T11:10:22+00:00","alt":"Our Stych clothing is designed with love and care for both special occasions and everyday play, ensuring each piece is made to last and be handed down.","width":3508,"height":465,"src":"\/\/stychaccessories.com\/cdn\/shop\/collections\/Skirt_Stack.jpg?v=1756991803"}},{"id":447853330650,"handle":"dress-up","updated_at":"2025-10-10T12:05:34+01:00","published_at":"2025-09-04T12:18:32+01:00","sort_order":"manual","template_suffix":"new-default-collection","published_scope":"global","title":"Dress Up","body_html":"\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003eLet imaginations run wild with Stych’s Dress Up collection for kids. Packed with magical mermaids, sparkling princesses, and playful cats, each outfit and accessory is bursting with rainbows, gems, sequins, and glittery details. Perfect for parties, playdates, or everyday fun, these whimsical dress-up pieces bring colour, sparkle, and magical style to every look.\u003c\/p\u003e","image":{"created_at":"2025-09-04T12:21:47+01:00","alt":null,"width":3508,"height":465,"src":"\/\/stychaccessories.com\/cdn\/shop\/collections\/Untitled-2-15_116f0f14-ea1c-4c15-877b-4cbe42cfe3a6.png?v=1756993579"}},{"id":437943566554,"handle":"easter","updated_at":"2025-10-09T12:05:20+01:00","published_at":"2025-01-03T11:24:47+00:00","sort_order":"manual","template_suffix":"new-default-collection","published_scope":"global","title":"Easter","body_html":"\u003cp style=\"text-align: center;\"\u003e\u003cmeta charset=\"utf-8\"\u003eDiscover Easter magic with the Bunny Bag, gingham details, and more. Explore now for springtime treasures!\u003c\/p\u003e","image":{"created_at":"2025-01-03T11:28:21+00:00","alt":null,"width":3508,"height":511,"src":"\/\/stychaccessories.com\/cdn\/shop\/collections\/Untitled-2-15_63a2131d-c213-47e7-8118-467370450dcc.png?v=1735914720"}},{"id":433857888474,"handle":"gifts-under-20","updated_at":"2025-10-10T12:05:34+01:00","published_at":"2024-09-02T18:40:33+01:00","sort_order":"manual","template_suffix":"new-default-collection","published_scope":"global","title":"Gifts Under £20","body_html":"\u003cp style=\"text-align: center;\"\u003e\u003cmeta charset=\"utf-8\"\u003eFind the perfect gift for kids under £20! Packed with fun and \u003cmeta charset=\"utf-8\"\u003eaffordable accessories, make your own kits, hair brushes, hair clips, jewellery, and more.\u003c\/p\u003e\n\u003cp style=\"text-align: center;\"\u003eIdeal for \u003cmeta charset=\"utf-8\"\u003ebirthday party gifts, stocking fillers, party bag treats,\u003cmeta charset=\"utf-8\"\u003e festive season, best friend gifts or little surprises, each item is designed to bring fun, creativity, and joy without breaking the budget.\u003c\/p\u003e","image":{"created_at":"2024-09-05T14:53:46+01:00","alt":null,"width":3508,"height":465,"src":"\/\/stychaccessories.com\/cdn\/shop\/collections\/Untitled-2-15_cf1dfbef-afdb-49fa-8e3b-ca15b6ba0351.png?v=1756993229"}},{"id":434284855514,"handle":"halloween","updated_at":"2025-10-10T12:05:34+01:00","published_at":"2025-09-04T11:19:18+01:00","sort_order":"manual","template_suffix":"","published_scope":"global","title":"Halloween","body_html":"\u003cp style=\"text-align: center;\"\u003e\u003cmeta charset=\"utf-8\"\u003eLet’s make Halloween dress-up easy! From full price to outlet our curated collection offers pieces that complete, or make the perfect costume—and can be worn long after the night is over.\u003c\/p\u003e","image":{"created_at":"2024-09-11T12:48:13+01:00","alt":null,"width":3508,"height":462,"src":"\/\/stychaccessories.com\/cdn\/shop\/collections\/WhatsApp_Image_2024-09-05_at_14.56.31_be0dc8f6-6fee-49b2-88a3-fe11a4592469.jpg?v=1756995483"}}]
["wholesale"]
:host {
/* breakpoints: not-implemented / reference only */
/* --wrapped-breakpoint-xs: 320px; */
/* --wrapped-breakpoint-sm: 490px; */
/* --wrapped-breakpoint-md: 768px; */
/* --wrapped-breakpoint-lg: 1040px; */
/* --wrapped-breakpoint-xl: 1440px; */
/* used as theme editor setting values - do not change var names */
--wrapped-thumbnail-position-start:
"media gift-dialog-header"
"media content"
"media gift-dialog-actions";
--wrapped-thumbnail-position-end:
"gift-dialog-header media"
"content media"
"gift-dialog-actions media";
--local-grid-template-areas: var(--wrapped-thumbnail-position-start);
/* border radius */
--local-border-radius-scale: 0;
--local-border-radius-xs: calc(var(--local-border-radius-scale, 65) / 100 * 1rem);
--local-border-radius-sm: calc(var(--local-border-radius-scale, 65) / 100 * 1.5rem);
--local-border-radius-base: calc(var(--local-border-radius-scale, 65) / 100 * 2.5rem);
--local-dialog-border-surface: rgba(0,0,0,0);
--local-border-width: 1px;
--local-outline-width: calc(var(--local-border-width) + 0.5px);
/* buttons */
/* used as theme editor setting values - do not change var names */
--wrapped-hover-style-light: #ffffff;
--wrapped-hover-style-dark: #000000;
--local-hover-style: var(--wrapped-hover-style-light, --wrapped-hover-style-light);
--local-primary-button-surface: #f0cdc2;
--local-primary-button-surface--active: color-mix(in srgb, var(--local-primary-button-surface), var(--local-hover-style) 20%);
--local-primary-button-surface--hover: color-mix(in srgb, var(--local-primary-button-surface), var(--local-hover-style) 16%);
--local-primary-button-text-color: #2e1a47;
--local-primary-button-text-color--active: color-mix(in srgb, var(--local-primary-button-text-color), var(--local-hover-style) 20%);
--local-primary-button-text-color--hover: color-mix(in srgb, var(--local-primary-button-text-color), var(--local-hover-style) 16%);
--local-primary-button-border-surface: rgba(0,0,0,0);
--local-primary-button-border-surface--active: transparent;
--local-primary-button-border-surface--hover: transparent;
--local-secondary-button-surface: #0000000f;
--local-secondary-button-surface--active: color-mix(in srgb, var(--local-secondary-button-surface), var(--local-hover-style) 20%);
--local-secondary-button-surface--hover: color-mix(in srgb, var(--local-secondary-button-surface), var(--local-hover-style) 16%);
--local-secondary-button-text-color: #2e1a47;
--local-secondary-button-text-color--active: color-mix(in srgb, var(--local-secondary-button-text-color), var(--local-hover-style) 20%);
--local-secondary-button-text-color--hover: color-mix(in srgb, var(--local-secondary-button-text-color), var(--local-hover-style) 16%);
--local-secondary-button-border-surface: rgba(0,0,0,0);
--local-secondary-button-border-surface--active: transparent;
--local-secondary-button-border-surface--hover: transparent;
/* do not change the root text size */
--local-font-size: 16px;
/* text and fonts */
--local-font-family: inherit;
--local-font-scale: calc(90 / 100);
--local-font-size-sm: clamp(12px, calc(14px * var(--local-font-scale)), 16px);
--local-font-size-base: clamp(12px, calc(16px * var(--local-font-scale)), 20px);
--local-font-size-lg: clamp(16px, calc(24px * var(--local-font-scale)), 28px);
--local-font-weight-base: var(--wrapped-font-weight-base, 400);
--local-font-weight-md: 500;
--local-font-weight-lg: 600;
--local-letter-spacing: var(--wrapped-letter-spacing, normal);
--local-line-height-base: 1.5em;
/* transitions */
--local-transition-duration: 0.1s;
--local-spinner-duration: 0.7s;
/* disabled */
--local-disabled-opacity-sm: 0.16;
--local-disabled-opacity: 0.32;
--local-disabled-opacity-md: 0.4;
--local-disabled-opacity-lg: 0.64;
/* Pre-calculated percentages for color-mix */
--local-disabled-opacity-percent: 32%;
--local-disabled-opacity-sm-percent: 16%;
--local-disabled-opacity-md-percent: 40%;
--local-disabled-opacity-lg-percent: 64%;
--local-disabled-cursor: not-allowed;
/* form elements */
--local-form-element-surface: #ffffff;
--local-form-element-surface--disabled: color-mix(in srgb, var(--local-form-element-surface) var(--local-disabled-opacity-percent), var(--local-secondary-text-color) 8%);
--local-form-element-border-color: #0000000f;
--local-form-element-border-color--active: color-mix(in srgb, var(--local-form-element-border-color), white 83%);
--local-form-element-border-color--disabled: color-mix(in srgb, var(--local-form-element-border-color) var(--local-disabled-opacity-percent), var(--local-secondary-text-color) 8%);
--local-form-element-text-color: #2e1a47;
--local-form-element-text-color--disabled: color-mix(in srgb, var(--local-form-element-text-color), var(--local-secondary-text-color) 8%);
--local-form-element-placeholder-text-color: color-mix(in srgb, var(--local-form-element-text-color) var(--local-disabled-opacity-percent), transparent);
--local-form-element-placeholder-text-color--disabled: color-mix(in srgb, var(--local-form-element-text-color) var(--local-disabled-opacity-percent), var(--local-secondary-text-color) 8%);
--local-form-element-selection-color: #2e1a47;
--local-form-element-selection-color--active: color-mix(in srgb, var(--local-form-element-selection-color), var(--local-hover-style) 40%);
--local-form-element-selection-color--hover: color-mix(in srgb, var(--local-form-element-selection-color), var(--local-hover-style) 32%);
/* primary colors */
--local-primary-surface: #ffffff;
--local-primary-text-color: #2e1a47;
--local-primary-text-color--hover: color-mix(in srgb, var(--local-primary-text-color), var(--local-hover-style) 32%);
/* secondary colors */
--local-secondary-surface: #f3f3f3;
--local-secondary-text-color: #2e1a47;
--local-secondary-text-color--disabled: color-mix(in srgb, var(--local-secondary-text-color) var(--local-disabled-opacity-lg-percent), var(--local-secondary-text-color) 8%);
/* Typography customizations */
--local-button-text-transform: var(--wrapped-button-text-transform, none);
--local-button-letter-spacing: var(--wrapped-button-letter-spacing, var(--local-letter-spacing, normal));
--local-button-font-style: var(--wrapped-button-font-style, normal);
/* spacing */
/* used as theme editor setting values - do not change var names */
--wrapped-spacing-scale-base: 1;
--wrapped-spacing-scale-less: 0.75;
--wrapped-spacing-scale-more: 1.166;
--local-spacing-scale: var(--wrapped-spacing-scale-base, 1);
--local-spacing-fixed: 4px;
--local-spacing-base: clamp(12px, calc(16px * var(--local-spacing-scale)), 24px);
--local-spacing-lg: clamp(16px, calc(24px * var(--local-spacing-scale)), 28px);
--local-spacing-sm: clamp(8px, calc(12px * var(--local-spacing-scale)), 14px);
--local-spacing-xs: clamp(6px, calc(8px * var(--local-spacing-scale)), 10px);
/* shadows */
--local-shadow-blur: 1.5rem;
--local-shadow-color: rgba(0, 0, 0, 0.25);
--local-shadow-offset: 0.75rem;
/* default styles */
all: revert;
box-sizing: border-box;
cursor: default;
display: block;
font-family: var(--local-font-family);
font-size: var(--local-font-size);
line-height: var(--local-line-height-base);
letter-spacing: var(--local-letter-spacing);
margin-block-start: var(--local-spacing-xs);
margin-block-end: var(--local-spacing-xs);
text-align: start;
width: -webkit-fill-available;
white-space: normal;
}
*,
*::before,
*::after {
box-sizing: inherit;
}
/* gift block launcher */
gift-block-launcher {
display: flex;
flex-direction: column;
gap: var(--local-spacing-xs);
& gift-block-visibility-notice {
display: block;
font-family: var(--local-font-family);
font-size: smaller;
font-weight: var(--local-font-weight-base);
font-style: var(--local-button-font-style);
letter-spacing: var(--local-button-letter-spacing);
padding: 0 var(--local-spacing-sm);
text-transform: var(--local-button-text-transform);
width: 100%;
}
}
.gift-block__launcher {
background-color: var(--local-primary-button-surface);
border-color: var(--local-primary-button-border-surface);
border-width: var(--local-border-width);
border-radius: var(--local-border-radius-sm);
border-style: solid;
color: var(--local-primary-button-text-color);
padding: var(--local-spacing-sm);
font-family: var(--local-font-family);
font-size: var(--local-font-size-base);
font-weight: var(--local-font-weight-base);
font-style: var(--local-button-font-style);
letter-spacing: var(--local-button-letter-spacing);
max-width: var(--wrapped-launcher-button-max-width, 440px);
text-transform: var(--local-button-text-transform);
width: 100%;
&:hover {
cursor: pointer;
background-color: var(--local-primary-button-surface--hover);
border-color: var(--local-primary-button-border-surface--hover);
}
&:active {
background-color: var(--local-primary-button-surface--active);
border-color: var(--local-primary-button-border-surface--active);
}
&:focus,
&:focus-visible {
outline: none;
}
&[with-checkmark] {
position: relative;
display: inline-flex;
align-items: center;
gap: var(--local-spacing-fixed);
& .icon-wrapper {
display: flex;
flex-shrink: 0;
}
& .button-content {
justify-content: var(--wrapped-launcher-button-content-justify-content, space-between);
}
&[with-gift-options] {
.checkmark-icon {
display: block;
/* animation: unblur calc(var(--local-transition-duration) * 3) ease forwards; */
}
}
}
&[variant="link"] {
background: none;
border: none;
color: var(--local-primary-text-color);
font-size: var(--local-font-size-base);
font-weight: var(--local-font-weight-base);
font-style: var(--local-button-font-style);
letter-spacing: var(--local-button-letter-spacing);
text-transform: var(--local-button-text-transform);
text-decoration: none;
padding: 0;
width: auto;
&:hover {
cursor: pointer;
color: var(--local-primary-text-color--hover);
text-decoration: underline;
}
&[with-checkmark] {
padding-left: 0;
text-align: start;
word-break: keep-all;
}
& .button-content {
flex-direction: row;
justify-content: flex-start;
}
}
& .button-content {
display: inline-flex;
align-items: center;
gap: var(--local-spacing-fixed);
flex-direction: row-reverse;
justify-content: var(--wrapped-launcher-button-content-justify-content, center);
width: 100%;
& .label {
text-align: start;
}
}
& .icon-wrapper {
display: none;
align-items: center;
justify-content: center;
width: 1.5em;
height: 1.5em;
svg {
fill: currentColor;
height: 100%;
width: 100%;
}
.checkmark-icon {
display: none;
}
}
}
.gift-block__launcher:disabled,
.gift-block__launcher[orders-limit-reached] {
cursor: var(--local-disabled-cursor);
opacity: var(--local-disabled-opacity);
pointer-events: none;
&[with-checkmark] {
.icon-wrapper {
opacity: var(--local-disabled-opacity-md);
}
}
}
/* gift block modal */
.gift-block-modal {
background-color: var(--local-primary-surface);
border: none;
border-radius: var(--local-border-radius-base);
box-shadow: 0 var(--local-shadow-offset) var(--local-shadow-blur) var(--local-shadow-color);
outline: var(--local-border-width) solid var(--local-dialog-border-surface);
padding: 0;
}
.gift-block-modal::backdrop {
background-color: rgba(156, 163, 175, 0.75);
}
.gift-block-modal:focus,
.gift-block-modal:focus-visible {
outline: var(--local-border-width) solid var(--local-dialog-border-surface);
}
@media (max-width: 768px) {
.gift-block-modal {
max-height: calc(100% - var(--local-spacing-sm));
max-width: calc(100% - var(--local-spacing-sm));
overscroll-behavior: contain;
}
}
/* gift block modal layout */
.gift-block-modal-layout {
display: grid;
grid-template-areas: var(--local-grid-template-areas);
grid-template-columns: 1fr 1fr;
grid-template-rows: auto 1fr auto;
max-height: 80dvh;
max-width: 80dvw;
overflow: hidden;
}
/* Collapse to 1-column layout if media is hidden */
.gift-block-modal-layout:has(section#media[hidden]),
.gift-block-modal-layout:has(section#media.with-media-inline),
.gift-block-modal-layout:not(:has(section#media)),
.gift-block-modal-layout:not(:has(section#media img)) {
grid-template-areas:
"gift-dialog-header"
"content"
"gift-dialog-actions";
grid-template-columns: 1fr;
grid-template-rows: auto 1fr auto;
section#media {
display: none;
}
}
gift-dialog-header {
align-items: flex-start;
background-color: var(--local-primary-surface);
display: flex;
flex-direction: row;
gap: var(--local-spacing-fixed);
grid-area: gift-dialog-header;
justify-content: space-between;
padding: var(--local-spacing-lg);
position: sticky;
top: 0;
z-index: 1;
& h1 {
color: var(--local-primary-text-color);
font-size: var(--local-font-size-lg);
font-weight: var(--local-font-weight-md);
line-height: 1.25em;
margin: 0;
}
& button {
background-color: color-mix(in srgb, var(--local-secondary-text-color) 8%, transparent);
color: var(--local-secondary-text-color);
border-radius: var(--local-border-radius-xs);
font-size: var(--local-font-size-sm);
font-weight: var(--local-font-weight-lg);
font-style: var(--local-button-font-style);
letter-spacing: var(--local-button-letter-spacing);
text-transform: var(--local-button-text-transform);
width: 2.25em;
height: 2.25em;
min-width: 2.25em;
min-height: 2.25em;
outline: none;
border: 0;
cursor: pointer;
transition: background-color var(--local-transition-duration) ease,
color var(--local-transition-duration) ease;
&:hover {
background-color: color-mix(in srgb, var(--local-secondary-text-color) 6%, var(--local-hover-style) 12%);
}
&:active {
background-color: color-mix(in srgb, var(--local-secondary-text-color) 16%, var(--local-hover-style) 16%);
}
&:disabled {
pointer-events: none;
opacity: var(--local-disabled-opacity);
}
}
}
gift-dialog-actions {
align-items: flex-end;
background-color: var(--local-primary-surface);
bottom: 0;
display: flex;
flex-direction: column;
gap: var(--local-spacing-sm);
grid-area: gift-dialog-actions;
overscroll-behavior: contain;
position: sticky;
padding: var(--local-spacing-lg);
z-index: 1;
& button {
border-radius: var(--local-border-radius-sm);
border-width: var(--local-border-width);
border-style: solid;
cursor: pointer;
font-family: var(--local-font-family);
font-size: var(--local-font-size-base);
font-weight: var(--local-font-weight-md);
font-style: var(--local-button-font-style);
letter-spacing: var(--local-button-letter-spacing);
text-transform: var(--local-button-text-transform);
padding: var(--local-spacing-sm);
position: relative;
width: 100%;
transition: background-color var(--local-transition-duration) ease,
border-color var(--local-transition-duration) ease,
color var(--local-transition-duration) ease,
opacity var(--local-transition-duration) ease;
&.primary {
background-color: var(--local-primary-button-surface);
border-color: var(--local-primary-button-border-surface);
color: var(--local-primary-button-text-color);
display: flex;
align-items: center;
justify-content: center;
.button-content {
display: flex;
align-items: center;
justify-content: center;
width: 100%;
}
.label {
flex: 0 1 auto;
min-width: 0;
text-align: center;
}
.label.out-of-stock {
display: none;
}
.icon-wrapper {
width: 0em;
height: 1.25em;
}
&:hover {
background-color: var(--local-primary-button-surface--hover);
border-color: var(--local-primary-button-border-surface--hover);
color: var(--local-primary-button-text-color--hover);
}
&:active {
background-color: var(--local-primary-button-surface--active);
border-color: var(--local-primary-button-border-surface--active);
color: var(--local-primary-button-text-color--active);
}
&[loading] {
background-color: var(--local-primary-button-surface--active);
border-color: var(--local-primary-button-border-surface--active);
color: var(--local-primary-button-text-color--active);
pointer-events: none;
.button-content {
opacity: 0;
}
}
}
&.secondary {
background-color: var(--local-secondary-button-surface);
border-color: var(--local-secondary-button-border-surface);
color: var(--local-secondary-button-text-color);
display: flex;
align-items: center;
justify-content: center;
.button-content {
display: flex;
align-items: center;
justify-content: center;
gap: var(--local-spacing-fixed);
width: 100%;
}
.label {
flex: 0 1 auto;
min-width: 0;
text-align: center;
}
.icon-wrapper {
--icon-stroke-width: 1.5px;
flex: 0 0 auto;
display: flex;
align-items: center;
justify-content: center;
svg {
width: 1.25em;
height: 1.25em;
stroke-width: var(--icon-stroke-width);
}
.remove-icon-top, .remove-icon-bottom {
transition: transform var(--local-transition-duration) ease-in-out;
}
}
&:hover {
background-color: var(--local-secondary-button-surface--hover);
border-color: var(--local-secondary-button-border-surface--hover);
color: var(--local-secondary-button-text-color--hover);
.icon-wrapper {
.remove-icon-top {
transform: translate(calc(-1 * var(--icon-stroke-width)), var(--icon-stroke-width)) rotate(-15deg);
}
.remove-icon-bottom {
transform: translateY(var(--icon-stroke-width));
}
}
}
&:active {
background-color: var(--local-secondary-button-surface--active);
border-color: var(--local-secondary-button-border-surface--active);
.icon-wrapper {
transition: filter var(--local-transition-duration) ease-in-out;
}
}
&[hidden] {
display: none;
}
&[loading] {
background-color: var(--local-secondary-button-surface--active);
border-color: var(--local-secondary-button-border-surface--active);
color: var(--local-secondary-button-text-color--active);
pointer-events: none;
.button-content {
opacity: 0;
}
.spinner .svg-wrapper svg {
fill: var(--local-secondary-button-text-color--active);
}
}
}
&:disabled {
cursor: var(--local-disabled-cursor);
opacity: var(--local-disabled-opacity);
pointer-events: none;
.button-content {
pointer-events: none;
opacity: calc(var(--local-disabled-opacity) * 1.5);
}
}
/* spinner styles */
.spinner {
opacity: 0;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
& .svg-wrapper svg {
animation: spin var(--local-spinner-duration) cubic-bezier(0, 0, 1, 1) infinite;
fill: var(--local-primary-button-text-color);
height: 1.5em;
}
& [role="status"] {
visibility: hidden;
opacity: 0;
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
}
&[loading] {
pointer-events: none;
.spinner {
opacity: 1;
}
}
}
&:has(button[loading]:not([hidden])) {
& button {
pointer-events: none;
opacity: 0.8;
}
}
&:is([out-of-stock]) {
& button.primary {
pointer-events: none !important;
opacity: 0.6 !important;
& .label {
display: none;
}
& .label.out-of-stock {
display: block;
}
}
}
}
gift-dialog-content {
display: contents;
}
section#media {
align-self: stretch;
background-color: var(--local-secondary-surface);
grid-area: media;
grid-row: 1 / 4;
height: 100%;
padding: var(--local-spacing-lg);
position: sticky;
top: 0;
transition: order var(--local-transition-duration) ease,
width var(--local-transition-duration) ease;
&.with-media-cover {
& img {
height: 100%;
}
}
&.with-media-fill {
padding: 0;
& img {
border-radius: 0;
height: 100%;
}
}
& shopify-media {
& img {
border-radius: var(--local-border-radius-sm);
width: 100%;
height: auto;
}
}
}
section#content {
grid-area: content;
background-color: var(--local-primary-surface);
overflow-y: auto;
overscroll-behavior: contain;
scrollbar-width: thin;
-webkit-overflow-scrolling: touch;
padding: var(--local-spacing-lg);
padding-bottom: 0;
padding-top: 0;
position: relative; /* important to prevent content shifting when changing variants */
align-items: stretch;
display: flex;
flex-direction: column;
justify-content: flex-start;
gap: var(--local-spacing-lg);
transition: order var(--local-transition-duration) ease;
@media (max-width: 768px) {
& > *:first-child:not(:only-child) {
margin-top: unset;
}
}
/* gift product details */
& .gift-product {
display: flex;
flex-direction: column;
gap: var(--local-spacing-base);
}
& .gift-product-header {
--wrapped-thumbnail-position-start: row;
--wrapped-thumbnail-position-end: row-reverse;
align-items: center;
display: flex;
flex-direction: var(--wrapped-thumbnail-position-start);
flex-wrap: wrap;
row-gap: var(--local-spacing-base);
column-gap: var(--local-spacing-sm);
}
& .gift-product-content {
display: flex;
flex: 1 1 50%;
flex-direction: column;
gap: var(--local-spacing-xs);
}
& .gift-product-media {
display: flex;
align-items: center;
&:has(shopify-media) {
--local-inline-media-max-size: 60px;
--local-inline-media-size: clamp(40px, 60px, var(--local-inline-media-max-size));
border-radius: var(--local-border-radius-sm);
height: var(--local-inline-media-size);
width: var(--local-inline-media-size);
overflow: hidden;
margin-inline-start: auto;
margin-inline-end: auto;
}
& shopify-media {
& img {
border-radius: var(--local-border-radius-sm);
width: 100%;
height: auto;
}
}
}
& .gift-product-title {
color: var(--local-primary-text-color);
font-size: var(--local-font-size-base);
font-weight: var(--local-font-weight-md);
margin: 0;
}
& .gift-product-pricing {
display: flex;
gap: var(--local-spacing-xs);
margin: 0;
font-weight: var(--local-font-weight-base);
/* font-size: var(--local-font-size-base); */
font-size: clamp(12px, calc(var(--local-font-size-base) * 0.94), 18px);
line-height: 1em;
}
& .gift-product-price {
color: var(--local-secondary-text-color);
}
& .gift-product-price--compare {
color: var(--local-secondary-text-color);
text-decoration: line-through;
opacity: var(--local-disabled-opacity);
}
& .gift-product-description {
font-weight: var(--local-font-weight-base);
color: var(--local-secondary-text-color);
font-size: clamp(12px, calc(var(--local-font-size-base) * 0.94), 18px);
line-height: 1.5em;
& shopify-data {
& :first-child {
margin-top: 0;
}
& :last-child {
margin-bottom: 0;
}
& ul {
padding-left: var(--local-spacing-lg);
}
}
}
/* gift messaging fields */
& gift-dialog-message {
display: flex;
flex-direction: row;
flex-wrap: wrap;
gap: var(--local-spacing-base);
}
& .option-group {
display: flex;
flex-direction: column;
gap: var(--local-spacing-xs);
flex: 0 0 100%;
@media (min-width: 768px) {
&:has(input[id="receiver-input"]),
&:has(input[id="sender-input"]) {
flex: 1 1 0%;
}
}
&.option-group-disabled {
cursor: var(--local-disabled-cursor);
pointer-events: none;
opacity: var(--local-disabled-opacity-md);
transition: background-color var(--local-transition-duration) ease,
color var(--local-transition-duration) ease;
& .message-field {
background-color: var(--local-form-element-surface--disabled);
color: transparent;
outline-color: var(--local-form-element-border-color--disabled);
pointer-events: none;
}
}
&.option-group-hidden {
display: none;
}
& label {
font-size: var(--local-font-size-sm);
font-weight: var(--local-font-weight-base);
color: var(--local-secondary-text-color);
line-height: 1em;
}
& .message-field {
background-color: var(--local-form-element-surface);
color: var(--local-form-element-text-color);
width: 100%;
padding: var(--local-spacing-sm);
border: none;
border-radius: var(--local-border-radius-sm);
font-family: var(--local-font-family);
font-size: var(--local-font-size-base);
outline: var(--local-border-width) solid var(--local-form-element-border-color);
min-height: 42px;
}
& .message-field:active,
& .message-field:focus,
& .message-field:focus-within,
& .message-field:focus-visible {
outline-color: var(--local-form-element-selection-color);
outline-width: var(--local-outline-width);
/*
UX verification needed
&::placeholder {
color: transparent;
}
*/
}
& .message-field::placeholder {
color: var(--local-form-element-placeholder-text-color);
}
& textarea.message-field {
min-height: 100px;
resize: vertical;
}
& .counter {
color: var(--local-secondary-text-color);
font-size: var(--local-font-size-sm);
line-height: normal;
}
}
}
/* shopify variant selector */
shopify-variant-selector {
font-size: var(--local-font-size-sm);
width: 100%;
}
shopify-variant-selector::part(form) {
gap: var(--local-spacing-base);
}
shopify-variant-selector::part(radio) {
background-color: var(--local-form-element-surface);
color: var(--local-form-element-text-color);
border: none;
border-radius: var(--local-border-radius-sm);
font-size: var(--local-font-size-base);
font-weight: var(--local-font-weight-base);
outline: var(--local-border-width) solid var(--local-form-element-border-color);
padding: calc(var(--local-spacing-sm) * 0.5) var(--local-spacing-base);
transition: color var(--local-transition-duration) ease,
outline-color var(--local-transition-duration) ease,
outline-width var(--local-transition-duration) ease;
}
shopify-variant-selector::part(radio):active {
outline-color: var(--local-form-element-selection-color--active);
outline-width: var(--local-outline-width);
}
shopify-variant-selector::part(radio):hover {
outline-color: var(--local-form-element-selection-color--hover);
}
shopify-variant-selector::part(radio-disabled) {
background-color: var(--local-form-element-surface--disabled);
color: var(--local-form-element-text-color--disabled);
opacity: var(--local-disabled-opacity); /* do not transition opacity - it causes a flash when changing variants */
outline-color: var(--local-form-element-border-color--disabled);
pointer-events: none;
}
shopify-variant-selector::part(radio-selected) {
outline-color: var(--local-form-element-selection-color);
outline-width: var(--local-outline-width);
pointer-events: none;
}
shopify-variant-selector::part(select) {
color: var(--local-form-element-text-color);
border: none;
border-radius: var(--local-border-radius-sm);
font-family: var(--local-font-family);
font-size: var(--local-font-size-base);
font-weight: var(--local-font-weight-base);
margin-top: var(--local-spacing-xs);
width: 100%;
max-width: 100%;
padding: var(--local-spacing-sm);
padding-right: calc(var(--local-spacing-sm) + 1.5rem);
outline: var(--local-border-width) solid var(--local-form-element-border-color);
appearance: none;
-webkit-appearance: none;
-moz-appearance: none;
background-color: var(--local-form-element-surface);
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='currentColor' fill-rule='evenodd' d='M6.24 8.2a.75.75 0 0 1 1.06.04l2.7 2.908 2.7-2.908a.75.75 0 1 1 1.1 1.02l-3.25 3.5a.75.75 0 0 1-1.1 0l-3.25-3.5a.75.75 0 0 1 .04-1.06Z'/%3E%3C/svg%3E");
background-repeat: no-repeat;
background-position: right 0.5rem center;
background-size: 1em 1em;
}
shopify-variant-selector::part(select):focus,
shopify-variant-selector::part(select):focus-visible {
outline-color: var(--local-form-element-selection-color);
outline-width: var(--local-outline-width);
}
shopify-variant-selector::part(color-swatch) {
border: none;
outline: var(--local-border-width) solid rgba(0, 0, 0, .1);
transition: color var(--local-transition-duration) ease,
outline-color var(--local-transition-duration) ease,
outline-width var(--local-transition-duration) ease;
}
shopify-variant-selector::part(color-swatch):active {
outline-color: var(--local-form-element-selection-color--active);
outline-width: var(--local-outline-width);
}
shopify-variant-selector::part(color-swatch):hover {
outline-color: var(--local-form-element-selection-color--hover);
}
shopify-variant-selector::part(color-swatch-selected) {
outline-color: var(--local-form-element-selection-color);
outline-width: var(--local-outline-width);
}
shopify-variant-selector::part(color-swatch-selected):after {
content: unset;
}
shopify-variant-selector::part(color-swatch-label) {
color: var(--local-secondary-text-color);
}
shopify-variant-selector::part(color-swatch-disabled) {
opacity: var(--local-disabled-opacity); /* do not transition opacity - it causes a flash when changing variants */
pointer-events: none;
}
shopify-variant-selector::part(label) {
color: var(--local-secondary-text-color);
display: inline-block;
font-size: var(--local-font-size-sm);
font-weight: var(--local-font-weight-base);
line-height: 1em;
margin-bottom: calc(var(--local-spacing-sm) - 6px);
}
/* media queries */
/* md - and above */
@media (min-width: 768px) {
:host {
--local-section-max-width: 420px;
}
gift-dialog-content > section {
min-width: var(--local-section-max-width);
max-width: var(--local-section-max-width);
}
gift-dialog-header,
gift-dialog-actions {
min-width: var(--local-section-max-width);
max-width: var(--local-section-max-width);
}
}
/* md - and below */
@media (max-width: 768px) {
:host {
--local-section-max-width: 390px;
}
gift-dialog-content > section {
min-width: var(--local-section-max-width);
max-width: var(--local-section-max-width);
}
gift-dialog-header,
gift-dialog-actions {
min-width: var(--local-section-max-width);
max-width: var(--local-section-max-width);
padding: var(--local-spacing-base);
}
.gift-block-modal-layout {
grid-template-areas:
"gift-dialog-header"
"media"
"content"
"gift-dialog-actions";
grid-template-columns: 1fr;
grid-template-rows: auto auto 1fr auto;
max-height: calc(100dvh - var(--local-spacing-base));
max-width: 100dvw;
}
gift-dialog-content {
display: grid;
grid-template-areas:
"media"
"content";
grid-template-columns: 1fr;
grid-template-rows: auto 1fr;
overflow-y: auto;
overscroll-behavior: contain;
scrollbar-width: thin;
-webkit-overflow-scrolling: touch;
}
section#media {
background: none;
grid-row: auto;
position: relative;
padding: 0;
& shopify-media {
& img {
border-radius: unset;
min-height: var(--local-section-max-width);
max-height: var(--local-section-max-width);
}
}
}
section#content {
overflow-y: unset;
padding: var(--local-spacing-base);
&.with-media-inline {
padding-top: 0;
}
& .gift-product-media {
&:has(shopify-media) {
--local-inline-media-max-size: 330px;
}
}
}
}
/* sm - and below */
@media (max-width: 480px) {
:host {
--local-section-max-width: 100%;
}
section#media {
& shopify-media {
& img {
border-radius: unset;
min-height: 350px;
max-height: 350px;
}
}
}
}
/* animations for loaders */
@keyframes spin {
100% { transform: rotate(1turn); }
}
@keyframes unblur {
from { filter: blur(2px); }
to { filter: blur(0px); }
}
Skip to content
Choosing a selection results in a full page refresh.
Opens in a new window.