Spaces:
Running
Running
| (function () { | |
| "use strict"; | |
| // Check if badge already exists | |
| if (document.getElementById("deepsite-badge-wrapper")) { | |
| return; | |
| } | |
| // Don't show badge on huggingface.co/deepsite | |
| const hostname = window.location.hostname; | |
| const pathname = window.location.pathname; | |
| if (hostname === "deepsite.hf.co" && pathname.startsWith("/")) { | |
| return; | |
| } | |
| // Inject keyframes for gradient rotation | |
| const style = document.createElement("style"); | |
| style.textContent = ` | |
| @keyframes deepsite-spin { | |
| 0% { | |
| transform: translate(-50%, -50%) rotate(0deg); | |
| } | |
| 100% { | |
| transform: translate(-50%, -50%) rotate(360deg); | |
| } | |
| } | |
| #deepsite-badge-wrapper i { | |
| pointer-events: none; | |
| position: absolute; | |
| top: 0; | |
| right: 0; | |
| bottom: 0; | |
| left: 0; | |
| z-index: -1; | |
| padding: 1.5px; | |
| transition-property: all; | |
| transition-timing-function: cubic-bezier(.4, 0, .2, 1); | |
| transition-duration: .2s; | |
| -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0); | |
| mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0); | |
| -webkit-mask-composite: xor; | |
| mask-composite: exclude; | |
| border-radius: inherit; | |
| } | |
| #deepsite-badge-wrapper i::before { | |
| content: ""; | |
| position: absolute; | |
| left: 50%; | |
| top: 50%; | |
| display: block; | |
| border-radius: 9999px; | |
| opacity: 0; | |
| background: conic-gradient(from 0deg at 50% 50%, #ec4899, #fbbf24, #3b82f6, #ec4899); | |
| width: calc(100% * 2); | |
| padding-bottom: calc(100% * 2); | |
| transform: translate(-50%, -50%); | |
| z-index: -1; | |
| will-change: transform; | |
| } | |
| #deepsite-badge-wrapper:hover i::before { | |
| opacity: 1; | |
| animation: deepsite-spin 3s linear infinite; | |
| } | |
| `; | |
| document.head.appendChild(style); | |
| // Create badge wrapper (like the button element) | |
| const badgeWrapper = document.createElement("div"); | |
| badgeWrapper.id = "deepsite-badge-wrapper"; | |
| // Create inner badge (like the span element) | |
| const badgeInner = document.createElement("span"); | |
| badgeInner.id = "deepsite-badge-inner"; | |
| // Create mask element (the i element) | |
| const borderMask = document.createElement("i"); | |
| // Create link | |
| const link = document.createElement("a"); | |
| link.href = "https://deepsite.hf.co"; | |
| link.target = "_blank"; | |
| link.rel = "noopener noreferrer"; | |
| const icon = document.createElement("img"); | |
| icon.src = "https://deepsite.hf.co/logo.svg"; | |
| icon.alt = "DeepSite"; | |
| icon.style.marginRight = "6px"; | |
| icon.style.width = "16px"; | |
| icon.style.height = "16px"; | |
| icon.style.filter = "brightness(0) invert(1)"; | |
| const text = document.createTextNode("Made with DeepSite"); | |
| Object.assign(badgeWrapper.style, { | |
| position: "fixed", | |
| bottom: "20px", | |
| left: "20px", | |
| zIndex: "999999", | |
| color: "#ffffff", | |
| borderRadius: "9999px", | |
| background: "rgba(0, 0, 0, 0.4)", | |
| fontSize: "12px", | |
| fontWeight: "500", | |
| display: "inline-block", | |
| cursor: "pointer", | |
| padding: "1.5px", | |
| overflow: "hidden", | |
| backdropFilter: "blur(16px) saturate(180%)", | |
| WebkitBackdropFilter: "blur(16px) saturate(180%)", | |
| }); | |
| // Apply styles to inner badge (like span element) | |
| Object.assign(badgeInner.style, { | |
| background: "rgba(0, 0, 0, 0.6)", | |
| padding: "8px 16px", | |
| display: "flex", | |
| alignItems: "center", | |
| borderRadius: "9999px", | |
| boxShadow: "0 8px 32px 0 rgba(0, 0, 0, 0.5)", | |
| transition: "all 0.3s ease", | |
| border: "1px solid rgba(255, 255, 255, 0.1)", | |
| }); | |
| // Apply styles to link | |
| Object.assign(link.style, { | |
| color: "#ffffff", | |
| textDecoration: "none", | |
| fontWeight: "500", | |
| display: "flex", | |
| alignItems: "center", | |
| fontFamily: | |
| '-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif', | |
| textShadow: "0 2px 4px rgba(0, 0, 0, 0.3)", | |
| }); | |
| // Add hover effect | |
| badgeWrapper.addEventListener("mouseenter", function () { | |
| badgeInner.style.background = "rgba(0, 0, 0, 0.75)"; | |
| badgeInner.style.boxShadow = "0 8px 32px 0 rgba(0, 0, 0, 0.7)"; | |
| }); | |
| badgeWrapper.addEventListener("mouseleave", function () { | |
| badgeInner.style.background = "rgba(0, 0, 0, 0.6)"; | |
| badgeInner.style.boxShadow = "0 8px 32px 0 rgba(0, 0, 0, 0.5)"; | |
| }); | |
| // Append elements | |
| link.appendChild(icon); | |
| link.appendChild(text); | |
| badgeInner.appendChild(link); | |
| badgeWrapper.appendChild(badgeInner); | |
| badgeWrapper.appendChild(borderMask); | |
| // Wait for DOM to be ready | |
| function init() { | |
| if (document.body) { | |
| document.body.appendChild(badgeWrapper); | |
| } else { | |
| document.addEventListener("DOMContentLoaded", function () { | |
| document.body.appendChild(badgeWrapper); | |
| }); | |
| } | |
| } | |
| // Initialize | |
| if (document.readyState === "loading") { | |
| document.addEventListener("DOMContentLoaded", init); | |
| } else { | |
| init(); | |
| } | |
| })(); | |