Lyselle Mirror
.vk-lys-wrap { --vk-lys-bg: #ffffff; --vk-lys-bg-card: #fbf7ef; --vk-lys-bg-deep: #ece2cd; --vk-lys-border: #ece4d3; --vk-lys-border-lt: #f4eedf; --vk-lys-accent: #a8895c; --vk-lys -accent-dk: #6f5630; --vk-lys-accent-lt: #c8af7d; --vk-lys-accent-bg: #f1ebda; --vk-lys-accent-bdr: #dccba2; --vk-lys-text: #2a261d; --vk-lys-text-mid: #554d3c; --vk-lys-text-light: #968b73; max-width: 680px; margin: 0; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; color: var(--vk-lys-text); line-height: 1.72; font-size: 14.5px; } .vk-lys-wrap * { box-sizing: border-box; } .vk-lys-wrap p { margin: 0 0 0.8rem 0; color: var(--vk-lys-text-mid); } .vk-lys-wrap a { color: var(--vk-lys-accent-dk); text-decoration: underline; } .vk-lys-wrap .vk-lys-section { margin-bottom: 2.6rem; } .vk-lys-wrap .vk-lys-sec-header { display: flex; align-items: center; gap: 10px; margin-bottom: 1rem; padding-top: 0.6rem; } .vk-lys-wrap .vk-lys-sec-line { flex: 1; height: 0.5px; background: var(--vk-lys-border); } .vk-lys-wrap .vk-lys-sec-title { font-size: 10.5px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; color: var(--vk-lys-accent-dk); white-space: nowrap; } .vk-lys-wrap strong { color: var(--vk-lys-text); font-weight: 600; } /* Features grid (3 columns) */ .vk-lys-wrap .vk-lys-features-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; } .vk-lys-wrap .vk-lys-feature-card { padding: 16px 14px; border: 0.5px solid var(--vk-lys-border); border-radius: 12px; background: var(--vk-lys-bg-card); } .vk-lys-wrap .vk-lys-feat-icon { width: 34px; height: 34px; border-radius: 9px; background: var(--vk-lys-accent-bg); border: 0.5px solid var(--vk-lys-accent-bdr); color: var(--vk-lys-accent-dk); display: flex; align-items: center; justify-content: center; margin-bottom: 10px; } .vk-lys-wrap .vk-lys-feat-icon svg { fill: none; } .vk-lys-wrap .vk-lys-feat-title { font-size: 13px; font-weight: 700; color: var(--vk-lys-text); margin-bottom: 6px; line-height: 1.35; } .vk-lys-wrap .vk-lys-feat-desc { font-size: 12px; color: var(--vk-lys-text-mid); line-height: 1.55; } /* Finish options (2x2 -> 4 cards) */ .vk-lys-wrap .vk-lys-finish-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; } .vk-lys-wrap .vk-lys-finish-card { padding: 14px; border: 0.5px solid var(--vk-lys-border); border-radius: 12px; background: var(--vk-lys-bg-card); display: flex; align-items: center; gap: 12px; } .vk-lys-wrap .vk-lys-finish-dot { width: 30px; height: 30px; border-radius: 8px; flex-shrink: 0; border: 1px solid rgba(0,0,0,0.1); } .vk-lys-wrap .vk-lys-finish-name { font-size: 12.5px; font-weight: 700; color: var(--vk-lys-text); line-height: 1.3; } .vk-lys-wrap .vk-lys-finish-sub { font-size: 11px; color: var(--vk-lys-text-light); } /* Critical notice */ .vk-lys-wrap .vk-lys-notice { display: flex; gap: 12px; align-items: flex-start; padding: 14px 16px; border: 0.5px solid var(--vk-lys-accent-bdr); border-left: 3px solid var(--vk-lys-accent); border-radius: 10px; background: var(--vk-lys-accent-bg); } .vk-lys-wrap .vk-lys-notice .vk-lys-notice-ico { width: 22px; height: 22px; border-radius: 50%; background: var(--vk-lys-accent-dk); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 700; flex-shrink: 0; margin-top: 1px; } .vk-lys-wrap .vk-lys-notice .vk-lys-notice-body { font-size: 12.5px; color: var(--vk-lys-text-mid); line-height: 1.6; } .vk-lys-wrap .vk-lys-notice .vk-lys-notice-body strong { color: var(--vk-lys-text); font-weight: 600; } .vk-lys-wrap .vk-lys-notice .vk-lys-notice-body strong:first-child { display: block; color: var(--vk-lys-accent-dk); margin-bottom: 3px; font-size: 13px; } /* Warning callout */ .vk-lys-wrap .vk-lys-warn { display: flex; gap: 12px; align-items: flex-start; padding: 12px 14px; border: 0.5px solid #d4a373; border-left: 3px solid #b06438; border-radius: 10px; background: #fbf2e6; margin-top: 12px; } .vk-lys-wrap .vk-lys-warn-ico { width: 20px; height: 20px; border-radius: 50%; background: #b06438; color: #fff; display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 700; flex-shrink: 0; margin-top: 1px; } .vk-lys-wrap .vk-lys-warn-body { font-size: 12px; color: var(--vk-lys-text-mid); line-height: 1.55; } .vk-lys-wrap .vk-lys-warn-body strong { color: #8a4820; font-weight: 600; } .vk-lys-wrap .vk-lys-warn-body strong:first-child { display: block; margin-bottom: 2px; font-size: 12.5px; } /* Specifications */ .vk-lys-wrap .vk-lys-spec-grid { display: flex; flex-direction: column; border: 0.5px solid var(--vk-lys-border); border-radius: 14px; overflow: hidden; } .vk-lys-wrap .vk-lys-spec-item { padding: 10px 16px; border-bottom: 0.5px solid var(--vk-lys-border-lt); display: flex; align-items: flex-start; background: var(--vk-lys-bg-card); gap: 16px; } .vk-lys-wrap .vk-lys-spec-item:last-child { border-bottom: 0; } .vk-lys-wrap .vk-lys-spec-item:nth-child(even) { background: var(--vk-lys-bg); } .vk-lys-wrap .vk-lys-spec-key { font-size: 10.5px; font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; color: var(--vk-lys-accent-dk); width: 150px; flex-shrink: 0; padding-top: 2px; } .vk-lys-wrap .vk-lys-spec-val { font-size: 12.5px; color: var(--vk-lys-text); } /* Style tags */ .vk-lys-wrap .vk-lys-style-tags { display: flex; flex-wrap: wrap; gap: 5px; } .vk-lys-wrap .vk-lys-style-tag { font-size: 10.5px; font-weight: 600; color: var(--vk-lys-accent-dk); background: var(--vk-lys-accent-bg); border: 0.5px solid var(--vk-lys-accent-bdr); padding: 2px 8px; border-radius: 6px; } /* Downloads grid */ .vk-lys-wrap .vk-lys-dl-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; } .vk-lys-wrap .vk-lys-dl-card { display: flex; flex-direction: column; gap: 10px; padding: 16px 16px 18px; border: 0.5px solid var(--vk-lys-border); border-radius: 12px; background: var(--vk-lys-bg-card); text-decoration: none; color: var(--vk-lys-text); position: relative; min-height: 44px; transition: background 0.18s, border-color 0.18s; } .vk-lys-wrap .vk-lys-dl-card:hover { background: var(--vk-lys-accent-bg); border-color: var(--vk-lys-accent-bdr); } .vk-lys-wrap .vk-lys-dl-card.vk-lys-dl-disabled { cursor: default; opacity: 0.72; background: var(--vk-lys-bg); } .vk-lys-wrap .vk-lys-dl-card.vk-lys-dl-disabled:hover { background: var(--vk-lys-bg); border-color: var(--vk-lys-border); } .vk-lys-wrap .vk-lys-dl-icon { width: 38px; height: 38px; border-radius: 8px; background: var(--vk-lys-accent-bg); border: 0.5px solid var(--vk-lys-accent-bdr); color: var(--vk-lys-accent-dk); display: flex; align-items: center; justify-content: center; flex-shrink: 0; } .vk-lys-wrap .vk-lys-dl-icon svg { fill: none; } .vk-lys-wrap .vk-lys-dl-meta { width: 100%; } .vk-lys-wrap .vk-lys-dl-label { font-size: 13.5px; font-weight: 700; color: var(--vk-lys-text); line-height: 1.3; margin-bottom: 3px; } .vk-lys-wrap .vk-lys-dl-sub { font-size: 11.5px; color: var(--vk-lys-text-light); letter-spacing: 0.02em; line-height: 1.45; } .vk-lys-wrap .vk-lys-dl-status { position: absolute; top: 12px; right: 12px; font-size: 9.5px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--vk-lys-text-light); background: var(--vk-lys-bg-card); border: 0.5px solid var(--vk-lys-border); padding: 3px 8px; border-radius: 99px; line-height: 1; } /* FAQ accordion */ .vk-lys-wrap .vk-lys-faq-list { display: flex; flex-direction: column; gap: 6px; } .vk-lys-wrap .vk-lys-faq-list details { border: 0.5px solid var(--vk-lys-border); border-radius: 10px; background: var(--vk-lys-bg-card); overflow: hidden; } .vk-lys-wrap .vk-lys-faq-list summary { list-style: none; cursor: pointer; padding: 13px 36px 13px 16px; min-height: 44px; font-size: 13px; font-weight: 600; color: var(--vk-lys-text); display: flex; justify-content: space-between; align-items: center; position: relative; } .vk-lys-wrap .vk-lys-faq-list summary::-webkit-details-marker { display: none; } .vk-lys-wrap .vk-lys-faq-list summary::after { content: '+'; font-size: 18px; line-height: 1; color: var(--vk-lys-accent-dk); position: absolute; right: 16px; } .vk-lys-wrap .vk-lys-faq-list details[open] summary { color: var(--vk-lys-accent-dk); } .vk-lys-wrap .vk-lys-faq-list details[open] summary::after { content: '\2212'; } .vk-lys-wrap .vk-lys-faq-list .vk-lys-faq-a { padding: 0 16px 14px; font-size: 12.5px; color: var(--vk-lys-text-mid); line-height: 1.6; } /* Mobile */ @media (max-width: 520px) { .vk-lys-wrap .vk-lys-features-grid { grid-template-columns: 1fr; } .vk-lys-wrap .vk-lys-finish-grid { grid-template-columns: 1fr; } .vk-lys-wrap .vk-lys-dl-grid { grid-template-columns: 1fr; } .vk-lys-wrap .vk-lys-spec-item { flex-direction: column; gap: 4px; } .vk-lys-wrap .vk-lys-spec-key { width: auto; } } Inspiration The Lyselle Mirror is an oval wall mirror framed in hand-carved resin composite — sculpted roses, blossoms, leaves, and butterflies wrapped around an arched, fluted border. The glass is a shatter-resistant, explosion-proof-backed mirror, and the frame comes in ivory white, black, antique bronze, or gold. It measures W25.6″ × H39.4″ (65 × 100 cm) and mounts on the wall, so it works as an ornate floral statement mirror above a console or entryway table, over a bedroom dresser or vanity, or above a fireplace mantel — a baroque, French-country, vintage-romantic accent against plaster and neutral walls. Good To Know ! Resin composite frame + shatter-resistant mirror · ivory white / black / antique bronze / gold · W25.6″ × H39.4″ · wall-mounted · hand-carved + cast + sanded · indoor only An ornate floral wall mirror with a frame cast and hand-finished from resin composite — carved roses, blossoms, leaves, and butterflies around an arched border. The glass is a shatter-resistant (explosion-proof backed) mirror, which holds together rather than scattering if broken. It is wall-mounted (hang it via the back) — use anchors rated for your wall type and the mirror’s weight; mounting into a stud is best. Because the frame is carved and hand-sanded, the carving and finish vary slightly between pieces — inherent to the process, not a defect. Indoor use. Key Features Hand-Carved Floral Frame Sculpted roses, blossoms, leaves, and butterflies in resin composite around an arched, fluted border — an ornate, baroque silhouette. Shatter-Resistant Mirror An explosion-proof-backed mirror that holds together rather than scattering if it breaks. W25.6″ × H39.4″ oval. Four Finishes, Wall-Mounted Ivory white, black, antique bronze, or gold. Hangs flat on the wall via the back — above a console, dresser, or mantel. Finishes Four frame finishes — choose at order. Ivory White Matte carved finish Black Deep matte Antique Bronze Aged, dark-washed Gold Warm metallic ! Wall-mounted · resin frame + shatter-resistant mirror · hand-finished variation · indoor only Hang the mirror via the back using anchors rated for your wall type and the mirror’s weight — mounting into a stud is best for a frame this size. The frame is resin composite with carved florals, and the glass is a shatter-resistant, explosion-proof-backed mirror. Each piece is carved and hand-sanded, so the carving and finish vary slightly. Keep it indoors; wipe the glass with a soft cloth and dust the frame with a soft, dry brush. For a custom color, email [email protected]. Specifications Product Type Wall mirror · ornate floral frame · wall-mounted Material & Finish Resin composite frame + shatter-resistant (explosion-proof backed) mirror · hand-carved + cast + sanded Finishes Ivory White · Black · Antique Bronze · Gold Size W25.6″ (65 cm) × H39.4″ (100 cm) · oval Craft Hand-carved, cast, and hand-sanded Glass Shatter-resistant mirror (explosion-proof backing) — holds together if broken Mounting Wall-mounted · hang via the back · use anchors rated for your wall & the mirror weight (stud mounting recommended) Handmade Note Carving and finish vary slightly between pieces — inherent to the process, not defects Care Wipe glass with a soft cloth · dust frame with a soft, dry brush · keep dry, indoor use Design Style Baroque Rococo French Country Vintage / Romantic Glam Best For Above a console / entryway, bedroom dresser or vanity, above a mantel, powder room, accent wall Mounting Notes The mirror hangs via the back against a flat wall. At W25.6″ × H39.4″ it is a large piece, so anchor it into a stud where possible, or use wall anchors rated for the mirror’s weight and your wall type (drywall, plaster, masonry). Hang it about 57–60″ from the floor to the mirror center over a console, or so the glass clears a dresser or vanity top. Because the frame is hand-carved resin composite, expect slight variation in the carving and finish. Downloads Reference files for the Lyselle Mirror. Need a doc that’s not listed? Email [email protected]. Spec Sheet Size & details · PDF Pending Mounting Guide Hanging & anchors · PDF Pending 3D File 3D model · OBJ/FBX Pending FAQ How big is the Lyselle Mirror? It is an oval W25.6″ × H39.4″ (65 × 100 cm) wall mirror. The scale works above a console or entryway table, over a bedroom dresser or vanity, or above a fireplace mantel. What are the frame and glass made of? The frame is resin composite with hand-carved roses, blossoms, leaves, and butterflies. The glass is a shatter-resistant (explosion-proof backed) mirror that holds together rather than scattering if broken. What finishes are available? Four: ivory white, black, antique bronze, and gold. For a custom color, email [email protected] before ordering. How does it mount, and is it heavy? It’s wall-mounted and hangs via the back. Resin composite is lighter than carved wood or plaster, but at this size you should anchor into a stud or use wall anchors rated for the mirror’s weight and your wall type. Can I use it in a bathroom or powder room? The glass is shatter-resistant, so it suits a powder room or vanity wall. Keep the resin frame out of direct water spray and heavy steam, and wipe it dry — it is rated for indoor use.