diff --git a/docs/source/_static/cryptnox-logo.png b/docs/source/_static/cryptnox-logo.png new file mode 100644 index 0000000..b5d3148 Binary files /dev/null and b/docs/source/_static/cryptnox-logo.png differ diff --git a/docs/source/_static/custom.css b/docs/source/_static/custom.css index 2e25140..64799eb 100644 --- a/docs/source/_static/custom.css +++ b/docs/source/_static/custom.css @@ -1,337 +1,326 @@ -/* ── Reset ───────────────────────────────────────────────────────────── */ -*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; } - -:root { - --bg: #111827; - --bg-card: #1E2133; - --bg-card-hover: #263046; - --text: #F8FAFC; - --text-muted: #94A3B8; - --accent: #06B6D4; - --accent-hover: #0891B2; - --border: #374151; - --indigo: #6366F1; -} - -/* ── Base ────────────────────────────────────────────────────────────── */ -html, body { - background: var(--bg); - color: var(--text); - font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, sans-serif; - min-height: 100vh; - display: flex; - flex-direction: column; -} - -/* ── Sphinx basic theme layout overrides ─────────────────────────────── */ -div.document { - max-width: 1100px; - margin: 0 auto; - padding: 2.5rem 2rem 4rem; - width: 100%; - flex: 1; -} - -div.documentwrapper { - width: 100%; - float: none; -} - -div.bodywrapper { - margin: 0; -} - -div.body { - background: transparent; - color: var(--text); - padding: 0; - min-width: unset; - max-width: unset; - font-size: 1rem; -} - -/* Hide sidebar and prev/next footer generated by basic theme */ -div.sphinxsidebar, -div.sphinxsidebarwrapper, -div.related, -div.footer { display: none; } - -/* ── Page title (h1) ─────────────────────────────────────────────────── */ -/* Hide Sphinx heading anchor symbols */ +@import url('https://fonts.googleapis.com/css2?family=Noto+Sans:wght@400;700&display=swap'); + +/* ── Typography ───────────────────────────────────────────────────────── */ +body, html, .wy-body-for-nav { + font-family: 'Noto Sans', 'Helvetica Neue', 'Open Sans', Helvetica, Arial, sans-serif; +} + +/* ── Headings ─────────────────────────────────────────────────────────── */ +h1, h2, h3, h4, h5, h6 { + color: #2c3e50; + font-family: 'Noto Sans', 'Helvetica Neue', 'Open Sans', Helvetica, Arial, sans-serif; +} + +/* ── Links ────────────────────────────────────────────────────────────── */ +a { + color: #007bff; +} + +a:hover { + color: #0056b3; +} + +/* ── Code blocks ──────────────────────────────────────────────────────── */ +.highlight { + background-color: #f8f9fa; + border-left: 4px solid #007bff; + padding: 1rem; + margin: 1rem 0; +} + +/* ── Tables ───────────────────────────────────────────────────────────── */ +table { + border-collapse: collapse; + width: 100%; + margin: 1rem 0; +} + +th, td { + border: 1px solid #dee2e6; + padding: 0.75rem; + text-align: left; +} + +th { + background-color: #f8f9fa; + font-weight: bold; +} + +/* ── RTD sidebar nav-search ───────────────────────────────────────────── */ +.wy-side-nav-search > a, +.wy-side-nav-search .wy-dropdown > a { + color: #fcb770; +} + +.wy-side-nav-search .icon::before, +.wy-side-nav-search .fa-home::before { + color: #fcb770; +} + +/* Logo at 80% — same as cryptnox-sdk-py */ +.wy-side-nav-search .wy-dropdown > a img.logo, +.wy-side-nav-search > a img.logo, +.cnx-logo-link svg { + width: 80%; + height: auto; +} + +/* ── Breadcrumbs home icon ────────────────────────────────────────────── */ +.wy-breadcrumbs li a .fa-home::before, +.wy-breadcrumbs li a .icon-home::before, +.wy-breadcrumbs .fa-home, +.wy-breadcrumbs .icon-home { + color: #fcb770; +} + +/* ── Sidebar menu hover ───────────────────────────────────────────────── */ +.wy-menu-vertical a:hover { + color: #ffffff !important; + background: #fcb770 !important; +} + +.wy-menu-vertical li.current a:hover, +.wy-menu-vertical li.current > a:hover { + color: #ffffff !important; + background: #fcb770 !important; +} + +/* ── Hide Sphinx anchor symbols ───────────────────────────────────────── */ a.headerlink { display: none; } -div.body h1 { - font-size: 1.5rem; - font-weight: 700; - letter-spacing: -0.02em; - color: var(--text); - border-bottom: none; - padding-bottom: 0; - margin-bottom: 2rem; +/* ── Hide toctree block on landing page ───────────────────────────────── */ +.toctree-wrapper { display: none; } + +/* ── Content area width ───────────────────────────────────────────────── */ +.wy-nav-content { + max-width: 1100px; } -/* ── Cards grid ──────────────────────────────────────────────────────── */ +/* ── Page title (h1) ──────────────────────────────────────────────────── */ +.rst-content h1 { + font-size: 1.5rem; + font-weight: 700; + letter-spacing: -0.01em; + border-bottom: 1px solid #e1e4e5; + padding-bottom: 0.5rem; + margin-bottom: 2rem; +} -/* The top-level section becomes the grid container */ +/* ── Cards grid ───────────────────────────────────────────────────────── */ #cryptnox-product-documentation { - display: grid; - grid-template-columns: repeat(3, 1fr); - gap: 1.5rem; + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 1.5rem; } -/* Title, toctree, and hr span full width and sit outside the card grid */ #cryptnox-product-documentation > h1, #cryptnox-product-documentation > .toctree-wrapper { - grid-column: 1 / -1; + grid-column: 1 / -1; } -/* Hide RST transition rulers and toctree block */ -#cryptnox-product-documentation > hr, -#cryptnox-product-documentation > .toctree-wrapper { - display: none; +#cryptnox-product-documentation > hr { + display: none; } -/* ── Product cards ───────────────────────────────────────────────────── */ +/* ── Product cards ────────────────────────────────────────────────────── */ #cryptnox-hardware-wallet, #cryptnox-cli, #cryptnox-sdk-for-python { - background: var(--bg-card); - border: 1px solid var(--border); - border-radius: 12px; - padding: 2rem; - display: flex; - flex-direction: column; - gap: 0.75rem; - position: relative; - overflow: hidden; - transition: border-color 0.2s, background 0.2s, transform 0.2s; -} - -/* ── Card icon ───────────────────────────────────────────────────────── */ -.card-icon { - width: 44px; - height: 44px; - background: rgba(6, 182, 212, 0.1); - border: 1px solid rgba(6, 182, 212, 0.25); - border-radius: 10px; - display: flex; - align-items: center; - justify-content: center; - color: var(--accent); - flex-shrink: 0; - margin-bottom: 0.25rem; -} - -.card-icon svg { - width: 22px; - height: 22px; - stroke: var(--accent); + background: #fff; + border: 1px solid #e1e4e5; + border-radius: 8px; + padding: 1.75rem; + display: flex; + flex-direction: column; + gap: 0.75rem; + position: relative; + overflow: hidden; + transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s; + box-shadow: 0 1px 3px rgba(0,0,0,0.06); } -/* Top accent line on hover */ #cryptnox-hardware-wallet::before, #cryptnox-cli::before, #cryptnox-sdk-for-python::before { - content: ''; - position: absolute; - top: 0; left: 0; right: 0; - height: 2px; - background: linear-gradient(90deg, var(--accent), var(--indigo)); - opacity: 0; - transition: opacity 0.2s; + content: ''; + position: absolute; + top: 0; left: 0; right: 0; + height: 3px; + background: linear-gradient(90deg, #007bff, #fcb770); + opacity: 0; + transition: opacity 0.2s; } #cryptnox-hardware-wallet:hover, #cryptnox-cli:hover, #cryptnox-sdk-for-python:hover { - border-color: var(--accent); - background: var(--bg-card-hover); - transform: translateY(-2px); + border-color: #007bff; + box-shadow: 0 4px 12px rgba(0, 123, 255, 0.12); + transform: translateY(-2px); } #cryptnox-hardware-wallet:hover::before, #cryptnox-cli:hover::before, #cryptnox-sdk-for-python:hover::before { - opacity: 1; + opacity: 1; } -/* ── Card heading (h2) ───────────────────────────────────────────────── */ -div.body h2 { - font-size: 1.15rem; - font-weight: 700; - letter-spacing: -0.02em; - color: var(--text); - border-bottom: none; - padding-bottom: 0; - margin-bottom: 0.25rem; +/* ── Card icon ────────────────────────────────────────────────────────── */ +.card-icon { + width: 44px; + height: 44px; + background: rgba(0, 123, 255, 0.08); + border: 1px solid rgba(0, 123, 255, 0.2); + border-radius: 10px; + display: flex; + align-items: center; + justify-content: center; + flex-shrink: 0; + margin-bottom: 0.25rem; } -/* ── Card description (p) ────────────────────────────────────────────── */ -div.body section p, -div.body .section p { - color: var(--text-muted); - font-size: 0.9rem; - line-height: 1.65; - margin-bottom: 0; +.card-icon svg { + width: 22px; + height: 22px; + stroke: #007bff; } -/* ── Card link list ──────────────────────────────────────────────────── */ -div.body section ul, -div.body .section ul { - list-style: none; - padding-left: 0; - margin-top: auto; - padding-top: 0.5rem; +/* ── Card heading (h2) ────────────────────────────────────────────────── */ +#cryptnox-hardware-wallet h2, +#cryptnox-cli h2, +#cryptnox-sdk-for-python h2 { + font-size: 1.1rem; + font-weight: 700; + color: #2c3e50; + border-bottom: none; + padding-bottom: 0; + margin-bottom: 0.25rem; } -div.body section ul li, -div.body .section ul li { - margin: 0; +/* ── Card description ─────────────────────────────────────────────────── */ +#cryptnox-hardware-wallet p, +#cryptnox-cli p, +#cryptnox-sdk-for-python p { + color: #6b7a8a; + font-size: 0.9rem; + line-height: 1.65; + margin-bottom: 0; } -div.body section ul li p, -div.body .section ul li p { - color: var(--text-muted); - margin: 0; +/* ── Card link list ───────────────────────────────────────────────────── */ +#cryptnox-hardware-wallet ul, +#cryptnox-cli ul, +#cryptnox-sdk-for-python ul { + list-style: none; + padding-left: 0; + margin-top: auto; + padding-top: 0.5rem; } -/* ── Links ───────────────────────────────────────────────────────────── */ -div.body a { - color: var(--accent); - text-decoration: none; - font-weight: 600; - transition: color 0.2s; +#cryptnox-hardware-wallet ul li, +#cryptnox-cli ul li, +#cryptnox-sdk-for-python ul li { + margin: 0; } -div.body a:hover { - color: var(--accent-hover); - text-decoration: none; +#cryptnox-hardware-wallet ul li p, +#cryptnox-cli ul li p, +#cryptnox-sdk-for-python ul li p { + margin: 0; + color: #6b7a8a; } -/* ── Other resources section ─────────────────────────────────────────── */ +/* ── Other resources ──────────────────────────────────────────────────── */ #other-resources { - grid-column: 1 / -1; - background: transparent; - border: none; - border-top: 1px solid var(--border); - border-radius: 0; - padding: 1.5rem 0 0; - gap: 0.5rem; - transform: none !important; + grid-column: 1 / -1; + border-top: 1px solid #e1e4e5; + padding-top: 1.5rem; } -#other-resources:hover { - border-color: var(--border); - background: transparent; - transform: none; -} - -#other-resources::before { display: none; } - #other-resources h2 { - font-size: 0.875rem !important; - font-weight: 600; - color: var(--text-muted) !important; - text-transform: uppercase; - letter-spacing: 0.08em; - margin-bottom: 0.75rem; + font-size: 0.85rem !important; + font-weight: 600; + color: #9ba8b4 !important; + text-transform: uppercase; + letter-spacing: 0.08em; + border-bottom: none !important; + margin-bottom: 0.75rem; } #other-resources ul { - display: flex; - flex-wrap: wrap; - gap: 1.5rem; - padding-top: 0; - margin-top: 0; + list-style: none; + padding: 0; + display: flex; + flex-wrap: wrap; + gap: 1.5rem; +} + +#other-resources ul li { + margin: 0; } #other-resources ul li p { - margin: 0; + margin: 0; } #other-resources a { - color: var(--text-muted) !important; - font-size: 0.875rem; - font-weight: 400 !important; + color: #6b7a8a !important; + font-size: 0.875rem; + font-weight: 400; } #other-resources a:hover { - color: var(--accent) !important; -} - -/* ── Custom Header ───────────────────────────────────────────────────── */ -.cnx-header { - border-bottom: 1px solid var(--border); - padding: 1.25rem 2rem; - display: flex; - align-items: center; - background: var(--bg); + color: #007bff !important; } -.cryptnox-logo { - display: flex; - align-items: center; - text-decoration: none; -} - -.cryptnox-logo svg { - height: 32px; - width: auto; -} - -.cnx-header nav { - margin-left: auto; - display: flex; - gap: 1.5rem; -} - -.cnx-header nav a { - color: var(--text-muted); - text-decoration: none; - font-size: 0.875rem; - font-weight: 400; - transition: color 0.2s; +/* ── Custom footer ────────────────────────────────────────────────────── */ +.cnx-footer { + border-top: 1px solid #e1e4e5; + padding: 1.25rem 2rem; + display: flex; + justify-content: center; + align-items: center; + background: #fcfcfc; } -.cnx-header nav a:hover { - color: var(--accent); +.footer-address { + display: flex; + align-items: center; + gap: 0.75rem; } -/* ── Custom Footer ───────────────────────────────────────────────────── */ -.cnx-footer { - border-top: 1px solid var(--border); - padding: 1.25rem 2rem; - display: flex; - justify-content: center; - align-items: center; - background: var(--bg); - margin-top: auto; +.footer-copyright { + font-size: 0.8rem; } -.footer-address { - display: flex; - align-items: center; - gap: 0.75rem; +.footer-copyright a { + color: #9ba8b4; + text-decoration: none; } -.footer-copyright { - color: var(--text-muted); - font-size: 0.8rem; +.footer-copyright a:hover { + color: #007bff; + text-decoration: underline; } .footer-flag img { - width: 24px; - height: 24px; - display: block; - flex-shrink: 0; + width: 24px; + height: 24px; + display: block; + flex-shrink: 0; } -/* ── Responsive ──────────────────────────────────────────────────────── */ +/* ── Responsive ───────────────────────────────────────────────────────── */ @media (max-width: 860px) { - #cryptnox-product-documentation { - grid-template-columns: 1fr; - } - .cnx-header nav { display: none; } - .cnx-footer { flex-direction: column; align-items: flex-start; gap: 0.5rem; } - div.document { padding: 1.5rem 1rem 3rem; } + #cryptnox-product-documentation { + grid-template-columns: 1fr; + } +} + +@media (max-width: 480px) { + .cnx-footer { + flex-direction: column; + align-items: flex-start; + gap: 0.5rem; + } } diff --git a/docs/source/_static/favicon.png b/docs/source/_static/favicon.png new file mode 100644 index 0000000..f25ebae Binary files /dev/null and b/docs/source/_static/favicon.png differ diff --git a/docs/source/_templates/layout.html b/docs/source/_templates/layout.html index 07136e2..b8f0919 100644 --- a/docs/source/_templates/layout.html +++ b/docs/source/_templates/layout.html @@ -5,7 +5,6 @@ {{ super() }} - @@ -76,44 +75,12 @@ {% endblock %} -{# ── Custom header ─────────────────────────────────────────────────── #} -{% block header %} -
- - -
-{% endblock %} - -{# ── Hide prev/next bars ───────────────────────────────────────────── #} -{% block relbar1 %}{% endblock %} -{% block relbar2 %}{% endblock %} - {# ── Custom footer ─────────────────────────────────────────────────── #} {% block footer %}