About the studio

We design the pause between one chapter and the next.

DecoraVale Studio began with a simple observation: the best interiors do not ask people to perform a lifestyle. They make ordinary routines feel more supported.

Our story

Founded in 2018 by designers who worked across renovation, styling, and small-space planning, the studio brings visual sensitivity together with practical restraint. We noticed how most homes were being designed for photographs rather than for the messy beauty of daily life.

DecoraVale Studio was established to change that. Every project begins with listening rather than sketching.

Our mission

To help people create rooms that are personal, adaptable, and honest about the way life happens inside them. We prioritize long-term usefulness over fleeting trends.

Listening first
Editing with care
Planning for years

The people behind the edit

Our team shares a belief: the most successful rooms are sensed before they are seen.

Mara Vale

Creative director

Mara leads concept, proportion, and the emotional clarity of each room. She has shaped over 80 residences using the Room Rhythm framework.

Jon Bell

Spatial strategist

Jon turns daily patterns into layouts that feel intuitive rather than overplanned. His work focuses on how people move through spaces they call home.

Nia Hart

Materials editor

Nia builds tactile palettes with care, longevity, and maintenance in mind. She ensures every surface ages gracefully and remains easy to live with.

Our working principles

01 — Begin with rhythm

We ask clients to name the feeling they want before we select finishes. Every project is anchored by one of four Room Rhythms.

02 — Edit relentlessly

Good interiors know when to stop. We remove anything that does not serve daily rhythms or long-term comfort.

03 — Design for change

Rooms must evolve with families, habits, and new chapters. We anticipate flexibility in every layout we propose.

04 — Stay grounded

Tactile materials and honest proportions create quiet confidence. We favor durability over novelty in every choice.

Begin with the feeling, then make it functional.

Our Room Rhythm method gives the first conversation a human starting point and leads to deeply lived-in results.

`; const footerHTML = ` `; document.querySelector('header').innerHTML = headerHTML; document.querySelector('footer').innerHTML = footerHTML; } // All interactive scripts function initializeScripts() { // Theme toggle const body = document.body; const themeBtn = document.getElementById('themeToggle'); if (localStorage.getItem('theme') === 'dark') { body.classList.add('dark'); } themeBtn.addEventListener('click', () => { body.classList.toggle('dark'); localStorage.setItem('theme', body.classList.contains('dark') ? 'dark' : 'light'); }); // Rhythm badge const badge = document.getElementById('rhythmBadge'); if (badge) { const rhythms = ['Grounded', 'Airy', 'Gathered', 'Focused']; badge.textContent = rhythms[Math.floor(Math.random() * rhythms.length)]; } // Mobile menu const mobileOpen = document.getElementById('mobileMenuOpen'); const mobileMenu = document.getElementById('mobileMenu'); if (mobileOpen && mobileMenu) { mobileOpen.addEventListener('click', () => { mobileMenu.classList.toggle('hidden'); }); } // Auth modal const authModal = document.getElementById('authModal'); const loginOpen = document.getElementById('loginOpen'); const registerOpen = document.getElementById('registerOpen'); const authClose = document.getElementById('authClose'); const authTitle = document.getElementById('authTitle'); const authCopy = document.getElementById('authCopy'); const authForm = document.getElementById('authForm'); function openAuth(isRegister) { if (!authModal) return; authModal.classList.remove('hidden'); authModal.classList.add('grid'); if (isRegister) { authTitle.textContent = 'Create a calm design account'; authCopy.textContent = 'Save room rhythms and revisit your favorite design services.'; } else { authTitle.textContent = 'Sign in to your account'; authCopy.textContent = 'Welcome back to DecoraVale Studio.'; } } if (loginOpen) loginOpen.addEventListener('click', () => openAuth(false)); if (registerOpen) registerOpen.addEventListener('click', () => openAuth(true)); if (authClose) authClose.addEventListener('click', () => authModal.classList.add('hidden')); if (authForm) { authForm.addEventListener('submit', function(e) { e.preventDefault(); authModal.classList.add('hidden'); alert('Thank you. Your preferences have been saved.'); }); } // Cookie banner const banner = document.getElementById('cookieBanner'); const acceptBtn = document.getElementById('cookieAccept'); const dismissBtn = document.getElementById('cookieDismiss'); if (!localStorage.getItem('decoraCookieConsent') && banner) { banner.classList.remove('hidden'); banner.classList.add('flex'); } if (acceptBtn) acceptBtn.addEventListener('click', () => { localStorage.setItem('decoraCookieConsent', 'true'); banner.style.display = 'none'; }); if (dismissBtn) dismissBtn.addEventListener('click', () => banner.style.display = 'none'); // Footer ritual word const ritual = document.getElementById('ritualWord'); const words = ['Grounded', 'Airy', 'Gathered', 'Focused']; if (ritual) { let idx = 0; ritual.textContent = words[0]; setInterval(() => { idx = (idx + 1) % words.length; ritual.textContent = words[idx]; }, 3200); } } document.addEventListener('DOMContentLoaded', () => { initializeTailwind(); injectHeaderFooter(); initializeScripts(); });