Skip to content

Web 816 - #4624

Merged
yhakbar merged 1 commit into
docs/updating-terragrunt-homepagefrom
WEB-816
Aug 7, 2025
Merged

Web 816#4624
yhakbar merged 1 commit into
docs/updating-terragrunt-homepagefrom
WEB-816

Conversation

@karlcarstensen

@karlcarstensen karlcarstensen commented Aug 6, 2025

Copy link
Copy Markdown
Collaborator

Update border color for secondary buttons

Summary by CodeRabbit

  • New Features

    • Introduced a fully redesigned homepage with a modular layout using custom components for hero, navigation, footer, testimonials, featured brands, and more.
    • Added new testimonial and brand sections, including dynamic carousel and grid displays.
    • Launched multiple reusable UI components such as cards, dividers, icon buttons, and section headers.
    • Implemented a newsletter subscription form with HubSpot integration.
    • Added a PowerShell script for displaying directory trees.
  • Enhancements

    • Responsive and modernized header and navigation bar with improved social links and search functionality.
    • Comprehensive dark and light mode theming, custom fonts, and updated color schemes.
    • Improved page structure for better accessibility and user experience.
  • Chores

    • Removed unused dependencies.
    • Updated TypeScript path aliases for easier asset and style imports.
  • Documentation

    • Added structured data files for brands and testimonials to support new homepage sections.

@vercel

vercel Bot commented Aug 6, 2025

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
terragrunt-docs ✅ Ready (Inspect) Visit Preview 💬 Add feedback Aug 6, 2025 11:21pm

@coderabbitai

coderabbitai Bot commented Aug 6, 2025

Copy link
Copy Markdown
Contributor
📝 Walkthrough

Walkthrough

This change introduces a comprehensive redesign and expansion of the documentation site's landing page. It adds numerous new Astro components for layout, navigation, testimonials, featured brands, and various informational sections. The configuration and content system are updated to support new collections for brands and testimonials, and the global styling is overhauled with new themes, fonts, and utility classes. The main page is restructured to use the new components, and several scripts, assets, and configuration files are updated or added to support the new design and features.

Changes

Cohort / File(s) Change Summary
Landing Page Redesign & Componentization
docs-starlight/src/pages/index.astro, docs-starlight/src/components/dv-Navbar.astro, docs-starlight/src/components/dv-Hero.astro, docs-starlight/src/components/dv-FeaturedBrands.astro, docs-starlight/src/components/dv-OrchestrateSection.astro, docs-starlight/src/components/dv-ConsistencySection.astro, docs-starlight/src/components/dv-DrySection.astro, docs-starlight/src/components/dv-Testimonials.astro, docs-starlight/src/components/dv-PetAdvertise.astro, docs-starlight/src/components/dv-Footer.astro
The landing page is rebuilt using a suite of new custom Astro components for navigation, hero, featured brands, orchestration, consistency, DRY principle, testimonials, pet advertise, and footer. The page structure is now modular and component-driven.
Component Library Additions
docs-starlight/src/components/dv-Card.astro, docs-starlight/src/components/dv-Eyebrow.astro, docs-starlight/src/components/dv-OpenSourceCard.astro, docs-starlight/src/components/dv-IconButton.astro, docs-starlight/src/components/dv-TestimonialCard.astro, docs-starlight/src/components/dv-Divider.astro, docs-starlight/src/components/dv-Terminal.astro
Multiple reusable UI components are introduced, including cards, buttons, testimonial cards, dividers, terminal widgets, and eyebrow labels, each with their own styling and props interfaces.
Header Refactor
docs-starlight/src/components/Header.astro
The header component is completely refactored, replacing the old design and layout with a new structure, updated social links, search, and action buttons, and new styling for responsiveness and modularity.
Content System & Data
docs-starlight/src/content.config.ts, docs-starlight/src/data/brands/brands.json, docs-starlight/src/data/testimonials/testimonials.json
The content configuration is updated to define new "brands" and "testimonials" collections with associated schemas and loaders. Two new JSON files provide the data for these collections.
Styling Overhaul
docs-starlight/src/styles/global.css
The global CSS is extensively rewritten: new font imports, custom color themes for light/dark modes, button styles, scroll animations, and detailed search and testimonial styling are added.
Configuration & Build Adjustments
docs-starlight/astro.config.mjs, docs-starlight/tsconfig.json
The Astro config is updated for environment detection, conditional output/adapter settings, HubSpot script injection, and improved integration configuration. TypeScript config adds new path aliases for assets and styles.
Dependency Cleanup
docs-starlight/package.json
Removes unused dependencies: @zachleat/table-saw and tailwindcss.
Utility Script
docs-starlight/tree-l2.ps1
Adds a PowerShell script to visualize the directory tree up to a specified depth.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant Browser
    participant AstroApp
    participant GitHubAPI
    participant HubSpotAPI

    User->>Browser: Navigate to landing page
    Browser->>AstroApp: Request index.astro
    AstroApp->>AstroApp: Render Navbar, Hero, Sections, Footer
    AstroApp->>GitHubAPI: Fetch star count (Navbar)
    GitHubAPI-->>AstroApp: Return star count or fallback
    AstroApp->>AstroApp: Fetch brands/testimonials from JSON
    AstroApp-->>Browser: Serve rendered HTML/CSS/JS
    Browser->>HubSpotAPI: Submit newsletter form (Footer)
    HubSpotAPI-->>Browser: Return subscription status
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~40 minutes

Possibly related PRs

  • Web 768 #4580: Both PRs modify docs-starlight/astro.config.mjs to add the HubSpot script tag to the head array, though this PR also introduces broader environment detection and conditional config logic.

Suggested reviewers

  • denis256
  • wakeful

Note

⚡️ Unit Test Generation is now available in beta!

Learn more here, or try it out under "Finishing Touches" below.

✨ Finishing Touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch WEB-816

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai generate unit tests to generate unit tests for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 40

🔭 Outside diff range comments (1)
docs-starlight/src/components/Header.astro (1)

20-35: Extract duplicate GitHub stars fetching logic

This code is duplicated from dv-Navbar.astro. Extract it to a shared utility to follow DRY principles and ensure consistent behavior.

Create a new utility file src/utils/github-stars.ts:

// src/utils/github-stars.ts
export async function fetchGitHubStars(): Promise<string> {
  const defaultStars = process.env.GITHUB_STARS || '8.6k';
  
  if (process.env.GITHUB_STARS) {
    return defaultStars;
  }
  
  try {
    const response = await fetch('https://api.github.com/repos/gruntwork-io/terragrunt', {
      headers: {
        'User-Agent': 'Terragrunt-Docs',
        ...(process.env.GITHUB_TOKEN && {
          'Authorization': `token ${process.env.GITHUB_TOKEN}`
        })
      }
    });
    
    if (response.ok) {
      const data = await response.json();
      const stars = data.stargazers_count;
      if (typeof stars === 'number') {
        return (stars / 1000).toFixed(1) + 'k';
      }
    } else if (import.meta.env.DEV) {
      console.error('Failed to fetch GitHub stars:', response.status, await response.text());
    }
  } catch (error) {
    if (import.meta.env.DEV) {
      console.error('Error fetching GitHub stars:', error);
    }
  }
  
  return defaultStars;
}

Then update both components:

+import { fetchGitHubStars } from '@utils/github-stars';
+
-let starCountDisplay = '8.6k';
-
-try {
-	const response = await fetch('https://api.github.com/repos/gruntwork-io/terragrunt');
-	// ... rest of the code
-}
+const starCountDisplay = await fetchGitHubStars();
♻️ Duplicate comments (2)
docs-starlight/src/components/dv-Divider.astro (1)

2-2: Consider optimizing global CSS imports.

Same issue as in dv-Eyebrow.astro - importing global CSS in every component can lead to performance issues and duplicate styles. Consider importing global styles only at the layout or page level.

docs-starlight/src/components/dv-ConsistencySection.astro (1)

27-34: Apply same link styling improvements as suggested in DrySection.

The links in this component have the same accessibility and styling consistency issues identified in the DrySection component.

Consider implementing the utility class approach suggested for the DrySection component to maintain consistency across all documentation links.

🧹 Nitpick comments (25)
docs-starlight/src/components/dv-Eyebrow.astro (1)

2-2: Consider optimizing global CSS imports.

Importing global CSS in every component can lead to performance issues and duplicate styles. Consider importing global styles only at the layout or page level, or use Astro's built-in CSS bundling optimization.

Remove the global CSS import from individual components:

-import '@styles/global.css';

And ensure global styles are imported at the layout level instead.

docs-starlight/src/data/testimonials/testimonials.json (1)

8-9: Consider using null instead of empty strings for missing data.

Many testimonial entries use empty strings for logo and alt fields when no data is available. This could lead to unnecessary conditionals in the consuming components.

Consider using null or omitting these fields entirely when no data is available:

-    "logo": "",
-    "alt": "",
+    "logo": null,
+    "alt": null,

Or simply omit them from entries that don't have logos.

Also applies to: 18-19, 28-29

docs-starlight/src/components/dv-OrchestrateSection.astro (1)

13-19: Consider improving responsive design consistency.

The responsive breakpoints and sizing could be more consistent. The w-1/2 on mobile might cause layout issues.

Consider this adjustment for better mobile experience:

-        <div class="flex w-1/2 flex-col gap-4 md:gap-8 pb-6 md:pl-12">
+        <div class="flex w-full md:w-1/2 flex-col gap-4 md:gap-8 pb-6 md:pl-12">
docs-starlight/src/components/dv-Card.astro (4)

11-11: Consider consolidating border styles for better maintainability.

The border styling uses multiple utility classes that could be consolidated into a custom CSS class for better maintainability and consistency across the design system.

-<div class={`p-6 bg-white border-dashed border border-gray-3 ${customClass}`}>
+<div class={`p-6 bg-white card-border ${customClass}`}>

Add to your global CSS:

.card-border {
  border: 1px dashed theme('colors.gray.3');
}

11-20: Consider using semantic HTML elements for better accessibility.

The component structure is well-implemented with proper conditional rendering and styling. Consider using semantic HTML elements for better accessibility:

-<div class={`p-6 bg-white border-dashed border border-gray-3 ${customClass}`}>
-  <div class="flex flex-col gap-4">
+<article class={`p-6 bg-white border-dashed border border-gray-3 ${customClass}`}>
+  <div class="flex flex-col gap-4">
     {title && (
-      <p class={`font-sans ${titleSize} text-dark-blue-1 font-medium`}>
+      <h3 class={`font-sans ${titleSize} text-dark-blue-1 font-medium`}>
         {title}
-      </p>
+      </h3>
     )}
     <slot />
   </div>
-</div>
+</article>

4-8: Consider adding TypeScript interface for better type safety.

While the destructuring with defaults works, adding a TypeScript interface would improve developer experience and catch potential issues.

+interface Props {
+  title?: string | null;
+  titleSize?: string;
+  class?: string;
+}
+
 const {
   title = null,
   titleSize = "text-xl",
   class: customClass = ""
-} = Astro.props;
+} = Astro.props as Props;

11-11: Improve class concatenation robustness.

The template literal concatenation could fail if customClass is undefined or null, though the default value prevents this. Consider using a more robust approach for consistency.

-<div class={`p-6 bg-white border-dashed border border-gray-3 ${customClass}`}>
+<div class={`p-6 bg-white border-dashed border border-gray-3 ${customClass || ''}`}>
docs-starlight/src/components/dv-Hero.astro (4)

36-36: Consider improving responsive text scaling.

The large text size jump from 42px to 64px might be too dramatic. Consider using more granular responsive scaling.

-            <h1 class="text-[42px] md:text-[64px] text-white leading-12 md:leading-18">The Open Source<br>IaC Orchestrator<br>Platform Teams Trust</h1>
+            <h1 class="text-[42px] sm:text-[48px] md:text-[56px] lg:text-[64px] text-white leading-12 md:leading-18">The Open Source<br>IaC Orchestrator<br>Platform Teams Trust</h1>

5-7: Optimize redundant background image imports.

Both HeroCompleteBackground and MobileHeroBackground are imported from the same SVG file. Consider using a single import to reduce bundle size.

 import HeroCompleteBackground from '@assets/hero-bkgnd.svg';
 import IconLabel from '@components/dv-IconButton.astro';
-import MobileHeroBackground from '@assets/hero-bkgnd.svg';

Then update the mobile image reference:

-src={MobileHeroBackground}
+src={HeroCompleteBackground}

74-78: Clean up commented-out code.

Consider removing commented-out code or converting it to documentation if this feature is planned for the future.

Either remove the commented code entirely or convert it to a proper comment:

-    <!-- Install Widget
-    <div class="hidden md:block absolute bottom-0 md:left-10 lg:left-20 xl:left-40 2xl:left-96 z-20">
-      <Terminal />
-    </div>
-    -->
+    <!-- TODO: Add install widget with Terminal component in future iteration -->

5-7: Duplicate image imports detected.

Both HeroCompleteBackground and MobileHeroBackground import the same SVG file. If they're truly the same, consider using a single import.

 import HeroCompleteBackground from '@assets/hero-bkgnd.svg';
-import MobileHeroBackground from '@assets/hero-bkgnd.svg';

Then update line 16:

-src={MobileHeroBackground}
+src={HeroCompleteBackground}
docs-starlight/src/components/dv-DrySection.astro (1)

20-25: Consider extracting link styling to a utility class.

The complex link styling is repeated across multiple components. Consider creating a utility class for consistency.

Add to global CSS:

.doc-link {
  @apply text-accent-1 border-b-1 border-gray-1/50 hover:cursor-pointer hover:text-accent transition-colors duration-150 ease-in-out;
}

Then simplify usage:

-<a href={includesLink} class="text-accent-1 border-b-1 border-gray-1/50 hover:cursor-pointer hover:text-accent transition .025s ease-in-out">includes</a>
+<a href={includesLink} class="doc-link" aria-label="Learn more about includes feature">includes</a>
docs-starlight/src/components/dv-Footer.astro (3)

149-161: Consider sanitizing form data before submission.

While HubSpot likely handles input sanitization, consider adding client-side validation and sanitization for additional security.

         const data = {
           submittedAt: Date.now(),
           fields: [
             {
               name: "email",
-              value: email,
+              value: email.trim().toLowerCase(),
             },
           ],
           context: {
             pageUri: window.location.href,
             pageName: document.title,
           },
         };

Also consider adding email format validation beyond the HTML5 required attribute.


116-116: Consider loading HubSpot script conditionally.

Loading external scripts can impact performance. Consider loading the HubSpot script only when the user interacts with the form.

Move the script loading inside the event listener and load it dynamically:

// Load HubSpot script only when needed
function loadHubSpotScript() {
  if (window.hbspt) return Promise.resolve();
  
  return new Promise((resolve, reject) => {
    const script = document.createElement('script');
    script.src = 'https://js.hsforms.net/forms/v2.js';
    script.onload = resolve;
    script.onerror = reject;
    document.head.appendChild(script);
  });
}

182-197: Consider using CSS classes for transitions instead of inline styles.

The current DOM manipulation approach works but could be improved for maintainability and performance.

Add CSS classes to your global styles:

.form-fade-out {
  opacity: 0;
  transform: translateY(-10px);
  transition: opacity 0.3s ease, transform 0.3s ease;
}

.success-fade-in {
  opacity: 1;
  transform: translateY(0);
  transition: opacity 0.3s ease, transform 0.3s ease;
}

Then simplify the JavaScript:

-          (customForm as HTMLElement).style.opacity = "0";
-          (customForm as HTMLElement).style.transform = "translateY(-10px)";
+          customForm.classList.add("form-fade-out");

           setTimeout(() => {
             customForm.classList.add("hidden");
             successMessage.classList.remove("hidden");
-            (successMessage as HTMLElement).style.opacity = "0";
-            (successMessage as HTMLElement).style.transform = "translateY(10px)";
-
-            // Trigger reflow
-            (successMessage as HTMLElement).offsetHeight;
-
-            (successMessage as HTMLElement).style.opacity = "1";
-            (successMessage as HTMLElement).style.transform = "translateY(0)";
-            (successMessage as HTMLElement).style.transition = "opacity 0.3s ease, transform 0.3s ease";
+            successMessage.classList.add("success-fade-in");
           }, 200);
docs-starlight/src/pages/index.astro (1)

35-36: Address the FIXME comment about misaligned dotted lines

There's a FIXME comment indicating layout issues between 1024px-1046px viewport widths. This should be resolved before merging.

The Spanish comment translates to: "Between 1024px - 1046px the dotted lines don't align with the section borders". Would you like me to help create a CSS fix for this responsive layout issue?

docs-starlight/src/components/dv-Testimonials.astro (2)

13-13: Fix variable naming inconsistency

The variable name sortedtestimonials should follow camelCase convention as sortedTestimonials.

-const sortedtestimonials = testimonials.sort((a, b) => (a.data.order || 0) - (b.data.order || 0));
+const sortedTestimonials = testimonials.sort((a, b) => (a.data.order || 0) - (b.data.order || 0));

And update all references to use the corrected name.

Also applies to: 42-42, 56-56


42-67: Consider accessibility improvements for animated content

The scrolling testimonials might be difficult for users with motion sensitivity. Consider adding prefers-reduced-motion media query support.

Add to your styles:

@media (prefers-reduced-motion: reduce) {
  .scroll-up, .scroll-down {
    animation: none;
  }
}
docs-starlight/src/components/dv-FeaturedBrands.astro (1)

41-91: Consolidate similar keyframe animations

The multiple keyframe animations for different breakpoints could be simplified using CSS custom properties.

:root {
  --marquee-distance: -172%;
}

@media (min-width: 1024px) {
  :root {
    --marquee-distance: -140%;
  }
}

@media (min-width: 1440px) {
  :root {
    --marquee-distance: -159%;
  }
}

@media (min-width: 1920px) {
  :root {
    --marquee-distance: -112%;
  }
}

@keyframes marquee {
  0% { transform: translateX(0); }
  100% { transform: translateX(var(--marquee-distance)); }
}

.animate-marquee {
  animation: marquee 20s linear infinite;
}
docs-starlight/src/components/dv-PetAdvertise.astro (1)

38-46: Extract duplicate button structure to a component

The icon button structure is duplicated. Consider extracting it to a reusable component.

Create a new component IconButton.astro:

---
export interface Props {
  icon: ImageMetadata;
  alt: string;
}

const { icon, alt } = Astro.props;
---

<div class="secondary-button inline-flex !p-3 w-auto h-auto self-start pointer-events-none">
  <Image
    src={icon}
    alt={alt}
    width={20}
    height={20}
    class="aspect-[1/1] h-auto"
  />
</div>

Then use it in this component to reduce duplication.

Also applies to: 61-69

docs-starlight/src/components/dv-Navbar.astro (1)

37-41: Consider conditional logging for production

Console errors should be conditionally logged based on the environment to avoid exposing internal details in production.

         } else {
-            console.error('Failed to fetch GitHub stars:', response.status, await response.text());
+            if (import.meta.env.DEV) {
+                console.error('Failed to fetch GitHub stars:', response.status, await response.text());
+            }
         }
     }
 } catch (error) {
-    console.error('Error fetching GitHub stars:', error);
+    if (import.meta.env.DEV) {
+        console.error('Error fetching GitHub stars:', error);
+    }
 }
docs-starlight/src/content.config.ts (2)

6-15: Consider extracting file paths to constants

The hardcoded file path could be extracted to a constant for better maintainability.

+const DATA_PATHS = {
+  brands: "src/data/brands/brands.json",
+  testimonials: "src/data/testimonials/testimonials.json"
+} as const;
+
 const brands = defineCollection({
-	loader: file("src/data/brands/brands.json"),
+	loader: file(DATA_PATHS.brands),
 	schema: ({ image }) => z.object({
 		id: z.string(),
 		name: z.string(),
 		logo: image(),
 		alt: z.string(),
 		order: z.number().optional(),
 	}),
 });

73-86: Fix indentation inconsistency

Line 79 uses spaces instead of tabs, breaking consistency with the rest of the file.

 	schema: ({ image }) => z.object({
 		id: z.string(),
 		order: z.number().optional(),
 		author: z.string(),
-    title: z.string().optional(),
-    company: z.string().optional(),
+		title: z.string().optional(),
+		company: z.string().optional(),
 		logo: image().optional(),
 		alt: z.string().optional(),
-    content: z.string(),
-    link: z.string().optional(),
+		content: z.string(),
+		link: z.string().optional(),
 	}),
docs-starlight/src/styles/global.css (1)

291-298: Use standard CSS for width calculation

The -webkit-fill-available value is non-standard and may not work across all browsers.

 input.pagefind-ui__search-input {
   background-color: white;
   border: 1px solid oklch(0.871 0.006 286.286);
   border-radius: 8px;
   max-width: 590px;
   padding-left: 50px;
-  width: -webkit-fill-available;
+  width: 100%;
 }

Or if you need the fill-available behavior, provide fallbacks:

-  width: -webkit-fill-available;
+  width: 100%;
+  width: -moz-available;
+  width: -webkit-fill-available;
+  width: fill-available;
docs-starlight/src/components/dv-ConsistencySection.astro (1)

49-49: Fix typo in content.

There's a duplicate "your" in the text content.

-<p class="text-sm font-sans text-gray-1">Catalog standard infrastructure patterns for reuse across your your organization using the <a href={catalogLink} class="text-accent-1 border-b-1 border-gray-1/50 hover:cursor-pointer hover:text-accent transition .025s ease-in-out">catalog</a> Terminal User Interface (TUI).</p>
+<p class="text-sm font-sans text-gray-1">Catalog standard infrastructure patterns for reuse across your organization using the <a href={catalogLink} class="text-accent-1 border-b-1 border-gray-1/50 hover:cursor-pointer hover:text-accent transition-colors duration-200 ease-in-out">catalog</a> Terminal User Interface (TUI).</p>
📜 Review details

Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between de4052f and cd9e9f3.

⛔ Files ignored due to path filters (34)
  • docs-starlight/bun.lock is excluded by !**/*.lock
  • docs-starlight/public/fonts/GeistMono-VariableFont_wght.ttf is excluded by !**/*.ttf
  • docs-starlight/public/fonts/Inter-Italic-VariableFont_opsz,wght.ttf is excluded by !**/*.ttf
  • docs-starlight/public/fonts/Inter-VariableFont_opsz,wght.ttf is excluded by !**/*.ttf
  • docs-starlight/src/assets/gruntwork-logo.svg is excluded by !**/*.svg
  • docs-starlight/src/assets/headset-icon.svg is excluded by !**/*.svg
  • docs-starlight/src/assets/hero-bg-1440.png is excluded by !**/*.png
  • docs-starlight/src/assets/hero-bg.png is excluded by !**/*.png
  • docs-starlight/src/assets/hero-bkgnd.svg is excluded by !**/*.svg
  • docs-starlight/src/assets/icon-boilerplate.svg is excluded by !**/*.svg
  • docs-starlight/src/assets/icon-circle-arrow.svg is excluded by !**/*.svg
  • docs-starlight/src/assets/icon-cloudnuke.svg is excluded by !**/*.svg
  • docs-starlight/src/assets/icon-gitxargs.svg is excluded by !**/*.svg
  • docs-starlight/src/assets/icon-terratest.svg is excluded by !**/*.svg
  • docs-starlight/src/assets/logo-brand-10.svg is excluded by !**/*.svg
  • docs-starlight/src/assets/logo-brand-11.png is excluded by !**/*.png
  • docs-starlight/src/assets/logo-brand-8.svg is excluded by !**/*.svg
  • docs-starlight/src/assets/logo-brand-9.svg is excluded by !**/*.svg
  • docs-starlight/src/assets/logo-brand-cargurus.svg is excluded by !**/*.svg
  • docs-starlight/src/assets/logo-brand-clari.svg is excluded by !**/*.svg
  • docs-starlight/src/assets/logo-brand-fanatics.svg is excluded by !**/*.svg
  • docs-starlight/src/assets/logo-brand-nelnet.svg is excluded by !**/*.svg
  • docs-starlight/src/assets/logo-brand-opentext.svg is excluded by !**/*.svg
  • docs-starlight/src/assets/logo-brand-toyota.svg is excluded by !**/*.svg
  • docs-starlight/src/assets/logo-brand-vodafone.svg is excluded by !**/*.svg
  • docs-starlight/src/assets/menu-icon.svg is excluded by !**/*.svg
  • docs-starlight/src/assets/opentofu-logo.svg is excluded by !**/*.svg
  • docs-starlight/src/assets/pattern-div.svg is excluded by !**/*.svg
  • docs-starlight/src/assets/pattern-dots-right.svg is excluded by !**/*.svg
  • docs-starlight/src/assets/pattern-dots.png is excluded by !**/*.png
  • docs-starlight/src/assets/pattern-pet-background.svg is excluded by !**/*.svg
  • docs-starlight/src/assets/pet-terragrunt.svg is excluded by !**/*.svg
  • docs-starlight/src/assets/pipelines.svg is excluded by !**/*.svg
  • docs-starlight/src/assets/terraform-logo.svg is excluded by !**/*.svg
📒 Files selected for processing (26)
  • docs-starlight/astro.config.mjs (4 hunks)
  • docs-starlight/package.json (1 hunks)
  • docs-starlight/src/components/Header.astro (2 hunks)
  • docs-starlight/src/components/dv-Card.astro (1 hunks)
  • docs-starlight/src/components/dv-ConsistencySection.astro (1 hunks)
  • docs-starlight/src/components/dv-Divider.astro (1 hunks)
  • docs-starlight/src/components/dv-DrySection.astro (1 hunks)
  • docs-starlight/src/components/dv-Eyebrow.astro (1 hunks)
  • docs-starlight/src/components/dv-FeaturedBrands.astro (1 hunks)
  • docs-starlight/src/components/dv-Footer.astro (1 hunks)
  • docs-starlight/src/components/dv-Hero.astro (1 hunks)
  • docs-starlight/src/components/dv-IconButton.astro (1 hunks)
  • docs-starlight/src/components/dv-Navbar.astro (1 hunks)
  • docs-starlight/src/components/dv-OpenSourceCard.astro (1 hunks)
  • docs-starlight/src/components/dv-OrchestrateSection.astro (1 hunks)
  • docs-starlight/src/components/dv-PetAdvertise.astro (1 hunks)
  • docs-starlight/src/components/dv-Terminal.astro (1 hunks)
  • docs-starlight/src/components/dv-TestimonialCard.astro (1 hunks)
  • docs-starlight/src/components/dv-Testimonials.astro (1 hunks)
  • docs-starlight/src/content.config.ts (3 hunks)
  • docs-starlight/src/data/brands/brands.json (1 hunks)
  • docs-starlight/src/data/testimonials/testimonials.json (1 hunks)
  • docs-starlight/src/pages/index.astro (1 hunks)
  • docs-starlight/src/styles/global.css (1 hunks)
  • docs-starlight/tree-l2.ps1 (1 hunks)
  • docs-starlight/tsconfig.json (1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
docs-starlight/**/*.astro

⚙️ CodeRabbit Configuration File

Review the Astro code in the docs-starlight directory for quality and correctness. Make sure that the Astro code follows best practices and is easy to understand, maintain, and follows best practices. When possible, suggest improvements to the Astro code to make it better.

Files:

  • docs-starlight/src/components/dv-Eyebrow.astro
  • docs-starlight/src/components/dv-Divider.astro
  • docs-starlight/src/components/dv-OrchestrateSection.astro
  • docs-starlight/src/components/dv-IconButton.astro
  • docs-starlight/src/components/dv-OpenSourceCard.astro
  • docs-starlight/src/components/dv-TestimonialCard.astro
  • docs-starlight/src/components/dv-Testimonials.astro
  • docs-starlight/src/components/dv-Footer.astro
  • docs-starlight/src/components/dv-Hero.astro
  • docs-starlight/src/pages/index.astro
  • docs-starlight/src/components/dv-ConsistencySection.astro
  • docs-starlight/src/components/dv-DrySection.astro
  • docs-starlight/src/components/dv-Card.astro
  • docs-starlight/src/components/dv-PetAdvertise.astro
  • docs-starlight/src/components/dv-Navbar.astro
  • docs-starlight/src/components/dv-Terminal.astro
  • docs-starlight/src/components/dv-FeaturedBrands.astro
  • docs-starlight/src/components/Header.astro
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (18)
  • GitHub Check: Test (Fixtures with Latest Terraform)
  • GitHub Check: Test (SOPS)
  • GitHub Check: Test (Tflint)
  • GitHub Check: Test (Fixtures with OpenTofu)
  • GitHub Check: Build (windows/386)
  • GitHub Check: Test (ubuntu)
  • GitHub Check: lint
  • GitHub Check: Test (macos)
  • GitHub Check: Build (linux/amd64)
  • GitHub Check: lint
  • GitHub Check: Build (windows/amd64)
  • GitHub Check: Build (darwin/amd64)
  • GitHub Check: Build (linux/arm64)
  • GitHub Check: Test OIDC (GHA AWS)
  • GitHub Check: License Check
  • GitHub Check: Build (windows/386)
  • GitHub Check: Build (linux/386)
  • GitHub Check: Build (darwin/arm64)
🔇 Additional comments (42)
docs-starlight/tree-l2.ps1 (6)

1-4: LGTM!

The parameter definitions are well-structured with sensible defaults.


6-12: LGTM!

The function parameters are well-defined and appropriately typed.


14-14: LGTM!

Essential recursion termination condition implemented correctly.


16-16: LGTM!

Appropriate use of Get-ChildItem with proper filtering and sorting.


18-21: LGTM!

The recursive tree traversal logic is implemented correctly with proper prefix management for tree visualization.


24-25: LGTM for the implementation, but flag inconsistency with PR objectives.

The main execution logic is correct and well-implemented. However, there's a significant inconsistency between the stated PR objectives ("updating border color for secondary buttons") and this PowerShell utility script for displaying directory trees.

Likely an incorrect or invalid review comment.

docs-starlight/package.json (1)

1-33: Inconsistency between PR objectives and actual changes detected.

The PR objectives state this is a simple "border color update for secondary buttons," but the AI summary and file changes suggest a comprehensive redesign with dependency removals and major structural changes. This significant mismatch needs clarification.

Please verify the actual scope of this PR by checking the git diff:

#!/bin/bash
# Description: Check the actual changes in package.json to verify scope
# Expected: Should show if this is really just a border color change or a major redesign

git diff HEAD~1 docs-starlight/package.json

Likely an incorrect or invalid review comment.

docs-starlight/tsconfig.json (1)

13-15: LGTM! Path aliases follow established patterns.

The new @assets/* and @styles/* path aliases are well-structured and consistent with the existing @components/* and @lib/* mappings. This provides convenient module resolution for the new assets and styles directories.

Also applies to: 22-24

docs-starlight/src/components/dv-Eyebrow.astro (1)

3-8: LGTM! Well-structured component with proper prop handling.

The component follows Astro best practices with proper prop destructuring, default values, and semantic HTML structure. The utility classes provide appropriate styling for an eyebrow text element.

docs-starlight/src/data/brands/brands.json (1)

1-51: LGTM! All brand data is consistent and assets verified
The JSON entries use a clean, uniform schema, with order fields for flexible sorting and meaningful alt text for accessibility. All referenced logo files in docs-starlight/src/assets have been confirmed present—no further action needed.

docs-starlight/src/components/dv-Divider.astro (1)

7-13: LGTM! Proper use of Astro Image component with good styling.

The component correctly uses Astro's Image component with appropriate styling for a decorative divider. The empty alt attribute is correct for decorative images, and the CSS classes provide proper positioning and sizing.

docs-starlight/src/components/dv-IconButton.astro (1)

1-14: Component structure looks good with proper TypeScript interface.

The props interface is well-defined and the eager loading option is a nice performance consideration.

docs-starlight/src/components/dv-OpenSourceCard.astro (1)

8-30: Excellent accessibility and security implementation.

The component properly implements:

  • External link security with rel="noopener noreferrer"
  • Descriptive aria-label
  • Smooth hover transitions
  • Semantic HTML structure

The hover effects and visual feedback are well-executed.

docs-starlight/src/data/testimonials/testimonials.json (1)

40-40: Review testimonial length for UI consistency.

Some testimonials are significantly longer than others (e.g., entries 4 and 7 have very long content). This might cause layout issues in the UI component that displays them.

Consider reviewing the dv-TestimonialCard.astro component to ensure it handles varying content lengths gracefully, or consider editing longer testimonials for consistency.

Also applies to: 71-71

docs-starlight/src/components/dv-TestimonialCard.astro (2)

17-23: Well-implemented theme system.

The theme-based styling with clear variable names and conditional classes is well-organized and maintainable.


28-34: Good conditional rendering for optional logo.

The logo conditional rendering properly handles the optional nature of the logo prop and provides a sensible fallback for the alt text.

docs-starlight/src/components/dv-OrchestrateSection.astro (3)

8-11: Good use of constants for link management.

Defining link constants at the top makes them easy to maintain and update.


22-37: Well-structured content with good accessibility.

The use of semantic HTML, proper link styling with hover states, and modular component composition creates a maintainable and accessible section.


1-40: Inconsistency with PR objectives.

The PR objectives mention updating "border color for secondary buttons" but this file and others represent a comprehensive landing page redesign with new components and layout. This suggests the PR description may not accurately reflect the scope of changes.

Likely an incorrect or invalid review comment.

docs-starlight/src/components/dv-Card.astro (4)

4-8: LGTM: Clean prop destructuring with good defaults.

The prop destructuring follows Astro best practices with sensible defaults. Renaming class to customClass avoids the reserved word conflict.


13-17: Good conditional rendering pattern.

The conditional title rendering is well-implemented and follows Astro best practices for optional content.


1-9: LGTM! Well-structured component props.

The frontmatter section properly imports global styles and defines props with sensible defaults. Renaming class to customClass is a good practice to avoid conflicts with the reserved keyword.


1-9: Inconsistent with PR objectives but well-structured component.

The PR objectives mention updating border color for secondary buttons, but this introduces a comprehensive new card component. The component itself is well-structured with proper prop destructuring and defaults.

Likely an incorrect or invalid review comment.

docs-starlight/src/components/dv-Hero.astro (3)

15-22: LGTM: Proper image optimization for hero background.

Good use of the Astro Image component with eager loading and proper responsive attributes for the mobile hero background.


15-32: LGTM! Excellent responsive background image implementation.

The background images are properly implemented with:

  • Appropriate responsive visibility controls
  • Eager loading for above-the-fold content
  • Good accessibility with descriptive alt text
  • Proper z-index layering for visual hierarchy

15-32: LGTM on image optimization.

Good use of Astro's Image component with proper alt text, eager loading for above-the-fold content, and responsive image handling.

docs-starlight/src/components/dv-DrySection.astro (3)

7-8: LGTM: Clean constant definitions.

Good practice to define links as constants for maintainability and reusability.


1-17: LGTM! Excellent component structure and organization.

The component demonstrates good practices with:

  • Clean imports and dependency management
  • Link constants for maintainability
  • Proper semantic HTML structure
  • Well-implemented responsive design

11-28: LGTM on component structure and responsive design.

The component follows good practices with proper semantic HTML, responsive design, and clean component composition using Card and Eyebrow components.

docs-starlight/src/components/dv-ConsistencySection.astro (5)

10-14: LGTM: Well-organized link constants.

Good practice to define all documentation links as constants for maintainability.


39-44: LGTM: Good use of decorative image with proper accessibility.

The decorative SVG is properly hidden on mobile and includes appropriate alt text. The responsive display pattern is well-implemented.


1-23: LGTM! Well-organized component structure.

The component structure is excellent with proper imports, maintainable link constants, and good semantic HTML organization.


48-53: Verify flex classes and border utilities.

Similar to the previous cards, flex-1/2 and border-b-1 should be verified as valid Tailwind classes.

Use the same verification approach as suggested earlier. Consider using standard Tailwind classes if these are not defined in your configuration.


17-56: LGTM on component structure and layout.

The component has a well-organized structure with proper responsive design, semantic HTML, and good use of the Card component for consistent UI elements.

docs-starlight/src/components/dv-Footer.astro (3)

21-31: LGTM: Well-structured accessible form.

The newsletter form has good accessibility features including proper labeling, ARIA attributes, and semantic HTML structure.


21-56: LGTM! Well-implemented newsletter form with good accessibility.

The newsletter form demonstrates excellent practices with:

  • Proper accessibility attributes (sr-only label, aria-describedby, aria-label)
  • Form validation with required attribute
  • Loading and success states
  • Responsive design

The data attributes for HubSpot integration are properly structured for the API submission.


21-49: LGTM on form accessibility and structure.

The form has proper accessibility attributes, semantic HTML, loading states, and a well-structured button design.

docs-starlight/src/pages/index.astro (1)

1-51: PR scope discrepancy

The PR objective states "updating the border color for secondary buttons", but this file shows a complete restructuring of the index page with new components and layout. This seems to be a much larger change than described.

Please verify that the PR title and description accurately reflect the scope of changes, or consider splitting this into smaller, focused PRs.

docs-starlight/astro.config.mjs (1)

11-13: LGTM! Clean environment detection

Good use of optional chaining for safe environment variable access.

docs-starlight/src/components/dv-Navbar.astro (1)

157-171: Well-structured responsive design

Good use of media queries for responsive menu icon visibility and button padding adjustments.

docs-starlight/src/styles/global.css (2)

150-162: Secondary button border color properly implemented

The secondary button border color is set to var(--color-gray-2) (#6B6C7A), which aligns with the PR objective of updating the border color for secondary buttons. Good use of CSS variables for maintainability.


7-29: Excellent font loading implementation

Good use of variable fonts and font-display: swap for better performance and reduced CLS (Cumulative Layout Shift).

Comment on lines +108 to +117
{
tag: 'script',
attrs: {
type: 'text/javascript',
id: 'hs-script-loader',
async: true,
defer: true,
src: '//js.hs-scripts.com/8376079.js',
},
},

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

⚠️ Potential issue

Add subresource integrity (SRI) for external script

Loading third-party scripts without integrity checks poses security risks. Consider adding an integrity attribute with an SRI hash to protect against CDN compromises.

      {
        tag: 'script',
        attrs: {
          type: 'text/javascript',
          id: 'hs-script-loader',
          async: true,
          defer: true,
          src: '//js.hs-scripts.com/8376079.js',
+         integrity: 'sha384-[HASH]',
+         crossorigin: 'anonymous',
        },
      },

Additionally, consider using a protocol-relative URL or explicit HTTPS:

-         src: '//js.hs-scripts.com/8376079.js',
+         src: 'https://js.hs-scripts.com/8376079.js',
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
{
tag: 'script',
attrs: {
type: 'text/javascript',
id: 'hs-script-loader',
async: true,
defer: true,
src: '//js.hs-scripts.com/8376079.js',
},
},
{
tag: 'script',
attrs: {
type: 'text/javascript',
id: 'hs-script-loader',
async: true,
defer: true,
src: 'https://js.hs-scripts.com/8376079.js',
integrity: 'sha384-[HASH]',
crossorigin: 'anonymous',
},
},
🤖 Prompt for AI Agents
In docs-starlight/astro.config.mjs around lines 108 to 117, the external script
tag lacks a subresource integrity (SRI) attribute and uses a protocol-relative
URL. To fix this, add an integrity attribute with the correct SRI hash for the
script to ensure security against CDN compromises, and update the src URL to use
explicit HTTPS instead of a protocol-relative URL.

Comment on lines +26 to +34
<Card title="Automate Using Hooks" titleSize="text-md" class="flex-1/3">
<p class="text-sm font-sans text-gray-1">Don’t pretend you’ll always remember to do things before/after updating IaC. Codify those tasks with <a href={hooksLink} class="text-accent-1 border-b-1 border-gray-1/50 hover:cursor-pointer hover:text-accent transition .025s ease-in-out">hooks</a> so that they’re done automatically.</p>
</Card>
<Card title="Handle Expected Errors" titleSize="text-md" class="flex-1/3">
<p class="text-sm font-sans text-gray-1">You know networks can be flaky, and cloud providers aren’t perfect. Automatically handle the errors they produce using built-in <a href={errorHandlingLink} class="text-accent-1 border-b-1 border-gray-1/50 hover:cursor-pointer hover:text-accent transition .025s ease-in-out">error handling</a>.</p>
</Card>
<Card title="Integrate Early and Often" titleSize="text-md" class="flex-1/3">
<p class="text-sm font-sans text-gray-1">Get you and your teammates on the same page. Work on a consistent, unified codebase, but gradually roll out new infrastructure features using <a href={featureFlagsLink} class="text-accent-1 border-b-1 border-gray-1/50 hover:cursor-pointer hover:text-accent transition .025s ease-in-out">feature flags</a>.</p>
</Card>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Verification agent

🧩 Analysis chain

Verify Tailwind flex classes.

The flex-1/3 class might not be a standard Tailwind class. Consider using standard Tailwind flex utilities.

If not defined, consider using standard Tailwind classes:

-<Card title="Automate Using Hooks" titleSize="text-md" class="flex-1/3">
+<Card title="Automate Using Hooks" titleSize="text-md" class="flex-1">

🏁 Script executed:

#!/bin/bash
# Check if flex-1/3 is defined in the project's Tailwind configuration
rg "flex-1/3" --type css
rg "flex-1/3" --type js
rg "flex-1/3" --type ts

Length of output: 72


🏁 Script executed:

#!/bin/bash
# Locate Tailwind configuration files and check for custom flex definitions
configs=$(fd 'tailwind.config.*' -t f)
if [ -z "$configs" ]; then
  echo "No tailwind.config.* files found"
  exit 0
fi

for cfg in $configs; do
  echo "=== $cfg ==="
  echo "Searching for 'flex-1/3' in config:"
  rg "flex-1/3" -n "$cfg" || echo "  No 'flex-1/3' found"
  echo "Searching for theme.extend.flex settings:"
  rg "extend.*flex" -n "$cfg" || echo "  No flex extensions under theme.extend"
  echo "Searching for plugin registrations:"
  rg "plugin" -n "$cfg" || echo "  No plugin references"
  echo
done

Length of output: 141


Invalid Tailwind class flex-1/3 – replace with a valid utility

The class flex-1/3 isn’t defined in your Tailwind setup (no custom tailwind.config.* found). To size each card to one-third of the container, use one of the built-in utilities:

basis-1/3 (sets flex-basis: 33.333%)
w-1/3 (sets width: 33.333%)
flex-1 (if you simply want equal distribution without a fixed third)

Please update the Card components in docs-starlight/src/components/dv-ConsistencySection.astro (lines 26–34), for example:

- <Card title="Automate Using Hooks" titleSize="text-md" class="flex-1/3">
+ <Card title="Automate Using Hooks" titleSize="text-md" class="basis-1/3">

Repeat for the other two <Card> elements.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
<Card title="Automate Using Hooks" titleSize="text-md" class="flex-1/3">
<p class="text-sm font-sans text-gray-1">Don’t pretend you’ll always remember to do things before/after updating IaC. Codify those tasks with <a href={hooksLink} class="text-accent-1 border-b-1 border-gray-1/50 hover:cursor-pointer hover:text-accent transition .025s ease-in-out">hooks</a> so that they’re done automatically.</p>
</Card>
<Card title="Handle Expected Errors" titleSize="text-md" class="flex-1/3">
<p class="text-sm font-sans text-gray-1">You know networks can be flaky, and cloud providers aren’t perfect. Automatically handle the errors they produce using built-in <a href={errorHandlingLink} class="text-accent-1 border-b-1 border-gray-1/50 hover:cursor-pointer hover:text-accent transition .025s ease-in-out">error handling</a>.</p>
</Card>
<Card title="Integrate Early and Often" titleSize="text-md" class="flex-1/3">
<p class="text-sm font-sans text-gray-1">Get you and your teammates on the same page. Work on a consistent, unified codebase, but gradually roll out new infrastructure features using <a href={featureFlagsLink} class="text-accent-1 border-b-1 border-gray-1/50 hover:cursor-pointer hover:text-accent transition .025s ease-in-out">feature flags</a>.</p>
</Card>
<Card title="Automate Using Hooks" titleSize="text-md" class="basis-1/3">
<p class="text-sm font-sans text-gray-1">Don’t pretend you’ll always remember to do things before/after updating IaC. Codify those tasks with <a href={hooksLink} class="text-accent-1 border-b-1 border-gray-1/50 hover:cursor-pointer hover:text-accent transition .025s ease-in-out">hooks</a> so that they’re done automatically.</p>
</Card>
<Card title="Handle Expected Errors" titleSize="text-md" class="flex-1/3">
<p class="text-sm font-sans text-gray-1">You know networks can be flaky, and cloud providers aren’t perfect. Automatically handle the errors they produce using built-in <a href={errorHandlingLink} class="text-accent-1 border-b-1 border-gray-1/50 hover:cursor-pointer hover:text-accent transition .025s ease-in-out">error handling</a>.</p>
</Card>
<Card title="Integrate Early and Often" titleSize="text-md" class="flex-1/3">
<p class="text-sm font-sans text-gray-1">Get you and your teammates on the same page. Work on a consistent, unified codebase, but gradually roll out new infrastructure features using <a href={featureFlagsLink} class="text-accent-1 border-b-1 border-gray-1/50 hover:cursor-pointer hover:text-accent transition .025s ease-in-out">feature flags</a>.</p>
</Card>
🤖 Prompt for AI Agents
In docs-starlight/src/components/dv-ConsistencySection.astro around lines 26 to
34, the class "flex-1/3" used on the Card components is not a valid Tailwind CSS
utility. Replace "flex-1/3" with a valid class such as "basis-1/3" or "w-1/3" to
correctly size each Card to one-third of the container. Apply this change
consistently to all three Card elements in this section.

Comment on lines +27 to +33
<p class="text-sm font-sans text-gray-1">Don’t pretend you’ll always remember to do things before/after updating IaC. Codify those tasks with <a href={hooksLink} class="text-accent-1 border-b-1 border-gray-1/50 hover:cursor-pointer hover:text-accent transition .025s ease-in-out">hooks</a> so that they’re done automatically.</p>
</Card>
<Card title="Handle Expected Errors" titleSize="text-md" class="flex-1/3">
<p class="text-sm font-sans text-gray-1">You know networks can be flaky, and cloud providers aren’t perfect. Automatically handle the errors they produce using built-in <a href={errorHandlingLink} class="text-accent-1 border-b-1 border-gray-1/50 hover:cursor-pointer hover:text-accent transition .025s ease-in-out">error handling</a>.</p>
</Card>
<Card title="Integrate Early and Often" titleSize="text-md" class="flex-1/3">
<p class="text-sm font-sans text-gray-1">Get you and your teammates on the same page. Work on a consistent, unified codebase, but gradually roll out new infrastructure features using <a href={featureFlagsLink} class="text-accent-1 border-b-1 border-gray-1/50 hover:cursor-pointer hover:text-accent transition .025s ease-in-out">feature flags</a>.</p>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Fix invalid CSS transition syntax in multiple locations.

All the transition classes have invalid syntax. Replace .025s with 0.025s or use Tailwind's duration utilities.

-<p class="text-sm font-sans text-gray-1">Don't pretend you'll always remember to do things before/after updating IaC. Codify those tasks with <a href={hooksLink} class="text-accent-1 border-b-1 border-gray-1/50 hover:cursor-pointer hover:text-accent transition .025s ease-in-out">hooks</a> so that they're done automatically.</p>
+<p class="text-sm font-sans text-gray-1">Don't pretend you'll always remember to do things before/after updating IaC. Codify those tasks with <a href={hooksLink} class="text-accent-1 border-b-1 border-gray-1/50 hover:cursor-pointer hover:text-accent transition-colors duration-200 ease-in-out">hooks</a> so that they're done automatically.</p>

Apply similar fixes to lines 30 and 33.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
<p class="text-sm font-sans text-gray-1">Don’t pretend you’ll always remember to do things before/after updating IaC. Codify those tasks with <a href={hooksLink} class="text-accent-1 border-b-1 border-gray-1/50 hover:cursor-pointer hover:text-accent transition .025s ease-in-out">hooks</a> so that they’re done automatically.</p>
</Card>
<Card title="Handle Expected Errors" titleSize="text-md" class="flex-1/3">
<p class="text-sm font-sans text-gray-1">You know networks can be flaky, and cloud providers aren’t perfect. Automatically handle the errors they produce using built-in <a href={errorHandlingLink} class="text-accent-1 border-b-1 border-gray-1/50 hover:cursor-pointer hover:text-accent transition .025s ease-in-out">error handling</a>.</p>
</Card>
<Card title="Integrate Early and Often" titleSize="text-md" class="flex-1/3">
<p class="text-sm font-sans text-gray-1">Get you and your teammates on the same page. Work on a consistent, unified codebase, but gradually roll out new infrastructure features using <a href={featureFlagsLink} class="text-accent-1 border-b-1 border-gray-1/50 hover:cursor-pointer hover:text-accent transition .025s ease-in-out">feature flags</a>.</p>
<p class="text-sm font-sans text-gray-1">Don’t pretend you’ll always remember to do things before/after updating IaC. Codify those tasks with <a href={hooksLink} class="text-accent-1 border-b-1 border-gray-1/50 hover:cursor-pointer hover:text-accent transition-colors duration-200 ease-in-out">hooks</a> so that they’re done automatically.</p>
</Card>
<Card title="Handle Expected Errors" titleSize="text-md" class="flex-1/3">
<p class="text-sm font-sans text-gray-1">You know networks can be flaky, and cloud providers aren’t perfect. Automatically handle the errors they produce using built-in <a href={errorHandlingLink} class="text-accent-1 border-b-1 border-gray-1/50 hover:cursor-pointer hover:text-accent transition .025s ease-in-out">error handling</a>.</p>
</Card>
<Card title="Integrate Early and Often" titleSize="text-md" class="flex-1/3">
<p class="text-sm font-sans text-gray-1">Get you and your teammates on the same page. Work on a consistent, unified codebase, but gradually roll out new infrastructure features using <a href={featureFlagsLink} class="text-accent-1 border-b-1 border-gray-1/50 hover:cursor-pointer hover:text-accent transition .025s ease-in-out">feature flags</a>.</p>
🤖 Prompt for AI Agents
In docs-starlight/src/components/dv-ConsistencySection.astro around lines 27 to
33, the CSS transition duration syntax uses ".025s" which is invalid. Replace
all instances of ".025s" with "0.025s" in the transition class strings or
alternatively use Tailwind's built-in duration utilities like "duration-25" to
fix the syntax. Apply this fix consistently on lines 27, 30, and 33.

<!-- Content Wrapper -->
<div class="flex flex-col lg:flex-row md:px-6">
<Card title="Leverage a Proven Infrastructure Catalog" titleSize="text-md" class="flex-1/2">
<p class="text-sm font-sans text-gray-1">Catalog standard infrastructure patterns for reuse across your your organization using the <a href={catalogLink} class="text-accent-1 border-b-1 border-gray-1/50 hover:cursor-pointer hover:text-accent transition .025s ease-in-out">catalog</a> Terminal User Interface (TUI).</p>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Fix typo in content text.

There's a repeated word "your" in the text content.

-                <p class="text-sm font-sans text-gray-1">Catalog standard infrastructure patterns for reuse across your your organization using the <a href={catalogLink} class="text-accent-1 border-b-1 border-gray-1/50 hover:cursor-pointer hover:text-accent transition .025s ease-in-out">catalog</a> Terminal User Interface (TUI).</p>
+                <p class="text-sm font-sans text-gray-1">Catalog standard infrastructure patterns for reuse across your organization using the <a href={catalogLink} class="text-accent-1 border-b-1 border-gray-1/50 hover:cursor-pointer hover:text-accent transition .025s ease-in-out">catalog</a> Terminal User Interface (TUI).</p>
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
<p class="text-sm font-sans text-gray-1">Catalog standard infrastructure patterns for reuse across your your organization using the <a href={catalogLink} class="text-accent-1 border-b-1 border-gray-1/50 hover:cursor-pointer hover:text-accent transition .025s ease-in-out">catalog</a> Terminal User Interface (TUI).</p>
<p class="text-sm font-sans text-gray-1">Catalog standard infrastructure patterns for reuse across your organization using the <a href={catalogLink} class="text-accent-1 border-b-1 border-gray-1/50 hover:cursor-pointer hover:text-accent transition .025s ease-in-out">catalog</a> Terminal User Interface (TUI).</p>
🤖 Prompt for AI Agents
In docs-starlight/src/components/dv-ConsistencySection.astro at line 49, there
is a repeated word "your" in the paragraph text. Remove the duplicate "your" so
the sentence reads correctly without repetition.

⚠️ Potential issue

Fix typo in card content.

There's a repeated word in the card text.

-<p class="text-sm font-sans text-gray-1">Catalog standard infrastructure patterns for reuse across your your organization using the <a href={catalogLink} class="text-accent-1 border-b-1 border-gray-1/50 hover:cursor-pointer hover:text-accent transition .025s ease-in-out">catalog</a> Terminal User Interface (TUI).</p>
+<p class="text-sm font-sans text-gray-1">Catalog standard infrastructure patterns for reuse across your organization using the <a href={catalogLink} class="text-accent-1 border-b-1 border-gray-1/50 hover:cursor-pointer hover:text-accent transition .025s ease-in-out">catalog</a> Terminal User Interface (TUI).</p>
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
<p class="text-sm font-sans text-gray-1">Catalog standard infrastructure patterns for reuse across your your organization using the <a href={catalogLink} class="text-accent-1 border-b-1 border-gray-1/50 hover:cursor-pointer hover:text-accent transition .025s ease-in-out">catalog</a> Terminal User Interface (TUI).</p>
<p class="text-sm font-sans text-gray-1">Catalog standard infrastructure patterns for reuse across your organization using the <a href={catalogLink} class="text-accent-1 border-b-1 border-gray-1/50 hover:cursor-pointer hover:text-accent transition .025s ease-in-out">catalog</a> Terminal User Interface (TUI).</p>
🤖 Prompt for AI Agents
In docs-starlight/src/components/dv-ConsistencySection.astro at line 49, there
is a repeated word "your" in the paragraph text. Remove the duplicate so the
phrase reads "reuse across your organization" instead of "reuse across your your
organization."

Comment on lines +20 to +22
<Card class="flex-1 border-solid border-4 rounded-lg !border-[#F1F1F1] shadow-[0_0_0_2px_white]" title="Reuse Common Infrastructure Configurations">
<p class="text-sm font-sans text-gray-1">Define reusable infrastructure configurations, like module inputs, backend configurations, and providers once, then reference them wherever they’re needed using <a href={includesLink} class="text-accent-1 border-b-1 border-gray-1/50 hover:cursor-pointer hover:text-accent transition .025s ease-in-out">includes</a>.</p>
</Card>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Improve link accessibility and fix transition timing.

The links have good hover styling but could benefit from better accessibility attributes and consistent transition timing.

-                <p class="text-sm font-sans text-gray-1">Define reusable infrastructure configurations, like module inputs, backend configurations, and providers once, then reference them wherever they're needed using <a href={includesLink} class="text-accent-1 border-b-1 border-gray-1/50 hover:cursor-pointer hover:text-accent transition .025s ease-in-out">includes</a>.</p>
+                <p class="text-sm font-sans text-gray-1">Define reusable infrastructure configurations, like module inputs, backend configurations, and providers once, then reference them wherever they're needed using <a href={includesLink} class="text-accent-1 border-b-1 border-gray-1/50 hover:cursor-pointer hover:text-accent transition-colors duration-150 ease-in-out" aria-label="Learn more about includes feature">includes</a>.</p>

Apply similar fixes to the link on line 24.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
<Card class="flex-1 border-solid border-4 rounded-lg !border-[#F1F1F1] shadow-[0_0_0_2px_white]" title="Reuse Common Infrastructure Configurations">
<p class="text-sm font-sans text-gray-1">Define reusable infrastructure configurations, like module inputs, backend configurations, and providers once, then reference them wherever they’re needed using <a href={includesLink} class="text-accent-1 border-b-1 border-gray-1/50 hover:cursor-pointer hover:text-accent transition .025s ease-in-out">includes</a>.</p>
</Card>
<Card class="flex-1 border-solid border-4 rounded-lg !border-[#F1F1F1] shadow-[0_0_0_2px_white]" title="Reuse Common Infrastructure Configurations">
<p class="text-sm font-sans text-gray-1">
Define reusable infrastructure configurations, like module inputs, backend configurations, and providers once, then reference them wherever they’re needed using
<a
href={includesLink}
class="text-accent-1 border-b-1 border-gray-1/50 hover:cursor-pointer hover:text-accent transition-colors duration-150 ease-in-out"
aria-label="Learn more about includes feature"
>
includes
</a>.
</p>
</Card>
🤖 Prompt for AI Agents
In docs-starlight/src/components/dv-DrySection.astro around lines 20 to 22,
improve the accessibility of the anchor tag by adding appropriate attributes
such as aria-label or role if needed, and fix the CSS transition timing by
correcting the transition duration from ".025s" to a standard value like
"0.25s". Also, apply the same accessibility and transition timing fixes to the
similar link on line 24 to ensure consistency.

Comment on lines +5 to +15
const {
author,
title,
company,
alt,
class: customClass = "",
content,
job,
logo,
theme = "light"
} = Astro.props;

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Add TypeScript interface for better type safety.

The component has complex props but lacks a TypeScript interface definition.

Add this interface at the top of the frontmatter:

 ---
 import '@styles/global.css';
 import { Image } from 'astro:assets';
+
+interface Props {
+  author: string;
+  title: string;
+  company?: string;
+  alt?: string;
+  class?: string;
+  content: string;
+  job?: string;
+  logo?: ImageMetadata;
+  theme?: "light" | "dark";
+}
 
 const {
   author,
   title,
   company,
   alt,
   class: customClass = "",
   content,
   job,
   logo,
   theme = "light"
-} = Astro.props;
+} = Astro.props as Props;
 ---

Committable suggestion skipped: line range outside the PR's diff.

🤖 Prompt for AI Agents
In docs-starlight/src/components/dv-TestimonialCard.astro around lines 5 to 15,
the component destructures multiple props but lacks a TypeScript interface for
type safety. Define a TypeScript interface describing all the expected props
with their types at the top of the frontmatter section. Then, annotate
Astro.props with this interface to ensure proper type checking and improve code
maintainability.

Comment on lines +17 to +20
import LogoBrand8 from '@assets/logo-brand-8.svg';
import LogoBrand9 from '@assets/logo-brand-9.svg';
import LogoBrand10 from '@assets/logo-brand-10.svg';
import LogoBrand11 from '@assets/logo-brand-11.png';

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Remove unused logo imports

These logo imports are not used anywhere in the component.

 import TestimonialCard from '@components/dv-TestimonialCard.astro';
-
-import LogoBrand8 from '@assets/logo-brand-8.svg';
-import LogoBrand9 from '@assets/logo-brand-9.svg';
-import LogoBrand10 from '@assets/logo-brand-10.svg';
-import LogoBrand11 from '@assets/logo-brand-11.png';
 ---
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
import LogoBrand8 from '@assets/logo-brand-8.svg';
import LogoBrand9 from '@assets/logo-brand-9.svg';
import LogoBrand10 from '@assets/logo-brand-10.svg';
import LogoBrand11 from '@assets/logo-brand-11.png';
import TestimonialCard from '@components/dv-TestimonialCard.astro';
🤖 Prompt for AI Agents
In docs-starlight/src/components/dv-Testimonials.astro around lines 17 to 20,
the imports for LogoBrand8, LogoBrand9, LogoBrand10, and LogoBrand11 are not
used anywhere in the component. Remove these unused import statements to clean
up the code and avoid unnecessary dependencies.

Comment on lines +80 to 92
<a href="#" class="hidden md:flex secondary-button h-[43px]">
Automate your pipeline
</a>
</div>
<div class="sl-flex social-icons">
<a href="https://www.gruntwork.io/services/terragrunt" class="support-btn">
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="currentColor" style="margin-right: 0.5rem;">
<path d="M12 1a9 9 0 0 0-9 9v7c0 1.66 1.34 3 3 3h3v-8H5v-2c0-3.87 3.13-7 7-7s7 3.13 7 7v2h-4v8h4v1h-7v2h6c1.66 0 3-1.34 3-3V10a9 9 0 0 0-9-9z"/>
</svg>
<a href="#" class="flex md:hidden secondary-button !p-3">
<Image
src={PipelineIcon}
alt="Pipeline Icon"
width={20}
height={20}
/>
</a>
<a href="#" class="hidden md:flex primary-button h-[43px]">
Support

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Replace placeholder hrefs with actual links

The anchor tags have placeholder href="#" values that should point to actual destinations.

-			<a href="#" class="hidden md:flex secondary-button h-[43px]">
+			<a href="https://www.gruntwork.io/platform/pipelines" class="hidden md:flex secondary-button h-[43px]">
 				Automate your pipeline
 			</a>
-			<a href="#" class="flex md:hidden secondary-button !p-3">
+			<a href="https://www.gruntwork.io/platform/pipelines" class="flex md:hidden secondary-button !p-3">
 				<Image 
 					src={PipelineIcon}
 					alt="Pipeline Icon"
 					width={20}
 					height={20}
 				/>
 			</a>
-			<a href="#" class="hidden md:flex primary-button h-[43px]">
+			<a href="https://www.gruntwork.io/services/terragrunt" class="hidden md:flex primary-button h-[43px]">
 				Support
 			</a>

Note: These URLs should match those used in dv-Navbar.astro for consistency.

🤖 Prompt for AI Agents
In docs-starlight/src/components/Header.astro between lines 80 and 92, the
anchor tags use placeholder href="#" attributes. Replace these placeholders with
the actual URLs used in dv-Navbar.astro to ensure link consistency and proper
navigation. Review dv-Navbar.astro for the correct href values and update each
anchor tag accordingly.

Comment on lines +101 to 109
<a href="#" class="flex md:hidden primary-button !p-3">
<Image
src={HeadphonesIcon}
alt="Headphones Icon"
width={20}
height={20}
class={"aspect-[1/1] h-auto"}
/>
</a>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue

Fix placeholder href for mobile support button

Another placeholder href that needs to be replaced.

-			<a href="#" class="flex md:hidden primary-button !p-3">
+			<a href="https://www.gruntwork.io/services/terragrunt" class="flex md:hidden primary-button !p-3">
 				<Image 
 					src={HeadphonesIcon}
 					alt="Headphones Icon"
 					width={20}
 					height={20}
 					class={"aspect-[1/1] h-auto"}
 				/>
 			</a>
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
<a href="#" class="flex md:hidden primary-button !p-3">
<Image
src={HeadphonesIcon}
alt="Headphones Icon"
width={20}
height={20}
class={"aspect-[1/1] h-auto"}
/>
</a>
<a href="https://www.gruntwork.io/services/terragrunt" class="flex md:hidden primary-button !p-3">
<Image
src={HeadphonesIcon}
alt="Headphones Icon"
width={20}
height={20}
class={"aspect-[1/1] h-auto"}
/>
</a>
🤖 Prompt for AI Agents
In docs-starlight/src/components/Header.astro around lines 101 to 109, the
anchor tag for the mobile support button currently uses a placeholder href "#".
Replace this placeholder href with the correct URL or route that the button
should navigate to for mobile support functionality.

Comment on lines +24 to +26
<div class="fixed top-0 z-50">
<!-- @ts-ignore -->
<Navbar />

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🛠️ Refactor suggestion

Avoid using @ts-ignore - fix the type issue instead

Using @ts-ignore suppresses TypeScript errors without fixing the underlying issue. Consider properly typing the Navbar component or its props.

Would you like me to help identify and fix the TypeScript issue with the Navbar component?

🤖 Prompt for AI Agents
In docs-starlight/src/pages/index.astro around lines 24 to 26, the use of
@ts-ignore before the Navbar component suppresses TypeScript errors without
resolving the root cause. Investigate the type definitions for the Navbar
component and its props, then update or add the correct typings to fix the type
errors instead of ignoring them. Remove the @ts-ignore comment once the type
issue is properly addressed.

@yhakbar
yhakbar changed the base branch from main to docs/updating-terragrunt-homepage August 7, 2025 13:30
@yhakbar
yhakbar merged commit f6ce7f0 into docs/updating-terragrunt-homepage Aug 7, 2025
52 of 54 checks passed
@yhakbar
yhakbar deleted the WEB-816 branch August 7, 2025 13:30
@coderabbitai coderabbitai Bot mentioned this pull request Aug 7, 2025
6 tasks
yhakbar added a commit that referenced this pull request Aug 15, 2025
* Front-end for Terragrunt Project

* Changes:
- The navigation bar is fixed.
- The Starlight component for Searchbar was integrated.
- The color palette was added to @theme.
- The text box was corrected in Petadvertisement.
- Minor adjustments to adjust some elements.

* Changes Implemented:
#4494 (comment)

Note:
- Some images I did the best I could searching them  online, however I couldn't find all of them I used the ones from the figma file (the one provided hen I asked for the assets)
- Didn't connect the newsletter. I was responsible only for the design. Appreciate your comprehension.

* Added:
- auto-scroll TB

* Added:
- auto-scroll TB

* Update:
- Alignment Improvements on some sections.
- Modified Header to make it like the one on Home Page.
- Modified theme colors to match colors on Home Page.

* fix: TG-1753 - Make OpenTofu and Terraform logos proper links

Also fixing "Quick Start" and "Read the Docs" links.

* fix: TG-1743 - Fixing navbar links

Also updating buttons for commercial tie-ins.

* fix: TG-1743 - Fixing links in Orchestrate section

* fix: TG-1743 - Fixing links in Consistency section

* fix: TG-1743 - Fixing links in DRY section

* fix: TG-1743 - Fixing links in supercharge section

Also fixing logo hovers and renamed `Eyebrown` to `Eyebrow`.

* fix: TG-1776 - Adjusting copy for newsletter subscription

* fix: TG-1776 - Integrating HubSpot form the way it was in the Jekyll version of the docs

* fix: TG-1776 - Making subscription look a bit better

* fix: Reworking implementation of brand wheel to use content collection

* Testimonials should be a content collection (#4573)

* Adding polish to buttons and cleanup (#4578)

* Web 765 (#4577)

* Front-end for Terragrunt Project

* Changes:
- The navigation bar is fixed.
- The Starlight component for Searchbar was integrated.
- The color palette was added to @theme.
- The text box was corrected in Petadvertisement.
- Minor adjustments to adjust some elements.

* Changes Implemented:
#4494 (comment)

Note:
- Some images I did the best I could searching them  online, however I couldn't find all of them I used the ones from the figma file (the one provided hen I asked for the assets)
- Didn't connect the newsletter. I was responsible only for the design. Appreciate your comprehension.

* Added:
- auto-scroll TB

* Added:
- auto-scroll TB

* Update:
- Alignment Improvements on some sections.
- Modified Header to make it like the one on Home Page.
- Modified theme colors to match colors on Home Page.

* fix: Updating bun.lock

* fix: TG-1753 - Make OpenTofu and Terraform logos proper links

Also fixing "Quick Start" and "Read the Docs" links.

* fix: TG-1743 - Fixing navbar links

Also updating buttons for commercial tie-ins.

* fix: TG-1743 - Fixing links in Orchestrate section

* fix: TG-1743 - Fixing links in Consistency section

* fix: TG-1743 - Fixing links in DRY section

* fix: TG-1743 - Fixing links in supercharge section

Also fixing logo hovers and renamed `Eyebrown` to `Eyebrow`.

* fix: TG-1776 - Adjusting copy for newsletter subscription

* fix: TG-1776 - Integrating HubSpot form the way it was in the Jekyll version of the docs

* fix: TG-1776 - Making subscription look a bit better

* fix: Reworking implementation of brand wheel to use content collection

* Testimonials should be a content collection (#4573)

* Polish and cleanup

---------

Co-authored-by: Daniel Vásquez <daniel.vasquezrs@gmail.com>
Co-authored-by: Yousif Akbar <11247449+yhakbar@users.noreply.github.com>

* Responsive styles for logo to resolve 768 (#4580)

* Sharper hero images (#4583)

* Reduce opacity of background image (#4584)

* fix: Enable Vercel image optimization (#4585)

* fix: Conditionally enable Vercel adapter (#4586)

* Adding padding to resolve issue (#4581)

* Fixing up terminal install commands (#4592)

* Fixing up terminal install commands

* Hiding commands for now

* Styling search (#4617)

* Resolving display issues on large monitors (#4620)

* Fix typos (#4625)

* Fix typo

* Fixing border-b-1 which is not a valid tailwind class

* Updated secondary border color (#4624)

* Update to styles for consistency (#4623)

* Update to styles for consistency

* fix: Reverting intentional change to header copy

---------

Co-authored-by: Yousif Akbar <11247449+yhakbar@users.noreply.github.com>

* Fixing double border bug at mobile (#4622)

* Show search shortcut (#4626)

* fix: Getting rid of `ReponsiveTable` component

* fix: Fixing line numbering in docs (#4619)

* fix: Fixing line numbering in docs

* fix: Fixing indentation size

* Fixing styles

---------

Co-authored-by: Karl <karl.carstensen@gmail.com>

* Cleanup of colors on /docs (#4640)

* Cleanup of colors on /docs

* Revert bg color

* Remove underline and make background solid (#4642)

* Code block polish (#4643)

* fix Star Count Link Underline (#4644)

* Fixing docs tree nav (#4645)

* Fixing double underline (#4647)

* Fixing headers and eyebrow spacing (#4646)

* Docs link on nav (#4641)

* Docs link on nav

* More polish

---------

Co-authored-by: Yousif Akbar <11247449+yhakbar@users.noreply.github.com>

* Polish to OSS friends (#4648)

* Polish to OSS friends

* Additional polish

* Design polish

* More specific color change (#4656)

* Updating styles for the TOC (#4658)

* Strokes dashed (#4660)

* Fixing Grunty location and naming (#4662)

* Translate from spanish to english (#4661)

* Adding light dark toggle (#4659)

* Adding light dark toggle

* Feedback

* Fixes navbar (#4663)

* Fixes for docs markdown

* Fixes aside also

* Fixes code block

* Fixes asides

* Fixing cards

* Web 833 (#4665)

* Styles update

* Shared component for nav

* Consolodate styles

* Cleanup

* General cleanup (#4666)

---------

Co-authored-by: Daniel Vásquez <daniel.vasquezrs@gmail.com>
Co-authored-by: Karl Carstensen <karl.carstensen@gmail.com>
@coderabbitai coderabbitai Bot mentioned this pull request Aug 15, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants