blob: ae99019f737cb03f3aeb2b5c669f147166345d98 [file]
/**
* 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;
}
}