.dfpd *, .dfpd *::before, .dfpd *::after {
box-sizing: border-box; margin: 0; padding: 0;
}
.dfpd {
–ink: #2A241E; –ink-2: #483C30; –ink-3: #6B5B48;
–cream: #FCF8F0; –bg: #F2EAD8; –linen: #ECE0C4; –sand: #D8C898;
–border: #BCA878; –border-lt: #D2BC92;
/* PRODUCT-SPECIFIC ACCENT — Vintage olive-brass (mid-century 1950s) */
–olive: #8C7838;
–olive-lt: #B09858;
–olive-dk: #5C4F1C;
–olive-sft: #F2E8C8;
–clay: #6E5828;
–clay-sft: #F0E2C8;
–stone: #807048; –mist: #B09668;
font-family: ‘Outfit’, ‘Helvetica Neue’, sans-serif;
-webkit-font-smoothing: antialiased;
color: var(–ink); font-weight: 300; font-size: 16px; line-height: 1.6;
background: transparent;
padding: 1.5rem 0 2rem;
width: 100%;
}
.dfpd-inner { max-width: 100%; margin: 0; padding: 0; }
.dfpd-eyebrow {
display: inline-flex; align-items: center; gap: 0.7rem;
font-family: ‘Outfit’, sans-serif;
font-size: 0.62rem; font-weight: 500;
letter-spacing: 0.28em; text-transform: uppercase;
color: var(–olive); margin-bottom: 0.85rem;
}
.dfpd-eyebrow::before { content: ”; width: 22px; height: 1px; background: var(–olive); }
.dfpd-h2 {
font-family: ‘Fraunces’, serif;
font-size: clamp(1.25rem, 2vw, 1.5rem);
font-weight: 400; line-height: 1.25;
letter-spacing: -0.005em; color: var(–ink);
margin-bottom: 1rem;
}
.dfpd-h2 em { font-style: italic; color: var(–olive-dk); }
.dfpd-hero {
padding-bottom: 2rem;
border-bottom: 1px solid var(–border);
margin-bottom: 2rem;
}
.dfpd-hero-eyebrow {
display: inline-flex; align-items: center; gap: 0.7rem;
font-family: ‘Outfit’, sans-serif;
font-size: 0.68rem; font-weight: 500;
letter-spacing: 0.28em; text-transform: uppercase;
color: var(–olive); margin-bottom: 1rem;
}
.dfpd-hero-eyebrow::before { content: ”; width: 26px; height: 1px; background: var(–olive); }
.dfpd-title {
font-family: ‘Fraunces’, serif;
font-size: clamp(1.75rem, 3.4vw, 2.35rem);
font-weight: 300; line-height: 1.1;
letter-spacing: -0.015em; color: var(–ink);
margin-bottom: 1rem;
max-width: 780px;
}
.dfpd-title em { font-style: italic; color: var(–olive-dk); font-weight: 400; }
.dfpd-lede {
font-size: 0.98rem; font-weight: 300; line-height: 1.7;
color: var(–ink-2); max-width: 720px;
}
.dfpd-features {
display: grid; grid-template-columns: repeat(4, 1fr);
border: 1px solid var(–border); border-radius: 4px;
overflow: hidden; background: var(–cream);
margin-bottom: 2.5rem;
}
.dfpd-feature {
padding: 1.25rem 1rem; text-align: center;
border-right: 1px solid var(–border-lt);
transition: background 0.3s;
}
.dfpd-feature:last-child { border-right: none; }
.dfpd-feature:hover { background: var(–linen); }
.dfpd-feature-icon { color: var(–olive-dk); margin-bottom: 0.6rem; display: inline-flex; }
.dfpd-feature-title {
font-family: ‘Fraunces’, serif; font-size: 0.92rem;
font-weight: 400; line-height: 1.3; color: var(–ink);
}
.dfpd-feature-title em { font-style: italic; color: var(–olive-dk); }
.dfpd-sec { margin-bottom: 2.5rem; }
/* MAIN VIDEO */
.dfpd-video {
position: relative; aspect-ratio: 16 / 9;
width: 100%; max-width: 720px;
background: #000; border-radius: 4px;
overflow: hidden;
box-shadow: 0 6px 20px rgba(42, 36, 30, 0.12);
margin: 0 auto;
}
.dfpd-video iframe {
position: absolute; inset: 0;
width: 100%; height: 100%; border: 0;
display: block;
}
/* HERITAGE */
.dfpd-heritage {
display: grid;
grid-template-columns: 80px 1fr;
gap: 1.5rem;
padding: 1.5rem 1.75rem;
background: linear-gradient(135deg, var(–cream) 0%, var(–olive-sft) 100%);
border: 1px solid var(–border);
border-radius: 4px;
align-items: center;
}
.dfpd-heritage-icon {
width: 64px; height: 64px;
border-radius: 50%;
background: var(–cream);
border: 1px solid var(–olive);
color: var(–olive-dk);
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
}
.dfpd-heritage-text-eyebrow {
font-family: ‘Outfit’, sans-serif;
font-size: 0.6rem;
font-weight: 500;
letter-spacing: 0.28em;
text-transform: uppercase;
color: var(–olive);
margin-bottom: 0.4rem;
}
.dfpd-heritage-text h4 {
font-family: ‘Fraunces’, serif;
font-size: 1.3rem;
font-style: italic;
font-weight: 400;
color: var(–olive-dk);
letter-spacing: -0.01em;
line-height: 1.2;
margin-bottom: 0.45rem;
}
.dfpd-heritage-text p {
font-size: 0.9rem;
color: var(–ink-2);
line-height: 1.6;
margin: 0 0 0.55rem;
}
.dfpd-heritage-text p:last-child { margin-bottom: 0; }
.dfpd-heritage-text p strong { color: var(–ink); font-weight: 500; }
/* POLYMER VEINING — image left + text right */
.dfpd-veining {
display: grid;
grid-template-columns: 280px 1fr;
gap: 0;
background: var(–cream);
border: 1px solid var(–border);
border-radius: 4px;
overflow: hidden;
}
.dfpd-veining-image {
position: relative;
display: block;
width: 100%;
height: 100%;
min-height: 240px;
background: #FFFFFF;
border-right: 1px solid var(–border-lt);
cursor: zoom-in;
text-decoration: none;
color: inherit;
overflow: hidden;
padding: 12px;
transition: background 0.2s;
}
.dfpd-veining-image:hover { background: #FAF7F0; }
.dfpd-veining-image img {
width: 100%; height: 100%;
object-fit: contain;
display: block;
transition: transform 0.4s ease;
}
.dfpd-veining-image:hover img { transform: scale(1.4); }
.dfpd-veining-image-icon {
position: absolute;
bottom: 14px; right: 14px;
width: 26px; height: 26px;
background: rgba(42, 36, 30, 0.85);
color: var(–cream);
border-radius: 50%;
display: flex; align-items: center; justify-content: center;
transition: background 0.2s;
pointer-events: none;
z-index: 2;
}
.dfpd-veining-image:hover .dfpd-veining-image-icon { background: var(–olive); }
.dfpd-veining-text {
padding: 1.5rem 1.75rem;
display: flex;
flex-direction: column;
justify-content: center;
background: linear-gradient(135deg, var(–cream) 0%, var(–olive-sft) 100%);
}
.dfpd-veining-text-eyebrow {
font-family: ‘Outfit’, sans-serif;
font-size: 0.6rem;
font-weight: 500;
letter-spacing: 0.28em;
text-transform: uppercase;
color: var(–olive);
margin-bottom: 0.4rem;
}
.dfpd-veining-text h4 {
font-family: ‘Fraunces’, serif;
font-size: 1.3rem;
font-style: italic;
font-weight: 400;
color: var(–olive-dk);
letter-spacing: -0.01em;
line-height: 1.2;
margin-bottom: 0.5rem;
}
.dfpd-veining-text p {
font-size: 0.88rem;
color: var(–ink-2);
line-height: 1.55;
margin: 0 0 0.55rem;
}
.dfpd-veining-text p:last-child { margin-bottom: 0; }
.dfpd-veining-text p strong { color: var(–ink); font-weight: 500; }
/* CUSTOM SERVICE */
.dfpd-custom {
display: grid;
grid-template-columns: 80px 1fr auto;
gap: 1.5rem;
padding: 1.5rem 1.75rem;
background: linear-gradient(135deg, var(–cream) 0%, var(–olive-sft) 100%);
border: 1px solid var(–border);
border-radius: 4px;
align-items: center;
}
.dfpd-custom-icon {
width: 64px; height: 64px;
border-radius: 50%;
background: var(–cream);
border: 1px solid var(–olive);
color: var(–olive-dk);
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
}
.dfpd-custom-text-eyebrow {
font-family: ‘Outfit’, sans-serif;
font-size: 0.6rem;
font-weight: 500;
letter-spacing: 0.28em;
text-transform: uppercase;
color: var(–olive);
margin-bottom: 0.4rem;
}
.dfpd-custom-text h4 {
font-family: ‘Fraunces’, serif;
font-size: 1.3rem;
font-style: italic;
font-weight: 400;
color: var(–olive-dk);
letter-spacing: -0.01em;
line-height: 1.2;
margin-bottom: 0.4rem;
}
.dfpd-custom-text p {
font-size: 0.88rem;
color: var(–ink-2);
line-height: 1.55;
margin: 0;
}
.dfpd-custom-text p strong { color: var(–ink); font-weight: 500; }
.dfpd-custom-cta {
display: inline-flex;
align-items: center;
gap: 0.55rem;
padding: 0.65rem 1.1rem;
background: var(–ink);
color: var(–cream);
font-family: ‘Outfit’, sans-serif;
font-size: 0.72rem;
font-weight: 500;
letter-spacing: 0.18em;
text-transform: uppercase;
border-radius: 2px;
text-decoration: none;
transition: background 0.2s, transform 0.15s;
white-space: nowrap;
}
.dfpd-custom-cta:hover {
background: var(–olive-dk);
transform: translateY(-1px);
}
/* IMPORTANT NOTES */
.dfpd-notes-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 0.85rem;
}
.dfpd-note {
padding: 1.25rem 1.35rem;
background: var(–cream);
border: 1px solid var(–border);
border-radius: 4px;
}
.dfpd-note h4 {
font-family: ‘Fraunces’, serif;
font-size: 0.98rem;
font-style: italic;
font-weight: 400;
color: var(–ink);
margin-bottom: 0.35rem;
letter-spacing: -0.005em;
}
.dfpd-note p {
color: var(–ink-2);
font-size: 0.85rem;
font-weight: 300;
line-height: 1.55;
margin: 0;
}
.dfpd-note p strong { color: var(–ink); font-weight: 500; }
.dfpd-note a.dfpd-link-inline {
color: var(–olive-dk);
font-weight: 500;
text-decoration: none;
border-bottom: 1px solid var(–olive);
padding-bottom: 1px;
}
/* MODEL GROUPS */
.dfpd-model-group { margin-bottom: 1.75rem; }
.dfpd-model-group:last-child { margin-bottom: 0; }
.dfpd-model-group-label {
display: flex;
align-items: baseline;
gap: 0.85rem;
margin-bottom: 0.85rem;
padding-bottom: 0.5rem;
border-bottom: 1px dashed var(–border-lt);
flex-wrap: wrap;
}
.dfpd-model-group-eyebrow {
font-family: ‘Outfit’, sans-serif;
font-size: 0.58rem;
font-weight: 500;
letter-spacing: 0.28em;
text-transform: uppercase;
color: var(–olive);
}
.dfpd-model-group-title {
font-family: ‘Fraunces’, serif;
font-size: 1.05rem;
font-style: italic;
font-weight: 400;
color: var(–ink);
}
.dfpd-model-group-title em { color: var(–olive-dk); }
.dfpd-model-group-hint {
font-family: ‘Fraunces’, serif;
font-style: italic;
font-size: 0.75rem;
font-weight: 300;
color: var(–stone);
margin-left: auto;
}
.dfpd-model-row {
display: grid;
grid-template-columns: 280px 1fr;
gap: 1rem;
background: var(–cream);
border: 1px solid var(–border);
border-radius: 4px;
overflow: hidden;
}
.dfpd-model-image {
position: relative;
display: block;
width: 100%;
height: 100%;
min-height: 220px;
background: #FFFFFF;
border-right: 1px solid var(–border-lt);
cursor: zoom-in;
text-decoration: none;
color: inherit;
overflow: hidden;
padding: 12px;
transition: background 0.2s;
}
.dfpd-model-image:hover { background: #FAF7F0; }
.dfpd-model-image img {
width: 100%; height: 100%;
object-fit: contain;
display: block;
transition: transform 0.4s ease;
}
.dfpd-model-image:hover img { transform: scale(1.4); }
.dfpd-model-image-icon {
position: absolute;
bottom: 12px; right: 12px;
width: 24px; height: 24px;
background: rgba(42, 36, 30, 0.85);
color: var(–cream);
border-radius: 50%;
display: flex; align-items: center; justify-content: center;
transition: background 0.2s;
pointer-events: none;
z-index: 2;
}
.dfpd-model-image:hover .dfpd-model-image-icon { background: var(–olive); }
.dfpd-model-list {
padding: 1rem 1.25rem;
display: flex;
flex-direction: column;
gap: 0.55rem;
justify-content: center;
}
.dfpd-model-row-item {
display: grid;
grid-template-columns: auto 1fr;
gap: 0.85rem;
align-items: baseline;
padding: 0.65rem 0.9rem;
background: linear-gradient(180deg, var(–cream) 0%, var(–linen) 100%);
border: 1px solid var(–border-lt);
border-radius: 3px;
transition: border-color 0.2s, transform 0.2s;
}
.dfpd-model-row-item:hover {
border-color: var(–olive);
transform: translateX(2px);
}
.dfpd-model-row-title {
font-family: ‘Fraunces’, serif;
font-size: 1.05rem;
font-style: italic;
font-weight: 400;
color: var(–olive-dk);
letter-spacing: -0.005em;
line-height: 1;
white-space: nowrap;
}
.dfpd-model-row-dim {
font-family: ‘Fraunces’, serif;
font-size: 0.85rem;
font-style: italic;
color: var(–ink-2);
line-height: 1.4;
}
.dfpd-model-row-dim em {
font-style: normal;
color: var(–stone);
font-family: ‘Outfit’, sans-serif;
font-size: 0.72rem;
}
/* SPECS */
.dfpd-specs {
border: 1px solid var(–border);
border-radius: 4px;
overflow: hidden;
background: var(–cream);
}
.dfpd-spec-row {
display: grid;
grid-template-columns: 160px 1fr;
gap: 1.5rem;
padding: 0.75rem 1.35rem;
border-bottom: 1px solid var(–border-lt);
align-items: baseline;
font-size: 0.9rem;
}
.dfpd-spec-row:last-child { border-bottom: none; }
.dfpd-spec-row:hover { background: var(–linen); }
.dfpd-spec-label {
font-family: ‘Outfit’, sans-serif;
font-size: 0.58rem; font-weight: 500;
letter-spacing: 0.22em; text-transform: uppercase;
color: var(–stone);
}
.dfpd-spec-val {
font-family: ‘Outfit’, sans-serif;
font-size: 0.88rem;
font-weight: 400;
color: var(–ink);
line-height: 1.5;
}
.dfpd-spec-val em {
font-family: ‘Fraunces’, serif;
font-style: italic;
color: var(–olive-dk);
font-weight: 400;
}
.dfpd-spec-val a {
color: var(–olive-dk);
font-weight: 500;
text-decoration: none;
border-bottom: 1px solid var(–olive);
padding-bottom: 1px;
transition: color 0.2s, border-color 0.2s;
}
.dfpd-spec-val a:hover { color: var(–ink); border-color: var(–ink); }
/* DOWNLOADS — 2 columns */
.dfpd-foot {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 0.75rem;
}
.dfpd-download {
display: flex; align-items: center; gap: 0.95rem;
padding: 1rem 1.25rem;
background: var(–cream);
border: 1px solid var(–border);
border-radius: 4px;
text-decoration: none; color: inherit;
transition: all 0.2s;
}
.dfpd-download:hover {
border-color: var(–olive);
transform: translateY(-1px);
box-shadow: 0 4px 12px rgba(42, 36, 30, 0.08);
}
.dfpd-download-icon {
width: 36px; height: 36px;
background: var(–linen);
border-radius: 4px;
color: var(–olive-dk);
display: flex; align-items: center; justify-content: center;
flex-shrink: 0;
}
.dfpd-download-title {
font-family: ‘Fraunces’, serif;
font-size: 0.95rem;
font-weight: 400;
color: var(–ink);
line-height: 1.25;
}
.dfpd-download-sub {
font-size: 0.62rem;
font-weight: 500;
letter-spacing: 0.2em;
text-transform: uppercase;
color: var(–olive);
}
.dfpd-download-arrow {
margin-left: auto;
color: var(–olive);
transition: transform 0.2s;
}
.dfpd-download:hover .dfpd-download-arrow { transform: translateX(3px); }
/* GEO FAQ */
.dfpd-faq {
background: var(–cream);
border: 1px solid var(–border);
border-radius: 4px;
overflow: hidden;
}
.dfpd-faq-item { border-bottom: 1px solid var(–border-lt); }
.dfpd-faq-item:last-child { border-bottom: none; }
.dfpd-faq-item summary {
display: flex;
justify-content: space-between;
align-items: center;
gap: 1rem;
padding: 1rem 1.35rem;
cursor: pointer;
list-style: none;
font-family: ‘Fraunces’, serif;
font-size: 1rem;
font-style: italic;
font-weight: 400;
color: var(–ink);
letter-spacing: -0.005em;
transition: background 0.2s;
}
.dfpd-faq-item summary::-webkit-details-marker { display: none; }
.dfpd-faq-item summary:hover { background: var(–linen); }
.dfpd-faq-toggle {
flex-shrink: 0;
width: 24px; height: 24px;
border: 1px solid var(–border);
border-radius: 50%;
display: inline-flex;
align-items: center; justify-content: center;
color: var(–olive);
background: var(–cream);
transition: transform 0.25s, background 0.2s;
}
.dfpd-faq-item[open] .dfpd-faq-toggle {
transform: rotate(45deg);
background: var(–olive-sft);
border-color: var(–olive);
}
.dfpd-faq-answer {
padding: 0 1.35rem 1.15rem;
font-size: 0.88rem;
line-height: 1.65;
color: var(–ink-2);
font-weight: 300;
}
.dfpd-faq-answer p { margin: 0 0 0.55rem; }
.dfpd-faq-answer p:last-child { margin-bottom: 0; }
.dfpd-faq-answer p strong { color: var(–ink); font-weight: 500; }
.dfpd-faq-answer a {
color: var(–olive-dk);
font-weight: 500;
text-decoration: none;
border-bottom: 1px solid var(–olive);
padding-bottom: 1px;
}
.dfpd-faq-answer a:hover { color: var(–ink); border-color: var(–ink); }
.dfpd-support {
padding-top: 1rem;
border-top: 1px solid var(–border-lt);
text-align: center;
font-family: ‘Fraunces’, serif;
font-style: italic;
font-size: 0.88rem;
color: var(–stone);
}
.dfpd-link {
color: var(–olive-dk);
font-weight: 500;
text-decoration: none;
border-bottom: 1px solid var(–olive);
padding-bottom: 1px;
transition: color 0.2s, border-color 0.2s;
}
.dfpd-link:hover { color: var(–ink); border-color: var(–ink); }
@media (max-width: 900px) {
.dfpd-features { grid-template-columns: repeat(2, 1fr); }
.dfpd-feature:nth-child(2n) { border-right: none; }
.dfpd-feature:nth-child(-n+2) { border-bottom: 1px solid var(–border-lt); }
.dfpd-notes-grid { grid-template-columns: 1fr; }
.dfpd-foot { grid-template-columns: 1fr; }
.dfpd-heritage,
.dfpd-custom {
grid-template-columns: 1fr;
text-align: center;
}
.dfpd-heritage-icon,
.dfpd-custom-icon { margin: 0 auto; }
.dfpd-custom-cta { justify-self: center; }
.dfpd-veining,
.dfpd-model-row {
grid-template-columns: 1fr;
}
.dfpd-veining-image,
.dfpd-model-image {
border-right: none;
border-bottom: 1px solid var(–border-lt);
min-height: 200px;
}
}
@media (max-width: 680px) {
.dfpd { padding: 1rem 0 1.5rem; }
.dfpd-hero { padding-bottom: 1.5rem; margin-bottom: 1.75rem; }
.dfpd-video { max-width: 100%; }
.dfpd-spec-row {
grid-template-columns: 1fr;
gap: 0.2rem;
padding: 0.85rem 1.15rem;
}
}
@media (max-width: 480px) {
.dfpd-features { grid-template-columns: 1fr; }
.dfpd-feature { border-right: none; border-bottom: 1px solid var(–border-lt); }
.dfpd-feature:last-child { border-bottom: none; }
}
The Bubble Pendant Lamp.
A mid-century classic reinterpreted — soft white polymer stretched over a lightweight steel wireframe, casting a warm, perfectly diffused glow. Bubble-style, inspired by the iconic 1950s Bubble lamps. Hardwired ceiling-mount installation, available in nine model silhouettes across seventeen size combinations for dining tables, foyers, lounges, and stairwells. Hang as a single statement or in clusters for layered ambient light.
See it come to life.
Bubble-style, 1950s inspired.
Inspired by the iconic 1950s Bubble lamps.
This pendant is a Bubble-style reinterpretation, drawing on the visual language of the iconic 1950s American mid-century Bubble lamps — soft, organic silhouettes wrapped in a subtle polymer skin over a steel wire frame. Updated with modern manufacturing for a fixture that holds its shape and finish for decades.
Same iconic silhouette, same quality details — independently designed and manufactured at an accessible price.
The beauty of natural “veins.”
Visible fibres are a feature, not a flaw.
The white polymer skin is sprayed and cured by hand. As the polymer settles, it leaves a subtle, fibrous “veined” texture — most visible up close or when the lamp is unlit. These are not scratches or defects; they’re the hallmarks of authentic polymer construction and ensure a soft, non-glare light distribution.
Once illuminated, the veining recedes — the lamp transforms into a warm, evenly diffused, perfectly soft glow.
Important notes.
Bulb base
Standard E26 / E27 screw base. Use E26 in North America, E27 in Europe. Which one for your region →
Ceiling-mounted · hardwired
This pendant hardwires into a standard ceiling junction box — not a swag/plug-in fixture. We provide a 150 cm / 59″ wire from canopy to shade — extendable on request.
Switch control
Compatible with a common wall switch (not included). Pair with a dimmable LED bulb and a wall dimmer if you want adjustable brightness.
Need a custom size or shape?
We make every pendant in-house.
We can produce custom sizes, shapes, and proportions on request. Wholesale and trade buyers receive up to 50% off list price on volume orders. Send your specs and we’ll quote within 24 hours.
Nine silhouettes, seventeen sizes. · hover diagrams to zoom · click to enlarge
Additional information
| Size: No selection | Model A ? 15.8″ x H 8.7″, Model A ? 19.7″ x H 9.8″, Model A ? 23.6″ x H 10.2″, Model A ? 27.6″ x H 11.8″, Model A ? 31.5″ x H 9.8″, Model A ? 31.5″ x H 13.8″, Model B ? 15.7″ x H 8.7″, Model B ? 19.7″ x H 9.8″, Model B ? 23.6″ x H 10.2″, Model B ? 27.6″ x H 11.8″, Model B ? 31.5″ x H 13.8″, Model C ? 11.8″ x H 11.8″, Model C Crossover ? 12.6″ x H 15″, Model D ? 11″ x H 15.8″, Model E ? 11.8″ x H 11″, Model E ? 15.8″ x H 14.2″, Model F ? 17.7″ x H 14.6″, Model G ? 13.7″ x H 12.6″, Model G ? 17.7″ x H 16.5″, Model H ? 19.7″ x H 15″, Model I ? 15.8″ x H 16.5″ |
|---|---|
| Colour: No selection | White |























































































































































Reviews
There are no reviews yet.