salt • chocolate • bitters • gifts – 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); } }

Skip to content

Join our newsletter to receive

🎁 [**15% off your first order!**](/content/collections/all-gifts "Shop All Gifts"/index.html) 🎁

Celebrating 20 Years!

Our all-time greatest hits...

shop now

Our Greatest Hits...

Salt Club - World's Most Exotic Salts Delivered Straight to Your Door!

Add to cart

25 reviews Salt Club - World's Most Exotic Salts Delivered Straight to Your Door!

Regular price $ 48.00

Sale price $ 48.00 Regular price~~~~

Unit price

/per

The Meadow Salt Set

Choose options

33 reviews The Meadow Salt Set

Regular price From $ 36.00

Sale price From $ 36.00 Regular price~~~~

Unit price

/per

Salt Starter Set

Choose options

80 reviews Salt Starter Set

Regular price From $ 24.00

Sale price From $ 24.00 Regular price~~~~

Unit price

/per

Popcorn Party Salt 6-Pack

Add to cart

5 reviews Popcorn Party Salt 6-Pack

Regular price $ 46.00

Sale price $ 46.00 Regular price~~~~

Unit price

/per

Lemon Flake Sea Salt

Choose options

45 reviews Lemon Flake Sea Salt

Regular price From $ 9.00

Sale price From $ 9.00 Regular price~~~~

Unit price

/per

Bitterman's Salt & Pepper Salt

Choose options

72 reviews Bitterman's Salt & Pepper Salt

Regular price From $ 9.00

Sale price From $ 9.00 Regular price~~~~

Unit price

/per

Sokol Blosser Pinot Noir Salt

Choose options

12 reviews Sokol Blosser Pinot Noir Salt

Regular price From $ 10.00

Sale price From $ 10.00 Regular price~~~~

Unit price

/per

Black Truffle Sea Salt

Choose options

177 reviews Black Truffle Sea Salt

Regular price From $ 18.00

Sale price From $ 18.00 Regular price~~~~

Unit price

/per

Parmesan Truffle Salt

Choose options

64 reviews Parmesan Truffle Salt

Regular price From $ 22.00

Sale price From $ 22.00 Regular price~~~~

Unit price

/per

Around the World Chocolate Set

Choose options

No reviews Around the World Chocolate Set

Regular price $ 352.00

Sale price $ 352.00 Regular price~~~~

Unit price

/per

Taste of The Meadow Gift Box - Send a personalized gift straight to their door!

Choose options

61 reviews Taste of The Meadow Gift Box - Send a personalized gift straight to their door!

Regular price From $ 85.00

Sale price From $ 85.00 Regular price~~~~

Unit price

/per

Custom Chocolate Box - Send a curated gift straight to their door!

Choose options

84 reviews Custom Chocolate Box - Send a curated gift straight to their door!

Regular price From $ 95.00

Sale price From $ 95.00 Regular price~~~~

Unit price

/per

We love to cook (and eat). We only sell what we love.

The Chocolate Shop

Plucked from the shelves of our extensive collection of 400+ craft and single-origin chocolate bars, curated tasting flights for the most discerning chocolate connoisseurs.

Best Sellers

Tasting Flights

Meadow Bars

More Sweets

Custom Chocolate Box - Send a curated gift straight to their door!

Choose options

84 reviews Custom Chocolate Box - Send a curated gift straight to their door!

Regular price From $ 95.00

Sale price From $ 95.00 Regular price~~~~

Unit price

/per

Cafe Tasse Mini 4-Pack

Add to cart

4 reviews Cafe Tasse Mini 4-Pack

Regular price $ 6.00

Sale price $ 6.00 Regular price~~~~

Unit price

/per

The Meadow Chocolate Adventure Gift Box

Choose options

2 reviews The Meadow Chocolate Adventure Gift Box

Regular price From $ 72.00

Sale price From $ 72.00 Regular price~~~~

Unit price

/per

Miniature Sweet Box

Add to cart

No reviews Miniature Sweet Box

Regular price $ 65.00

Sale price $ 65.00 Regular price~~~~

Unit price

/per

Oregon Chocolate Gift Box

Add to cart

2 reviews Oregon Chocolate Gift Box

Regular price $ 95.00

Sale price $ 95.00 Regular price~~~~

Unit price

/per

The Meadow Dark Chocolate with Berries & Cherries

Add to cart

3 reviews The Meadow Dark Chocolate with Berries & Cherries

Regular price $ 12.00

Sale price $ 12.00 Regular price~~~~

Unit price

/per

The Meadow Backyard Berry Patch Dark Chocolate with Raspberries and Blueberries

Add to cart

2 reviews The Meadow Backyard Berry Patch Dark Chocolate with Raspberries and Blueberries

Regular price $ 12.00

Sale price $ 12.00 Regular price~~~~

Unit price

/per

The Meadow Milk Chocolate with Candied Oranges and Pistachios

Add to cart

2 reviews The Meadow Milk Chocolate with Candied Oranges and Pistachios

Regular price $ 12.00

Sale price $ 12.00 Regular price~~~~

Unit price

/per

Around the World Chocolate Set

Choose options

No reviews Around the World Chocolate Set

Regular price $ 352.00

Sale price $ 352.00 Regular price~~~~

Unit price

/per

Sweet & Salty Chocolate Tasting Flight Box

Add to cart

No reviews Sweet & Salty Chocolate Tasting Flight Box

Regular price $ 74.00

Sale price $ 74.00 Regular price~~~~

Unit price

/per

Fruity Chocolate Tasting Flight Box

Add to cart

No reviews Fruity Chocolate Tasting Flight Box

Regular price $ 98.00

Sale price $ 98.00 Regular price~~~~

Unit price

/per

Milk Chocolate Tasting Flight Box

Add to cart

1 review Milk Chocolate Tasting Flight Box

Regular price $ 78.00

Sale price $ 78.00 Regular price~~~~

Unit price

/per

85% and Up Dark Chocolate Tasting Flight Box

Add to cart

1 review 85% and Up Dark Chocolate Tasting Flight Box

Regular price $ 72.00

Sale price $ 72.00 Regular price~~~~

Unit price

/per

Boozy Chocolate Tasting Flight Box

Add to cart

No reviews Boozy Chocolate Tasting Flight Box

Regular price $ 52.00

Sale price $ 52.00 Regular price~~~~

Unit price

/per

Weird & Wacky Chocolate Tasting Flight Box

Add to cart

1 review Weird & Wacky Chocolate Tasting Flight Box

Regular price $ 78.00

Sale price $ 78.00 Regular price~~~~

Unit price

/per

Coffee Chocolate Tasting Flight Box

Add to cart

No reviews Coffee Chocolate Tasting Flight Box

Regular price $ 45.00

Sale price $ 45.00 Regular price~~~~

Unit price

/per

The Meadow Chocolate Adventure Gift Box

Choose options

2 reviews The Meadow Chocolate Adventure Gift Box

Regular price From $ 72.00

Sale price From $ 72.00 Regular price~~~~

Unit price

/per

The Meadow Milk Chocolate with Candied Oranges and Pistachios

Add to cart

2 reviews The Meadow Milk Chocolate with Candied Oranges and Pistachios

Regular price $ 12.00

Sale price $ 12.00 Regular price~~~~

Unit price

/per

The Meadow Dark Chocolate with Cherries & Pepper

Add to cart

1 review The Meadow Dark Chocolate with Cherries & Pepper

Regular price $ 12.00

Sale price $ 12.00 Regular price~~~~

Unit price

/per

The Meadow Dark Chocolate with Berries & Cherries

Add to cart

3 reviews The Meadow Dark Chocolate with Berries & Cherries

Regular price $ 12.00

Sale price $ 12.00 Regular price~~~~

Unit price

/per

The Meadow Milk Chocolate with Oregon Hazelnuts

Add to cart

2 reviews The Meadow Milk Chocolate with Oregon Hazelnuts

Regular price $ 12.00

Sale price $ 12.00 Regular price~~~~

Unit price

/per

The Meadow Milk Chocolate with Flaky Sea Salt

Add to cart

1 review The Meadow Milk Chocolate with Flaky Sea Salt

Regular price $ 12.00

Sale price $ 12.00 Regular price~~~~

Unit price

/per

The Meadow Wine and Flowers Dark Chocolate with Rose Petals, Nibs, and Pinot Noir Salt

Add to cart

3 reviews The Meadow Wine and Flowers Dark Chocolate with Rose Petals, Nibs, and Pinot Noir Salt

Regular price $ 12.00

Sale price $ 12.00 Regular price~~~~

Unit price

/per

The Meadow Dark Chocolate with Fleur de Hell™

Add to cart

3 reviews The Meadow Dark Chocolate with Fleur de Hell™

Regular price $ 12.00

Sale price $ 12.00 Regular price~~~~

Unit price

/per

Miniature Sweet Box

Add to cart

No reviews Miniature Sweet Box

Regular price $ 65.00

Sale price $ 65.00 Regular price~~~~

Unit price

/per

Cafe Tasse Mini 4-Pack

Add to cart

4 reviews Cafe Tasse Mini 4-Pack

Regular price $ 6.00

Sale price $ 6.00 Regular price~~~~

Unit price

/per

The Meadow White Chocolate Chips

Add to cart

No reviews The Meadow White Chocolate Chips

Regular price $ 14.00

Sale price $ 14.00 Regular price~~~~

Unit price

/per

shop all chocolate

"A salt lovers dream."

The Salt Shop

Made in 10lb batches. Explore our famous library of salts from around the world. From delicate finishing salts to bold, mineral-rich crystals, they make unforgettable chef-approved gifts.

Seasonal

Salt Sets

Best Sellers

Infused

Bitterman's Curry Flavor Pack

Add to cart

No reviews Bitterman's Curry Flavor Pack

Regular price $ 42.00

Sale price $ 42.00 Regular price~~~~

Unit price

/per

Bitterman's Red Curry Salt

Choose options

No reviews Bitterman's Red Curry Salt

Regular price From $ 14.00

Sale price From $ 14.00 Regular price~~~~

Unit price

/per

Bitterman's Yellow Curry Salt

Choose options

No reviews Bitterman's Yellow Curry Salt

Regular price From $ 14.00

Sale price From $ 14.00 Regular price~~~~

Unit price

/per

Bitterman's Green Curry Salt

Choose options

No reviews Bitterman's Green Curry Salt

Regular price From $ 14.00

Sale price From $ 14.00 Regular price~~~~

Unit price

/per

Bitterman's Herbes de Northwest™ Sea Salt

Choose options

18 reviews Bitterman's Herbes de Northwest™ Sea Salt

Regular price From $ 9.00

Sale price From $ 9.00 Regular price~~~~

Unit price

/per

Bitterman's Chili Cheese Dust

Add to cart

1 review Bitterman's Chili Cheese Dust

Regular price $ 14.00

Sale price $ 14.00 Regular price~~~~

Unit price

/per

Bitterman's Magic Pizza Dust

Add to cart

21 reviews Bitterman's Magic Pizza Dust

Regular price $ 12.00

Sale price $ 12.00 Regular price~~~~

Unit price

/per

Bitterman's Movie Theater Butter Salt

Add to cart

No reviews Bitterman's Movie Theater Butter Salt

Regular price $ 14.00

Sale price $ 14.00 Regular price~~~~

Unit price

/per

The Meadow Salt Set

Choose options

33 reviews The Meadow Salt Set

Regular price From $ 36.00

Sale price From $ 36.00 Regular price~~~~

Unit price

/per

Cocktail Salt Set

Add to cart

6 reviews Cocktail Salt Set

Regular price $ 45.00

Sale price $ 45.00 Regular price~~~~

Unit price

/per

Citrus Salt Set

Add to cart

No reviews Citrus Salt Set

Regular price $ 48.00

Sale price $ 48.00 Regular price~~~~

Unit price

/per

Grilling Salt Set

Add to cart

14 reviews Grilling Salt Set

Regular price $ 40.00

Sale price $ 40.00 Regular price~~~~

Unit price

/per

Wine Salt Set

Add to cart

8 reviews Wine Salt Set

Regular price $ 52.00

Sale price $ 52.00 Regular price~~~~

Unit price

/per

Spicy Salt Set

Add to cart

5 reviews Spicy Salt Set

Regular price $ 42.00

Sale price $ 42.00 Regular price~~~~

Unit price

/per

Dessert Salt Set

Add to cart

13 reviews Dessert Salt Set

Regular price $ 40.00

Sale price $ 40.00 Regular price~~~~

Unit price

/per

Salad Salt Set

Add to cart

6 reviews Salad Salt Set

Regular price $ 38.00

Sale price $ 38.00 Regular price~~~~

Unit price

/per

Black Truffle Sea Salt

Choose options

177 reviews Black Truffle Sea Salt

Regular price From $ 18.00

Sale price From $ 18.00 Regular price~~~~

Unit price

/per

Salt Starter Set

Choose options

80 reviews Salt Starter Set

Regular price From $ 24.00

Sale price From $ 24.00 Regular price~~~~

Unit price

/per

Parmesan Truffle Salt

Choose options

64 reviews Parmesan Truffle Salt

Regular price From $ 22.00

Sale price From $ 22.00 Regular price~~~~

Unit price

/per

Bitterman's Fleur de Sel Sea Salt

Choose options

117 reviews Bitterman's Fleur de Sel Sea Salt

Regular price From $ 7.00

Sale price From $ 7.00 Regular price~~~~

Unit price

/per

The Meadow Salt Set

Choose options

33 reviews The Meadow Salt Set

Regular price From $ 36.00

Sale price From $ 36.00 Regular price~~~~

Unit price

/per

Bitterman's Flake Sea Salt

Choose options

39 reviews Bitterman's Flake Sea Salt

Regular price From $ 7.00

Sale price From $ 7.00 Regular price~~~~

Unit price

/per

Red Alder Smoked Sea Salt

Choose options

21 reviews Red Alder Smoked Sea Salt

Regular price From $ 10.00

Sale price From $ 10.00 Regular price~~~~

Unit price

/per

Himalayan Pink Rock Salt

Choose options

22 reviews Himalayan Pink Rock Salt

Regular price From $ 6.00

Sale price From $ 6.00 Regular price~~~~

Unit price

/per

Bitterman's Buttery Popcorn Salt

Choose options

59 reviews Bitterman's Buttery Popcorn Salt

Regular price From $ 9.00

Sale price From $ 9.00 Regular price~~~~

Unit price

/per

Bitterman's Salt & Pepper Salt

Choose options

72 reviews Bitterman's Salt & Pepper Salt

Regular price From $ 9.00

Sale price From $ 9.00 Regular price~~~~

Unit price

/per

Lemon Flake Sea Salt

Choose options

45 reviews Lemon Flake Sea Salt

Regular price From $ 9.00

Sale price From $ 9.00 Regular price~~~~

Unit price

/per

Bitterman's Rosemary Flake Salt

Choose options

24 reviews Bitterman's Rosemary Flake Salt

Regular price From $ 9.00

Sale price From $ 9.00 Regular price~~~~

Unit price

/per

Bitterman's Fleur de Hell™

Choose options

35 reviews Bitterman's Fleur de Hell™

Regular price From $ 9.00

Sale price From $ 9.00 Regular price~~~~

Unit price

/per

Bitterman's Roasted Garlic Salt

Choose options

17 reviews Bitterman's Roasted Garlic Salt

Regular price From $ 9.00

Sale price From $ 9.00 Regular price~~~~

Unit price

/per

Bitterman's Chocolate Fleur de Sel

Choose options

25 reviews Bitterman's Chocolate Fleur de Sel

Regular price From $ 9.00

Sale price From $ 9.00 Regular price~~~~

Unit price

/per

Bitterman's Herbes de Northwest™ Sea Salt

Choose options

18 reviews Bitterman's Herbes de Northwest™ Sea Salt

Regular price From $ 9.00

Sale price From $ 9.00 Regular price~~~~

Unit price

/per

shop all salt

Celebrating 20 Years!

Say hello and sample to your hearts delight at one of our shops.

N Portland

11am to 7pm daily

Our original shop, with the biggest collection of library salts from all over the world!

3731 N Mississippi Ave

Portland, Oregon 97227

Free chocolate tasting every Thursday from 5 to 6pm!

SE Portland

11am to 7pm daily

Our biggest shop, with a rad pantry collection!

3731 SE Hawthorne Blvd

(by Powell's Books)

Portland, Oregon 97214

Free chocolate tasting every Friday from 5 to 6pm!

NW Portland

10am to 8pm daily

Our flagship shop, with 400+ chocolate bars!

805 NW 23rd Ave

Portland, Oregon 97210

Free chocolate tasting every Tuesday from 4 to 5pm!

Soho / Nolita

11am to 9pm daily

Our east coast outpost! We <3 NY

240 Mulberry St

(btwn Prince and Spring)

New York, New York 10012

Free chocolate tasting every Thursday from 4 to 6pm!

We are a family-owned, independent specialty food shop founded in 2006 in Portland, Oregon.

We are purveyors of the country's largest collection of craft salts, artisan chocolate bars, cocktail bitters and pantry goodies, plus fresh cut flowers daily. We love what we do and are happy to have you here.

our story

If you love it, salt it.

Food and cocktail recipes for every season. Try one out and let us know what you think!

Pasta Puttanesca

[Pasta Puttanesca](/content/blogs/recipes-by-the-meadow/pasta-puttanesca "Pasta Puttanesca"/index.html)

Read more

Wild Mountain Focaccia

[Wild Mountain Focaccia](/content/blogs/recipes-by-the-meadow/wild-mountain-focaccia "Wild Mountain Focaccia"/index.html)

Read more

Fish Tacos with Sal de Gusano

[Fish Tacos with Sal de Gusano](/content/blogs/recipes-by-the-meadow/fish-tacos-with-sal-de-gusano "Fish Tacos with Sal de Gusano"/index.html)

Read more

Motto Guzzi Sbagliato

[Motto Guzzi Sbagliato](/content/blogs/recipes-by-the-meadow/motto-guzzi-sbagliato "Motto Guzzi Sbagliato"/index.html)

Read more

Roasted Harissa Salmon with Potatoes, Garlic Aioli and Crunchy Salt

[Roasted Harissa Salmon with Potatoes, Garlic Aioli and Crunchy Salt](/content/blogs/recipes-by-the-meadow/roasted-harissa-salmon-with-potatoes-garlic-aioli-and-crunchy-salt "Roasted Harissa Salmon with Potatoes, Garlic Aioli and Crunchy Salt"/index.html)

Read more

Salmon Cakes with Capers, Cayenne, and Lemon Flake Sea Salt

[Salmon Cakes with Capers, Cayenne, and Lemon Flake Sea Salt](/content/blogs/recipes-by-the-meadow/35201029-salmon-cakes-with-capers-cayenne-and-lemon-flake-sea-salt "Salmon Cakes with Capers, Cayenne, and Lemon Flake Sea Salt"/index.html)

Read more

Cheddar & Chive Scones with Icelandic Flake Salt

[Cheddar & Chive Scones with Icelandic Flake Salt](/content/blogs/recipes-by-the-meadow/75995845-cheddar-chive-scones-with-icelandic-flake-salt "Cheddar & Chive Scones with Icelandic Flake Salt"/index.html)

Read more

Mark's Mom's Caesar Salad

[Mark's Mom's Caesar Salad](/content/blogs/recipes-by-the-meadow/marks-moms-caesar-salad "Mark's Mom's Caesar Salad"/index.html)

Read more

Mashed Potatoes, Salted 3 Ways

[Mashed Potatoes, Salted 3 Ways](/content/blogs/recipes-by-the-meadow/mashed-potatoes-salted-3-ways-1 "Mashed Potatoes, Salted 3 Ways"/index.html)

Read more

The Mix and Match Manhattan

[The Mix and Match Manhattan](/content/blogs/recipes-by-the-meadow/mix-and-match-manhattan-3-ways "The Mix and Match Manhattan"/index.html)

Read more

Salted Caramel Apple Pie with Bitterman's Fleur de Sel Sea Salt and Taha'a Vanilla

[Salted Caramel Apple Pie with Bitterman's Fleur de Sel Sea Salt and Taha'a Vanilla](/content/blogs/recipes-by-the-meadow/76235589-salted-caramel-apple-pie-with-bittermans-fleur-de-sel-sea-salt "Salted Caramel Apple Pie with Bitterman's Fleur de Sel Sea Salt and Taha'a Vanilla"/index.html)

Read more

Cranberry Shrub Cocktail

[Cranberry Shrub Cocktail](/content/blogs/recipes-by-the-meadow/cranberry-shrub-cocktail "Cranberry Shrub Cocktail"/index.html)

Read more

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

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.

Cocktail Club - Up Your Cocktail Game with Bitters Delivered Straight to Your Door!

Randy S.

Oooh Mommy!!! A house guest gifted us a box of this recently after visiting Portland. I had some purple sourdough and just made a new batch because this was past its prime. I made croutons and dusted them with Bitterman's Parmesan Truffle Salt. Ooooh Mommy! This stuff is the bomb! I hope my guests come to visit again soon on their way back from Portland.

Parmesan Truffle Salt

Dk

Big taste…. Little store Going to The Meadow is one of my favorite things to do when I’m in SoHo. Miguel is so kind and his smile is so welcoming! The dark chocolate sea salt caramels are just one of my favs!

The Meadow

Bob Mik

A Fantastic Plant-Based Flight! What started as a stocking stuffer for my wife for Christmas turned into a fun evening event tasting a great mix of chocolates from around the world. While we have our favorites the amongst the offering, each bar had its own qualities and distinction to make each taste along the flight enjoyable. And it is proof a vegan alternate is not a sacrifice. In fact it may be superior!

Vegan Milk Chocolate Tasting Flight Box

Amanda Riebe

The best paprika we've ever had! My partner is the chef of our household and couldn't stop talking about how good this was. We used it in a homemade dressing for a southwest chicken salad and it was delicious!

Bitterman's Smoked Pimentón from Spain

★ Reviews

Let customers speak for us

Based on 3616 reviews

Write a review

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

themeadow.com

themeadow.com is blocked

This page has been blocked by an extension

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

ERR_BLOCKED_BY_CLIENT

Reload

This page has been blocked by an extension

\ \

salt

chocolate

bar & pantry

gifts

about us

Log in

Search

Popular searches:

Most searched products:

shop.app

shop.app is blocked

This page has been blocked by an extension

ERR_BLOCKED_BY_CLIENT

Reload

This page has been blocked by an extension

Judge.me

Gorgias Shopper Engagement

Gorgias Floating ChatGorgias Floating Chat

Gorgias live chat messengerGorgias Live Chat