| /** |
| * BlogPostPage Styles |
| * Clean, centered blog post layout with floating sidebars. |
| */ |
| |
| /* Main article wrapper with 3-column layout */ |
| .blogPost { |
| display: grid; |
| grid-template-columns: 80px minmax(0, 800px) 250px; |
| gap: var(--ai-spacing-xl); |
| max-width: 1200px; |
| margin: 0 auto; |
| padding: var(--section-spacing-sm) var(--ai-spacing-xl); |
| position: relative; |
| } |
| |
| /* Floating social sidebar (left) */ |
| .socialSidebar { |
| position: sticky; |
| top: 100px; |
| height: fit-content; |
| display: flex; |
| flex-direction: column; |
| align-items: center; |
| } |
| |
| /* Main content container */ |
| .blogPost__container { |
| min-width: 0; |
| } |
| |
| /* Header section */ |
| .blogPost__header { |
| margin-bottom: var(--ai-spacing-2xl); |
| padding-bottom: var(--ai-spacing-xl); |
| border-bottom: 1px solid var(--ai-border-light); |
| } |
| |
| .blogPost__category { |
| font-size: 1.4rem; |
| font-weight: 500; |
| color: var(--ai-blue); |
| text-transform: uppercase; |
| letter-spacing: 0.5px; |
| margin-bottom: var(--ai-spacing-md); |
| } |
| |
| .blogPost__title { |
| font-size: clamp(2.8rem, 2rem + 2vw, 4rem); |
| font-weight: 700; |
| line-height: 1.2; |
| color: var(--ai-text-primary); |
| margin: 0 0 var(--ai-spacing-lg) 0; |
| } |
| |
| .blogPost__meta { |
| display: flex; |
| align-items: center; |
| gap: var(--ai-spacing-sm); |
| font-size: 1.5rem; |
| color: var(--ai-text-secondary); |
| margin-bottom: var(--ai-spacing-xl); |
| } |
| |
| .blogPost__separator { |
| color: var(--ai-gray-300); |
| } |
| |
| /* Author section */ |
| .blogPost__author { |
| display: flex; |
| align-items: center; |
| gap: var(--ai-spacing-md); |
| } |
| |
| .blogPost__authorImage { |
| width: 48px; |
| height: 48px; |
| border-radius: var(--ai-radius-circle); |
| object-fit: cover; |
| } |
| |
| .blogPost__authorInfo { |
| display: flex; |
| flex-direction: column; |
| gap: 2px; |
| } |
| |
| .blogPost__authorName { |
| font-size: 1.6rem; |
| font-weight: 600; |
| color: var(--ai-blue); |
| text-decoration: none; |
| } |
| |
| .blogPost__authorName:hover { |
| text-decoration: underline; |
| } |
| |
| span.blogPost__authorName { |
| color: var(--ai-text-primary); |
| } |
| |
| .blogPost__authorTitle { |
| font-size: 1.4rem; |
| color: var(--ai-text-secondary); |
| } |
| |
| /* Inline TOC (shown on tablet/mobile) */ |
| .blogPost__toc { |
| display: none; |
| background: var(--ai-gray-50); |
| border-radius: var(--ai-radius-md); |
| padding: var(--ai-spacing-lg); |
| margin-bottom: var(--ai-spacing-2xl); |
| } |
| |
| .blogPost__tocTitle { |
| font-size: 1.5rem; |
| font-weight: 600; |
| color: var(--ai-text-primary); |
| cursor: pointer; |
| user-select: none; |
| } |
| |
| .blogPost__toc :global(.table-of-contents) { |
| margin-top: var(--ai-spacing-md); |
| padding-left: var(--ai-spacing-md); |
| } |
| |
| .blogPost__toc :global(.table-of-contents) li { |
| margin: var(--ai-spacing-xs) 0; |
| } |
| |
| .blogPost__toc :global(.table-of-contents) a { |
| font-size: 1.4rem; |
| color: var(--ai-text-secondary); |
| text-decoration: none; |
| } |
| |
| .blogPost__toc :global(.table-of-contents) a:hover { |
| color: var(--ai-blue); |
| } |
| |
| /* Article content */ |
| .blogPost__content { |
| font-size: 1.8rem; |
| line-height: 1.8; |
| color: var(--ai-text-primary); |
| } |
| |
| .blogPost__content :global(h2) { |
| font-size: 2.4rem; |
| font-weight: 700; |
| margin: var(--ai-spacing-2xl) 0 var(--ai-spacing-lg) 0; |
| color: var(--ai-text-primary); |
| scroll-margin-top: 100px; |
| } |
| |
| .blogPost__content :global(h3) { |
| font-size: 2rem; |
| font-weight: 600; |
| margin: var(--ai-spacing-xl) 0 var(--ai-spacing-md) 0; |
| color: var(--ai-text-primary); |
| scroll-margin-top: 100px; |
| } |
| |
| .blogPost__content :global(h4) { |
| font-size: 1.8rem; |
| font-weight: 600; |
| margin: var(--ai-spacing-lg) 0 var(--ai-spacing-sm) 0; |
| color: var(--ai-text-primary); |
| scroll-margin-top: 100px; |
| } |
| |
| .blogPost__content :global(p) { |
| margin: 0 0 var(--ai-spacing-lg) 0; |
| } |
| |
| .blogPost__content :global(ul), |
| .blogPost__content :global(ol) { |
| margin: 0 0 var(--ai-spacing-sm) 0; |
| padding-left: var(--ai-spacing-xl); |
| } |
| |
| .blogPost__content :global(li) { |
| margin: var(--ai-spacing-sm) 0; |
| } |
| |
| .blogPost__content :global(a) { |
| color: var(--ai-blue); |
| text-decoration: none; |
| } |
| |
| .blogPost__content :global(a:hover) { |
| text-decoration: underline; |
| } |
| |
| .blogPost__content :global(blockquote) { |
| margin: var(--ai-spacing-xl) 0; |
| padding: var(--ai-spacing-md) var(--ai-spacing-lg); |
| border-left: 4px solid var(--ai-blue); |
| background: var(--ai-gray-50); |
| font-style: italic; |
| } |
| |
| .blogPost__content :global(pre) { |
| margin: 0 0; |
| border-radius: 8px; |
| font-size: 1.5rem; |
| background: #2d3748 !important; |
| overflow: hidden; |
| } |
| |
| .blogPost__content :global(.prism-code) { |
| background: #2d3748 !important; |
| padding: 20px !important; |
| } |
| |
| .blogPost__content :global(code) { |
| font-size: 0.9em; |
| background: var(--ai-gray-100); |
| padding: 2px 6px; |
| border-radius: var(--ai-radius-xs); |
| } |
| |
| .blogPost__content :global(pre code) { |
| background: transparent; |
| padding: 0; |
| } |
| |
| /* Code block container styling to match home page */ |
| .blogPost__content :global([class*='codeBlockContainer']) { |
| border-radius: 8px; |
| overflow: hidden; |
| box-shadow: var(--ai-shadow-md); |
| margin: var(--ai-spacing-xl) 0; |
| } |
| |
| .blogPost__content :global([class*='codeBlockContent']) { |
| background: #2d3748 !important; |
| } |
| |
| .blogPost__content :global([class*='codeBlockLines']) { |
| background: #2d3748 !important; |
| } |
| |
| |
| /* Line numbers styling */ |
| .blogPost__content :global([class*='codeLineNumber']) { |
| color: rgba(255, 255, 255, 0.4); |
| padding-right: 16px; |
| user-select: none; |
| } |
| |
| .blogPost__content :global(img) { |
| max-width: 100%; |
| height: auto; |
| border-radius: var(--ai-radius-md); |
| margin: var(--ai-spacing-xl) 0; |
| } |
| |
| .blogPost__content :global(table) { |
| width: 100%; |
| margin: var(--ai-spacing-xl) 0; |
| border-collapse: collapse; |
| font-size: 1.6rem; |
| } |
| |
| .blogPost__content :global(th), |
| .blogPost__content :global(td) { |
| padding: var(--ai-spacing-sm) var(--ai-spacing-md); |
| border: 1px solid var(--ai-border-light); |
| text-align: left; |
| } |
| |
| .blogPost__content :global(th) { |
| background: var(--ai-gray-50); |
| font-weight: 600; |
| } |
| |
| /* Tags */ |
| .blogPost__tags { |
| display: flex; |
| flex-wrap: wrap; |
| gap: var(--ai-spacing-sm); |
| margin-top: var(--ai-spacing-2xl); |
| padding-top: var(--ai-spacing-xl); |
| border-top: 1px solid var(--ai-border-light); |
| } |
| |
| .blogPost__tag { |
| font-size: 1.4rem; |
| color: var(--ai-blue); |
| background: var(--ai-blue-lighter); |
| padding: 6px 14px; |
| border-radius: var(--ai-radius-full); |
| text-decoration: none; |
| transition: background var(--ai-transition-normal); |
| } |
| |
| .blogPost__tag:hover { |
| background: var(--ai-blue-light); |
| text-decoration: none; |
| } |
| |
| /* Mobile social share */ |
| .blogPost__socialMobile { |
| display: none; |
| margin-top: var(--ai-spacing-xl); |
| padding-top: var(--ai-spacing-xl); |
| border-top: 1px solid var(--ai-border-light); |
| } |
| |
| /* Pagination */ |
| .blogPost__pagination { |
| display: grid; |
| grid-template-columns: 1fr 1fr; |
| gap: var(--ai-spacing-lg); |
| margin-top: var(--ai-spacing-2xl); |
| padding-top: var(--ai-spacing-xl); |
| border-top: 1px solid var(--ai-border-light); |
| } |
| |
| .blogPost__paginationItem { |
| display: flex; |
| flex-direction: column; |
| gap: var(--ai-spacing-xs); |
| padding: var(--ai-spacing-lg); |
| background: var(--ai-gray-50); |
| border-radius: var(--ai-radius-md); |
| text-decoration: none; |
| transition: background var(--ai-transition-normal); |
| } |
| |
| .blogPost__paginationItem:hover { |
| background: var(--ai-gray-100); |
| text-decoration: none; |
| } |
| |
| .blogPost__paginationItem--next { |
| text-align: right; |
| } |
| |
| .blogPost__paginationLabel { |
| font-size: 1.3rem; |
| font-weight: 500; |
| color: var(--ai-text-tertiary); |
| text-transform: uppercase; |
| letter-spacing: 0.5px; |
| } |
| |
| .blogPost__paginationTitle { |
| font-size: 1.6rem; |
| font-weight: 600; |
| color: var(--ai-blue); |
| line-height: 1.4; |
| } |
| |
| /* Floating TOC sidebar (right) */ |
| .tocSidebar { |
| position: relative; |
| } |
| |
| .tocSidebar__sticky { |
| position: sticky; |
| top: 100px; |
| max-height: calc(100vh - 150px); |
| overflow-y: auto; |
| } |
| |
| /* Override Docusaurus TOC's inner scrollable wrapper to prevent double scrollbar */ |
| .tocSidebar__sticky :global(.theme-doc-toc-desktop), |
| .tocSidebar__sticky :global([class*='tocCollapsible']), |
| .tocSidebar__sticky :global(.thin-scrollbar) { |
| max-height: none; |
| overflow: visible; |
| } |
| |
| .tocSidebar :global(.table-of-contents) { |
| padding: 0; |
| margin: 0; |
| list-style: none; |
| border-left: 2px solid var(--ai-border-light); |
| padding-left: var(--ai-spacing-md); |
| } |
| |
| .tocSidebar :global(.table-of-contents__link) { |
| font-size: 1.4rem; |
| color: var(--ai-text-secondary); |
| text-decoration: none; |
| display: block; |
| padding: var(--ai-spacing-xs) 0; |
| transition: color var(--ai-transition-normal); |
| } |
| |
| .tocSidebar :global(.table-of-contents__link:hover), |
| .tocSidebar :global(.table-of-contents__link--active) { |
| color: var(--ai-blue); |
| } |
| |
| .tocSidebar :global(.table-of-contents ul) { |
| padding-left: var(--ai-spacing-md); |
| margin: 0; |
| list-style: none; |
| } |
| |
| /* Responsive */ |
| @media (max-width: 1100px) { |
| .blogPost { |
| grid-template-columns: 60px minmax(0, 1fr); |
| max-width: 900px; |
| } |
| |
| .tocSidebar { |
| display: none; |
| } |
| |
| .blogPost__toc { |
| display: block; |
| } |
| } |
| |
| @media (max-width: 768px) { |
| .blogPost { |
| grid-template-columns: 1fr; |
| padding: var(--section-spacing-xs) var(--ai-spacing-lg); |
| } |
| |
| .socialSidebar { |
| display: none; |
| } |
| |
| .blogPost__socialMobile { |
| display: block; |
| } |
| |
| .blogPost__title { |
| font-size: 2.4rem; |
| } |
| |
| .blogPost__content { |
| font-size: 1.7rem; |
| } |
| |
| .blogPost__pagination { |
| grid-template-columns: 1fr; |
| } |
| |
| .blogPost__paginationItem--next { |
| text-align: left; |
| } |
| } |