name-ngo / index.html
uiniity's picture
Comprehensive Frontend UX/UI Requirements for Namingo Domain Management Platform
48e9a92 verified
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Namingo Domain Management Platform</title>
<script src="https://cdn.tailwindcss.com"></script>
<link href="https://unpkg.com/aos@2.3.1/dist/aos.css" rel="stylesheet">
<script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script>
<script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
<script src="https://unpkg.com/feather-icons"></script>
<style>
@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@300;400;500;600;700&family=Inter:wght@300;400;500;600&family=JetBrains+Mono:wght@400;500&display=swap');
body {
font-family: 'Inter', sans-serif;
}
.sidebar-item:hover .sidebar-icon {
color: #1E3A8A;
}
/* Dark mode styles */
.dark {
background-color: #0F172A;
color: #F8FAFC;
}
.dark .bg-white {
background-color: #1E293B;
}
.dark .text-gray-900 {
color: #F8FAFC;
}
.dark .text-gray-500 {
color: #94A3B8;
}
.dark .border-gray-200 {
border-color: #334155;
}
/* Animation for microinteractions */
button:active {
transform: scale(0.98);
}
.transition-all {
transition-property: all;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
transition-duration: 200ms;
}
.domain-card:hover {
transform: translateY(-2px);
box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
}
.progress-bar {
background: linear-gradient(90deg, #1E3A8A 0%, #3B82F6 100%);
}
</style>
</head>
<body class="bg-gray-50">
<!-- Global Header with Theme Toggle -->
<header class="bg-white shadow-sm dark:bg-gray-800">
<div class="absolute top-4 right-4">
<button id="themeToggle" class="p-2 rounded-full bg-gray-100 dark:bg-gray-700">
<i id="themeIcon" data-feather="sun" class="text-gray-800 dark:text-gray-200"></i>
</button>
</div>
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="flex justify-between h-16 items-center">
<div class="flex items-center">
<div class="flex-shrink-0 flex items-center">
<i data-feather="globe" class="h-8 w-8 text-blue-800"></i>
<span class="ml-2 text-xl font-bold text-gray-900 font-manrope">Namingo</span>
</div>
<nav class="hidden md:ml-10 md:flex space-x-8">
<a href="#" class="text-blue-800 border-b-2 border-blue-800 px-1 pt-1 text-sm font-medium">Dashboard</a>
<a href="#" class="text-gray-500 hover:text-gray-700 px-1 pt-1 text-sm font-medium">Domains</a>
<a href="#" class="text-gray-500 hover:text-gray-700 px-1 pt-1 text-sm font-medium">DNS</a>
<a href="#" class="text-gray-500 hover:text-gray-700 px-1 pt-1 text-sm font-medium">Security</a>
<a href="#" class="text-gray-500 hover:text-gray-700 px-1 pt-1 text-sm font-medium">Billing</a>
</nav>
</div>
<div class="flex items-center">
<div class="flex-shrink-0">
<div class="relative">
<input type="text" placeholder="Search domains..." class="w-full md:w-64 pl-10 pr-4 py-2 rounded-lg border border-gray-300 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent">
<i data-feather="search" class="absolute left-3 top-2.5 text-gray-400"></i>
</div>
</div>
<div class="ml-4 flex items-center md:ml-6">
<button type="button" class="p-1 rounded-full text-gray-400 hover:text-gray-500 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500">
<i data-feather="bell"></i>
</button>
<div class="ml-3 relative">
<div class="flex items-center">
<div class="flex-shrink-0">
<img class="h-8 w-8 rounded-full" src="http://static.photos/people/200x200/42" alt="User profile">
</div>
<div class="ml-2 hidden md:block">
<p class="text-sm font-medium text-gray-700">John Doe</p>
<p class="text-xs text-gray-500">Admin</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</header>
<div class="flex">
<!-- Sidebar -->
<div class="hidden md:flex md:flex-shrink-0">
<div class="flex flex-col w-64 border-r border-gray-200 bg-white relative">
<!-- AI Assistant Button -->
<div class="absolute bottom-4 right-4 z-10">
<button id="aiAssistantButton" class="p-3 rounded-full bg-blue-800 text-white shadow-lg hover:bg-blue-700 transition-colors duration-200">
<i data-feather="message-circle"></i>
</button>
</div>
<div class="h-0 flex-1 flex flex-col pt-5 pb-4 overflow-y-auto">
<nav class="flex-1 px-2 space-y-1">
<div class="mt-6">
<h3 class="px-3 text-xs font-semibold text-gray-500 uppercase tracking-wider">Domain Operations</h3>
<div class="mt-2 space-y-1">
<a href="#" class="sidebar-item flex items-center px-3 py-2 text-sm font-medium text-gray-900 rounded-md bg-blue-50">
<i data-feather="box" class="sidebar-icon flex-shrink-0 h-5 w-5 text-gray-500"></i>
<span class="ml-3">Domain Portfolio</span>
</a>
<a href="#" class="sidebar-item flex items-center px-3 py-2 text-sm font-medium text-gray-700 rounded-md hover:bg-gray-50">
<i data-feather="layers" class="sidebar-icon flex-shrink-0 h-5 w-5 text-gray-500"></i>
<span class="ml-3">Bulk Management</span>
</a>
<a href="#" class="sidebar-item flex items-center px-3 py-2 text-sm font-medium text-gray-700 rounded-md hover:bg-gray-50">
<i data-feather="refresh-cw" class="sidebar-icon flex-shrink-0 h-5 w-5 text-gray-500"></i>
<span class="ml-3">Transfer Management</span>
</a>
</div>
</div>
<div class="mt-6">
<h3 class="px-3 text-xs font-semibold text-gray-500 uppercase tracking-wider">DNS Configuration</h3>
<div class="mt-2 space-y-1">
<a href="#" class="sidebar-item flex items-center px-3 py-2 text-sm font-medium text-gray-700 rounded-md hover:bg-gray-50">
<i data-feather="compass" class="sidebar-icon flex-shrink-0 h-5 w-5 text-gray-500"></i>
<span class="ml-3">Zone Management</span>
</a>
<a href="#" class="sidebar-item flex items-center px-3 py-2 text-sm font-medium text-gray-700 rounded-md hover:bg-gray-50">
<i data-feather="edit" class="sidebar-icon flex-shrink-0 h-5 w-5 text-gray-500"></i>
<span class="ml-3">Record Editor</span>
</a>
<a href="#" class="sidebar-item flex items-center px-3 py-2 text-sm font-medium text-gray-700 rounded-md hover:bg-gray-50">
<i data-feather="shield" class="sidebar-icon flex-shrink-0 h-5 w-5 text-gray-500"></i>
<span class="ml-3">DNSSEC Wizard</span>
</a>
</div>
</div>
<div class="mt-6">
<h3 class="px-3 text-xs font-semibold text-gray-500 uppercase tracking-wider">Security & Compliance</h3>
<div class="mt-2 space-y-1">
<a href="#" class="sidebar-item flex items-center px-3 py-2 text-sm font-medium text-gray-700 rounded-md hover:bg-gray-50">
<i data-feather="lock" class="sidebar-icon flex-shrink-0 h-5 w-5 text-gray-500"></i>
<span class="ml-3">Access Controls</span>
</a>
<a href="#" class="sidebar-item flex items-center px-3 py-2 text-sm font-medium text-gray-700 rounded-md hover:bg-gray-50">
<i data-feather="list" class="sidebar-icon flex-shrink-0 h-5 w-5 text-gray-500"></i>
<span class="ml-3">Audit Logs</span>
</a>
<a href="#" class="sidebar-item flex items-center px-3 py-2 text-sm font-medium text-gray-700 rounded-md hover:bg-gray-50">
<i data-feather="file-text" class="sidebar-icon flex-shrink-0 h-5 w-5 text-gray-500"></i>
<span class="ml-3">GDPR Settings</span>
</a>
</div>
</div>
</nav>
</div>
</div>
</div>
<!-- Main Content -->
<div class="flex-1 overflow-auto">
<main class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-6">
<div class="mb-8">
<h1 class="text-2xl font-bold text-gray-900 font-manrope">Domain Portfolio</h1>
<p class="mt-1 text-sm text-gray-500">Manage all your domains in one place</p>
</div>
<!-- Stats Cards -->
<div class="grid grid-cols-1 gap-5 sm:grid-cols-2 lg:grid-cols-4 mb-8">
<div class="bg-white overflow-hidden shadow rounded-lg">
<div class="px-4 py-5 sm:p-6">
<div class="flex items-center">
<div class="flex-shrink-0 bg-blue-100 rounded-md p-3">
<i data-feather="globe" class="h-6 w-6 text-blue-800"></i>
</div>
<div class="ml-5 w-0 flex-1">
<dt class="text-sm font-medium text-gray-500 truncate">Total Domains</dt>
<dd class="flex items-baseline">
<div class="text-2xl font-semibold text-gray-900">247</div>
</dd>
</div>
</div>
</div>
</div>
<div class="bg-white overflow-hidden shadow rounded-lg">
<div class="px-4 py-5 sm:p-6">
<div class="flex items-center">
<div class="flex-shrink-0 bg-green-100 rounded-md p-3">
<i data-feather="check-circle" class="h-6 w-6 text-green-800"></i>
</div>
<div class="ml-5 w-0 flex-1">
<dt class="text-sm font-medium text-gray-500 truncate">Active</dt>
<dd class="flex items-baseline">
<div class="text-2xl font-semibold text-gray-900">198</div>
</dd>
</div>
</div>
</div>
</div>
<div class="bg-white overflow-hidden shadow rounded-lg">
<div class="px-4 py-5 sm:p-6">
<div class="flex items-center">
<div class="flex-shrink-0 bg-yellow-100 rounded-md p-3">
<i data-feather="alert-triangle" class="h-6 w-6 text-yellow-800"></i>
</div>
<div class="ml-5 w-0 flex-1">
<dt class="text-sm font-medium text-gray-500 truncate">Expiring Soon</dt>
<dd class="flex items-baseline">
<div class="text-2xl font-semibold text-gray-900">32</div>
</dd>
</div>
</div>
</div>
</div>
<div class="bg-white overflow-hidden shadow rounded-lg">
<div class="px-4 py-5 sm:p-6">
<div class="flex items-center">
<div class="flex-shrink-0 bg-red-100 rounded-md p-3">
<i data-feather="shield" class="h-6 w-6 text-red-800"></i>
</div>
<div class="ml-5 w-0 flex-1">
<dt class="text-sm font-medium text-gray-500 truncate">Security Issues</dt>
<dd class="flex items-baseline">
<div class="text-2xl font-semibold text-gray-900">5</div>
</dd>
</div>
</div>
</div>
</div>
</div>
<!-- Quick Actions -->
<div class="mb-8">
<div class="flex flex-col sm:flex-row sm:items-center sm:justify-between">
<h2 class="text-lg font-medium text-gray-900 mb-4 sm:mb-0">Quick Actions</h2>
<div class="flex space-x-3">
<button type="button" class="inline-flex items-center px-4 py-2 border border-gray-300 shadow-sm text-sm font-medium rounded-md text-gray-700 bg-white hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500">
<i data-feather="plus" class="-ml-1 mr-2 h-4 w-4"></i>
Register New
</button>
<button type="button" class="inline-flex items-center px-4 py-2 border border-gray-300 shadow-sm text-sm font-medium rounded-md text-gray-700 bg-white hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500">
<i data-feather="refresh-cw" class="-ml-1 mr-2 h-4 w-4"></i>
Renew Domains
</button>
<button type="button" class="inline-flex items-center px-4 py-2 border border-transparent text-sm font-medium rounded-md shadow-sm text-white bg-blue-800 hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500">
<i data-feather="shield" class="-ml-1 mr-2 h-4 w-4"></i>
Bulk Security
</button>
</div>
</div>
</div>
<!-- Domain Cards -->
<div class="grid grid-cols-1 gap-5 sm:grid-cols-2 lg:grid-cols-3">
<!-- Domain Card 1 -->
<div class="domain-card bg-white overflow-hidden shadow rounded-lg transition-all duration-200 ease-in-out">
<div class="px-4 py-5 sm:p-6">
<div class="flex items-center justify-between">
<h3 class="text-lg leading-6 font-medium text-gray-900">example.com</h3>
<span class="px-2 py-1 text-xs font-semibold rounded-full bg-green-100 text-green-800">
Active
</span>
</div>
<div class="mt-4">
<div class="flex items-center text-sm text-gray-500">
<i data-feather="calendar" class="flex-shrink-0 mr-1.5 h-4 w-4"></i>
Expires: 2023-12-15
</div>
<div class="mt-2 flex items-center text-sm text-gray-500">
<i data-feather="shield" class="flex-shrink-0 mr-1.5 h-4 w-4"></i>
DNSSEC: Enabled
</div>
</div>
<div class="mt-5">
<h4 class="text-xs font-medium text-gray-500 mb-1">Security Score</h4>
<div class="w-full bg-gray-200 rounded-full h-2">
<div class="progress-bar h-2 rounded-full" style="width: 85%"></div>
</div>
</div>
</div>
<div class="bg-gray-50 px-4 py-4 sm:px-6">
<div class="flex space-x-3">
<button type="button" class="inline-flex items-center px-3 py-1.5 border border-gray-300 shadow-sm text-xs font-medium rounded text-gray-700 bg-white hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500">
<i data-feather="edit" class="-ml-0.5 mr-1.5 h-3 w-3"></i>
Edit
</button>
<button type="button" class="inline-flex items-center px-3 py-1.5 border border-gray-300 shadow-sm text-xs font-medium rounded text-gray-700 bg-white hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500">
<i data-feather="settings" class="-ml-0.5 mr-1.5 h-3 w-3"></i>
DNS
</button>
<button type="button" class="inline-flex items-center px-3 py-1.5 border border-gray-300 shadow-sm text-xs font-medium rounded text-gray-700 bg-white hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500">
<i data-feather="shield" class="-ml-0.5 mr-1.5 h-3 w-3"></i>
Secure
</button>
</div>
</div>
</div>
<!-- Domain Card 2 -->
<div class="domain-card bg-white overflow-hidden shadow rounded-lg transition-all duration-200 ease-in-out">
<div class="px-4 py-5 sm:p-6">
<div class="flex items-center justify-between">
<h3 class="text-lg leading-6 font-medium text-gray-900">example.org</h3>
<span class="px-2 py-1 text-xs font-semibold rounded-full bg-yellow-100 text-yellow-800">
Expiring
</span>
</div>
<div class="mt-4">
<div class="flex items-center text-sm text-gray-500">
<i data-feather="calendar" class="flex-shrink-0 mr-1.5 h-4 w-4"></i>
Expires: 2023-10-28
</div>
<div class="mt-2 flex items-center text-sm text-gray-500">
<i data-feather="shield" class="flex-shrink-0 mr-1.5 h-4 w-4"></i>
DNSSEC: Not Enabled
</div>
</div>
<div class="mt-5">
<h4 class="text-xs font-medium text-gray-500 mb-1">Security Score</h4>
<div class="w-full bg-gray-200 rounded-full h-2">
<div class="progress-bar h-2 rounded-full" style="width: 65%"></div>
</div>
</div>
</div>
<div class="bg-gray-50 px-4 py-4 sm:px-6">
<div class="flex space-x-3">
<button type="button" class="inline-flex items-center px-3 py-1.5 border border-gray-300 shadow-sm text-xs font-medium rounded text-gray-700 bg-white hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500">
<i data-feather="edit" class="-ml-0.5 mr-1.5 h-3 w-3"></i>
Edit
</button>
<button type="button" class="inline-flex items-center px-3 py-1.5 border border-gray-300 shadow-sm text-xs font-medium rounded text-gray-700 bg-white hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500">
<i data-feather="settings" class="-ml-0.5 mr-1.5 h-3 w-3"></i>
DNS
</button>
<button type="button" class="inline-flex items-center px-3 py-1.5 border border-gray-300 shadow-sm text-xs font-medium rounded text-gray-700 bg-white hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500">
<i data-feather="shield" class="-ml-0.5 mr-1.5 h-3 w-3"></i>
Secure
</button>
</div>
</div>
</div>
<!-- Domain Card 3 -->
<div class="domain-card bg-white overflow-hidden shadow rounded-lg transition-all duration-200 ease-in-out">
<div class="px-4 py-5 sm:p-6">
<div class="flex items-center justify-between">
<h3 class="text-lg leading-6 font-medium text-gray-900">example.net</h3>
<span class="px-2 py-1 text-xs font-semibold rounded-full bg-red-100 text-red-800">
Issue
</span>
</div>
<div class="mt-4">
<div class="flex items-center text-sm text-gray-500">
<i data-feather="calendar" class="flex-shrink-0 mr-1.5 h-4 w-4"></i>
Expires: 2024-03-10
</div>
<div class="mt-2 flex items-center text-sm text-gray-500">
<i data-feather="alert-circle" class="flex-shrink-0 mr-1.5 h-4 w-4 text-red-500"></i>
Nameserver Error
</div>
</div>
<div class="mt-5">
<h4 class="text-xs font-medium text-gray-500 mb-1">Security Score</h4>
<div class="w-full bg-gray-200 rounded-full h-2">
<div class="progress-bar h-2 rounded-full" style="width: 45%"></div>
</div>
</div>
</div>
<div class="bg-gray-50 px-4 py-4 sm:px-6">
<div class="flex space-x-3">
<button type="button" class="inline-flex items-center px-3 py-1.5 border border-gray-300 shadow-sm text-xs font-medium rounded text-gray-700 bg-white hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500">
<i data-feather="edit" class="-ml-0.5 mr-1.5 h-3 w-3"></i>
Edit
</button>
<button type="button" class="inline-flex items-center px-3 py-1.5 border border-gray-300 shadow-sm text-xs font-medium rounded text-gray-700 bg-white hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500">
<i data-feather="settings" class="-ml-0.5 mr-1.5 h-3 w-3"></i>
DNS
</button>
<button type="button" class="inline-flex items-center px-3 py-1.5 border border-gray-300 shadow-sm text-xs font-medium rounded text-gray-700 bg-white hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500">
<i data-feather="shield" class="-ml-0.5 mr-1.5 h-3 w-3"></i>
Secure
</button>
</div>
</div>
</div>
</div>
</main>
</div>
</div>
<script>
AOS.init();
feather.replace();
// AI Assistant Modal
const aiAssistantButton = document.getElementById('aiAssistantButton');
aiAssistantButton.addEventListener('click', () => {
// Create and show AI assistant modal
const modal = document.createElement('div');
modal.className = 'fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50';
modal.innerHTML = `
<div class="bg-white rounded-lg shadow-xl w-full max-w-2xl max-h-[80vh] flex flex-col">
<div class="px-6 py-4 border-b border-gray-200 flex justify-between items-center">
<h3 class="text-lg font-medium text-gray-900">Namingo AI Assistant</h3>
<button class="text-gray-400 hover:text-gray-500">
<i data-feather="x"></i>
</button>
</div>
<div class="flex-1 overflow-y-auto p-6">
<div class="flex items-start mb-4">
<div class="flex-shrink-0 bg-blue-100 rounded-full p-2">
<i data-feather="message-circle" class="h-5 w-5 text-blue-800"></i>
</div>
<div class="ml-3">
<p class="text-sm text-gray-700">Hi there! I'm your Namingo AI Assistant. How can I help you with your domain management today?</p>
</div>
</div>
<div class="grid grid-cols-1 md:grid-cols-2 gap-4 mb-6">
<button class="p-3 border border-gray-200 rounded-lg hover:bg-gray-50 text-left">
<p class="text-sm font-medium text-gray-900">How do I transfer a domain?</p>
<p class="mt-1 text-xs text-gray-500">Step-by-step guide</p>
</button>
<button class="p-3 border border-gray-200 rounded-lg hover:bg-gray-50 text-left">
<p class="text-sm font-medium text-gray-900">Explain DNSSEC</p>
<p class="mt-1 text-xs text-gray-500">Interactive tutorial</p>
</button>
<button class="p-3 border border-gray-200 rounded-lg hover:bg-gray-50 text-left">
<p class="text-sm font-medium text-gray-900">Bulk domain actions</p>
<p class="mt-1 text-xs text-gray-500">Show me how</p>
</button>
<button class="p-3 border border-gray-200 rounded-lg hover:bg-gray-50 text-left">
<p class="text-sm font-medium text-gray-900">Security recommendations</p>
<p class="mt-1 text-xs text-gray-500">For my domains</p>
</button>
</div>
<div class="mt-4">
<div class="flex rounded-md shadow-sm">
<input type="text" class="flex-1 block w-full rounded-none rounded-l-md border-gray-300 focus:ring-blue-500 focus:border-blue-500 sm:text-sm" placeholder="Ask me anything about domain management...">
<button class="inline-flex items-center px-4 py-2 border border-transparent text-sm font-medium rounded-r-md text-white bg-blue-800 hover:bg-blue-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500">
<i data-feather="send" class="h-4 w-4"></i>
</button>
</div>
</div>
</div>
</div>
`;
document.body.appendChild(modal);
feather.replace();
// Close modal handler
modal.querySelector('button').addEventListener('click', () => {
modal.remove();
});
});
</script>
</body>
</html>