Demo

Ubuntu Web Installer
<div class="installer-card">
    <div class="h-9 bg-gradient-to-b from-[#4d4d4d] to-[#333] rounded-t-lg flex items-center justify-between px-4 border-b border-black">
        <span class="text-xs font-bold text-gray-200">Install</span>
        <div class="flex gap-2">
            <div class="w-3 h-3 rounded-full bg-[#e95420] border border-black/20"></div>
        </div>
    </div>

    <div class="flex flex-1 overflow-hidden">
        <div class="w-40 bg-[#2c001e] p-4 text-xs text-gray-300 space-y-3 border-r border-black/20">
            <div id="side-welcome" class="text-white font-bold border-l-2 border-orange-500 pl-2">Welcome</div>
            <div class="opacity-50 pl-2">Keyboard layout</div>
            <div class="opacity-50 pl-2">Updates</div>
            <div class="opacity-50 pl-2">Installation type</div>
            <div id="side-installing" class="opacity-50 pl-2">Installing...</div>
        </div>

        <div class="flex-1 p-10 flex flex-col justify-between relative">
            
            <div id="view-welcome" class="space-y-6">
                <h1 class="text-3xl font-light text-white">Welcome</h1>
                <p class="text-sm text-gray-300 leading-relaxed">
                    You are about to install Ubuntu. This installer was built with plain HTML and Tailwind CSS to mimic the Ubiquity experience.
                </p>
                <div class="bg-black/20 p-4 rounded border border-white/5 text-sm text-gray-400">
                    Select your language: <br>
                    <span class="text-orange-400 font-bold">● English</span><br>
                    <span>○ Français</span><br>
                    <span>○ Deutsch</span>
                </div>
            </div>

            <div id="view-slideshow" class="hidden space-y-6 animate-fade-in">
                <h2 id="slide-title" class="text-2xl font-light text-white">Find even more software</h2>
                <p id="slide-text" class="text-sm text-gray-300">Ubuntu comes with the Ubuntu Software Center, giving you instant access to thousands of open-source apps.</p>
                
                <div class="w-full h-32 bg-white/5 rounded-lg flex items-center justify-center border border-white/10">
                    <span class="text-orange-500 font-bold text-lg">Ubuntu Software Center</span>
                </div>

                <div class="space-y-2">
                    <div class="flex justify-between text-[10px] text-gray-400 uppercase tracking-widest">
                        <span id="progress-status">Copying files...</span>
                        <span id="progress-percent">0%</span>
                    </div>
                    <div class="w-full h-2 bg-black/40 rounded-full overflow-hidden">
                        <div id="progress-bar" class="progress-fill h-full w-0"></div>
                    </div>
                </div>
            </div>

            <div class="flex justify-end gap-3 pt-6 border-t border-white/5">
                <button onclick="window.close()" class="px-5 py-1 text-xs bg-gray-700 hover:bg-gray-600 text-white rounded shadow">Quit</button>
                <button id="btn-next" onclick="startInstallation()" class="px-5 py-1 text-xs bg-[#e95420] hover:bg-[#c6441a] text-white rounded shadow font-bold">Continue</button>
            </div>
        </div>
    </div>
</div>

<script>
    function startInstallation() {
        // UI Switches
        document.getElementById('view-welcome').classList.add('hidden');
        document.getElementById('view-slideshow').classList.remove('hidden');
        document.getElementById('btn-next').disabled = true;
        document.getElementById('btn-next').classList.add('opacity-50');
        
        document.getElementById('side-welcome').classList.remove('text-white', 'font-bold', 'border-orange-500');
        document.getElementById('side-welcome').classList.add('opacity-50');
        document.getElementById('side-installing').classList.add('text-white', 'font-bold', 'border-l-2', 'border-orange-500', 'opacity-100');

        // Progress Logic
        let progress = 0;
        const bar = document.getElementById('progress-bar');
        const percentText = document.getElementById('progress-percent');
        const statusText = document.getElementById('progress-status');

        const interval = setInterval(() => {
            progress += Math.random() * 5;
            if (progress >= 100) {
                progress = 100;
                statusText.innerText = "Installation Complete!";
                clearInterval(interval);
            }
            bar.style.width = progress + "%";
            percentText.innerText = Math.floor(progress) + "%";

            // Change slides based on progress
            if (progress > 30 && progress < 60) {
                document.getElementById('slide-title').innerText = "Take your music with you";
                document.getElementById('slide-text').innerText = "Ubuntu includes Rhythmbox for playing and organizing your music library.";
            } else if (progress > 60) {
                document.getElementById('slide-title').innerText = "Built-in Photos app";
                document.getElementById('slide-text').innerText = "Shotwell is a digital photo organizer designed for the GNOME desktop.";
            }
        }, 800);
    }
</script>