Pular para o conteúdo

Checklist interativo para festa Infantil

Checklist Interativo - Planejamento de Festa Infantil .suggestion-button-container { margin-left: 0px; /* Resetado pois o LI já tem padding */ margin-top: 8px; } /* Estilo para o botão de link externo */ .external-link-btn { background-color: #007bff; color: white; border: none; padding: 6px 12px; border-radius: 5px; cursor: pointer; font-size: 0.9em; transition: background-color 0.2s ease, transform 0.1s ease; display: inline-block; text-decoration: none; /* Garante que não haja sublinhado no botão */ } .external-link-btn:hover { background-color: #0056b3; text-decoration: none; } .external-link-btn:active { transform: scale(0.96); } /* Responsividade básica */ @media (max-width: 768px) { .checklist-container { margin: 15px; padding: 15px 20px 20px 20px; } h2 { font-size: 1.5em; margin-bottom: 20px;} h3 { font-size: 1.25em; margin-top: 25px; } li { padding-left: 30px; } input[type="checkbox"] { width: 18px; height: 18px; left: 3px;} label { font-size: 1em; } .checklist-controls { text-align: center; } .suggestion-button-container { margin-left: 0;} /* Ajuste responsivo */ } @media (max-width: 480px) { body { font-size: 13px; } h2 { font-size: 1.3em; } h3 { font-size: 1.1em; } .checklist-controls button { width: 100%; margin-top: 5px; } .external-link-btn { width: auto; /* Botão não ocupa 100% */ padding: 5px 10px; font-size: 0.85em;} } </style>

Checklist Interativo - Festa Infantil

<div class="checklist-controls">
    <button id="toggleCompletedBtn">Esconder Concluídos</button>
</div>
<div class="progress-bar-container overall-progress">
    <div class="progress-bar" id="overallProgressBar"></div>
    <span class="progress-text" id="overallProgressText">Progresso Geral: 0%</span>
</div>

<div class="checklist-section" data-section-id="fase1">
    <h3>FASE 1: CONCEITUALIZAÇÃO E BASE (3+ Meses Antes)</h3>
    <div class="progress-bar-container section-progress">
        <div class="progress-bar"></div>
        <span class="progress-text">Progresso Seção: 0%</span>
    </div>
    <ul>
        <li><input type="checkbox" id="task1-1" name="task1-1"><label for="task1-1"><strong>Definir Data e Horário:</strong> Verificar feriados, eventos concorrentes, melhor horário, duração. Ter 1-2 datas alternativas.</label></li>
        <li><input type="checkbox" id="task1-2" name="task1-2"><label for="task1-2"><strong>Estimar Nº de Convidados:</strong> Pré-lista detalhada (separar adultos/crianças).</label></li>
        <li><input type="checkbox" id="task1-3" name="task1-3"><label for="task1-3"><strong>Definir Orçamento Detalhado:</strong> Alocar verba por categoria (local, buffet/comida, decoração, entretenimento, etc.). <em>Avançado: Incluir 10-15% para imprevistos.</em></label></li>
        <li><input type="checkbox" id="task1-4" name="task1-4"><label for="task1-4"><strong>Pesquisar e Visitar Locais:</strong> Considerar tamanho, infraestrutura, regras, plano B para chuva.</label></li>
        <li><input type="checkbox" id="task1-5" name="task1-5"><label for="task1-5"><strong>Pesquisar Fornecedores-Chave:</strong> Buffet, Decoração, Animação, Fotografia. Pedir orçamentos e verificar referências.</label></li>
        <li><input type="checkbox" id="task1-6" name="task1-6"><label for="task1-6"><strong>Definir Tema (Opcional):</strong> Pensar em algo viável e que agrade a criança.</label></li>
    </ul>
</div>

<div class="checklist-section" data-section-id="fase2">
    <h3>FASE 2: CONTRATAÇÕES E DEFINIÇÕES (2-3 Meses Antes)</h3>
    <div class="progress-bar-container section-progress">
        <div class="progress-bar"></div>
        <span class="progress-text">Progresso Seção: 0%</span>
    </div>
    <ul>
        <li><input type="checkbox" id="task2-1" name="task2-1"><label for="task2-1"><strong>Reservar/Contratar Local:**</strong> Confirmar data, horário e assinar contrato.</label></li>
        <li><input type="checkbox" id="task2-2" name="task2-2"><label for="task2-2"><strong>Finalizar Lista de Convidados:**</strong> Revisar e coletar contatos.</label></li>
        <li><input type="checkbox" id="task2-3" name="task2-3"><label for="task2-3"><strong>Contratar Fornecedores Principais:**</strong></label>
            <ul>
                <li><input type="checkbox" id="task2-3-1" name="task2-3-1"><label for="task2-3-1">Buffet/Serviço de Comida</label></li>
                <li><input type="checkbox" id="task2-3-2" name="task2-3-2"><label for="task2-3-2">Decoração</label></li>
                <li><input type="checkbox" id="task2-3-3" name="task2-3-3"><label for="task2-3-3">Animação/Recreação</label></li>
                <li><input type="checkbox" id="task2-3-4" name="task2-3-4"><label for="task2-3-4">Fotografia/Filmagem</label></li>
            </ul>
            <em>Avançado: Ler contratos atentamente (cancelamento, horários, inclusões). Confirmar por escrito.</em>
        </li>
        <li>
            <input type="checkbox" id="task2-5" name="task2-5">
            <label for="task2-5"><strong>Pesquisar/Contratar Aluguel de Brinquedos</strong> (Ex: Pula-pula, Piscina de Bolinhas).</label>
            <div class="suggestion-button-container">
                <a href="/" target="_blank" rel="noopener noreferrer" style="text-decoration: none;">
                     <button type="button" class="external-link-btn">
                         Ver Sugestão de Brinquedos (Aluguel de Sonhos)
                     </button>
                </a>
            </div>
        </li>
        <li><input type="checkbox" id="task2-4" name="task2-4"><label for="task2-4"><strong>Definir Paleta de Cores e Estilo Visual.**</strong></label></li>
    </ul>
</div>

<div class="checklist-section" data-section-id="fase3">
    <h3>FASE 3: CONVITES E DETALHAMENTO (1.5 - 2 Meses Antes)</h3>
    <div class="progress-bar-container section-progress">
        <div class="progress-bar"></div>
        <span class="progress-text">Progresso Seção: 0%</span>
    </div>
    <ul>
        <li><input type="checkbox" id="task3-1" name="task3-1"><label for="task3-1"><strong>Criar/Encomendar Convites:**</strong> Incluir infos essenciais.</label></li>
        <li><input type="checkbox" id="task3-2" name="task3-2"><label for="task3-2"><strong>Informações Adicionais no Convite:**</strong></label>
            <ul>
                <li><input type="checkbox" id="task3-2-1" name="task3-2-1"><label for="task3-2-1">Prazo e forma de RSVP.</label></li>
                <li><input type="checkbox" id="task3-2-2" name="task3-2-2"><label for="task3-2-2">Mapa/instruções de acesso (se necessário).</label></li>
                <li><input type="checkbox" id="task3-2-3" name="task3-2-3"><label for="task3-2-3">Sugestão de presente (opcional).</label></li>
                <li><input type="checkbox" id="task3-2-4" name="task3-2-4"><label for="task3-2-4">Contato para dúvidas.</label></li>
            </ul>
        </li>
        <li><input type="checkbox" id="task3-3" name="task3-3"><label for="task3-3"><strong>Enviar Convites:**</strong> Físicos ou digitais.</label></li>
        <li><input type="checkbox" id="task3-4" name="task3-4"><label for="task3-4"><strong>Criar Sistema de Controle de RSVP:**</strong> Planilha, app, grupo.</label></li>
        <li><input type="checkbox" id="task3-5" name="task3-5"><label for="task3-5"><strong>Planejar o Layout do Espaço:**</strong> Otimizar fluxo (mesas, estações, pista, etc.).</label></li>
        <li><input type="checkbox" id="task3-6" name="task3-6"><label for="task3-6"><strong>Detalhar Decoração DIY:**</strong> Listar materiais e cronograma de confecção.</label></li>
    </ul>
</div>

<div class="checklist-section" data-section-id="fase4">
    <h3>FASE 4: CARDÁPIO, ATIVIDADES E COMPRAS (1 Mês Antes)</h3>
    <div class="progress-bar-container section-progress">
        <div class="progress-bar"></div>
        <span class="progress-text">Progresso Seção: 0%</span>
    </div>
    <ul>
        <li class="calculator-step"><input type="checkbox" id="task4-1" name="task4-1"><label for="task4-1"><strong>Definir Cardápio Detalhado:</strong> <strong>>>> Usar a Calculadora para Festa Infantil! <<<</strong> Balancear opções. <em>Avançado: Considerar restrições alimentares, planejar identificação dos pratos.</em></label></li>
        <li><input type="checkbox" id="task4-2" name="task4-2"><label for="task4-2"><strong>Encomendar Bolo e Doces Especiais:**</strong> Definir sabores e modelos.</label></li>
        <li><input type="checkbox" id="task4-3" name="task4-3"><label for="task4-3"><strong>Planejar Cronograma das Atividades:**</strong> Coordenar com animadores/DJ.</label></li>
        <li><input type="checkbox" id="task4-4" name="task4-4"><label for="task4-4"><strong>Selecionar/Montar Playlist:**</strong> Músicas para diferentes momentos. <em>Avançado: Testar/alugar equipamento de som.</em></label></li>
        <li><input type="checkbox" id="task4-5" name="task4-5"><label for="task4-5"><strong>Finalizar/Comprar Lembrancinhas.**</strong></label></li>
        <li><input type="checkbox" id="task4-6" name="task4-6"><label for="task4-6"><strong>Iniciar Compras Não Perecíveis:**</strong> Descartáveis, bebidas, itens de decoração.</label></li>
    </ul>
</div>

<div class="checklist-section" data-section-id="fase5">
    <h3>FASE 5: CONFIRMAÇÕES E RETA FINAL (2-3 Semanas Antes)</h3>
    <div class="progress-bar-container section-progress">
        <div class="progress-bar"></div>
        <span class="progress-text">Progresso Seção: 0%</span>
    </div>
    <ul>
        <li><input type="checkbox" id="task5-1" name="task5-1"><label for="task5-1"><strong>Fazer Follow-up de RSVPs:**</strong> Ter o número final de convidados.</label></li>
        <li class="calculator-step"><input type="checkbox" id="task5-2" name="task5-2"><label for="task5-2"><strong>Ajustar Quantidades:</strong> <strong>>>> Revisar a Calculadora com o nº final! <<<</strong> Ajustar encomendas/lista de compras.</label></li>
        <li><input type="checkbox" id="task5-3" name="task5-3"><label for="task5-3"><strong>Confirmar TODOS os Fornecedores:**</strong> Rever horários, pagamentos, detalhes. <em>Avançado: Ter um contato secundário para cada fornecedor.</em></label></li>
        <li><input type="checkbox" id="task5-4" name="task5-4"><label for="task5-4"><strong>Planejar Logística:**</strong> Transporte de itens, refrigeração no local.</label></li>
        <li><input type="checkbox" id="task5-5" name="task5-5"><label for="task5-5"><strong>Comprar/Separar Roupa do Aniversariante e Família.**</strong></label></li>
        <li><input type="checkbox" id="task5-6" name="task5-6"><label for="task5-6"><strong>Montar Kit de Emergência:**</strong> Primeiros socorros, costura, ferramentas básicas, carregador portátil.</label></li>
    </ul>
</div>

<div class="checklist-section" data-section-id="fase6">
    <h3>FASE 6: ÚLTIMA SEMANA</h3>
     <div class="progress-bar-container section-progress">
        <div class="progress-bar"></div>
        <span class="progress-text">Progresso Seção: 0%</span>
    </div>
    <ul>
        <li><input type="checkbox" id="task6-1" name="task6-1"><label for="task6-1"><strong>[5-7 dias antes] Compras de Supermercado:**</strong> Perecíveis duráveis.</label></li>
        <li><input type="checkbox" id="task6-2" name="task6-2"><label for="task6-2"><strong>[3-4 dias antes] Preparar Comidas Antecipadas:**</strong> Molhos, sobremesas, pré-preparos.</label></li>
        <li><input type="checkbox" id="task6-3" name="task6-3"><label for="task6-3"><strong>[2-3 dias antes] Compras Finais:**</strong> Gelo, frescos.</label></li>
        <li><input type="checkbox" id="task6-4" name="task6-4"><label for="task6-4"><strong>[2 dias antes] Organizar Bebidas:**</strong> Colocar para gelar.</label></li>
        <li><input type="checkbox" id="task6-5" name="task6-5"><label for="task6-5"><strong>[2 dias antes] Definir e Delegar Tarefas:**</strong> Briefing para ajudantes. <em>Avançado: Mini-roteiro escrito.</em></label></li>
        <li><input type="checkbox" id="task6-6" name="task6-6"><label for="task6-6"><strong>[Véspera] Buscar/Receber Encomendas:**</strong> Bolo, doces, salgados.</label></li>
        <li><input type="checkbox" id="task6-7" name="task6-7"><label for="task6-7"><strong>[Véspera] Montagem Prévia:**</strong> Levar itens, iniciar decoração.</label></li>
        <li><input type="checkbox" id="task6-8" name="task6-8"><label for="task6-8"><strong>[Véspera] Revisão Final:**</strong> Checklist, cronograma, eletrônicos carregados. <em>Descansar!</em></label></li>
    </ul>
</div>

<div class="checklist-section" data-section-id="fase7">
    <h3>FASE 7: DIA DA FESTA!</h3>
     <div class="progress-bar-container section-progress">
        <div class="progress-bar"></div>
        <span class="progress-text">Progresso Seção: 0%</span>
    </div>
    <ul>
        <li><input type="checkbox" id="task7-1" name="task7-1"><label for="task7-1"><strong>Manhã/Tarde:**</strong> Gelo, montagem final, organizar mesas.</label></li>
        <li><input type="checkbox" id="task7-2" name="task7-2"><label for="task7-2"><strong>Pré-Festa:**</strong> Receber fornecedores, dispor comidas/bebidas iniciais, som, checagem geral.</label></li>
        <li><input type="checkbox" id="task7-3" name="task7-3"><label for="task7-3"><strong>Durante a Festa:**</strong></label>
            <ul>
                <li><input type="checkbox" id="task7-3-1" name="task7-3-1"><label for="task7-3-1">Recepcionar convidados.</label></li>
                <li><input type="checkbox" id="task7-3-2" name="task7-3-2"><label for="task7-3-2">Coordenar cronograma (parabéns, etc.).</label></li>
                <li><input type="checkbox" id="task7-3-3" name="task7-3-3"><label for="task7-3-3">Garantir reposição e limpeza.</label></li>
                <li><input type="checkbox" id="task7-3-4" name="task7-3-4"><label for="task7-3-4">Gerenciar estação de presentes.</label></li>
                <li><input type="checkbox" id="task7-3-5" name="task7-3-5"><label for="task7-3-5">Ter um "apagador de incêndios".</label></li>
                <li><input type="checkbox" id="task7-3-6" name="task7-3-6"><label for="task7-3-6">Aproveitar!</label></li>
            </ul>
        </li>
        <li><input type="checkbox" id="task7-4" name="task7-4"><label for="task7-4"><strong>Final da Festa:**</strong> Agradecer/pagar fornecedores, lembrancinhas, organizar sobras, desmontagem.</label></li>
    </ul>
</div>

<div class="checklist-section" data-section-id="fase8">
    <h3>FASE 8: PÓS-FESTA (Dia Seguinte e Além)</h3>
     <div class="progress-bar-container section-progress">
        <div class="progress-bar"></div>
        <span class="progress-text">Progresso Seção: 0%</span>
    </div>
    <ul>
        <li><input type="checkbox" id="task8-1" name="task8-1"><label for="task8-1"><strong>Devolver Itens Alugados/Emprestados.**</strong></label></li>
        <li><input type="checkbox" id="task8-2" name="task8-2"><label for="task8-2"><strong>Organizar Presentes.**</strong></label></li>
        <li><input type="checkbox" id="task8-3" name="task8-3"><label for="task8-3"><strong>Enviar Agradecimentos:**</strong> Convidados, ajudantes, fornecedores especiais.</label></li>
        <li><input type="checkbox" id="task8-4" name="task8-4"><label for="task8-4"><strong>Organizar/Compartilhar Fotos/Vídeos.**</strong></label></li>
        <li><input type="checkbox" id="task8-5" name="task8-5"><label for="task8-5"><strong>Avaliar:**</strong> O que funcionou, o que melhorar, orçamento final. <em>Avançado: Anotar lições aprendidas.</em></label></li>
    </ul>
</div>
const state = {}; allCheckboxes.forEach(checkbox => { state[checkbox.id] = checkbox.checked; }); localStorage.setItem(STORAGE_KEY, JSON.stringify(state)); localStorage.setItem(FILTER_STORAGE_KEY, hideCompleted); } function loadState() { const savedState = localStorage.getItem(STORAGE_KEY); const savedFilterState = localStorage.getItem(FILTER_STORAGE_KEY); if (savedState) { try { const state = JSON.parse(savedState); allCheckboxes.forEach(checkbox => { if (state.hasOwnProperty(checkbox.id)) { checkbox.checked = state[checkbox.id]; } updateLiCompletedClass(checkbox); }); } catch (e) { console.error("Erro ao carregar estado do checklist:", e); } } else { allCheckboxes.forEach(checkbox => { updateLiCompletedClass(checkbox); }); } if (savedFilterState !== null) { try { hideCompleted = JSON.parse(savedFilterState); } catch (e) { console.error("Erro ao carregar estado do filtro:", e); hideCompleted = false; } applyFilterState(); } updateAllProgress(); } function updateLiCompletedClass(checkbox) { const li = checkbox.closest('li'); if (li) { if (checkbox.checked) { li.classList.add('completed'); } else { li.classList.remove('completed'); } } } function updateProgress(sectionElement) { const sectionCheckboxes = sectionElement.querySelectorAll('ul input[type="checkbox"]'); const totalTasks = sectionCheckboxes.length; if (totalTasks === 0) return { completed: 0, total: 0, percentage: 0 }; const completedTasks = Array.from(sectionCheckboxes).filter(cb => cb.checked).length; const percentage = Math.round((completedTasks / totalTasks) * 100); const progressBarContainer = sectionElement.querySelector('.section-progress'); if (progressBarContainer) { const progressBar = progressBarContainer.querySelector('.progress-bar'); const progressText = progressBarContainer.querySelector('.progress-text'); progressBar.style.width = `${percentage}%`; progressText.textContent = `Progresso Seção: ${percentage}%`; } return { completed: completedTasks, total: totalTasks, percentage: percentage }; } function updateAllProgress() { let overallCompleted = 0; const allTasksCheckboxes = checklistContainer.querySelectorAll('ul input[type="checkbox"]'); const overallTotal = allTasksCheckboxes.length; overallCompleted = Array.from(allTasksCheckboxes).filter(cb => cb.checked).length; sectionContainers.forEach(section => { updateProgress(section); }); if (overallProgressBar && overallProgressText) { const overallPercentage = overallTotal === 0 ? 0 : Math.round((overallCompleted / overallTotal) * 100); overallProgressBar.style.width = `${overallPercentage}%`; overallProgressText.textContent = `Progresso Geral: ${overallPercentage}% (${overallCompleted}/${overallTotal})`; } } function applyFilterState() { if (hideCompleted) { checklistContainer.classList.add('hide-completed'); toggleCompletedBtn.textContent = 'Mostrar Concluídos'; toggleCompletedBtn.classList.add('active'); } else { checklistContainer.classList.remove('hide-completed'); toggleCompletedBtn.textContent = 'Esconder Concluídos'; toggleCompletedBtn.classList.remove('active'); } } checklistContainer.addEventListener('change', (event) => { if (event.target.matches('ul input[type="checkbox"]')) { updateLiCompletedClass(event.target); updateAllProgress(); saveState(); } }); if (toggleCompletedBtn) { toggleCompletedBtn.addEventListener('click', () => { hideCompleted = !hideCompleted; applyFilterState(); saveState(); }); } else { console.warn("Botão de filtro não encontrado."); } loadState(); });

Este checklist cobre todas as etapas da organização. Para dicas detalhadas sobre cada fase — orçamento, local, cardápio e brinquedos — confira nosso guia completo de planejamento de festa infantil.

Gostou? Entre em contato para saber mais!

Solicitar Orçamento pelo WhatsApp
Ligar agora Orçamento