- Add /release-docs command for regenerating documentation site - Add commands/README.md with usage instructions for all commands - Add changelog.html page rendering CHANGELOG.md in HTML format - Add changelog CSS styles to docs.css - Update navigation in all docs pages to include changelog link - Fix command count from 16 to 13 in navigation - Update CLAUDE.md with: - Documentation Site section explaining structure - /release-docs command in update checklist - Instructions for keeping docs up-to-date 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
676 lines
13 KiB
CSS
676 lines
13 KiB
CSS
/* Documentation-specific styles */
|
|
|
|
/* ============================================
|
|
Documentation Layout
|
|
============================================ */
|
|
|
|
.docs-layout {
|
|
display: grid;
|
|
grid-template-columns: 1fr;
|
|
min-height: 100vh;
|
|
}
|
|
|
|
@media (min-width: 1024px) {
|
|
.docs-layout {
|
|
grid-template-columns: 280px 1fr;
|
|
}
|
|
}
|
|
|
|
/* ============================================
|
|
Sidebar
|
|
============================================ */
|
|
|
|
.docs-sidebar {
|
|
position: fixed;
|
|
top: 0;
|
|
left: -300px;
|
|
width: 280px;
|
|
height: 100vh;
|
|
background-color: var(--color-background);
|
|
border-right: 1px solid var(--color-border);
|
|
overflow-y: auto;
|
|
transition: left 0.3s ease;
|
|
z-index: 100;
|
|
}
|
|
|
|
.docs-sidebar.open {
|
|
left: 0;
|
|
}
|
|
|
|
@media (min-width: 1024px) {
|
|
.docs-sidebar {
|
|
position: sticky;
|
|
left: 0;
|
|
}
|
|
}
|
|
|
|
.sidebar-header {
|
|
padding: var(--space-l);
|
|
border-bottom: 1px solid var(--color-border);
|
|
}
|
|
|
|
.sidebar-header .nav-brand {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--space-s);
|
|
text-decoration: none;
|
|
color: var(--color-text-primary);
|
|
font-weight: 600;
|
|
}
|
|
|
|
.sidebar-header .logo-icon {
|
|
color: var(--color-accent);
|
|
font-size: var(--font-size-l);
|
|
}
|
|
|
|
.sidebar-header .logo-text {
|
|
display: inline;
|
|
}
|
|
|
|
.sidebar-nav {
|
|
padding: var(--space-l);
|
|
}
|
|
|
|
.nav-section {
|
|
margin-bottom: var(--space-xl);
|
|
}
|
|
|
|
.nav-section h3 {
|
|
font-size: var(--font-size-xs);
|
|
font-weight: 600;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.05em;
|
|
color: var(--color-text-tertiary);
|
|
margin: 0 0 var(--space-m) 0;
|
|
}
|
|
|
|
.nav-section ul {
|
|
list-style: none;
|
|
margin: 0;
|
|
padding: 0;
|
|
}
|
|
|
|
.nav-section li {
|
|
margin: 0;
|
|
}
|
|
|
|
.nav-section a {
|
|
display: block;
|
|
padding: var(--space-s) var(--space-m);
|
|
color: var(--color-text-secondary);
|
|
text-decoration: none;
|
|
font-size: var(--font-size-s);
|
|
border-radius: var(--radius-s);
|
|
transition: all 0.2s ease;
|
|
}
|
|
|
|
.nav-section a:hover {
|
|
color: var(--color-text-primary);
|
|
background-color: var(--color-surface);
|
|
}
|
|
|
|
.nav-section a.active {
|
|
color: var(--color-accent);
|
|
background-color: var(--color-accent-light);
|
|
}
|
|
|
|
/* ============================================
|
|
Main Content
|
|
============================================ */
|
|
|
|
.docs-content {
|
|
padding: var(--space-xl);
|
|
max-width: 900px;
|
|
}
|
|
|
|
@media (min-width: 1024px) {
|
|
.docs-content {
|
|
padding: var(--space-xxl);
|
|
}
|
|
}
|
|
|
|
.docs-header {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
margin-bottom: var(--space-xl);
|
|
}
|
|
|
|
.breadcrumb {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--space-s);
|
|
font-size: var(--font-size-s);
|
|
color: var(--color-text-tertiary);
|
|
}
|
|
|
|
.breadcrumb a {
|
|
color: var(--color-text-secondary);
|
|
text-decoration: none;
|
|
}
|
|
|
|
.breadcrumb a:hover {
|
|
color: var(--color-accent);
|
|
}
|
|
|
|
.mobile-menu-toggle {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
width: 40px;
|
|
height: 40px;
|
|
background: none;
|
|
border: 1px solid var(--color-border);
|
|
border-radius: var(--radius-s);
|
|
color: var(--color-text-secondary);
|
|
cursor: pointer;
|
|
}
|
|
|
|
@media (min-width: 1024px) {
|
|
.mobile-menu-toggle {
|
|
display: none;
|
|
}
|
|
}
|
|
|
|
/* ============================================
|
|
Article Styles
|
|
============================================ */
|
|
|
|
.docs-article {
|
|
line-height: 1.7;
|
|
}
|
|
|
|
.docs-article h1 {
|
|
font-size: var(--font-size-xl);
|
|
margin-bottom: var(--space-l);
|
|
}
|
|
|
|
.docs-article h2 {
|
|
font-size: var(--font-size-l);
|
|
margin-top: var(--space-xxl);
|
|
margin-bottom: var(--space-l);
|
|
padding-bottom: var(--space-s);
|
|
border-bottom: 1px solid var(--color-border);
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--space-s);
|
|
}
|
|
|
|
.docs-article h2 i {
|
|
color: var(--color-accent);
|
|
}
|
|
|
|
.docs-article h3 {
|
|
font-size: var(--font-size-m);
|
|
margin-top: var(--space-xl);
|
|
margin-bottom: var(--space-m);
|
|
}
|
|
|
|
.docs-article h4 {
|
|
font-size: var(--font-size-s);
|
|
margin-top: var(--space-l);
|
|
margin-bottom: var(--space-s);
|
|
}
|
|
|
|
.docs-article p {
|
|
margin-bottom: var(--space-l);
|
|
}
|
|
|
|
.docs-article .lead {
|
|
font-size: var(--font-size-l);
|
|
color: var(--color-text-secondary);
|
|
margin-bottom: var(--space-xl);
|
|
}
|
|
|
|
.docs-article ul,
|
|
.docs-article ol {
|
|
margin-bottom: var(--space-l);
|
|
padding-left: var(--space-xl);
|
|
}
|
|
|
|
.docs-article li {
|
|
margin-bottom: var(--space-s);
|
|
}
|
|
|
|
/* ============================================
|
|
Code Blocks in Docs
|
|
============================================ */
|
|
|
|
.docs-article .card-code-block {
|
|
margin: var(--space-l) 0;
|
|
}
|
|
|
|
.docs-article code {
|
|
font-family: var(--font-mono);
|
|
font-size: 0.9em;
|
|
background-color: var(--color-surface);
|
|
padding: 2px 6px;
|
|
border-radius: var(--radius-xs);
|
|
color: var(--color-accent);
|
|
}
|
|
|
|
.docs-article pre code {
|
|
background: none;
|
|
padding: 0;
|
|
color: var(--color-code-text);
|
|
}
|
|
|
|
/* ============================================
|
|
Tables
|
|
============================================ */
|
|
|
|
.docs-table {
|
|
width: 100%;
|
|
border-collapse: collapse;
|
|
margin: var(--space-l) 0;
|
|
font-size: var(--font-size-s);
|
|
}
|
|
|
|
.docs-table th,
|
|
.docs-table td {
|
|
padding: var(--space-m);
|
|
text-align: left;
|
|
border-bottom: 1px solid var(--color-border);
|
|
}
|
|
|
|
.docs-table th {
|
|
font-weight: 600;
|
|
color: var(--color-text-primary);
|
|
background-color: var(--color-surface);
|
|
}
|
|
|
|
.docs-table td {
|
|
color: var(--color-text-secondary);
|
|
}
|
|
|
|
.docs-table code {
|
|
font-size: 0.85em;
|
|
}
|
|
|
|
/* ============================================
|
|
Callouts
|
|
============================================ */
|
|
|
|
.callout {
|
|
display: flex;
|
|
gap: var(--space-m);
|
|
padding: var(--space-l);
|
|
border-radius: var(--radius-m);
|
|
margin: var(--space-l) 0;
|
|
}
|
|
|
|
.callout-icon {
|
|
font-size: var(--font-size-l);
|
|
flex-shrink: 0;
|
|
}
|
|
|
|
.callout-content h4 {
|
|
margin: 0 0 var(--space-s) 0;
|
|
font-size: var(--font-size-s);
|
|
}
|
|
|
|
.callout-content p {
|
|
margin: 0;
|
|
font-size: var(--font-size-s);
|
|
}
|
|
|
|
.callout-info {
|
|
background-color: rgba(99, 102, 241, 0.1);
|
|
border: 1px solid rgba(99, 102, 241, 0.2);
|
|
}
|
|
|
|
.callout-info .callout-icon {
|
|
color: var(--color-accent);
|
|
}
|
|
|
|
.callout-info .callout-content h4 {
|
|
color: var(--color-accent);
|
|
}
|
|
|
|
.callout-tip {
|
|
background-color: rgba(16, 185, 129, 0.1);
|
|
border: 1px solid rgba(16, 185, 129, 0.2);
|
|
}
|
|
|
|
.callout-tip .callout-icon {
|
|
color: var(--color-success);
|
|
}
|
|
|
|
.callout-tip .callout-content h4 {
|
|
color: var(--color-success);
|
|
}
|
|
|
|
.callout-warning {
|
|
background-color: rgba(245, 158, 11, 0.1);
|
|
border: 1px solid rgba(245, 158, 11, 0.2);
|
|
}
|
|
|
|
.callout-warning .callout-icon {
|
|
color: var(--color-warning);
|
|
}
|
|
|
|
.callout-warning .callout-content h4 {
|
|
color: var(--color-warning);
|
|
}
|
|
|
|
/* ============================================
|
|
Badges
|
|
============================================ */
|
|
|
|
.badge {
|
|
display: inline-block;
|
|
padding: 2px 8px;
|
|
font-size: var(--font-size-xs);
|
|
font-weight: 600;
|
|
border-radius: var(--radius-s);
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.03em;
|
|
}
|
|
|
|
.badge-critical {
|
|
background-color: rgba(239, 68, 68, 0.15);
|
|
color: var(--color-error);
|
|
}
|
|
|
|
.badge-important {
|
|
background-color: rgba(245, 158, 11, 0.15);
|
|
color: var(--color-warning);
|
|
}
|
|
|
|
.badge-nice {
|
|
background-color: rgba(99, 102, 241, 0.15);
|
|
color: var(--color-accent);
|
|
}
|
|
|
|
/* ============================================
|
|
Philosophy Grid
|
|
============================================ */
|
|
|
|
.philosophy-grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(1, 1fr);
|
|
gap: var(--space-l);
|
|
margin: var(--space-xl) 0;
|
|
}
|
|
|
|
@media (min-width: 640px) {
|
|
.philosophy-grid {
|
|
grid-template-columns: repeat(2, 1fr);
|
|
}
|
|
}
|
|
|
|
.philosophy-card {
|
|
padding: var(--space-xl);
|
|
background-color: var(--color-surface);
|
|
border-radius: var(--radius-m);
|
|
border: 1px solid var(--color-border);
|
|
}
|
|
|
|
.philosophy-icon {
|
|
font-size: var(--font-size-xl);
|
|
color: var(--color-accent);
|
|
margin-bottom: var(--space-m);
|
|
}
|
|
|
|
.philosophy-card h4 {
|
|
margin: 0 0 var(--space-s) 0;
|
|
color: var(--color-text-primary);
|
|
}
|
|
|
|
.philosophy-card p {
|
|
margin: 0;
|
|
font-size: var(--font-size-s);
|
|
color: var(--color-text-secondary);
|
|
}
|
|
|
|
/* ============================================
|
|
Blockquotes
|
|
============================================ */
|
|
|
|
.highlight-quote {
|
|
font-size: var(--font-size-l);
|
|
font-style: italic;
|
|
color: var(--color-accent);
|
|
padding: var(--space-xl);
|
|
margin: var(--space-xl) 0;
|
|
background: linear-gradient(135deg, var(--color-accent-lighter), transparent);
|
|
border-left: 4px solid var(--color-accent);
|
|
border-radius: var(--radius-m);
|
|
}
|
|
|
|
/* ============================================
|
|
Navigation Footer
|
|
============================================ */
|
|
|
|
.docs-nav-footer {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
gap: var(--space-l);
|
|
margin-top: var(--space-xxl);
|
|
padding-top: var(--space-xl);
|
|
border-top: 1px solid var(--color-border);
|
|
}
|
|
|
|
.nav-prev,
|
|
.nav-next {
|
|
display: flex;
|
|
flex-direction: column;
|
|
gap: var(--space-xs);
|
|
padding: var(--space-l);
|
|
background-color: var(--color-surface);
|
|
border-radius: var(--radius-m);
|
|
text-decoration: none;
|
|
transition: all 0.2s ease;
|
|
flex: 1;
|
|
max-width: 300px;
|
|
}
|
|
|
|
.nav-prev:hover,
|
|
.nav-next:hover {
|
|
background-color: var(--color-surface-hover);
|
|
border-color: var(--color-accent);
|
|
}
|
|
|
|
.nav-next {
|
|
text-align: right;
|
|
margin-left: auto;
|
|
}
|
|
|
|
.nav-label {
|
|
font-size: var(--font-size-xs);
|
|
color: var(--color-text-tertiary);
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.05em;
|
|
}
|
|
|
|
.nav-title {
|
|
font-weight: 600;
|
|
color: var(--color-accent);
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--space-s);
|
|
}
|
|
|
|
.nav-next .nav-title {
|
|
justify-content: flex-end;
|
|
}
|
|
|
|
/* ============================================
|
|
Mobile Sidebar Overlay
|
|
============================================ */
|
|
|
|
@media (max-width: 1023px) {
|
|
.docs-sidebar.open::before {
|
|
content: '';
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
background-color: rgba(0, 0, 0, 0.5);
|
|
z-index: -1;
|
|
}
|
|
}
|
|
|
|
/* ============================================
|
|
Changelog Styles
|
|
============================================ */
|
|
|
|
.version-section {
|
|
margin-bottom: var(--space-xxl);
|
|
padding-bottom: var(--space-xl);
|
|
border-bottom: 1px solid var(--color-border);
|
|
}
|
|
|
|
.version-section:last-child {
|
|
border-bottom: none;
|
|
}
|
|
|
|
.version-header {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--space-m);
|
|
margin-bottom: var(--space-l);
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.version-header h2 {
|
|
margin: 0;
|
|
padding: 0;
|
|
border: none;
|
|
font-size: var(--font-size-xl);
|
|
color: var(--color-text-primary);
|
|
}
|
|
|
|
.version-date {
|
|
font-size: var(--font-size-s);
|
|
color: var(--color-text-tertiary);
|
|
background-color: var(--color-surface);
|
|
padding: var(--space-xs) var(--space-m);
|
|
border-radius: var(--radius-s);
|
|
}
|
|
|
|
.version-badge {
|
|
font-size: var(--font-size-xs);
|
|
font-weight: 600;
|
|
padding: var(--space-xs) var(--space-m);
|
|
border-radius: var(--radius-s);
|
|
background-color: var(--color-accent);
|
|
color: white;
|
|
}
|
|
|
|
.version-badge.major {
|
|
background-color: var(--color-warning);
|
|
}
|
|
|
|
.version-description {
|
|
font-size: var(--font-size-m);
|
|
color: var(--color-text-secondary);
|
|
margin-bottom: var(--space-l);
|
|
font-style: italic;
|
|
}
|
|
|
|
.changelog-category {
|
|
margin-bottom: var(--space-l);
|
|
padding: var(--space-l);
|
|
background-color: var(--color-surface);
|
|
border-radius: var(--radius-m);
|
|
border-left: 4px solid var(--color-border);
|
|
}
|
|
|
|
.changelog-category h3 {
|
|
margin: 0 0 var(--space-m) 0;
|
|
font-size: var(--font-size-m);
|
|
display: flex;
|
|
align-items: center;
|
|
gap: var(--space-s);
|
|
}
|
|
|
|
.changelog-category h3 i {
|
|
font-size: var(--font-size-s);
|
|
}
|
|
|
|
.changelog-category h4 {
|
|
margin: var(--space-l) 0 var(--space-s) 0;
|
|
font-size: var(--font-size-s);
|
|
color: var(--color-text-secondary);
|
|
}
|
|
|
|
.changelog-category ul {
|
|
margin: 0;
|
|
padding-left: var(--space-xl);
|
|
}
|
|
|
|
.changelog-category li {
|
|
margin-bottom: var(--space-s);
|
|
}
|
|
|
|
.changelog-category.added {
|
|
border-left-color: var(--color-success);
|
|
}
|
|
|
|
.changelog-category.added h3 {
|
|
color: var(--color-success);
|
|
}
|
|
|
|
.changelog-category.improved {
|
|
border-left-color: var(--color-accent);
|
|
}
|
|
|
|
.changelog-category.improved h3 {
|
|
color: var(--color-accent);
|
|
}
|
|
|
|
.changelog-category.changed {
|
|
border-left-color: var(--color-warning);
|
|
}
|
|
|
|
.changelog-category.changed h3 {
|
|
color: var(--color-warning);
|
|
}
|
|
|
|
.changelog-category.fixed {
|
|
border-left-color: var(--color-error);
|
|
}
|
|
|
|
.changelog-category.fixed h3 {
|
|
color: var(--color-error);
|
|
}
|
|
|
|
.version-summary {
|
|
margin-top: var(--space-l);
|
|
}
|
|
|
|
.version-summary h4 {
|
|
margin-bottom: var(--space-m);
|
|
}
|
|
|
|
.version-summary table {
|
|
width: 100%;
|
|
max-width: 400px;
|
|
border-collapse: collapse;
|
|
font-size: var(--font-size-s);
|
|
}
|
|
|
|
.version-summary th,
|
|
.version-summary td {
|
|
padding: var(--space-s) var(--space-m);
|
|
text-align: left;
|
|
border-bottom: 1px solid var(--color-border);
|
|
}
|
|
|
|
.version-summary th {
|
|
font-weight: 600;
|
|
background-color: var(--color-surface);
|
|
}
|
|
|
|
.version-summary .positive {
|
|
color: var(--color-success);
|
|
font-weight: 600;
|
|
}
|
|
|
|
.version-summary .negative {
|
|
color: var(--color-error);
|
|
font-weight: 600;
|
|
}
|