Gio. Mar 5th, 2026

Armadio

<!DOCTYPE html>
<html lang="it">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Vibe Closet Pro</title>
    <style>
        :root { 
            --neon: #00f2ff; 
            --bg: #0a0a0a; 
            --card: #1a1a1a;
        }
        
        body { 
            font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; 
            background: var(--bg); 
            color: white; 
            text-align: center; 
            margin: 0; 
            padding-bottom: 100px; 
        }

        h2 { 
            color: var(--neon); 
            margin-top: 20px; 
            letter-spacing: 2px;
            text-transform: uppercase;
        }

        .slot { 
            height: 180px; 
            width: 85%; 
            max-width: 400px;
            margin: 15px auto; 
            background: var(--card); 
            border: 2px solid var(--neon); 
            border-radius: 15px; 
            display: flex; 
            align-items: center; 
            justify-content: center; 
            overflow: hidden;
            box-shadow: 0 0 15px rgba(0, 242, 255, 0.2);
            transition: transform 0.3s ease;
        }

        .slot:active { transform: scale(0.98); }

        .slot img { width: 100%; height: 100%; object-fit: cover; }

        .controls { 
            position: fixed; 
            bottom: 0; 
            width: 100%; 
            background: rgba(0,0,0,0.85); 
            padding: 20px 0; 
            backdrop-filter: blur(10px); 
            border-top: 1px solid #333;
        }

        button { 
            background: var(--neon); 
            border: none; 
            padding: 12px 25px; 
            border-radius: 25px; 
            font-weight: bold; 
            cursor: pointer; 
            margin: 5px; 
            text-transform: uppercase;
            transition: 0.2s;
        }

        button:hover { opacity: 0.8; }
        
        .btn-mix { background: white; color: black; }
    </style>
</head>
<body>

    <h2>Il Tuo Armadio Vibe</h2>
    
    <div id="slot-sopra" class="slot">SOPRA</div>
    <div id="slot-sotto" class="slot">SOTTO</div>
    <div id="slot-scarpe" class="slot">SCARPE</div>

    <div class="controls">
        <button onclick="triggerUpload()">+ AGGIUNGI</button>
        <button class="btn-mix" onclick="generateOutfit()">MIX OUTFIT</button>
    </div>

    <input type="file" id="fileInput" hidden accept="image/*" onchange="handleUpload(event)">

    <script>
        // Inizializzazione dati
        let closet = JSON.parse(localStorage.getItem('myVibeCloset')) || { sopra: [], sotto: [], scarpe: [] };

        function triggerUpload() {
            const type = prompt("Cosa vuoi aggiungere? (sopra, sotto, scarpe)").toLowerCase().trim();
            if (['sopra', 'sotto', 'scarpe'].includes(type)) {
                const input = document.getElementById('fileInput');
                input.dataset.type = type; // Memorizza la categoria
                input.click();
            } else if (type !== "") {
                alert("Categoria non valida. Usa: sopra, sotto o scarpe");
            }
        }

        function handleUpload(event) {
            const file = event.target.files[0];
            const type = event.target.dataset.type;
            
            if (!file) return;

            const reader = new FileReader();
            reader.onload = function(e) {
                const base64Image = e.target.result;
                closet[type].push(base64Image);
                localStorage.setItem('myVibeCloset', JSON.stringify(closet));
                alert("Capo aggiunto con successo in " + type.toUpperCase() + "!");
                
                // Visualizza subito l'ultimo caricato nello slot
                document.getElementById(`slot-${type}`).innerHTML = `<img src="${base64Image}">`;
            };
            reader.readAsDataURL(file);
        }

        function generateOutfit() {
            const categories = ['sopra', 'sotto', 'scarpe'];
            let itemsFound = false;

            categories.forEach(type => {
                if (closet[type] && closet[type].length > 0) {
                    const randomIndex = Math.floor(Math.random() * closet[type].length);
                    const randomImg = closet[type][randomIndex];
                    document.getElementById(`slot-${type}`).innerHTML = `<img src="${randomImg}">`;
                    itemsFound = true;
                }
            });

            if (!itemsFound) {
                alert("L'armadio è vuoto! Aggiungi dei capi prima di mixare.");
            }
        }
    </script>
</body>
</html>
Condividi