The Merchant – The Meadow
wrapped-preset { /\* breakpoints: not-implemented / reference only */ /\* --shadow-breakpoint-xs: 320px; */ /\* --shadow-breakpoint-sm: 490px; */ /\* --shadow-breakpoint-md: 768px; */ /\* --shadow-breakpoint-lg: 1040px; */ /\* --shadow-breakpoint-xl: 1440px; */
--shadow-thumbnail-position-start: "media gift-dialog-header" "media content" "media gift-block-actions"; --shadow-thumbnail-position-end: "gift-dialog-header media" "content media" "gift-block-actions media";
/\* border radius */ --shadow-border-radius-xs: calc(var(--shadow-border-radius-scale, 65) / 100 * 1rem); --shadow-border-radius-sm: calc(var(--shadow-border-radius-scale, 65) / 100 * 1.5rem); --shadow-border-radius-base: calc(var(--shadow-border-radius-scale, 65) / 100 * 2.5rem);
--shadow-outline-width: calc(var(--shadow-field-border-width) + 0.5px);
/\* buttons */
--shadow-hover-style-light: #ffffff; --shadow-hover-style-dark: #000000;
--shadow-primary-button-surface--active: color-mix(in srgb, var(--shadow-primary-button-surface), var(--shadow-hover-style) 20%); --shadow-primary-button-surface--hover: color-mix(in srgb, var(--shadow-primary-button-surface), var(--shadow-hover-style) 16%);
--shadow-launcher-button-surface--active: color-mix(in srgb, var(--shadow-launcher-button-surface), var(--shadow-hover-style) 20%); --shadow-launcher-button-surface--hover: color-mix(in srgb, var(--shadow-launcher-button-surface), var(--shadow-hover-style) 16%);
--shadow-primary-button-text-color--active: color-mix(in srgb, var(--shadow-primary-button-text-color), var(--shadow-hover-style) 20%); --shadow-primary-button-text-color--hover: color-mix(in srgb, var(--shadow-primary-button-text-color), var(--shadow-hover-style) 16%);
--shadow-secondary-button-surface--active: color-mix(in srgb, var(--shadow-secondary-button-surface), var(--shadow-hover-style) 20%); --shadow-secondary-button-surface--hover: color-mix(in srgb, var(--shadow-secondary-button-surface), var(--shadow-hover-style) 16%);
--shadow-secondary-button-text-color--active: color-mix(in srgb, var(--shadow-secondary-button-text-color), var(--shadow-hover-style) 20%); --shadow-secondary-button-text-color--hover: color-mix(in srgb, var(--shadow-secondary-button-text-color), var(--shadow-hover-style) 16%);
/\* text and fonts */ --shadow-font-size-sm: clamp(12px, calc(14px * var(--shadow-font-scale)), 16px); --shadow-font-size-base: clamp(12px, calc(16px * var(--shadow-font-scale)), 20px); --shadow-font-size-lg: clamp(16px, calc(24px * var(--shadow-font-scale)), 28px); --shadow-font-weight-md: 500; --shadow-font-weight-lg: 600; --shadow-line-height-base: 1.5em;
/\* transitions */ --shadow-transition-duration: 0.1s; --shadow-spinner-duration: 0.7s;
/\* disabled */ --shadow-disabled-opacity-sm: 0.16; --shadow-disabled-opacity: 0.32; --shadow-disabled-opacity-md: 0.4; --shadow-disabled-opacity-lg: 0.64;
/\* precalculated percentages for color-mix */ --shadow-disabled-opacity-percent: 32%; --shadow-disabled-opacity-sm-percent: 16%; --shadow-disabled-opacity-md-percent: 40%; --shadow-disabled-opacity-lg-percent: 64%; --shadow-disabled-cursor: not-allowed;
/\* form elements */ --shadow-form-element-surface--disabled: color-mix(in srgb, var(--shadow-form-element-surface) var(--shadow-disabled-opacity-percent), var(--shadow-secondary-text-color) 8%);
--shadow-form-element-border-color--active: color-mix(in srgb, var(--shadow-form-element-border-color), white 83%); --shadow-form-element-border-color--disabled: color-mix(in srgb, var(--shadow-form-element-border-color) var(--shadow-disabled-opacity-percent), var(--shadow-secondary-text-color) 8%);
--shadow-form-element-text-color--disabled: color-mix(in srgb, var(--shadow-form-element-text-color), var(--shadow-secondary-text-color) 8%);
--shadow-form-element-placeholder-text-color: color-mix(in srgb, var(--shadow-form-element-text-color) var(--shadow-disabled-opacity-percent), transparent); --shadow-form-element-placeholder-text-color--disabled: color-mix(in srgb, var(--shadow-form-element-text-color) var(--shadow-disabled-opacity-percent), var(--shadow-secondary-text-color) 8%);
--shadow-form-element-selection-color--active: color-mix(in srgb, var(--shadow-form-element-selection-color), var(--shadow-hover-style) 40%); --shadow-form-element-selection-color--hover: color-mix(in srgb, var(--shadow-form-element-selection-color), var(--shadow-hover-style) 32%);
/\* primary colors */ --shadow-primary-text-color--hover: color-mix(in srgb, var(--shadow-primary-text-color), var(--shadow-hover-style) 32%);
/\* secondary colors */ --shadow-secondary-text-color--disabled: color-mix(in srgb, var(--shadow-secondary-text-color) var(--shadow-disabled-opacity-lg-percent), var(--shadow-secondary-text-color) 8%);
/\* spacing */ --shadow-spacing-fixed: 4px; --shadow-spacing-base: clamp(12px, calc(16px * var(--shadow-spacing-scale)), 24px); --shadow-spacing-lg: clamp(16px, calc(24px * var(--shadow-spacing-scale)), 28px); --shadow-spacing-sm: clamp(8px, calc(12px * var(--shadow-spacing-scale)), 14px);
/\* inline block */ --shadow-feature-max-height: 500px; --shadow-textarea-min-height: 80px;
/\* shadows */ --shadow-shadow-blur: 1.5rem; --shadow-shadow-color: rgba(0, 0, 0, 0.25); --shadow-shadow-offset: 0.75rem;
/\* the default look: what a shop without a presets entry paints; a saved entry overrides these per option type below */ --shadow-font-family: inherit; --shadow-header-font-family: inherit; --shadow-font-weight-base: 400; --shadow-letter-spacing: normal; --shadow-button-text-transform: none; --shadow-button-letter-spacing: normal; --shadow-button-font-style: normal; --shadow-launcher-button-font-weight: 400; --shadow-launcher-button-max-width: 500px; --shadow-launcher-button-alignment: center; --shadow-launcher-button-content-justify-content: space-between; --shadow-launcher-button-content-flex-direction: row-reverse; --shadow-grid-template-areas: var(--shadow-thumbnail-position-start); --shadow-border-radius-scale: 60; --shadow-block-border-surface: #00000000; --shadow-border-width: 1px; --shadow-field-border-width: var(--shadow-border-width); --shadow-hover-style: var(--shadow-hover-style-light, --shadow-hover-style-light); --shadow-launcher-button-surface: #000000; --shadow-launcher-button-text-color: #ffffff; --shadow-launcher-button-border-surface: #00000000; --shadow-launcher-button-border-surface--active: transparent; --shadow-launcher-button-border-surface--hover: transparent; --shadow-primary-button-surface: #000000; --shadow-primary-button-text-color: #ffffff; --shadow-primary-button-border-surface: #00000000; --shadow-primary-button-border-surface--active: transparent; --shadow-primary-button-border-surface--hover: transparent; --shadow-secondary-button-surface: #0000000f; --shadow-secondary-button-text-color: #333333; --shadow-secondary-button-border-surface: #00000000; --shadow-secondary-button-border-surface--active: transparent; --shadow-secondary-button-border-surface--hover: transparent; --shadow-font-scale: calc(100 / 100); --shadow-form-element-surface: #ffffff; --shadow-form-element-border-color: #0000000f; --shadow-form-element-text-color: #333333; --shadow-form-element-selection-color: #000000; --shadow-selection-accent-color: var(--shadow-form-element-selection-color); --shadow-selection-checked-surface: var(--shadow-form-element-selection-color); --shadow-selection-swatch-color: var(--shadow-form-element-selection-color); --shadow-primary-surface: #ffffff; --shadow-primary-text-color: #000000; --shadow-secondary-surface: #f3f3f3; --shadow-secondary-text-color: #333333; --shadow-gift-thumbnail-size: 60px; --shadow-thumbnail-size: clamp(40px, var(--shadow-gift-thumbnail-size), 200px); --shadow-thumbnail-flex-direction: row; --shadow-thumbnail-order: -1; --shadow-thumbnail-margin-left: 0; --shadow-thumbnail-margin-right: 0.6em; --shadow-block-padding: var(--shadow-block-padding-block-start, var(--shadow-spacing-sm)) var(--shadow-block-padding-inline-end, var(--shadow-spacing-sm)) var(--shadow-block-padding-block-end, var(--shadow-spacing-sm)) var(--shadow-block-padding-inline-start, var(--shadow-spacing-sm));
font-family: var(--shadow-font-family); line-height: var(--shadow-line-height-base); letter-spacing: var(--shadow-letter-spacing); }
:host { /\* do not change the root text size */ --shadow-font-size: 16px;
/\* spacing */
--shadow-spacing-scale-base: 1; --shadow-spacing-scale-less: 0.75; --shadow-spacing-scale-more: 1.166; --shadow-spacing-scale: var(--shadow-spacing-scale-base, 1); --shadow-spacing-xs: clamp(6px, calc(8px * var(--shadow-spacing-scale)), 10px);
/\* inline block */ --shadow-block-margin-block-start: calc(1em * var(--shadow-spacing-scale)); --shadow-block-margin-block-end: calc(2em * var(--shadow-spacing-scale));
/\* default styles */ all: revert; box-sizing: border-box; cursor: default; display: block; font-size: var(--shadow-font-size); margin-block-start: var(--shadow-block-margin-start, var(--shadow-spacing-xs)) !important; margin-block-end: var(--shadow-block-margin-end, var(--shadow-spacing-xs)) !important; margin-inline-start: var(--shadow-block-margin-inline-start, 0) !important; margin-inline-end: var(--shadow-block-margin-inline-end, 0) !important; text-align: start; width: -webkit-fill-available; white-space: normal; }
:host([option-type="product"]) { --shadow-spacing-scale: var(--shadow-spacing-scale-more, 1); }
:host([option-type="product"]) wrapped-preset { --shadow-font-family: inherit; --shadow-header-font-family: inherit; --shadow-font-weight-base: 400; --shadow-letter-spacing: normal; --shadow-button-text-transform: none; --shadow-button-letter-spacing: normal; --shadow-button-font-style: normal; --shadow-launcher-button-font-weight: 400; --shadow-launcher-button-max-width: 500px; --shadow-launcher-button-alignment: center; --shadow-launcher-button-content-justify-content: space-between; --shadow-launcher-button-content-flex-direction: row-reverse; --shadow-grid-template-areas: var(--shadow-thumbnail-position-start);
/\* border radius */ --shadow-border-radius-scale: 25;
--shadow-block-border-surface: #0000000f; --shadow-border-width: 1px;
/\* buttons */ --shadow-hover-style: var(--shadow-hover-style-light, --shadow-hover-style-light);
--shadow-launcher-button-surface: #ffffff; --shadow-launcher-button-text-color: #000000; --shadow-launcher-button-border-surface: #b7b7b7;
--shadow-launcher-button-border-surface--active: color-mix(in srgb, var(--shadow-launcher-button-border-surface), var(--shadow-hover-style) 20%); --shadow-launcher-button-border-surface--hover: color-mix(in srgb, var(--shadow-launcher-button-border-surface), var(--shadow-hover-style) 16%);
--shadow-primary-button-surface: #ffffff; --shadow-primary-button-text-color: #000000; --shadow-primary-button-border-surface: #b7b7b7;
--shadow-primary-button-border-surface--active: color-mix(in srgb, var(--shadow-primary-button-border-surface), var(--shadow-hover-style) 20%); --shadow-primary-button-border-surface--hover: color-mix(in srgb, var(--shadow-primary-button-border-surface), var(--shadow-hover-style) 16%);
--shadow-secondary-button-surface: #0000000f; --shadow-secondary-button-text-color: #333333; --shadow-secondary-button-border-surface: #b7b7b7;
--shadow-secondary-button-border-surface--active: color-mix(in srgb, var(--shadow-secondary-button-border-surface), var(--shadow-hover-style) 20%); --shadow-secondary-button-border-surface--hover: color-mix(in srgb, var(--shadow-secondary-button-border-surface), var(--shadow-hover-style) 16%);
/\* text and fonts */ --shadow-font-scale: calc(95 / 100);
/\* form elements */ --shadow-form-element-surface: #ffffff; --shadow-form-element-border-color: #b7b7b7; --shadow-form-element-text-color: #333333; --shadow-form-element-selection-color: #ffffff;
--shadow-selection-accent-color: var(--shadow-form-element-selection-color); --shadow-selection-checked-surface: var(--shadow-form-element-selection-color); --shadow-selection-swatch-color: var(--shadow-form-element-selection-color);
/\* primary colors */ --shadow-primary-surface: #ffffff; --shadow-primary-text-color: #000000;
/\* secondary colors */ --shadow-secondary-surface: #f3f3f3; --shadow-secondary-text-color: #333333;
/\* media */ --shadow-gift-thumbnail-size: 40px; --shadow-thumbnail-size: clamp(40px, var(--shadow-gift-thumbnail-size), 200px);
--shadow-thumbnail-flex-direction: row; --shadow-thumbnail-order: -1; --shadow-thumbnail-margin-left: 0; --shadow-thumbnail-margin-right: 0.6em; }
:host([option-type="order"]) { --shadow-spacing-scale: var(--shadow-spacing-scale-more, 1); }
:host([option-type="order"]) wrapped-preset { --shadow-font-family: inherit; --shadow-header-font-family: inherit; --shadow-font-weight-base: 400; --shadow-letter-spacing: normal; --shadow-button-text-transform: none; --shadow-button-letter-spacing: normal; --shadow-button-font-style: normal; --shadow-launcher-button-font-weight: 400; --shadow-launcher-button-max-width: 500px; --shadow-launcher-button-alignment: center; --shadow-launcher-button-content-justify-content: space-between; --shadow-launcher-button-content-flex-direction: row-reverse; --shadow-grid-template-areas: var(--shadow-thumbnail-position-start);
/\* border radius */ --shadow-border-radius-scale: 25;
--shadow-block-border-surface: #0000000f; --shadow-border-width: 1px;
/\* buttons */ --shadow-hover-style: var(--shadow-hover-style-light, --shadow-hover-style-light);
--shadow-launcher-button-surface: #ffffff; --shadow-launcher-button-text-color: #000000; --shadow-launcher-button-border-surface: #b7b7b7;
--shadow-primary-button-surface: #ffffff; --shadow-primary-button-text-color: #000000; --shadow-primary-button-border-surface: #b7b7b7;
--shadow-secondary-button-surface: #0000000f; --shadow-secondary-button-text-color: #333333; --shadow-secondary-button-border-surface: #b7b7b7;
/\* text and fonts */ --shadow-font-scale: calc(95 / 100);
/\* primary colors */ --shadow-primary-surface: #ffffff; --shadow-primary-text-color: #000000;
/\* secondary colors */ --shadow-secondary-surface: #f3f3f3; --shadow-secondary-text-color: #333333;
/\* media */ --shadow-gift-thumbnail-size: 40px; --shadow-thumbnail-size: clamp(40px, var(--shadow-gift-thumbnail-size), 200px);
--shadow-thumbnail-flex-direction: row; --shadow-thumbnail-order: -1; --shadow-thumbnail-margin-left: 0; --shadow-thumbnail-margin-right: 0.6em; }
*, *::before, *::after { box-sizing: border-box; }
.gift-block__launcher .icon-wrapper svg, :host(wrapped-extension) gift-block-launcher [data-part="container"] label svg, :host(wrapped-extension) [feature="gift-option"] [data-part="container"] label svg, :host(wrapped-gift-block) gift-block-option-heading label svg { box-sizing: border-box; border: calc(var(--shadow-field-border-width) + 0.5px) solid; border-radius: max(0px, calc(min(0.20625em, var(--shadow-border-radius-sm)) + min(var(--shadow-border-radius-sm) * 1000, var(--shadow-field-border-width) - 1px))); height: calc(var(--shadow-font-size-base) * 0.7875 + 3.5 * var(--shadow-field-border-width) - 0.5px); overflow: visible; width: calc(var(--shadow-font-size-base) * 0.7875 + 3.5 * var(--shadow-field-border-width) - 0.5px); }
.gift-block__launcher .icon-wrapper svg, :host(wrapped-extension) gift-block-launcher [data-part="container"] label svg { height: calc(var(--shadow-block-launcher-font-size, var(--shadow-launcher-font-size, var(--shadow-font-size-base))) * 0.7875 + 3.5 * var(--shadow-field-border-width) - 0.5px); width: calc(var(--shadow-block-launcher-font-size, var(--shadow-launcher-font-size, var(--shadow-font-size-base))) * 0.7875 + 3.5 * var(--shadow-field-border-width) - 0.5px); }
.checkmark-icon { fill: none; stroke-linecap: var(--shadow-tick-cap, round); stroke-linejoin: var(--shadow-tick-join, round); stroke-width: 1.5px; }
gift-block-launcher:not([variant="inline"]) { display: flex; flex-direction: column; gap: var(--shadow-spacing-xs); align-items: var(--shadow-launcher-button-alignment);
& gift-block-visibility-notice { display: block; font-family: var(--shadow-font-family); font-size: smaller; font-weight: var(--shadow-font-weight-base); font-style: var(--shadow-button-font-style); letter-spacing: var(--shadow-button-letter-spacing); padding: 0 var(--shadow-block-padding-inline-end, var(--shadow-spacing-sm)) 0 var(--shadow-block-padding-inline-start, var(--shadow-spacing-sm)); text-transform: var(--shadow-button-text-transform); width: 100%; } }
.gift-block__launcher { background-color: var(--shadow-launcher-button-surface); border-color: var(--shadow-launcher-button-border-surface); border-width: var(--shadow-launcher-button-border-width, var(--shadow-border-width)); border-radius: var(--shadow-launcher-button-border-radius, var(--shadow-border-radius-sm)); border-style: solid; color: var(--shadow-launcher-button-text-color); padding: var(--shadow-block-padding); font-family: var(--shadow-font-family); font-size: var(--shadow-block-launcher-font-size, var(--shadow-launcher-font-size, var(--shadow-font-size-base))); font-weight: var(--shadow-launcher-button-font-weight); font-style: var(--shadow-button-font-style); letter-spacing: var(--shadow-button-letter-spacing); max-width: var(--shadow-block-launcher-button-max-width, var(--shadow-launcher-button-max-width)); text-transform: var(--shadow-button-text-transform); width: 100%;
&:hover { cursor: pointer; background-color: var(--shadow-launcher-button-surface--hover); border-color: var(--shadow-launcher-button-border-surface--hover); }
&:active { background-color: var(--shadow-launcher-button-surface--active); border-color: var(--shadow-launcher-button-border-surface--active); }
&:focus, &:focus-visible { outline: none; }
&[with-checkmark] { position: relative; display: inline-flex; align-items: center; gap: var(--shadow-spacing-fixed);
& .icon-wrapper { display: flex; flex-shrink: 0; }
&[with-gift-options] { .checkmark-icon { display: block; /\* animation: unblur calc(var(--shadow-transition-duration) * 3) ease forwards; */ } } }
&[variant="link"] { background: none; border: none; color: var(--shadow-primary-text-color); font-size: var(--shadow-block-launcher-font-size, var(--shadow-launcher-font-size, var(--shadow-font-size-base))); font-weight: var(--shadow-font-weight-base); font-style: var(--shadow-button-font-style); letter-spacing: var(--shadow-button-letter-spacing); text-transform: var(--shadow-button-text-transform); text-decoration: none; margin-inline-start: -0.25rem; padding: var(--shadow-block-padding-block-start, 0) var(--shadow-block-padding-inline-end, 0) var(--shadow-block-padding-block-end, 0) var(--shadow-block-padding-inline-start, 0); width: auto;
&:hover { cursor: pointer; color: var(--shadow-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(--shadow-spacing-fixed);
flex-direction: var(--shadow-launcher-button-content-flex-direction); justify-content: var(--shadow-launcher-button-content-justify-content); width: 100%;
& .label { text-align: start; } }
& .icon-wrapper { display: none; align-items: center; justify-content: center; min-height: 1.5em; min-width: 1.5em;
svg { border-color: currentColor; }
.checkmark-icon { display: none; stroke: currentColor; } } } .gift-block__launcher:disabled, .gift-block__launcher[gifting-locked], .gift-block__launcher[region-unavailable] { cursor: var(--shadow-disabled-cursor); opacity: var(--shadow-disabled-opacity); pointer-events: none;
&[with-checkmark] { .icon-wrapper { opacity: var(--shadow-disabled-opacity-md); } } }
[data-part="subscription-notice"] { box-sizing: border-box; display: block; font-family: var(--shadow-font-family); font-size: calc(var(--shadow-font-size-base) * 0.875); margin-top: 4px; opacity: 0.7; padding-bottom: 1em; text-align: center;
& a { color: inherit; cursor: pointer; pointer-events: auto; text-decoration: underline; } }
gift-block-launcher:not([variant="inline"]) > [data-part="subscription-notice"] { margin-top: calc(4px - var(--shadow-spacing-xs)); max-width: var(--shadow-block-launcher-button-max-width, var(--shadow-launcher-button-max-width)); width: 100%; }
:host(wrapped-extension) > [data-part="subscription-notice"] { opacity: 1; }
/\* gift block modal */ .gift-block-modal { background-color: var(--shadow-primary-surface); border: none; border-radius: var(--shadow-border-radius-base); box-shadow: 0 var(--shadow-shadow-offset) var(--shadow-shadow-blur) var(--shadow-shadow-color); outline: var(--shadow-border-width) solid var(--shadow-block-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(--shadow-border-width) solid var(--shadow-block-border-surface); } @media (max-width: 768px) { .gift-block-modal { max-height: calc(100% - var(--shadow-spacing-sm)); max-width: calc(100% - var(--shadow-spacing-sm)); overscroll-behavior: contain; } }
/\* gift block modal layout */ .gift-block-modal-layout { display: grid; grid-template-areas: var(--shadow-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-block-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(--shadow-primary-surface); display: flex; flex-direction: row; gap: var(--shadow-spacing-fixed); grid-area: gift-dialog-header; justify-content: space-between; padding: var(--shadow-spacing-lg); position: sticky; top: 0; z-index: 1;
& h1 { color: var(--shadow-primary-text-color); font-family: var(--shadow-header-font-family); font-size: var(--shadow-font-size-lg); font-weight: var(--shadow-font-weight-md); line-height: 1.25em; margin: 0; }
/\* dismiss button styles */ & button { background-color: color-mix(in srgb, var(--shadow-secondary-text-color) 8%, transparent); color: var(--shadow-secondary-text-color); border-radius: var(--shadow-border-radius-xs); font-size: var(--shadow-font-size-sm); font-weight: var(--shadow-font-weight-lg); font-style: var(--shadow-button-font-style); letter-spacing: var(--shadow-button-letter-spacing); text-transform: var(--shadow-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(--shadow-transition-duration) ease, color var(--shadow-transition-duration) ease;
&:hover { background-color: color-mix(in srgb, var(--shadow-secondary-text-color) 6%, var(--shadow-hover-style) 12%); }
&:active { background-color: color-mix(in srgb, var(--shadow-secondary-text-color) 16%, var(--shadow-hover-style) 16%); }
&:disabled { pointer-events: none; opacity: var(--shadow-disabled-opacity); } } }
.gift-block-modal-layout gift-block-actions { background-color: var(--shadow-primary-surface); bottom: 0; grid-area: gift-block-actions; overscroll-behavior: contain; position: sticky; z-index: 1;
/\* the buttons live in the component's own shadow; only its layout knobs are ours */ --shadow-actions-gap: var(--shadow-spacing-sm); --shadow-actions-padding: var(--shadow-spacing-lg); }
gift-dialog-content { display: contents; }
section#media { align-self: stretch; background-color: var(--shadow-secondary-surface); grid-area: media; grid-row: 1 / 4; height: 100%; padding: var(--shadow-spacing-lg); position: sticky; top: 0; transition: order var(--shadow-transition-duration) ease, width var(--shadow-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(--shadow-border-radius-sm); width: 100%; height: auto; } }
@media (min-width: 769px) { &.with-media-cover, &.with-media-fill { contain: size; } } }
section#content { grid-area: content; background-color: var(--shadow-primary-surface);
overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; -webkit-overflow-scrolling: touch;
padding: var(--shadow-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(--shadow-spacing-lg); transition: order var(--shadow-transition-duration) ease;
@media (max-width: 768px) { & > *:first-child:not(:only-child) { margin-top: unset; } }
& gift-block-option-heading { display: block;
& span[data-part="label"] { color: var(--shadow-primary-text-color); display: block; font-size: var(--shadow-font-size-base); font-weight: var(--shadow-font-weight-md, 500); line-height: 1.25em; } }
& .gift-option-group { display: flex; flex-direction: column; gap: var(--shadow-spacing-lg); }
/\* gift product details */ & .gift-product { display: flex; flex-direction: column; gap: var(--shadow-spacing-base); }
& .gift-product-header { align-items: center; display: flex; flex-direction: var(--shadow-thumbnail-flex-direction); flex-wrap: wrap; row-gap: var(--shadow-spacing-base); column-gap: var(--shadow-spacing-sm); }
& .gift-product-content { display: flex; flex: 1 1 50%; flex-direction: column; gap: var(--shadow-spacing-xs); }
& .gift-product-media { display: flex; align-items: center;
&:has(shopify-media) { --shadow-inline-media-max-size: var(--shadow-gift-thumbnail-size); --shadow-inline-media-size: clamp(40px, var(--shadow-gift-thumbnail-size), var(--shadow-inline-media-max-size));
border-radius: var(--shadow-border-radius-sm);
height: var(--shadow-inline-media-size); width: var(--shadow-inline-media-size);
overflow: hidden;
margin-inline-start: auto; margin-inline-end: auto; }
& shopify-media { & img { border-radius: var(--shadow-border-radius-sm); width: 100%; height: auto; } } }
& .gift-product-title { color: var(--shadow-primary-text-color); display: var(--shadow-gift-product-title-display, block); font-size: var(--shadow-font-size-base); font-weight: var(--shadow-font-weight-md); margin: 0; } & .gift-product-pricing { display: flex; gap: var(--shadow-spacing-xs); margin: 0; font-weight: var(--shadow-font-weight-base); font-size: clamp(12px, calc(var(--shadow-font-size-base) * 0.94), 18px); line-height: 1em; } & .gift-product-price { color: var(--shadow-secondary-text-color); } & .gift-product-price--compare { color: var(--shadow-secondary-text-color); text-decoration: line-through; opacity: var(--shadow-disabled-opacity); } & .gift-product-description { font-weight: var(--shadow-font-weight-base); color: var(--shadow-secondary-text-color); font-size: clamp(12px, calc(var(--shadow-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(--shadow-spacing-lg); } } } }
:host(wrapped-gift-block) gift-block-option-heading label { align-items: center; cursor: pointer; display: flex; gap: var(--shadow-spacing-sm); }
:host(wrapped-gift-block[gift-option-optional]) section#content .gift-option-group { border-radius: var(--shadow-border-radius-sm); position: relative; }
:host(wrapped-gift-block[gift-option-optional]:not([gift-option-included])) section#content .gift-option-group { pointer-events: none; }
:host(wrapped-gift-block[gift-option-optional]:not([gift-option-included])) section#content .gift-option-group::after { background-color: color-mix(in srgb, var(--shadow-primary-surface) 62%, transparent); border-radius: inherit; content: ''; inset: calc(var(--shadow-spacing-sm) * -1); position: absolute; }
/\* shopify variant selector */
:host(wrapped-extension) gift-variant-selector { --shadow-picker-padding: var(--shadow-block-padding-block-start, var(--shadow-spacing-sm)) var(--shadow-block-padding-inline-end, var(--shadow-spacing-base)) var(--shadow-block-padding-block-end, var(--shadow-spacing-sm)) var(--shadow-block-padding-inline-start, var(--shadow-spacing-base)); --shadow-picker-rows-padding: var(--shadow-block-padding); }
:host(wrapped-extension[saving="true"]) gift-variant-selector { --shadow-picker-opacity: 0.7; --shadow-picker-pointer-events: none; }
:host(wrapped-gift-block[gift-option-optional]:not([gift-option-included])) gift-variant-selector { --shadow-picker-selection-color: var(--shadow-form-element-border-color); --shadow-picker-selection-width: var(--shadow-field-border-width); --shadow-picker-swatch-selection-color: rgba(0, 0, 0, .1); }
:host(wrapped-extension[gift-option-optional="true"]:not([gift-option-included])) gift-variant-selector, :host(wrapped-gift-block[gift-option-optional="true"]:not([gift-option-included])) gift-variant-selector { --shadow-picker-card-accent: color-mix(in srgb, var(--shadow-form-element-border-color) 25%, transparent); --shadow-picker-card-opacity: 0.8; --shadow-picker-card-ring: transparent; --shadow-picker-radio-appearance: none; --shadow-picker-radio-border: var(--shadow-field-border-width) solid var(--shadow-form-element-border-color); --shadow-picker-radio-surface: var(--shadow-form-element-surface); --shadow-picker-row-shadow: none; --shadow-picker-row-surface: initial; }
wrapped-message-field { gap: var(--shadow-spacing-xs);
& label { color: var(--shadow-secondary-text-color); font-size: var(--shadow-font-size-sm); font-weight: var(--shadow-font-weight-base); line-height: 1em; }
& :is(input, textarea) { background-color: var(--shadow-form-element-surface); border: none; border-radius: var(--shadow-border-radius-sm); color: var(--shadow-form-element-text-color); font-family: var(--shadow-font-family); font-size: var(--shadow-font-size-base); margin: 0; min-height: 42px; outline: var(--shadow-field-border-width) solid var(--shadow-form-element-border-color); padding: var(--shadow-spacing-sm); width: 100%; }
& :is(input, textarea):is(:active, :focus, :focus-visible) { outline-color: var(--shadow-form-element-selection-color); outline-width: var(--shadow-outline-width); }
& :is(input, textarea)::placeholder { color: var(--shadow-form-element-placeholder-text-color); }
& textarea { min-height: 100px; resize: vertical; }
& span.counter { align-self: flex-end; color: var(--shadow-secondary-text-color); font-size: var(--shadow-font-size-sm); line-height: normal; } }
wrapped-message-field[disabled] { cursor: var(--shadow-disabled-cursor); opacity: var(--shadow-disabled-opacity-md); pointer-events: none; transition: background-color var(--shadow-transition-duration) ease, color var(--shadow-transition-duration) ease;
& :is(input, textarea) { background-color: var(--shadow-form-element-surface--disabled); color: transparent; outline-color: var(--shadow-form-element-border-color--disabled); } }
:host(wrapped-extension) { display: flex; flex-direction: column !important; height: fit-content !important; margin-block-start: var(--shadow-block-margin-start, var(--shadow-block-margin-block-start)) !important; margin-block-end: var(--shadow-block-margin-end, var(--shadow-block-margin-block-end)) !important; min-width: unset !important; max-width: 640px !important; padding: unset !important; width: unset !important; }
:host(wrapped-extension) wrapped-preset { background-color: var(--shadow-primary-surface); border: var(--shadow-border-width) solid var(--shadow-block-border-surface); border-radius: var(--shadow-border-radius-sm); color: var(--shadow-primary-text-color); display: flex; flex-direction: column; font-size: var(--shadow-font-size-base); overflow: hidden; }
:host(wrapped-extension[option-type="order"]) { margin-left: var(--shadow-block-margin-inline-start, auto) !important; margin-right: var(--shadow-block-margin-inline-end, 0) !important; width: -moz-available !important; width: -webkit-fill-available !important; width: stretch !important; }
:host(wrapped-extension[target-group="drawer"]) { width: -moz-available !important; width: -webkit-fill-available !important; width: stretch !important; }
:host(wrapped-extension[target-group="drawer"][option-type="order"]) { max-width: unset !important; margin-left: var(--shadow-block-margin-inline-start, 0) !important; margin-right: var(--shadow-block-margin-inline-end, 0) !important; margin-block-end: var(--shadow-block-margin-end, calc(var(--shadow-block-margin-block-end) * 0.5)) !important; }
wrapped-advanced-mode, wrapped-basic-mode { display: contents; }
:host(wrapped-gift-block) wrapped-preset { display: contents; }
:host(wrapped-extension) [data-part="feature"], :host(wrapped-extension) gift-block-launcher { overflow: hidden !important;
& [data-part="container"] { display: flex; flex-direction: column; row-gap: 0.25em;
& label { align-items: center !important; column-gap: var(--shadow-spacing-sm) !important; cursor: pointer !important; display: flex; line-height: normal !important; margin: 0 !important; pointer-events: auto !important; text-align: left !important; text-transform: unset !important; } } }
:host(wrapped-extension) [data-part="feature"] { background-color: var(--shadow-secondary-surface); }
:host(wrapped-extension) [data-part="feature"]:is([feature="variant"], [feature="gift-option"]) { display: block; }
:host(wrapped-extension) [data-part="feature"][enabled="false"] { display: none; opacity: 0; visibility: hidden; }
:host(wrapped-extension) [data-part="disclosure"] { display: grid; grid-template-rows: 0fr; transition: grid-template-rows 0.25s cubic-bezier(0.42, 0, 0.58, 1); }
:host(wrapped-extension) [data-part="disclosure-content"] { display: flex; flex-direction: column; min-height: 0; opacity: 0; overflow: hidden; visibility: hidden; transition: opacity 0.25s, visibility 0.25s; }
:host(wrapped-extension[expanded="true"]) gift-block-launcher:has(~ [data-part="disclosure"] [data-part="feature"][enabled="true"]:not([singular="true"])) { border-bottom: var(--shadow-border-width) solid var(--shadow-block-border-surface); }
:host(wrapped-extension[expanded="true"]) [data-part="disclosure"], :host(wrapped-extension[hidden-checkbox="true"]) [data-part="disclosure"] { grid-template-rows: 1fr; }
:host(wrapped-extension[expanded="true"]) [data-part="disclosure-content"], :host(wrapped-extension[hidden-checkbox="true"]) [data-part="disclosure-content"] { opacity: 1; visibility: visible; }
:host(wrapped-extension[hidden-checkbox="true"]) gift-block-launcher { display: none; opacity: 0; visibility: hidden; }
:host(wrapped-extension[limited="true"]), :host(wrapped-extension[region-unavailable="true"]) { cursor: none !important; pointer-events: none !important; opacity: 0.6 !important;
& [data-part="container"] { & label { pointer-events: none !important; } } }
:host(wrapped-extension[saving="true"]) { & [data-part="container"] { & label { pointer-events: none !important;
& svg, input[type="radio"], span { opacity: 0.7 !important; transition: opacity 300ms cubic-bezier(0.25, 0.1, 0.25, 1); } }
& select { pointer-events: none !important; opacity: 0.7 !important; }
& button { pointer-events: none; opacity: 0.7; transition: opacity 300ms cubic-bezier(0.25, 0.1, 0.25, 1); } } }
:host(wrapped-extension) gift-block-launcher [data-part="container"] { padding: var(--shadow-block-padding);
& label { padding: 0 !important;
& span { &[data-part="label"] { border: unset !important; flex-grow: 1; font-size: var(--shadow-block-launcher-font-size, var(--shadow-launcher-font-size, var(--shadow-font-size-base))); padding: unset !important; }
&[data-part="pricing"] { align-content: center; font-size: var(--shadow-font-size-sm); white-space: nowrap; }
&[data-part="thumbnail"] { background-color: var(--shadow-form-element-surface); background-size: cover; background-position: center; background-repeat: no-repeat; border-radius: var(--shadow-border-radius-sm); min-height: var(--shadow-thumbnail-size); max-height: var(--shadow-thumbnail-size); min-width: var(--shadow-thumbnail-size); max-width: var(--shadow-thumbnail-size); height: 100%; width: 100%; display: inline-block; overflow: hidden; vertical-align: middle; order: var(--shadow-thumbnail-order);
margin-right: var(--shadow-thumbnail-margin-right); margin-left: var(--shadow-thumbnail-margin-left); } } }
}
:host(wrapped-extension) [feature="gift-option"] [data-part="container"] { padding: var(--shadow-block-padding);
& label { align-items: center; cursor: pointer; display: flex; gap: var(--shadow-spacing-sm); }
:host(wrapped-extension) gift-block-launcher [data-part="container"] label, :host(wrapped-extension) [feature="gift-option"] [data-part="container"] label, :host(wrapped-gift-block) gift-block-option-heading label { position: relative;
& input[type="checkbox"] { height: 1px; margin: 0; opacity: 0; pointer-events: none; position: absolute; width: 1px; }
& svg { background: var(--shadow-form-element-surface); border-color: var(--shadow-form-element-border-color); cursor: pointer; flex: 0 0 auto;
& .checkmark-icon { display: none; } }
& input:checked + svg { background: var(--shadow-selection-checked-surface); border-color: var(--shadow-selection-checked-surface);
& .checkmark-icon { display: block; stroke: white; } }
& input:focus-visible + svg { outline: var(--shadow-outline-width) solid var(--shadow-form-element-selection-color); outline-offset: var(--shadow-field-border-width); } }
:host(wrapped-extension[hidden-checkbox="false"][gift-option-optional="false"]) [feature="variant"][enabled="true"][singular="true"] { display: none; }
:host(wrapped-extension[gift-option-optional="true"]) .gift-option-group { transition: opacity 0.25s cubic-bezier(0.42, 0, 0.58, 1); }
:host(wrapped-extension[gift-option-optional="true"]:not([gift-option-included])) .gift-option-group { opacity: 0.5; pointer-events: none; }
:host(wrapped-extension[gift-option-optional="true"]) [feature="variant"][singular="true"] gift-variant-selector { --shadow-picker-list-overflow: auto; }
:host(wrapped-extension) gift-block-message { --shadow-message-gap: var(--shadow-spacing-sm); --shadow-message-padding: var(--shadow-block-padding); --shadow-message-input-flex: 1 1 40%;
& wrapped-message-field {
& label { color: var(--shadow-primary-text-color); }
& textarea { min-height: var(--shadow-textarea-min-height); } } }
:host(wrapped-extension) gift-block-actions { --shadow-actions-gap: var(--shadow-spacing-xs); --shadow-actions-padding: var(--shadow-block-padding); }
/\* media queries */ /\* md - and above */ @media (min-width: 768px) { wrapped-preset { --shadow-section-max-width: 420px; }
gift-dialog-content > section { min-width: var(--shadow-section-max-width); max-width: var(--shadow-section-max-width); }
gift-dialog-header, .gift-block-modal-layout gift-block-actions { min-width: var(--shadow-section-max-width); max-width: var(--shadow-section-max-width); } }
/\* md - and below */ @media (max-width: 768px) { wrapped-preset { --shadow-section-max-width: 390px; }
gift-dialog-content > section { min-width: var(--shadow-section-max-width); max-width: var(--shadow-section-max-width); }
gift-dialog-header, .gift-block-modal-layout gift-block-actions { min-width: var(--shadow-section-max-width); max-width: var(--shadow-section-max-width); }
gift-dialog-header { padding: var(--shadow-spacing-base); }
.gift-block-modal-layout gift-block-actions { --shadow-actions-padding: var(--shadow-spacing-base); }
.gift-block-modal-layout { grid-template-areas: "gift-dialog-header" "media" "content" "gift-block-actions"; grid-template-columns: 1fr; grid-template-rows: auto auto 1fr auto; max-height: calc(100dvh - var(--shadow-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(--shadow-section-max-width); max-height: var(--shadow-section-max-width); } } }
section#content { overflow-y: unset; padding: var(--shadow-spacing-base);
&.with-media-inline { padding-top: 0; }
& .gift-product-media { &:has(shopify-media) { --shadow-inline-media-max-size: 330px; } } } }
/\* sm - and below */ @media (max-width: 480px) { wrapped-preset { --shadow-section-max-width: 100%; }
section#media { & shopify-media { & img { border-radius: unset; min-height: 350px; max-height: 350px; } } } }
@keyframes unblur { from { filter: blur(2px); } to { filter: blur(0px); } }
Join our newsletter to receive
🎁 [**15% off your first order!**](/content/collections/all-gifts "Shop All Gifts"/index.html) 🎁
The Merchant
The Merchant
October 29, 2025
[North Mississippi Avenue Portland, Oregon Neighborhood Guide - Where to Shop, Eat, Drink and Be Merry!](/content/blogs/merchant/north-mississippi-avenue-portland-oregon-neighborhood-guide-where-to-shop-eat-drink-and-be-merry "North Mississippi Avenue Portland, Oregon Neighborhood Guide - Where to Shop, Eat, Drink and Be Merry!"/index.html)
Today's Mississippi Avenue reflects this complex history. While it's known for creativity, sustainability, and independent business, it's important to recognize whose neighborhood this was and who was displaced to make way for the boutiques and brunch spots. Organizations like the Black Food Sovereignty Coalition and Albina Vision Trust work to rebuild Black wealth and community in the area. When you visit Mississippi, you're walking through a neighborhood still grappling with its transformation—beautiful and vibrant, yes, but built on layers of displacement that shouldn't be forgotten.
October 29, 2025
[Nolita/Mulberry Street New York, New York Neighborhood Guide - Where to Shop, Eat, Drink and Be Merry!](/content/blogs/merchant/nolita-mulberry-street-new-york-new-york-neighborhood-guide-where-to-shop-eat-drink-and-be-merry "Nolita/Mulberry Street New York, New York Neighborhood Guide - Where to Shop, Eat, Drink and Be Merry!"/index.html)
Nolita—"North of Little Italy"—is Manhattan's pocket-sized neighborhood where cobblestone charm meets cutting-edge cool. Wedged between SoHo, the Lower East Side, NoHo, and what remains of Little Italy, Nolita is only a few blocks in each direction, but it packs a serious punch. This is where fashionistas browse indie boutiques, where food lovers chase down the perfect slice or pastry, and where the energy feels distinctly downtown without the overwhelming crush of Times Square tourists.
NW 23rd Ave, Portland, Oregon Neighborhood Guide - Where to Shop, Eat, Drink and Be Merry!
October 29, 2025
[NW 23rd Ave, Portland, Oregon Neighborhood Guide - Where to Shop, Eat, Drink and Be Merry!](/content/blogs/merchant/nw-23rd-ave-neighborhood-guide-nob-hill-alphabet-district-portland-oregon-where-to-shop-eat-drink-and-be-merry "NW 23rd Ave, Portland, Oregon Neighborhood Guide - Where to Shop, Eat, Drink and Be Merry!"/index.html)
NW 23rd Avenue—affectionately known as Nob Hill or "Trendy-Third"—is where Portland puts on its fancy pants without losing its soul. This neighborhood takes its name from San Francisco's Nob Hill, and the comparison fits: it's Portland's most sophisticated shopping district, lined with Victorian and Edwardian mansions that have been lovingly converted into boutiques, cafés, and restaurants.
SE Hawthorne, Portland, Oregon Neighborhood Guide - Where to Shop, Eat, Drink and Be Merry!
October 29, 2025
[SE Hawthorne, Portland, Oregon Neighborhood Guide - Where to Shop, Eat, Drink and Be Merry!](/content/blogs/merchant/hawthorne-neighborhood-guide-se-hawthorne-blvd-portland-oregon-where-to-shop-eat-drink-and-be-merry "SE Hawthorne, Portland, Oregon Neighborhood Guide - Where to Shop, Eat, Drink and Be Merry!"/index.html)
While other neighborhoods went corporate or hyper-polished, Hawthorne stayed weird, scrappy, and unapologetically itself. This is where Powell's Books planted its second location, where you can find a 13,000-square-foot vintage clothing collective, and where the world's largest terrarium store exists (yes, really).
A love letter to the margarita
August 10, 2025
[A love letter to the margarita](/content/blogs/merchant/a-love-letter-to-the-margarita "A love letter to the margarita"/index.html)
This is not the margarita that made me fall in love, but let's pretend it was.
July 13, 2025
[Campfire cake at 7,118 ft.](/content/blogs/merchant/campfire-cake-at-7-118-ft "Campfire cake at 7,118 ft."/index.html)
A tale of friendship and cake batter oranges smuggled in backpacks into the Montana mountains.
June 20, 2025
[The Meadow turns 19.](/content/blogs/merchant/the-meadow-turns-19 "The Meadow turns 19."/index.html)
It’s our 19th birthday! The Meadow is celebrating its 19th birthday, if you can call a shop a thing that is born. I went looking for low-cost building materials and found some old growth timbers in a giant disregarded pile behind the Rebuilding Center on Mississippi Avenue. I cleaned them up with wire brushes, cut them down to size, and began to build. I imagined something rustic and elegant, composed of the most ephemeral and beautiful things, and also enduring—intensely personal, neighborhood-y, and engaged. A shop celebrating the wonders of the great wide world. The world seemed different back when we first opened our doors. Foot traffic was often slow, some might say desolate, but it never felt lonely. It simply felt late, or perhaps lazy—relaxed and unselfconsciously itself. In the afternoons, I would tack a sign on the door that said: “across the street having a beer” and rely on customers to saunter over and perhaps even join me. As far away as those memories are, I think things haven't changed that much. The world seems a little faster, a little wilder, but the time that lives in our memory often seems like an idyll, clarified and surrounded in stillness, in a way that the present often does not. This stillness, the potency of a memory, is something that The Meadow strives to bring to life every day, like distilling something down to its bare essentials. The simple pleasure of strolling the streets of your town, the slight quickening of your pulse as you walk into a shop that promises discoveries and intrigue, the banter that builds to connection between a clerk or another visitor, and the treasure that you bring home. Perhaps it’s connected to a story, or an aspiration, or a yearning, or indeed, another memory—this is something we have always cared about, and over the years have learned to focus on more and more. Our simple and yet impossibly ambitious vision is to make the world a more magical place. We do this for our customers, but we also do it for ourselves. The birthday of a company is interesting because it allows us to think outside of ourselves. The Meadow, here on earth for 19 years now, is so much bigger than any one of us and depends on many other people—a remarkable feat of interconnectedness. We couldn't do any of this without our landlords championing our success, or our vendors being exceedingly kind and gracious, our employees believing in us and giving so generously of themselves, and of course, our customers, who have seen to it that we not just survive, but truly thrive. Over the last 19 years, The Meadow has been part of the adventures, challenges, and successes of hundreds and hundreds of small independent makers. We have told the stories of thousands of products, each representing a unique moment of creative genius, crazy flavor combinations like lemon and black pepper in chocolate, or feats of selfless cultural preservation, like the reinvigoration of 1,000-year-old salt making tradition on the Noto peninsula of Japan. We have contributed to countless scores of community, national, and international organizations. Opening our doors seven days a week, rain or shine, is a cadence we hope is both purposeful and modest, but most of all joyful. We hope to carry on for many years to come, continuing to make your day just a little bit brighter with our little shops, sprinkling magic wherever we go. -Mark
June 3, 2025
[Meet the Dads of The Meadow](/content/blogs/merchant/meet-the-dads-of-the-meadow "Meet the Dads of The Meadow"/index.html)
Today we’re pausing to share some sweet photographs and words from our staff about their dads.
March 26, 2025
[Celebrating Women in Spirits](/content/blogs/merchant/celebrating-women-in-spirits "Celebrating Women in Spirits"/index.html)
We are welcoming spring with open arms, and what better way to celebrate than with a refreshing cocktail made with two of our favorite PNW women-owned bitters and spirits. The Wild Card Featuring Freeland Spirits and FreeWildShe bitters
This bold cocktail is an ode to the changing of the seasons, the transition from winter to spring. The fresh, botanical gin paired with bright pomegranate speaks to the spark of new life spring ushers in on the heels of winter, while the cardamom bitters add a familiar warmth reminiscent of not-so-distant cozy winter evenings. Top with bubbles and a splash of lime for a little zing. Get the recipe here! Q&A with Jill Kuehler and Shandrea Frew Featuring Freeland Spirits and FreeWildShe bitters
How did the name of your business come to be?
Jill: Freeland is named after my Meemaw Freeland, my mom's mom. She never touched any booze but she taught me about strength, perseverance and to go for your dreams. She was the primary breadwinner in her family and became a beloved elementary school teacher. My mom and dad were actually in her 5th grade class together. On the front of our bottle there is a woman holding up a stalk of grain. I like to think of her as Meemaw, or any woman, having the privilege and empowerment to go for her dreams. Shandrea: The name FreeWildShe came out of my journey of self-discovery and is a foundational value behind everything I create. We are free to create the life we desire and explore the wisdom of the wild. It’s an invitation to be curious and savor moments for yourself.
Best parts about being your own boss?
Shandrea: I love the ability to build my work schedule around my life. I’m able to attend my kids’ events and be involved in the community to advocate for causes I care about. Jill: I don't have a boss?? :) While I may not report to a boss, I report to thousands of Freeland fans and customers who believe in our brand and our products. And I work with 20 people who I love and respect. We're building something together. I work harder than I ever did when I was an employee. And I carry way more responsibility. But I love that I had the honor of creating something beautiful that wouldn't have existed otherwise and for that, I'm incredibly grateful. What is one piece of advice you’d give to other women who have their own business aspirations? Jill: If you wake up and it's all you can think about, go for it. Surround yourself with friends, family and mentors who are only a phone call or a cocktail away, and allow yourself to lean on them. I was on the fence for about two years deciding whether or not to launch Freeland. My daughter was three at the time. I finally looked at her and realized that she deserved to see her mom go for her big thing. I wanted her to someday feel empowered to go for her big thing. I may fall on my ass. She may fall on her ass. In fact, it's guaranteed to happen at least 1,000 times if you're going for something meaningful. But we will never have to wonder what could have been. No matter what, we can look back and feel proud. And so can any gal who wants to launch her wildest aspirations. Shandrea: Listen to your intuition and show yourself grace. Know why you’re starting a business and how it fits into the life you’re building. When you make decisions, do a gut check—how does it feel? Does it fit with what you want? Trust yourself and create a business on your terms. You don’t have to be like everyone else. And be kind to yourself when something doesn’t go as planned or imposter syndrome creeps in. We are all just figuring it out and a hefty dose of grace will help you keep moving forward.
Anything exciting on the horizon? Can be business or personal!
Shandrea: I recently moved into a new kitchen and 3x’ed my production space! Plus, I’m in the process of hiring a new assistant. I’m super excited to teach someone else my production & business knowledge. Jill: We're distributed in 26 states now. Just 24 to go :)
- Choosing a selection results in a full page refresh.
Roses are red, violets are blue, we love cookies, how about you? We use cookies to ensure you get the best experience on our website. By clicking on "Accept all" you consent to our use of cookies. Learn more.
No, thanksAccept all
★ Reviews
Let customers speak for us
Based on 3616 reviews
88%
(3183)
5%
(171)
3%
(103)
2%
(67)
3%
(92)
See all reviews
Sort byMost RecentHighest RatingLowest RatingOnly PicturesPictures FirstVideos FirstMost Helpful
Product Reviews (3576)Shop Reviews (40)
G
10/12/2026Cocktail Club - Up Your Cocktail Game with Bitters Delivered Straight to Your Door!
Ginger L.
Fantastic club!
The cocktail club is amazing! My husband and I look forward to its arrival each season. The cocktails are creative and delicious. The glassware is adorable and chic. The bitters and other gustatory surprises are unique and lovely. Highly recommend to anyone looking to try interesting new cocktails and upgraded twists on well-known drinks.
Read more
10
> The Meadow replied:
Hi Ginger, we're so thrilled to hear you and your husband enjoy the club! Thank you for your kind words and for recommending us. Cheers to many more delicious cocktails!
D
10/02/2026Bitterman's Salumami Seasoning Salt
David T
My Favorite, evolved
I swear the texture and consistency of this salt has changed since I first received as a gift several years ago. While still excellent in flavor, it is "chunkier" and moister now which takes away from its ease of sprinkling.
Read more
00
C
10/02/2026The Meadow Salt Set
Cameron N
My new go to gift depot
They have everything you could ever want as long as it’s salt or chocolate or helpful customer service. My experience here was delightful and I left with two gifts I know my loved ones will enjoy. I will be back.
Read more
00
A
09/29/2026Black Truffle Sea Salt
Anne Marie Bachmann
Love this salt!
I visited your store from Seattle about a year ago. I have since ordered gifts and salts and other products for me. This salt is my fav especially on popcorn and avocado salt.
Read more
00
C
09/22/2026Cafe Tasse Mini 4-Pack
Customer
Perfect little gift
A delightful bundle to give a friend as a token of appreciation. You can select different chocolates or go all in on one!
Read more
00
123
\ \
salt
chocolate
bar & pantry
gifts
about us
Search
Popular searches:
Most searched products:
- \ \ Black Truffle Sea Salt\ \ Regular price\ $ 18.00\ \ \ Sale price\ $ 18.00\ Regular price~~~~\ \ Unit price\ \ /per](/content/products/black-truffle-sea-salt/index.html)
- \ \ Salt Starter Set\ \ Regular price\ $ 24.00\ \ \ Sale price\ $ 24.00\ Regular price~~~~\ \ Unit price\ \ /per](/content/products/salt-starter-set/index.html)
- \ \ Parmesan Truffle Salt\ \ Regular price\ $ 22.00\ \ \ Sale price\ $ 22.00\ Regular price~~~~\ \ Unit price\ \ /per](/content/products/parmesan-truffle-salt/index.html)
- \ \ Bitterman's Fleur de Sel Sea Salt\ \ Regular price\ $ 15.00\ \ \ Sale price\ $ 15.00\ Regular price~~~~\ \ Unit price\ \ /per](/content/products/bittermans-fleur-de-sel-sea-salt/index.html)
- \ \ The Meadow Salt Set\ \ Regular price\ $ 36.00\ \ \ Sale price\ $ 36.00\ Regular price~~~~\ \ Unit price\ \ /per](/content/products/the-meadow-salt-set/index.html)
themeadow.com
themeadow.com is blocked
This page has been blocked by an extension
- Try disabling your extensions.
ERR_BLOCKED_BY_CLIENT
Reload
This page has been blocked by an extension
themeadow.com
themeadow.com is blocked
This page has been blocked by an extension
- Try disabling your extensions.
ERR_BLOCKED_BY_CLIENT
Reload
This page has been blocked by an extension
shop.app
shop.app is blocked
This page has been blocked by an extension
- Try disabling your extensions.
ERR_BLOCKED_BY_CLIENT
Reload
This page has been blocked by an extension
Do you like surprises?
Join our newsletter for a special gift delivered straight to your inbox every month during your first year. Plus, get 15% off your first order.
This field is required
The email address must contain @ and a valid domain
Something went wrong!
sign up
Did you know? Our newsletter is the only place to access sales that can also be redeemed in our brick & mortar shops :)
Thanks for signing up!
Your welcome code for 15% off
is waiting in your inbox!
*Don't forget to check your spam and promotions folders.
You are already subscribed.
Not receiving our emails? Let us know at hello@themeadow.com!
Gorgias Shopper Engagement
Gorgias Floating ChatGorgias Floating Chat
Gorgias live chat messengerGorgias Live Chat