diff --git a/admin-dashboard.html b/admin-dashboard.html index e994adc..0e67eb0 100644 --- a/admin-dashboard.html +++ b/admin-dashboard.html @@ -194,18 +194,94 @@ border-color: var(--secondary-color); transform: translateY(-2px); } - /* Icon Picker Styles - Enhanced */ - #iconDropdown { - position: absolute; - width: 100%; - max-width: 500px; + /* Full Screen Icon Picker Modal */ + #iconPickerModal { + display: none; + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(0, 0, 0, 0.8); + z-index: 9999; + padding: 2rem; + overflow-y: auto; + } + + #iconPickerModal.show { + display: block; + } + + #iconPickerContainer { + max-width: 1200px; + margin: 2rem auto; background: white; - border: 1px solid #e5e7eb; - border-radius: 0.5rem; - box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); - z-index: 1000; - margin-top: 0.5rem; + border-radius: 1rem; + box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); overflow: hidden; + max-height: calc(100vh - 4rem); + display: flex; + flex-direction: column; + } + + #iconPickerHeader { + padding: 1.5rem; + border-bottom: 1px solid #e5e7eb; + display: flex; + justify-content: space-between; + align-items: center; + background: #f9fafb; + } + + #iconPickerHeader h3 { + margin: 0; + font-size: 1.5rem; + font-weight: 600; + color: #111827; + } + + #closeIconPicker { + background: none; + border: none; + font-size: 1.5rem; + cursor: pointer; + color: #6b7280; + padding: 0.5rem; + border-radius: 0.375rem; + transition: all 0.2s; + } + + #closeIconPicker:hover { + background: #e5e7eb; + color: #111827; + } + + #iconSearchContainer { + padding: 1.5rem; + background: white; + border-bottom: 1px solid #e5e7eb; + } + + #iconSearch { + width: 100%; + padding: 1rem 1.25rem; + border: 2px solid #e5e7eb; + border-radius: 0.75rem; + font-size: 1.125rem; + transition: all 0.2s; + } + + #iconSearch:focus { + outline: none; + border-color: var(--primary-color); + box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.2); + } + + #iconListContainer { + flex: 1; + overflow-y: auto; + padding: 1.5rem; + background: white; } #iconSearch { @@ -229,13 +305,8 @@ #iconList { display: grid; - grid-template-columns: repeat(8, minmax(0, 1fr)); - gap: 0.75rem; - padding: 1rem; - max-height: 400px; - overflow-y: auto; - scrollbar-width: thin; - scrollbar-color: #cbd5e0 #f1f5f9; + grid-template-columns: repeat(auto-fill, minmax(100px, 1fr)); + gap: 1rem; } #iconList::-webkit-scrollbar { @@ -274,9 +345,9 @@ flex-direction: column; align-items: center; justify-content: center; - padding: 0.75rem 0.5rem; + padding: 1.5rem 0.5rem; border: 1px solid #e5e7eb; - border-radius: 0.5rem; + border-radius: 0.75rem; background: white; cursor: pointer; transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1); @@ -285,37 +356,38 @@ } .icon-option i { - font-size: 1.5rem; + font-size: 2rem; color: #4b5563; - margin-bottom: 0.25rem; + margin-bottom: 0.5rem; transition: all 0.2s ease; pointer-events: none; } .icon-option .icon-name { - font-size: 0.625rem; + font-size: 0.75rem; color: #6b7280; text-align: center; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; width: 100%; - opacity: 0; - transform: translateY(5px); + opacity: 1; + transform: translateY(0); transition: all 0.2s ease; pointer-events: none; + font-weight: 500; } .icon-option:hover { - background-color: #f3f4f6; - border-color: #d1d5db; + background-color: #f8fafc; + border-color: var(--primary-color); transform: translateY(-2px); - box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); + box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); } .icon-option:hover i { color: var(--primary-color); - transform: scale(1.1); + transform: scale(1.15); } .icon-option:hover .icon-name { @@ -326,6 +398,8 @@ .icon-option.active { background-color: var(--primary-color); border-color: var(--primary-hover); + transform: translateY(-2px); + box-shadow: 0 10px 15px -3px rgba(59, 130, 246, 0.3); } .icon-option.active i, @@ -334,23 +408,44 @@ } /* Responsive adjustments */ - @media (max-width: 768px) { + @media (max-width: 1200px) { #iconList { - grid-template-columns: repeat(6, minmax(0, 1fr)); - gap: 0.5rem; - padding: 0.75rem; + grid-template-columns: repeat(auto-fill, minmax(90px, 1fr)); + } + } + + @media (max-width: 768px) { + #iconPickerContainer { + margin: 0.5rem; + max-height: calc(100vh - 1rem); + } + + #iconList { + grid-template-columns: repeat(auto-fill, minmax(80px, 1fr)); + gap: 0.75rem; } .icon-option i { - font-size: 1.25rem; + font-size: 1.75rem; } } @media (max-width: 480px) { #iconList { - grid-template-columns: repeat(4, minmax(0, 1fr)); + grid-template-columns: repeat(auto-fill, minmax(70px, 1fr)); gap: 0.5rem; - padding: 0.5rem; + } + + .icon-option { + padding: 1rem 0.25rem; + } + + .icon-option i { + font-size: 1.5rem; + } + + .icon-option .icon-name { + font-size: 0.6875rem; } } @@ -966,16 +1061,9 @@