| <!DOCTYPE html> |
| <html lang="ko"> |
| <head> |
| <meta charset="UTF-8"> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| <title>νμ λΆλ§ν¬ (μν°λ―Όμ μν)</title> |
| <link href="https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@300;400;500;700&display=swap" rel="stylesheet"> |
| <style> |
| :root { |
| --primary-color: #6C5CE7; |
| --secondary-color: #00CEFF; |
| --text-color: #2D3436; |
| --light-bg: linear-gradient(135deg, #f5f7fa 0%, #e4e8f0 100%); |
| --card-bg: rgba(255, 255, 255, 0.9); |
| --border-color: rgba(108, 92, 231, 0.2); |
| --shadow-light: rgba(108, 92, 231, 0.15); |
| --glass-effect: rgba(255, 255, 255, 0.25); |
| --glass-border: rgba(255, 255, 255, 0.3); |
| } |
| |
| body { |
| font-family: 'Noto Sans KR', sans-serif; |
| line-height: 1.6; |
| color: var(--text-color); |
| margin: 0; |
| padding: 20px; |
| background: var(--light-bg); |
| -webkit-font-smoothing: antialiased; |
| -moz-osx-font-smoothing: grayscale; |
| min-height: 100vh; |
| } |
| |
| h1 { |
| text-align: center; |
| color: var(--primary-color); |
| margin-bottom: 15px; |
| font-weight: 800; |
| font-size: 2.5em; |
| text-shadow: 0 2px 10px rgba(108, 92, 231, 0.2); |
| letter-spacing: -0.5px; |
| } |
| |
| p.description { |
| text-align: center; |
| color: #777; |
| margin-bottom: 30px; |
| font-size: 1.1em; |
| } |
| |
| .container { |
| display: grid; |
| grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); |
| gap: 25px; |
| max-width: 1200px; |
| margin: 0 auto; |
| } |
| |
| |
| @media (min-width: 480px) { |
| .container { |
| grid-template-columns: repeat(2, minmax(280px, 1fr)); |
| } |
| } |
| |
| @media (min-width: 992px) { |
| .container { |
| grid-template-columns: repeat(4, minmax(280px, 1fr)); |
| } |
| } |
| |
| .top-list { |
| background: var(--glass-effect); |
| border-radius: 16px; |
| box-shadow: 0 8px 32px var(--shadow-light); |
| padding: 25px; |
| transition: all 0.3s ease; |
| backdrop-filter: blur(10px); |
| border: 1px solid var(--glass-border); |
| } |
| |
| .top-list:hover { |
| transform: translateY(-8px); |
| box-shadow: 0 12px 40px rgba(108, 92, 231, 0.25); |
| } |
| |
| .top-list h2 { |
| color: var(--primary-color); |
| font-size: 1.6em; |
| margin-top: 0; |
| margin-bottom: 20px; |
| padding-bottom: 12px; |
| border-bottom: 2px solid var(--primary-color); |
| display: flex; |
| align-items: center; |
| font-weight: 700; |
| letter-spacing: -0.5px; |
| } |
| |
| .top-list h2 .icon { |
| margin-right: 10px; |
| font-size: 1.2em; |
| } |
| |
| .rank-item { |
| display: flex; |
| align-items: center; |
| padding: 12px 0; |
| border-bottom: 1px dashed var(--border-color); |
| font-size: 1.05em; |
| transition: all 0.2s ease; |
| } |
| |
| .rank-item:hover { |
| background: rgba(108, 92, 231, 0.05); |
| border-radius: 8px; |
| padding-left: 10px; |
| } |
| |
| .rank-item:last-child { |
| border-bottom: none; |
| } |
| |
| .rank { |
| font-size: 0.95em; |
| color: #e74c3c; |
| font-weight: 700; |
| margin-right: 12px; |
| width: 25px; |
| text-align: center; |
| flex-shrink: 0; |
| } |
| |
| .site-link { |
| text-decoration: none; |
| color: var(--primary-color); |
| flex-grow: 1; |
| transition: all 0.3s ease; |
| display: flex; |
| align-items: center; |
| font-weight: 600; |
| } |
| |
| .site-link:hover { |
| color: var(--secondary-color); |
| text-decoration: none; |
| transform: translateX(5px); |
| } |
| |
| .new-badge { |
| background: linear-gradient(135deg, var(--secondary-color) 0%, #00B4DB 100%); |
| color: #fff; |
| padding: 4px 8px; |
| border-radius: 6px; |
| font-size: 0.8em; |
| margin-left: 8px; |
| font-weight: 700; |
| white-space: nowrap; |
| box-shadow: 0 2px 8px rgba(0, 206, 255, 0.3); |
| } |
| |
| |
| .admin-panel { |
| position: fixed; |
| top: 20px; |
| right: 20px; |
| z-index: 1000; |
| } |
| |
| .admin-btn { |
| background: linear-gradient(135deg, rgba(108, 92, 231, 0.3) 0%, rgba(0, 206, 255, 0.3) 100%); |
| color: white; |
| border: none; |
| padding: 10px 20px; |
| border-radius: 12px; |
| cursor: pointer; |
| font-weight: 600; |
| transition: all 0.3s ease; |
| backdrop-filter: blur(10px); |
| border: 1px solid var(--glass-border); |
| box-shadow: 0 8px 32px rgba(108, 92, 231, 0.3); |
| position: relative; |
| overflow: hidden; |
| letter-spacing: 0.5px; |
| } |
| |
| .admin-btn:hover { |
| background: linear-gradient(135deg, rgba(108, 92, 231, 0.5) 0%, rgba(0, 206, 255, 0.5) 100%); |
| box-shadow: 0 12px 40px rgba(108, 92, 231, 0.4); |
| transform: translateY(-2px); |
| } |
| |
| .admin-btn::before { |
| content: ''; |
| position: absolute; |
| top: 0; |
| left: -100%; |
| width: 100%; |
| height: 100%; |
| background: linear-gradient( |
| 90deg, |
| transparent, |
| rgba(255, 255, 255, 0.6), |
| transparent |
| ); |
| transition: 0.7s; |
| animation: shine 3s infinite; |
| } |
| |
| @keyframes shine { |
| 0% { |
| left: -100%; |
| } |
| 20% { |
| left: 100%; |
| } |
| 100% { |
| left: 100%; |
| } |
| } |
| |
| .admin-btn:hover::before { |
| animation: none; |
| left: 100%; |
| } |
| |
| .login-form { |
| display: none; |
| position: absolute; |
| right: 0; |
| top: 45px; |
| background: var(--glass-effect); |
| padding: 20px; |
| border-radius: 16px; |
| box-shadow: 0 8px 32px rgba(0,0,0,0.1); |
| width: 220px; |
| backdrop-filter: blur(15px); |
| border: 1px solid var(--glass-border); |
| animation: fadeIn 0.3s ease; |
| } |
| |
| @keyframes fadeIn { |
| from { opacity: 0; transform: translateY(-10px); } |
| to { opacity: 1; transform: translateY(0); } |
| } |
| |
| .admin-pw { |
| width: 100%; |
| padding: 8px; |
| margin-bottom: 10px; |
| border: 1px solid #ddd; |
| border-radius: 4px; |
| } |
| |
| .login-btn { |
| width: 100%; |
| padding: 10px; |
| background: linear-gradient(135deg, rgba(0, 206, 255, 0.5) 0%, rgba(108, 92, 231, 0.5) 100%); |
| color: white; |
| border: none; |
| border-radius: 12px; |
| cursor: pointer; |
| transition: all 0.3s ease; |
| backdrop-filter: blur(10px); |
| border: 1px solid var(--glass-border); |
| box-shadow: 0 4px 20px rgba(108, 92, 231, 0.3); |
| position: relative; |
| overflow: hidden; |
| font-weight: 600; |
| letter-spacing: 0.5px; |
| } |
| |
| .login-btn:hover { |
| background: linear-gradient(135deg, rgba(0, 206, 255, 0.7) 0%, rgba(108, 92, 231, 0.7) 100%); |
| box-shadow: 0 8px 25px rgba(108, 92, 231, 0.5); |
| transform: translateY(-2px); |
| } |
| |
| .login-btn::before { |
| content: ''; |
| position: absolute; |
| top: 0; |
| left: -100%; |
| width: 100%; |
| height: 100%; |
| background: linear-gradient( |
| 90deg, |
| transparent, |
| rgba(255, 255, 255, 0.6), |
| transparent |
| ); |
| transition: 0.7s; |
| animation: shine 3s infinite 0.5s; |
| } |
| |
| .login-btn:hover::before { |
| animation: none; |
| left: 100%; |
| } |
| |
| |
| .admin-status { |
| display: none; |
| position: fixed; |
| top: 20px; |
| left: 20px; |
| background-color: var(--secondary-color); |
| color: white; |
| padding: 8px 15px; |
| border-radius: 5px; |
| font-weight: 500; |
| z-index: 1000; |
| } |
| |
| .admin-controls { |
| display: none; |
| background-color: var(--card-bg); |
| padding: 20px; |
| border-radius: 12px; |
| box-shadow: 0 4px 15px var(--shadow-light); |
| margin-bottom: 30px; |
| max-width: 1200px; |
| margin-left: auto; |
| margin-right: auto; |
| } |
| |
| .admin-controls h2 { |
| color: var(--primary-color); |
| margin-top: 0; |
| margin-bottom: 20px; |
| } |
| |
| .admin-form { |
| display: grid; |
| grid-template-columns: 1fr 2fr 1fr; |
| gap: 15px; |
| margin-bottom: 15px; |
| } |
| |
| .admin-form select, |
| .admin-form input { |
| padding: 10px; |
| border: 1px solid var(--border-color); |
| border-radius: 4px; |
| } |
| |
| .admin-actions { |
| display: flex; |
| gap: 10px; |
| } |
| |
| .admin-actions button { |
| padding: 10px 15px; |
| border: none; |
| border-radius: 4px; |
| cursor: pointer; |
| font-weight: 500; |
| } |
| |
| .add-btn { |
| background-color: var(--secondary-color); |
| color: white; |
| } |
| |
| .update-btn { |
| background-color: var(--primary-color); |
| color: white; |
| } |
| |
| .delete-btn { |
| background-color: #e74c3c; |
| color: white; |
| } |
| |
| |
| .emoji { |
| margin-right: 5px; |
| font-size: 1.1em; |
| } |
| </style> |
| </head> |
| <body> |
| <div class="admin-status">κ΄λ¦¬μ λͺ¨λ</div> |
| <div class="admin-panel"> |
| <button class="admin-btn">κ΄λ¦¬μ</button> |
| <div class="login-form"> |
| <input type="password" placeholder="λΉλ°λ²νΈ μ
λ ₯" class="admin-pw"> |
| <button class="login-btn">λ‘κ·ΈμΈ</button> |
| </div> |
| </div> |
| <div class="admin-controls"> |
| <h2>π λ§ν¬ κ΄λ¦¬</h2> |
| <div class="admin-form"> |
| <select id="category-select"> |
| <option value="π μ±μΈ Top10">π μ±μΈ Top10</option> |
| <option value="π μ ν₯ Top10">π μ ν₯ Top10</option> |
| <option value="π μΉν° Top10">π μΉν° Top10</option> |
| <option value="πΊ λλΌλ§ Top10">πΊ λλΌλ§ Top10</option> |
| </select> |
| <input type="text" id="link-name" placeholder="μ¬μ΄νΈ μ΄λ¦"> |
| <input type="text" id="link-url" placeholder="URL"> |
| </div> |
| <div class="admin-form"> |
| <input type="text" id="link-emoji" placeholder="μ΄λͺ¨ν°μ½"> |
| <input type="text" id="link-rank" placeholder="μμ (1-10)"> |
| <div class="admin-actions"> |
| <button class="add-btn" id="add-link">μΆκ°</button> |
| <button class="update-btn" id="update-link">μμ </button> |
| <button class="delete-btn" id="delete-link">μμ </button> |
| </div> |
| </div> |
| </div> |
| <h1>π μν°λ―Όμ μν νμ λΆλ§ν¬ π</h1> |
| <p class="description"> |
| νκ΅ μ¬ν μ μ°©μ νμν μ μ©ν μ 보μ μ¦κΈΈ 거리λ₯Ό νλμ! <br> |
| μ¬λ¬λΆμ μμ μ μΈ νκ΅ μνμ μμν©λλ€. π |
| </p> |
|
|
| <div class="container"> |
| <div class="top-list"> |
| <h2><span class="icon">π</span> μ±μΈ Top10</h2> |
| <div class="rank-item"><span class="rank">1.</span> <a href="#" class="site-link"><span class="emoji">π</span> λ λκ±Έ</a></div> |
| <div class="rank-item"><span class="rank">2.</span> <a href="#" class="site-link"><span class="emoji">π₯³</span> νΌλΉ¨νν°</a></div> |
| <div class="rank-item"><span class="rank">3.</span> <a href="#" class="site-link"><span class="emoji">π€</span> λ€ν¬κ±Έ</a></div> |
| <div class="rank-item"><span class="rank">4.</span> <a href="#" class="site-link"><span class="emoji">π¬</span> μΌλλͺ° <span class="new-badge">New</span></a></div> |
| <div class="rank-item"><span class="rank">5.</span> <a href="#" class="site-link"><span class="emoji">βοΈ</span> μΌλν¬μ΄</a></div> |
| <div class="rank-item"><span class="rank">6.</span> <a href="#" class="site-link"><span class="emoji">π</span> 19μ</a></div> |
| <div class="rank-item"><span class="rank">7.</span> <a href="#" class="site-link"><span class="emoji">π</span> μ.νλ¦μ€</a></div> |
| <div class="rank-item"><span class="rank">8.</span> <a href="#" class="site-link"><span class="emoji">π°π·</span> μΌλμ½λ¦¬μ</a></div> |
| <div class="rank-item"><span class="rank">9.</span> <a href="#" class="site-link"><span class="emoji">π</span> μ‘°κ°λͺ¨μ</a></div> |
| <div class="rank-item"><span class="rank">10.</span> <a href="#" class="site-link"><span class="emoji">π</span> λΈνΈ</a></div> |
| </div> |
|
|
| <div class="top-list"> |
| <h2><span class="icon">π</span> μ ν₯ Top10</h2> |
| <div class="rank-item"><span class="rank">1.</span> <a href="#" class="site-link"><span class="emoji">πΊοΈ</span> μ€νΌκ°μ΄λ</a></div> |
| <div class="rank-item"><span class="rank">2.</span> <a href="#" class="site-link"><span class="emoji">β</span> μ€νΌμ€ν</a></div> |
| <div class="rank-item"><span class="rank">3.</span> <a href="#" class="site-link"><span class="emoji">ποΈ</span> μ€νΌλ·°</a></div> |
| <div class="rank-item"><span class="rank">4.</span> <a href="#" class="site-link"><span class="emoji">π</span> λ°€λμ</a></div> |
| <div class="rank-item"><span class="rank">5.</span> <a href="#" class="site-link"><span class="emoji">π€΄</span> μΌμμ</a></div> |
| <div class="rank-item"><span class="rank">6.</span> <a href="#" class="site-link"><span class="emoji">πΊ</span> λ°€μλ―Όμ‘±</a></div> |
| <div class="rank-item"><span class="rank">7.</span> <a href="#" class="site-link"><span class="emoji">π€</span> μ€νΌννΈ</a></div> |
| <div class="rank-item"><span class="rank">8.</span> <a href="#" class="site-link"><span class="emoji">πββοΈ</span> μ¦κ±°μ΄λ¬λ¦¬κΈ°</a></div> |
| <div class="rank-item"><span class="rank">9.</span> <a href="#" class="site-link"><span class="emoji">β¨</span> μ ν₯μν격</a></div> |
| <div class="rank-item"><span class="rank">10.</span> <a href="#" class="site-link"><span class="emoji">π</span> ν₯μ²λ§μ²</a></div> |
| </div> |
|
|
| <div class="top-list"> |
| <h2><span class="icon">π</span> μΉν° Top10</h2> |
| <div class="rank-item"><span class="rank">1.</span> <a href="#" class="site-link"><span class="emoji">πΎ</span> ν°μ½</a></div> |
| <div class="rank-item"><span class="rank">2.</span> <a href="#" class="site-link"><span class="emoji">π</span> λΉ λ₯ΈμΉν°</a></div> |
| <div class="rank-item"><span class="rank">3.</span> <a href="#" class="site-link"><span class="emoji">π</span> ν°μ½2</a></div> |
| <div class="rank-item"><span class="rank">4.</span> <a href="#" class="site-link"><span class="emoji">π°</span> λ΄ν λΌ</a></div> |
| <div class="rank-item"><span class="rank">5.</span> <a href="#" class="site-link"><span class="emoji">π¨</span> μν°</a></div> |
| <div class="rank-item"><span class="rank">6.</span> <a href="#" class="site-link"><span class="emoji">π</span> μΌν°</a></div> |
| <div class="rank-item"><span class="rank">7.</span> <a href="#" class="site-link"><span class="emoji">π¨βπ©βπ§βπ¦</span> μ΄λ₯ΈμΉν°</a></div> |
| <div class="rank-item"><span class="rank">8.</span> <a href="#" class="site-link"><span class="emoji">πΊ</span> λλλ·μ»΄</a></div> |
| <div class="rank-item"><span class="rank">9.</span> <a href="#" class="site-link"><span class="emoji">π</span> ν°λ―Ήμ€</a></div> |
| <div class="rank-item"><span class="rank">10.</span> <a href="#" class="site-link"><span class="emoji">π₯</span> 짬ν°</a></div> |
| </div> |
|
|
| <div class="top-list"> |
| <h2><span class="icon">πΊ</span> λλΌλ§ Top10</h2> |
| <div class="rank-item"><span class="rank">1.</span> <a href="#" class="site-link"><span class="emoji">πΏ</span> λλν°λΉ</a></div> |
| <div class="rank-item"><span class="rank">2.</span> <a href="#" class="site-link"><span class="emoji">π₯</span> ν°λΉλͺ¬</a></div> |
| <div class="rank-item"><span class="rank">3.</span> <a href="#" class="site-link"><span class="emoji">π‘</span> ν°λΉμν€</a></div> |
| <div class="rank-item"><span class="rank">4.</span> <a href="#" class="site-link"><span class="emoji">πΊ</span> ν°λΉ</a></div> |
| <div class="rank-item"><span class="rank">5.</span> <a href="#" class="site-link"><span class="emoji">β½</span> μΏ ν‘νλ μ΄</a></div> |
| <div class="rank-item"><span class="rank">6.</span> <a href="#" class="site-link"><span class="emoji">π¬</span> 무λΉνΉ</a></div> |
| <div class="rank-item"><span class="rank">7.</span> <a href="#" class="site-link"><span class="emoji">π΄</span> λ·νλ¦μ€</a></div> |
| <div class="rank-item"><span class="rank">8.</span> <a href="#" class="site-link"><span class="emoji">π</span> μ¨μ΄λΈ</a></div> |
| <div class="rank-item"><span class="rank">9.</span> <a href="#" class="site-link"><span class="emoji">π</span> μμ± </a></div> |
| <div class="rank-item"><span class="rank">10.</span> <a href="#" class="site-link"><span class="emoji">π</span> λμ¦λ+</a></div> |
| </div> |
| </div> |
| <script> |
| document.addEventListener('DOMContentLoaded', function() { |
| const adminBtn = document.querySelector('.admin-btn'); |
| const loginForm = document.querySelector('.login-form'); |
| const loginBtn = document.querySelector('.login-btn'); |
| const adminPw = document.querySelector('.admin-pw'); |
| |
| |
| adminBtn.addEventListener('click', function() { |
| loginForm.style.display = loginForm.style.display === 'block' ? 'none' : 'block'; |
| }); |
| |
| |
| loginBtn.addEventListener('click', function() { |
| if(adminPw.value === 'admin123') { |
| alert('λ‘κ·ΈμΈ μ±κ³΅! κ΄λ¦¬μ κΈ°λ₯μ μ¬μ©ν μ μμ΅λλ€.'); |
| document.querySelector('.admin-status').style.display = 'block'; |
| document.querySelector('.admin-controls').style.display = 'block'; |
| loginForm.style.display = 'none'; |
| } else { |
| alert('λΉλ°λ²νΈκ° νλ Έμ΅λλ€.'); |
| } |
| adminPw.value = ''; |
| }); |
| |
| |
| const addLinkBtn = document.getElementById('add-link'); |
| const updateLinkBtn = document.getElementById('update-link'); |
| const deleteLinkBtn = document.getElementById('delete-link'); |
| |
| addLinkBtn.addEventListener('click', function() { |
| const category = document.getElementById('category-select').value; |
| const name = document.getElementById('link-name').value; |
| const url = document.getElementById('link-url').value; |
| const emoji = document.getElementById('link-emoji').value; |
| const rank = document.getElementById('link-rank').value; |
| |
| if(!name || !url || !rank) { |
| alert('νμ νλͺ©μ λͺ¨λ μ
λ ₯ν΄μ£ΌμΈμ.'); |
| return; |
| } |
| |
| |
| alert(`[${category}] ${name}(${url}) λ§ν¬κ° ${rank}μλ‘ μΆκ°λμμ΅λλ€.`); |
| |
| |
| document.getElementById('link-name').value = ''; |
| document.getElementById('link-url').value = ''; |
| document.getElementById('link-emoji').value = ''; |
| document.getElementById('link-rank').value = ''; |
| }); |
| |
| updateLinkBtn.addEventListener('click', function() { |
| const category = document.getElementById('category-select').value; |
| const name = document.getElementById('link-name').value; |
| const url = document.getElementById('link-url').value; |
| const emoji = document.getElementById('link-emoji').value; |
| const rank = document.getElementById('link-rank').value; |
| |
| if(!name || !url || !rank) { |
| alert('νμ νλͺ©μ λͺ¨λ μ
λ ₯ν΄μ£ΌμΈμ.'); |
| return; |
| } |
| |
| |
| alert(`[${category}] ${name}(${url}) λ§ν¬κ° ${rank}μλ‘ μμ λμμ΅λλ€.`); |
| }); |
| |
| deleteLinkBtn.addEventListener('click', function() { |
| const category = document.getElementById('category-select').value; |
| const rank = document.getElementById('link-rank').value; |
| |
| if(!rank) { |
| alert('μμ ν μμλ₯Ό μ
λ ₯ν΄μ£ΌμΈμ.'); |
| return; |
| } |
| |
| if(confirm(`[${category}] ${rank}μ λ§ν¬λ₯Ό μ λ§ μμ νμκ² μ΅λκΉ?`)) { |
| |
| alert(`${rank}μ λ§ν¬κ° μμ λμμ΅λλ€.`); |
| } |
| }); |
| }); |
| </script> |
| <p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 𧬠<a href="https://enzostvs-deepsite.hf.space?remix=nkjoy/book" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body> |
| </html> |