UNPKG

hexo-theme-halunhaku

Version:

A modern, responsive Hexo theme with enhanced code blocks, perfect cover images, and Chinese text optimization. Production-ready with mobile-first design.

154 lines (137 loc) 4.97 kB
/* 代码块和复制按钮的专用样式 */ /* 隐藏所有其他复制按钮 */ button[class*="copy"]:not(.halunhaku-copy-btn), button[title*="复制"]:not(.halunhaku-copy-btn), button[title*="copy"]:not(.halunhaku-copy-btn), button[title*="Copy"]:not(.halunhaku-copy-btn), .copy-btn:not(.halunhaku-copy-btn), .copy-button:not(.halunhaku-copy-btn), .hljs-copy:not(.halunhaku-copy-btn), .code-copy:not(.halunhaku-copy-btn), [data-clipboard-text]:not(.halunhaku-copy-btn), .clipboard-btn:not(.halunhaku-copy-btn) { display: none !important; visibility: hidden !important; opacity: 0 !important; pointer-events: none !important; } /* 主题专用复制按钮样式 */ .halunhaku-copy-btn { position: absolute !important; top: 8px !important; right: 12px !important; background: linear-gradient(135deg, rgba(255, 255, 255, 0.9) 0%, rgba(255, 255, 255, 0.8) 100%) !important; border: 1px solid rgba(12, 127, 242, 0.15) !important; border-radius: 6px !important; width: 32px !important; height: 32px !important; cursor: pointer !important; opacity: 0.7 !important; transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1) !important; z-index: 20 !important; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08) !important; backdrop-filter: blur(8px) !important; -webkit-backdrop-filter: blur(8px) !important; display: flex !important; align-items: center !important; justify-content: center !important; font-size: 14px !important; user-select: none !important; -webkit-user-select: none !important; -moz-user-select: none !important; transform: translateY(-2px) scale(0.95) !important; visibility: visible !important; pointer-events: auto !important; } .halunhaku-copy-btn:hover { opacity: 1 !important; background: linear-gradient(135deg, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0.95) 100%) !important; border-color: var(--primary-color) !important; transform: translateY(0) scale(1.02) !important; box-shadow: 0 4px 12px rgba(12, 127, 242, 0.15) !important; } .halunhaku-copy-btn:active { transform: translateY(-1px) scale(1.02) !important; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12) !important; } .halunhaku-copy-btn.success { background: linear-gradient(135deg, #10b981 0%, #059669 100%) !important; border-color: #10b981 !important; color: white !important; transform: translateY(-2px) scale(1.05) !important; } .halunhaku-copy-btn.error { background: linear-gradient(135deg, #ef4444 0%, #dc2626 100%) !important; border-color: #ef4444 !important; color: white !important; transform: translateY(-2px) scale(1.05) !important; } /* 桌面端悬停显示复制按钮 */ .prose pre:hover .halunhaku-copy-btn, .prose-lg pre:hover .halunhaku-copy-btn { opacity: 0.8 !important; transform: translateY(0) scale(1) !important; } .prose pre:hover .halunhaku-copy-btn:hover, .prose-lg pre:hover .halunhaku-copy-btn:hover { opacity: 1 !important; transform: translateY(-2px) scale(1.05) !important; } /* 移动端和平板始终显示复制按钮 */ @media (max-width: 1024px) { .prose pre .halunhaku-copy-btn, .prose-lg pre .halunhaku-copy-btn { opacity: 0.8 !important; transform: translateY(0) scale(1) !important; } } @media (max-width: 768px) { .halunhaku-copy-btn { top: 6px !important; right: 8px !important; width: 28px !important; height: 28px !important; font-size: 12px !important; border-radius: 4px !important; } } @media (max-width: 480px) { .halunhaku-copy-btn { top: 4px !important; right: 6px !important; width: 24px !important; height: 24px !important; font-size: 10px !important; border-radius: 3px !important; } } /* 深色模式调整 */ @media (prefers-color-scheme: dark) { .halunhaku-copy-btn { background: linear-gradient(135deg, rgba(0, 0, 0, 0.8) 0%, rgba(0, 0, 0, 0.7) 100%) !important; border-color: rgba(12, 127, 242, 0.3) !important; color: rgba(255, 255, 255, 0.9) !important; } .halunhaku-copy-btn:hover { background: linear-gradient(135deg, rgba(0, 0, 0, 0.9) 0%, rgba(0, 0, 0, 0.8) 100%) !important; border-color: var(--primary-color) !important; box-shadow: 0 8px 24px rgba(12, 127, 242, 0.3) !important; } } /* 防止文本选择 */ .halunhaku-copy-btn::selection { background: transparent !important; } .halunhaku-copy-btn::-moz-selection { background: transparent !important; } /* 动画效果 */ @keyframes shake { 0%, 100% { transform: translateX(0) scale(1.1) !important; } 10%, 30%, 50%, 70%, 90% { transform: translateX(-2px) scale(1.1) !important; } 20%, 40%, 60%, 80% { transform: translateX(2px) scale(1.1) !important; } } @keyframes rotate { from { transform: scale(1.1) rotate(0deg) !important; } to { transform: scale(1.1) rotate(360deg) !important; } }