Spaces:
Running
Running
| <html lang="en" data-theme="light"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| <title>User Settings | SleekSettings</title> | |
| <script src="https://cdn.tailwindcss.com"></script> | |
| <link href="https://cdn.jsdelivr.net/npm/daisyui@3.9.4/dist/full.css" rel="stylesheet" type="text/css" /> | |
| <script src="https://unpkg.com/feather-icons"></script> | |
| <style> | |
| .settings-section { | |
| transition: all 0.3s ease; | |
| } | |
| .avatar-upload:hover .avatar-preview { | |
| transform: scale(1.05); | |
| box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1); | |
| } | |
| .floating-label { | |
| transform: translateY(-50%); | |
| background: white; | |
| padding: 0 0.5rem; | |
| } | |
| </style> | |
| </head> | |
| <body class="bg-base-200 min-h-screen"> | |
| <div class="container mx-auto px-4 py-8 max-w-4xl"> | |
| <div class="settings-section bg-white rounded-xl shadow-lg overflow-hidden border border-base-300"> | |
| <!-- Header --> | |
| <div class="bg-gradient-to-r from-primary to-primary-focus px-6 py-4"> | |
| <div class="flex items-center justify-between"> | |
| <h2 class="text-2xl font-bold text-white flex items-center gap-2"> | |
| <i data-feather="user" class="w-5 h-5"></i> | |
| User Settings | |
| </h2> | |
| <div class="badge badge-accent badge-lg">Profile</div> | |
| </div> | |
| </div> | |
| <div class="p-6"> | |
| <!-- Profile Information --> | |
| <div class="mb-10"> | |
| <div class="flex items-center mb-6"> | |
| <div class="w-1 h-8 bg-primary rounded-full mr-3"></div> | |
| <h3 class="text-xl font-semibold">Profile Information</h3> | |
| </div> | |
| <div class="grid grid-cols-1 md:grid-cols-2 gap-6"> | |
| <!-- Username --> | |
| <div class="form-control"> | |
| <div class="relative"> | |
| <input type="text" value="NiNiyas" class="input input-bordered w-full peer" readonly /> | |
| <label class="absolute left-4 top-0 text-sm text-gray-500 pointer-events-none transition-all duration-200 peer-placeholder-shown:text-base peer-placeholder-shown:text-gray-400 peer-placeholder-shown:top-4"> | |
| Username | |
| </label> | |
| </div> | |
| </div> | |
| <!-- Email --> | |
| <div class="form-control"> | |
| <div class="relative"> | |
| <input type="email" placeholder=" " class="input input-bordered w-full peer" value="user@example.com" /> | |
| <label class="absolute left-4 top-0 text-sm text-gray-500 pointer-events-none transition-all duration-200 peer-placeholder-shown:text-base peer-placeholder-shown:text-gray-400 peer-placeholder-shown:top-4"> | |
| </label> | |
| </div> | |
| </div> | |
| <!-- Display Name --> | |
| <div class="form-control"> | |
| <div class="relative"> | |
| <input type="text" value="NiNiyas" class="input input-bordered w-full peer" /> | |
| <label class="absolute left-4 top-0 text-sm text-gray-500 pointer-events-none transition-all duration-200 peer-placeholder-shown:text-base peer-placeholder-shown:text-gray-400 peer-placeholder-shown:top-4"> | |
| Display Name | |
| </label> | |
| </div> | |
| </div> | |
| <!-- Language --> | |
| <div class="form-control"> | |
| <div class="relative"> | |
| <select class="select select-bordered w-full peer"> | |
| <option value="en" selected>English</option> | |
| <option value="es">Spanish</option> | |
| <option value="fr">French</option> | |
| <option value="de">German</option> | |
| </select> | |
| <label class="absolute left-4 -top-2.5 text-sm text-gray-500 bg-white px-1"> | |
| Language | |
| </label> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <!-- Avatar Section --> | |
| <div class="mb-10"> | |
| <div class="flex items-center mb-6"> | |
| <div class="w-1 h-8 bg-primary rounded-full mr-3"></div> | |
| <h3 class="text-xl font-semibold">Profile Picture</h3> | |
| </div> | |
| <div class="avatar-upload flex flex-col md:flex-row items-center gap-6"> | |
| <div class="avatar-preview relative transition-all duration-300"> | |
| <div class="w-24 h-24 rounded-full bg-primary flex items-center justify-center text-white text-3xl font-bold shadow-md"> | |
| N | |
| </div> | |
| <div class="absolute -bottom-2 -right-2 bg-accent rounded-full p-1 shadow-lg"> | |
| <i data-feather="camera" class="w-4 h-4 text-white"></i> | |
| </div> | |
| </div> | |
| <div class="flex-1"> | |
| <div class="space-y-2"> | |
| <button class="btn btn-primary btn-outline"> | |
| <i data-feather="upload" class="w-4 h-4 mr-2"></i> | |
| Upload New Photo | |
| </button> | |
| <button class="btn btn-ghost btn-sm text-error"> | |
| <i data-feather="trash-2" class="w-4 h-4 mr-2"></i> | |
| Remove Photo | |
| </button> | |
| <p class="text-sm text-gray-500">JPG, PNG or GIF (Max 2MB)</p> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <!-- Action Buttons --> | |
| <div class="flex justify-end gap-3 pt-4 border-t border-base-300"> | |
| <button class="btn btn-ghost">Cancel</button> | |
| <button class="btn btn-primary gap-2"> | |
| <i data-feather="save" class="w-4 h-4"></i> | |
| Save Changes | |
| </button> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <script> | |
| feather.replace(); | |
| // Floating label functionality | |
| document.querySelectorAll('.form-control input, .form-control select').forEach(input => { | |
| if(input.value) { | |
| input.previousElementSibling.classList.add('!top-0', '!text-sm'); | |
| } | |
| input.addEventListener('focus', () => { | |
| input.previousElementSibling.classList.add('!top-0', '!text-sm'); | |
| }); | |
| input.addEventListener('blur', () => { | |
| if(!input.value) { | |
| input.previousElementSibling.classList.remove('!top-0', '!text-sm'); | |
| } | |
| }); | |
| }); | |
| </script> | |
| </body> | |
| </html> | |