// Put your custom SCSS code here * { -webkit-font-smoothing: antialiased; } h1, h2, h3, h4, h5, .navbar-brand { font-family: Quicksand, sans-serif; font-weight: 700; } [data-bs-theme="dark"] .only-light { display: none; } [data-bs-theme="light"] .only-dark { display: none; } .homepage-features { .row { max-width: 1400px; margin: 0 auto; } } // Improved text alignment and spacing .text-center.text-lg-start { @media (min-width: 992px) { padding-right: 2rem; } } // Learn page styling .learn-container { max-width: 1200px; margin: 0 auto; padding: 3rem 1rem; } .learn-header { text-align: center; margin-bottom: 4rem; } .learn-main-title { font-size: 3rem; font-weight: 700; margin-bottom: 1rem; color: var(--bs-body-color); } .learn-subtitle { font-size: 1.25rem; color: var(--bs-body-color-secondary); max-width: 600px; margin: 0 auto; line-height: 1.6; } .learn-section { margin-bottom: 4rem; } .learn-section:last-child { margin-bottom: 0; } .learn-section-title { text-align: center; font-size: 2rem; font-weight: 600; margin-bottom: 3rem; color: var(--bs-body-color); } .learn-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; justify-items: center; } .learn-card { display: flex; flex-direction: column; padding: 2rem; border-radius: 0.75rem; transition: all 0.3s ease; text-decoration: none; background: var(--bs-body-bg); border: 1px solid var(--bs-border-color); box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05); min-height: 280px; width: 100%; max-width: 350px; text-align: center; color: inherit; cursor: pointer; position: relative; overflow: hidden; } .learn-card:hover { transform: translateY(-2px); box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1); text-decoration: none; color: inherit; border-color: var(--bs-primary); } .learn-card:focus { outline: 2px solid var(--bs-primary); outline-offset: 2px; } .learn-card-icon { margin: 0 auto 0; color: var(--bs-primary); display: flex; justify-content: center; align-items: center; width: 100px; height: 100px; } .learn-card h3 { font-size: 1.25rem; font-weight: 600; margin-bottom: 0.5rem; color: var(--bs-body-color); margin-top: 0; } .learn-card-secondary { display: block; font-size: 0.9rem; font-weight: 600; color: var(--bs-gray-600); margin-bottom: 1rem; } .learn-card p { font-size: 0.95rem; line-height: 1.6; margin-bottom: 2rem; flex-grow: 1; color: var(--bs-body-color-secondary); } // Dark theme support for learn cards [data-bs-theme="dark"] .learn-card { background: var(--bs-body-bg); border-color: var(--bs-border-color); } [data-bs-theme="dark"] .learn-card:hover { border-color: var(--bs-primary); } // Responsive grid for learn page @media (max-width: 767.98px) { .learn-container { padding: 2rem 1rem; } .learn-header { margin-bottom: 3rem; } .learn-main-title { font-size: 2.5rem; } .learn-subtitle { font-size: 1.1rem; } .learn-section-title { font-size: 1.5rem; margin-bottom: 2rem; } .learn-row { grid-template-columns: 1fr; gap: 1.5rem; } .learn-card { padding: 1.5rem; min-height: 240px; max-width: none; } } @media (min-width: 768px) and (max-width: 1199.98px) { .learn-row { grid-template-columns: repeat(2, 1fr); } .learn-section:first-child .learn-row { grid-template-columns: repeat(2, 1fr); } .learn-section:first-child .learn-row .learn-card:nth-child(3) { grid-column: 1 / -1; justify-self: center; } } // Quickstart page styling .quickstart-container { max-width: 800px; margin: 0 auto; padding: 3rem 1rem; } .quickstart-header { text-align: center; margin-bottom: 3rem; } .quickstart-main-title { font-size: 3rem; font-weight: 700; margin-bottom: 1rem; color: var(--bs-body-color); } .quickstart-subtitle { font-size: 1.25rem; color: var(--bs-body-color-secondary); max-width: 600px; margin: 0 auto; line-height: 1.6; } .quickstart-content { font-size: 1.1rem; line-height: 1.8; } // Hide footer banner on quickstart page too body.quickstart .event-driven-banner { display: none; } // Responsive styling for quickstart @media (max-width: 767.98px) { .quickstart-container { padding: 2rem 1rem; } .quickstart-header { margin-bottom: 2rem; } .quickstart-main-title { font-size: 2.5rem; } .quickstart-subtitle { font-size: 1.1rem; } } // Responsive improvements @media (max-width: 991.98px) { .display-5 { font-size: 2rem; } .text-center.text-lg-start { text-align: center !important; padding-right: 0; } } // Pub/Sub Logos Collage Styling .pubsub-logos-container { padding: 2rem 0; } .pubsub-logos-grid { display: flex; flex-wrap: wrap; gap: 2rem; max-width: 900px; margin: 0 auto; align-items: center; justify-content: center; } .pubsub-logo-item { display: flex; flex-direction: column; align-items: center; text-align: center; transition: all 0.3s ease; padding: 1rem; border-radius: 0.75rem; text-decoration: none; color: inherit; flex: 0 0 120px; img { width: 60px; height: 60px; margin-bottom: 0.75rem; transition: all 0.3s ease; } span { font-size: 0.9rem; font-weight: 600; color: var(--bs-body-color-secondary); transition: all 0.3s ease; } &:hover { background: rgba(var(--bs-primary-rgb), 0.05); text-decoration: none; color: inherit; img { } span { color: var(--bs-primary); } } &:focus { outline: 2px solid var(--bs-primary); outline-offset: 2px; text-decoration: none; color: inherit; } } // Dark theme support for pub/sub logos [data-bs-theme="dark"] .pubsub-logo-item { &:hover { background: rgba(var(--bs-primary-rgb), 0.1); } } // Responsive adjustments for pub/sub logos @media (max-width: 767.98px) { .pubsub-logos-grid { grid-template-columns: repeat(3, 1fr); gap: 1.5rem; max-width: 100%; } .pubsub-logo-item { padding: 0.75rem; img { width: 50px; height: 50px; margin-bottom: 0.5rem; } span { font-size: 0.8rem; } } } @media (max-width: 575.98px) { .pubsub-logos-grid { grid-template-columns: repeat(2, 1fr); gap: 1rem; } .pubsub-logo-item { img { width: 45px; height: 45px; } span { font-size: 0.75rem; } } } // Homepage code blocks styling .homepage-code-block { .frame { border-radius: 12px !important; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1), 0 2px 4px rgba(0, 0, 0, 0.06) !important; border: 1px solid var(--bs-border-color) !important; overflow: hidden; overflow-x: auto; // Allow horizontal scrolling when needed // Ensure child elements respect the border radius * { border-radius: inherit !important; } // Target the actual code container pre, code, .expressive-code-block { border-radius: 12px !important; border: none !important; } // Target any highlighted code elements .highlight { border-radius: 12px !important; border: none !important; } } } [data-bs-theme="light"] { .homepage-code-block .frame pre, .homepage-code-block .frame code, .homepage-code-block .frame .expressive-code-block { background: white !important; } } // Responsive design for homepage code blocks @media (max-width: 767.98px) { .homepage-code-block { margin-left: -45px; margin-right: -45px; } } // Dark theme support for homepage code blocks [data-bs-theme="dark"] .homepage-code-block { .frame { box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3), 0 2px 4px rgba(0, 0, 0, 0.2) !important; border: 1px solid var(--bs-border-color) !important; } } // Modern gradient text styles .gradient-text-1 { background: linear-gradient(to right, #6366f1, #8b5cf6, #3b82f6); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent; } // Homepage gradient section backgrounds .homepage-section-gradient { position: relative; &::before { content: ''; position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: 100vw; height: 100%; border-top: 1px solid rgba(0, 0, 0, 0.08); pointer-events: none; z-index: -1; } } // Single gradient class for all sections .homepage-section-gradient { &::before { background: linear-gradient(180deg, rgba(79, 70, 229, 0.03) 0%, transparent 100% ); } } // Dark theme adjustments for gradients [data-bs-theme="dark"] { .homepage-section-gradient::before { background: linear-gradient(180deg, rgba(79, 70, 229, 0.06) 0%, transparent 100% ); border-top: 1px solid rgba(255, 255, 255, 0.08); } } [data-bs-theme="dark"], [data-bs-theme="light"] { /* Background */ .bg { color: #c9c9c9; background-color: #282c34; } /* PreWrapper */ .chroma { color: #c9c9c9; background-color: #282c34; } /* Other */ .chroma .x { } /* Error */ .chroma .err { color: #cf5967 } /* CodeLine */ .chroma .cl { } /* LineLink */ .chroma .lnlinks { outline: none; text-decoration: none; color: inherit } /* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; } /* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; } /* LineHighlight */ .chroma .hl { background-color: #3d4148 } /* LineNumbersTable */ .chroma .lnt { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f } /* LineNumbers */ .chroma .ln { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #7f7f7f } /* Line */ .chroma .line { display: flex; } /* Keyword */ .chroma .k { color: #7fbaf5 } /* KeywordConstant */ .chroma .kc { color: #cf5967; } /* KeywordDeclaration */ .chroma .kd { color: #7fbaf5 } /* KeywordNamespace */ .chroma .kn { color: #bc74c4 } /* KeywordPseudo */ .chroma .kp { color: #bc74c4 } /* KeywordReserved */ .chroma .kr { color: #7fbaf5 } /* KeywordType */ .chroma .kt { color: #57c7ff; font-weight: bold } /* Name */ .chroma .n { } /* NameAttribute */ .chroma .na { color: #bc74c4 } /* NameBuiltin */ .chroma .nb { color: #7fbaf5 } /* NameBuiltinPseudo */ .chroma .bp { color: #7fbaf5 } /* NameClass */ .chroma .nc { color: #ecbe7b } /* NameConstant */ .chroma .no { color: #ecbe7b } /* NameDecorator */ .chroma .nd { color: #ecbe7b } /* NameEntity */ .chroma .ni { } /* NameException */ .chroma .ne { color: #cf5967 } /* NameFunction */ .chroma .nf { color: #57c7ff } /* NameFunctionMagic */ .chroma .fm { } /* NameLabel */ .chroma .nl { color: #cf5967 } /* NameNamespace */ .chroma .nn { } /* NameOther */ .chroma .nx { } /* NameProperty */ .chroma .py { } /* NameTag */ .chroma .nt { color: #bc74c4 } /* NameVariable */ .chroma .nv { color: #bc74c4; font-style: italic } /* NameVariableClass */ .chroma .vc { color: #57c7ff; font-weight: bold } /* NameVariableGlobal */ .chroma .vg { color: #ecbe7b } /* NameVariableInstance */ .chroma .vi { color: #57c7ff } /* NameVariableMagic */ .chroma .vm { } /* Literal */ .chroma .l { } /* LiteralDate */ .chroma .ld { color: #57c7ff } /* LiteralString */ .chroma .s { color: #82cc6a } /* LiteralStringAffix */ .chroma .sa { color: #82cc6a } /* LiteralStringBacktick */ .chroma .sb { color: #57c7ff } /* LiteralStringChar */ .chroma .sc { color: #57c7ff } /* LiteralStringDelimiter */ .chroma .dl { color: #82cc6a } /* LiteralStringDoc */ .chroma .sd { color: #82cc6a } /* LiteralStringDouble */ .chroma .s2 { color: #82cc6a } /* LiteralStringEscape */ .chroma .se { color: #56b6c2 } /* LiteralStringHeredoc */ .chroma .sh { color: #56b6c2 } /* LiteralStringInterpol */ .chroma .si { color: #82cc6a } /* LiteralStringOther */ .chroma .sx { color: #82cc6a } /* LiteralStringRegex */ .chroma .sr { color: #57c7ff } /* LiteralStringSingle */ .chroma .s1 { color: #82cc6a } /* LiteralStringSymbol */ .chroma .ss { color: #82cc6a } /* LiteralNumber */ .chroma .m { color: #56b6c2 } /* LiteralNumberBin */ .chroma .mb { color: #57c7ff } /* LiteralNumberFloat */ .chroma .mf { color: #56b6c2 } /* LiteralNumberHex */ .chroma .mh { color: #57c7ff } /* LiteralNumberInteger */ .chroma .mi { color: #56b6c2 } /* LiteralNumberIntegerLong */ .chroma .il { color: #56b6c2 } /* LiteralNumberOct */ .chroma .mo { color: #57c7ff } /* Operator */ .chroma .o { color: #bc74c4 } /* OperatorWord */ .chroma .ow { color: #bc74c4 } /* Punctuation */ .chroma .p { color: #56b6c2 } /* Comment */ .chroma .c { color: #3e4460 } /* CommentHashbang */ .chroma .ch { color: #3e4460; font-style: italic } /* CommentMultiline */ .chroma .cm { color: #3e4460 } /* CommentSingle */ .chroma .c1 { color: #515a84 } /* CommentSpecial */ .chroma .cs { color: #bc74c4; font-style: italic } /* CommentPreproc */ .chroma .cp { color: #7fbaf5 } /* CommentPreprocFile */ .chroma .cpf { color: #7fbaf5 } /* Generic */ .chroma .g { } /* GenericDeleted */ .chroma .gd { color: #cf5967 } /* GenericEmph */ .chroma .ge { text-decoration: underline } /* GenericError */ .chroma .gr { color: #cf5967; font-weight: bold } /* GenericHeading */ .chroma .gh { color: #ecbe7b; font-weight: bold } /* GenericInserted */ .chroma .gi { color: #ecbe7b } /* GenericOutput */ .chroma .go { color: #43454f } /* GenericPrompt */ .chroma .gp { } /* GenericStrong */ .chroma .gs { color: #cf5967; font-weight: bold } /* GenericSubheading */ .chroma .gu { color: #cf5967; font-style: italic } /* GenericTraceback */ .chroma .gt { } /* GenericUnderline */ .chroma .gl { text-decoration: underline } /* TextWhitespace */ .chroma .w { } }