UNPKG

rp-markdown-docs

Version:

A modern, beautiful documentation generator that converts markdown files into interactive HTML documentation sites

450 lines (378 loc) 8.13 kB
/* Modern Documentation Styles */ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap'); :root { --primary-50: #eff6ff; --primary-100: #dbeafe; --primary-200: #bfdbfe; --primary-300: #93c5fd; --primary-400: #60a5fa; --primary-500: #3b82f6; --primary-600: #2563eb; --primary-700: #1d4ed8; --primary-800: #1e40af; --primary-900: #1e3a8a; --accent-50: #ecfdf5; --accent-100: #d1fae5; --accent-200: #a7f3d0; --accent-300: #6ee7b7; --accent-400: #34d399; --accent-500: #10b981; --accent-600: #059669; --accent-700: #047857; --accent-800: #065f46; --accent-900: #064e3b; --neutral-50: #fafafa; --neutral-100: #f5f5f5; --neutral-200: #e5e5e5; --neutral-300: #d4d4d4; --neutral-400: #a3a3a3; --neutral-500: #737373; --neutral-600: #525252; --neutral-700: #404040; --neutral-800: #262626; --neutral-900: #171717; } * { box-sizing: border-box; } body { margin: 0; font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; line-height: 1.6; background: var(--neutral-50); color: var(--neutral-900); transition: background-color 0.3s ease, color 0.3s ease; } .dark { background: var(--neutral-900); color: var(--neutral-50); } /* Layout */ .docs-container { display: flex; height: 100vh; overflow: hidden; } .docs-header { position: sticky; top: 0; z-index: 50; background: rgba(255, 255, 255, 0.8); backdrop-filter: blur(12px); border-bottom: 1px solid var(--neutral-200); padding: 1rem 2rem; display: flex; align-items: center; justify-content: space-between; } .dark .docs-header { background: rgba(23, 23, 23, 0.8); border-bottom-color: var(--neutral-800); } .docs-sidebar { width: 320px; background: white; border-right: 1px solid var(--neutral-200); overflow-y: auto; flex-shrink: 0; } .dark .docs-sidebar { background: var(--neutral-900); border-right-color: var(--neutral-800); } .docs-content { flex: 1; overflow-y: auto; padding: 2rem; } /* Navigation */ .nav-item { display: block; padding: 0.75rem 1rem; color: var(--neutral-700); text-decoration: none; border-radius: 0.5rem; margin: 0.25rem; transition: all 0.2s ease; } .dark .nav-item { color: var(--neutral-300); } .nav-item:hover { background: var(--neutral-100); color: var(--neutral-900); } .dark .nav-item:hover { background: var(--neutral-800); color: var(--neutral-100); } .nav-item.active { background: var(--primary-50); color: var(--primary-700); border-left: 3px solid var(--primary-500); } .dark .nav-item.active { background: rgba(59, 130, 246, 0.1); color: var(--primary-300); } /* Search */ .search-input { width: 100%; padding: 0.75rem 1rem; border: 1px solid var(--neutral-300); border-radius: 0.5rem; background: white; color: var(--neutral-900); font-size: 0.875rem; } .dark .search-input { background: var(--neutral-800); border-color: var(--neutral-600); color: var(--neutral-100); } .search-input:focus { outline: none; border-color: var(--primary-500); box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1); } /* Content */ .prose { max-width: none; color: var(--neutral-700); } .dark .prose { color: var(--neutral-300); } .prose h1 { font-size: 2.25rem; font-weight: 700; color: var(--neutral-900); margin-bottom: 1.5rem; border-bottom: 1px solid var(--neutral-200); padding-bottom: 1rem; } .dark .prose h1 { color: var(--neutral-100); border-bottom-color: var(--neutral-800); } .prose h2 { font-size: 1.875rem; font-weight: 600; color: var(--neutral-800); margin-top: 2rem; margin-bottom: 1rem; } .dark .prose h2 { color: var(--neutral-200); } .prose h3 { font-size: 1.5rem; font-weight: 600; color: var(--neutral-800); margin-top: 1.5rem; margin-bottom: 0.75rem; } .dark .prose h3 { color: var(--neutral-200); } .prose p { margin-bottom: 1rem; line-height: 1.7; } .prose a { color: var(--primary-600); text-decoration: underline; text-decoration-color: var(--primary-300); text-underline-offset: 2px; } .dark .prose a { color: var(--primary-400); text-decoration-color: var(--primary-600); } .prose a:hover { color: var(--primary-700); text-decoration-color: var(--primary-500); } .dark .prose a:hover { color: var(--primary-300); text-decoration-color: var(--primary-400); } /* Code */ .prose code { background: var(--neutral-100); color: var(--neutral-800); padding: 0.25rem 0.5rem; border-radius: 0.25rem; font-size: 0.875rem; font-family: 'SF Mono', Monaco, 'Cascadia Code', 'Roboto Mono', Consolas, 'Courier New', monospace; } .dark .prose code { background: var(--neutral-800); color: var(--neutral-200); } .prose pre { background: var(--neutral-900); color: var(--neutral-100); padding: 1.5rem; border-radius: 0.75rem; overflow-x: auto; margin: 1.5rem 0; border: 1px solid var(--neutral-800); } .prose pre code { background: none; color: inherit; padding: 0; border-radius: 0; } /* Tables */ .prose table { width: 100%; border-collapse: collapse; margin: 1.5rem 0; border: 1px solid var(--neutral-200); border-radius: 0.5rem; overflow: hidden; } .dark .prose table { border-color: var(--neutral-700); } .prose th { background: var(--neutral-50); padding: 0.75rem 1rem; text-align: left; font-weight: 600; color: var(--neutral-900); border-bottom: 1px solid var(--neutral-200); } .dark .prose th { background: var(--neutral-800); color: var(--neutral-100); border-bottom-color: var(--neutral-700); } .prose td { padding: 0.75rem 1rem; border-bottom: 1px solid var(--neutral-200); } .dark .prose td { border-bottom-color: var(--neutral-700); } /* Blockquotes */ .prose blockquote { border-left: 4px solid var(--primary-500); background: var(--primary-50); padding: 1rem 1.5rem; margin: 1.5rem 0; border-radius: 0 0.5rem 0.5rem 0; } .dark .prose blockquote { background: rgba(59, 130, 246, 0.1); border-left-color: var(--primary-400); } .prose blockquote p { margin: 0; color: var(--primary-800); } .dark .prose blockquote p { color: var(--primary-200); } /* Buttons */ .btn { display: inline-flex; align-items: center; padding: 0.5rem 1rem; border-radius: 0.5rem; font-weight: 500; text-decoration: none; transition: all 0.2s ease; border: none; cursor: pointer; font-size: 0.875rem; } .btn-primary { background: var(--primary-600); color: white; } .btn-primary:hover { background: var(--primary-700); transform: translateY(-1px); box-shadow: 0 4px 12px rgba(59, 130, 246, 0.3); } .btn-ghost { background: transparent; color: var(--neutral-700); } .dark .btn-ghost { color: var(--neutral-300); } .btn-ghost:hover { background: var(--neutral-100); } .dark .btn-ghost:hover { background: var(--neutral-800); } /* Responsive */ @media (max-width: 1024px) { .docs-sidebar { position: fixed; left: -320px; top: 0; height: 100vh; z-index: 40; transition: left 0.3s ease; } .docs-sidebar.open { left: 0; } .docs-content { padding: 1rem; } } @media (max-width: 640px) { .docs-header { padding: 1rem; } .docs-content { padding: 0.5rem; } .prose h1 { font-size: 1.875rem; } .prose h2 { font-size: 1.5rem; } .prose h3 { font-size: 1.25rem; } } /* Animations */ @keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } } .fade-in { animation: fadeIn 0.3s ease-out; } /* Scrollbar */ ::-webkit-scrollbar { width: 6px; } ::-webkit-scrollbar-track { background: var(--neutral-100); } .dark ::-webkit-scrollbar-track { background: var(--neutral-800); } ::-webkit-scrollbar-thumb { background: var(--neutral-300); border-radius: 3px; } .dark ::-webkit-scrollbar-thumb { background: var(--neutral-600); } ::-webkit-scrollbar-thumb:hover { background: var(--neutral-400); } .dark ::-webkit-scrollbar-thumb:hover { background: var(--neutral-500); }