Skip to content

feat: style improvements - #159

Merged
trueberryless merged 19 commits into
mainfrom
style/improvements
Jul 18, 2026
Merged

trueberryless merged 19 commits into
mainfrom
style/improvements

Conversation

@trueberryless

@trueberryless trueberryless commented Jul 13, 2026 •

Copy link
Copy Markdown
Owner

Summary by CodeRabbit

  • New Features
    • Added a reusable page header component with optional descriptions.
    • Added a 5-star rating UI with half-star rendering for book favorites.
    • Introduced consistent external-link icons and safer new-tab linking across cards, lists, and action links.
  • Bug Fixes
    • Improved conditional sections for recent posts and upcoming events so they only render when content exists.
  • Style
    • Refreshed theme tokens/colors and modernized hover/elevation/typography and responsive layouts.
  • Accessibility
    • Enhanced reduced-motion/reduced-transparency support, added external link labeling, and improved keyboard/outside-click menu closing.

@netlify

netlify Bot commented Jul 13, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for felixs-homepage ready!

Name Link
🔨 Latest commit f0ceb5a
🔍 Latest deploy log https://app.netlify.com/projects/felixs-homepage/deploys/6a5bead3198b08000800da91
😎 Deploy Preview https://deploy-preview-159--felixs-homepage.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@changeset-bot

changeset-bot Bot commented Jul 13, 2026 •

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: f0ceb5a

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@coderabbitai

coderabbitai Bot commented Jul 13, 2026 •

Copy link
Copy Markdown
Contributor

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • ✅ Review completed - (🔄 Check again to review again)

Walkthrough

The PR adds shared external-link indicators, refreshed landing and content components, a page-header primitive, updated themes and typography, responsive hero and 404 visuals, enhanced navigation behavior, page descriptions, and broader hover and reduced-motion styling.

Changes

Shared UI primitives

Layer / File(s) Summary
Shared UI primitives
src/components/utils/ExternalIcon.astro, src/components/utils/ActionLink.astro, src/components/utils/Badge.astro, src/components/utils/PageHeader.astro, src/components/utils/{List,Section,IntroBadge}.astro
Adds external-link rendering, external-link handling, named badge modifiers, a page-header component, token-based hover styling, improved section spacing, and reduced-motion rules.

Content cards and link indicators

Layer / File(s) Summary
Content cards and link indicators
src/components/blog/{PostItem,YearGroup}.astro, src/components/events/EventCard.astro, src/components/projects/Card.astro
Adds external-link indicators and updates card typography, metrics, watermark styling, hover effects, and reduced-motion behavior.

Landing content sections

Layer / File(s) Summary
Landing content sections
src/components/landing/{ReadingSummary,RecentPosts,UpcomingEvents}.astro
Adds linked reading entries, SVG star ratings, external-link icons, conditional upcoming-event rendering, and updated row layouts.

Hero, error page, and theme visuals

Layer / File(s) Summary
Hero, error page, and theme visuals
src/components/landing/Hero.astro, src/pages/404.astro, src/styles/global.css
Updates centered geometry, blur elements, gradient typography, external logo links, theme variables, monospace font stacks, and accessibility media-query behavior.

Navigation and layout interactions

Layer / File(s) Summary
Navigation and layout interactions
src/layouts/Header.astro, src/layouts/Footer.astro, src/components/utils/Breadcrumbs.astro
Adds mobile separators, outside-click and Escape handling, lift animations, explicit transitions, and reduced-motion overrides.

Page headers and descriptions

Layer / File(s) Summary
Page headers and descriptions
src/pages/{blog,books,events,projects}.astro
Adds descriptive header content, external links, and scoped description-link styling to the main content pages.

Estimated code review effort: 4 (Complex) | ~45 minutes

Possibly related PRs

Poem

A rabbit hops through links so bright,
With stars and icons tucked just right.
The header closes—click, Escape,
Warm themes dance in every space.
“Hop hooray!” says Bunny with grace.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Title check ❓ Inconclusive The title is related to the PR, but it is too generic to convey the main change clearly. Rename it to a concise, specific summary of the primary UI styling updates, such as icon/link and layout style improvements.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch style/improvements

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

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added the 🏯 styles Stylesheets or design updates label Jul 13, 2026

@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: 4

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
src/layouts/Header.astro (1)

148-167: 📐 Maintainability & Code Quality | 🟠 Major | ⚡ Quick win

Duplicated close-menu logic between button handler and closeMenu().

The button click handler (lines 148-153) duplicates the same close animation logic that closeMenu() (lines 160-167) encapsulates. Call closeMenu() in the if branch to keep a single source of truth.

♻️ Proposed refactor
   button?.addEventListener("click", (event) => {
     // Prevent the same click from immediately closing the menu via the
     // document-level click-outside handler below.
     event.stopPropagation();

     if (headerInner?.classList.contains("is-open")) {
-      headerInner.classList.remove("is-open");
-      headerInner.classList.add("is-closing");
-      setTimeout(() => {
-        headerInner.classList.remove("is-closing");
-      }, 500);
+      closeMenu();
     } else {
       headerInner?.classList.remove("is-closing");
       headerInner?.classList.add("is-open");
     }
   });
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/layouts/Header.astro` around lines 148 - 167, Replace the duplicated
close-animation statements in the header button handler’s open-state if branch
with a call to closeMenu(). Preserve the existing open-state behavior in the
else branch and keep closeMenu() as the single implementation of menu closing.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@src/components/events/EventCard.astro`:
- Around line 218-234: Extend the existing prefers-reduced-motion media query to
include .event-external, disabling its transition and hover transform while
preserving the current non-reduced-motion styling and hover color behavior.

In `@src/components/landing/ReadingSummary.astro`:
- Around line 44-113: Update the favorites mapping around the
`summary.favorites.map` callback to include a stable per-book index or unique
identifier, and use that value with the star index when constructing each
half-star gradient ID and matching `url(#...)` reference. Ensure every rendered
favorite book receives unique SVG IDs, including books without a `hiveId`.

In `@src/components/utils/ActionLink.astro`:
- Around line 20-44: Replace the duplicated inline SVG in the isExternal branch
of ActionLink with the shared ExternalIcon component, preserving its existing
external-link behavior and accessibility attributes. Reuse the component’s
established sizing and styling interface rather than maintaining separate icon
markup.

In `@src/layouts/Footer.astro`:
- Around line 185-191: Update the reduced-motion block in Footer.astro to also
disable the hover transforms for .text-links a:hover and .icon-links a:hover,
matching the existing Breadcrumbs pattern while preserving the normal hover
behavior for users without reduced-motion enabled.

---

Outside diff comments:
In `@src/layouts/Header.astro`:
- Around line 148-167: Replace the duplicated close-animation statements in the
header button handler’s open-state if branch with a call to closeMenu().
Preserve the existing open-state behavior in the else branch and keep
closeMenu() as the single implementation of menu closing.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 5e1ab370-1804-4af1-9a9b-9214bf1d9b69

📥 Commits

Reviewing files that changed from the base of the PR and between 442df7a and 2c242f9.

📒 Files selected for processing (24)
  • src/components/blog/PostItem.astro
  • src/components/blog/YearGroup.astro
  • src/components/books/Book.astro
  • src/components/events/EventCard.astro
  • src/components/landing/Hero.astro
  • src/components/landing/ReadingSummary.astro
  • src/components/landing/RecentBlueskyPosts.astro
  • src/components/landing/RecentPosts.astro
  • src/components/landing/UpcomingEvents.astro
  • src/components/projects/Card.astro
  • src/components/projects/Projects.astro
  • src/components/utils/ActionLink.astro
  • src/components/utils/Badge.astro
  • src/components/utils/ExternalIcon.astro
  • src/components/utils/IntroBadge.astro
  • src/components/utils/List.astro
  • src/components/utils/Section.astro
  • src/components/utils/SectionSkeleton.astro
  • src/layouts/Breadcrumbs.astro
  • src/layouts/Footer.astro
  • src/layouts/Header.astro
  • src/pages/404.astro
  • src/pages/index.astro
  • src/styles/global.css

Comment thread src/components/events/EventCard.astro Outdated
Comment thread src/components/landing/ReadingSummary.astro Outdated
Comment thread src/components/utils/ActionLink.astro
Comment thread src/layouts/Footer.astro

@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: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@src/components/landing/RecentBlueskyPosts.astro`:
- Around line 45-48: Move ExternalIcon out of the clamped .post-text span and
make it a sibling within the post content container, following the structure
used by RecentPosts.astro and UpcomingEvents.astro. Update the corresponding
.item-main styling so it uses flex layout and keeps the icon aligned and visible
while only the text remains line-clamped.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 46947a66-33af-4776-838e-a95edaabf843

📥 Commits

Reviewing files that changed from the base of the PR and between 2c242f9 and c27dc95.

📒 Files selected for processing (12)
  • src/components/events/EventCard.astro
  • src/components/landing/ReadingSummary.astro
  • src/components/landing/RecentBlueskyPosts.astro
  • src/components/landing/RecentPosts.astro
  • src/components/landing/UpcomingEvents.astro
  • src/components/utils/PageHeader.astro
  • src/components/utils/Section.astro
  • src/pages/blog.astro
  • src/pages/books.astro
  • src/pages/events.astro
  • src/pages/index.astro
  • src/pages/projects.astro

Comment thread src/components/landing/RecentBlueskyPosts.astro Outdated

@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: 2

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
src/layouts/Footer.astro (1)

180-191: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Consolidate redundant hover styles.

The hover states for .text-links a and .icon-links a share the exact same properties. They can be combined to keep the CSS concise and DRY.

♻️ Proposed refactor
   .text-links a:hover,
   .icon-links a:hover {
     color: var(--text);
+    transform: translateY(-2px);
   }
-
-  .text-links a:hover {
-    transform: translateY(-2px);
-  }
-
-  .icon-links a:hover {
-    transform: translateY(-2px);
-  }
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/layouts/Footer.astro` around lines 180 - 191, Consolidate the duplicate
transform rules for .text-links a:hover and .icon-links a:hover into a single
shared selector, preserving the existing translateY(-2px) behavior and leaving
the color hover rule unchanged.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@src/components/landing/ReadingSummary.astro`:
- Around line 34-37: Add role="img" to the star-rating span in
ReadingSummary.astro so its existing aria-label is exposed and announced by
screen readers, preserving the current `${stars} out of 5 stars` accessible
name.

In `@src/components/utils/Breadcrumbs.astro`:
- Around line 53-56: Update the reduced-motion styles for .back-link and .arrow
in Breadcrumbs.astro to remove motion while preserving transitions for
non-motion properties such as box-shadow, background, and border-color,
following the existing Footer.astro pattern. Replace the blanket transition:none
declaration with explicit non-motion transition definitions.

---

Outside diff comments:
In `@src/layouts/Footer.astro`:
- Around line 180-191: Consolidate the duplicate transform rules for .text-links
a:hover and .icon-links a:hover into a single shared selector, preserving the
existing translateY(-2px) behavior and leaving the color hover rule unchanged.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: b0728124-9f1d-467b-8a0b-be3c22c8aa23

📥 Commits

Reviewing files that changed from the base of the PR and between c27dc95 and b187e6d.

📒 Files selected for processing (11)
  • src/components/blog/PostItem.astro
  • src/components/events/EventCard.astro
  • src/components/landing/Hero.astro
  • src/components/landing/ReadingSummary.astro
  • src/components/landing/RecentPosts.astro
  • src/components/landing/UpcomingEvents.astro
  • src/components/utils/ActionLink.astro
  • src/components/utils/Breadcrumbs.astro
  • src/components/utils/IntroBadge.astro
  • src/layouts/Footer.astro
  • src/styles/global.css

Comment thread src/components/landing/ReadingSummary.astro Outdated
Comment thread src/components/utils/Breadcrumbs.astro

@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: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@src/components/landing/ReadingSummary.astro`:
- Around line 153-156: Update the .row-icon rule in ReadingSummary.astro to use
a global selector so it applies to the SVG rendered by ExternalIcon.astro, while
preserving its existing color and flex-shrink styles.

In `@src/pages/blog.astro`:
- Around line 12-21: Replace the duplicated title/description markup with the
shared PageHeader component and remove the page-local .description styles. In
src/pages/blog.astro lines 12-21, use PageHeader with title “Blog Posts” and its
description slot; apply the same change in src/pages/books.astro lines 12-21
with “Bookshelf”, src/pages/events.astro lines 12-21 with “Events”, and
src/pages/projects.astro lines 11-20 with “Open Source”, preserving each
existing description content.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: db800cce-5743-4aee-951e-da098806a399

📥 Commits

Reviewing files that changed from the base of the PR and between 6dadf65 and 0c9f5cf.

📒 Files selected for processing (5)
  • src/components/landing/ReadingSummary.astro
  • src/pages/blog.astro
  • src/pages/books.astro
  • src/pages/events.astro
  • src/pages/projects.astro

Comment thread src/components/landing/ReadingSummary.astro
Comment thread src/pages/blog.astro Outdated
@trueberryless trueberryless changed the title style: improvements feat: style improvements Jul 18, 2026
@github-actions github-actions Bot added the 📦 package Updates in package structure or package.json label Jul 18, 2026

@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: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (3)
src/components/utils/PageHeader.astro (1)

71-85: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Limit these link styles to the description.

:global(a) also matches the nested breadcrumb link and overrides its pill styling with an underline. Scope both selectors to .page-description.

Proposed fix
-  .page-header :global(a) {
+  .page-description :global(a) {
     ...
   }

-  .page-header :global(a:hover) {
+  .page-description :global(a:hover) {
     ...
   }
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/components/utils/PageHeader.astro` around lines 71 - 85, Scope the link
and hover selectors in the PageHeader styles to `.page-description` so the
underline styling applies only to description links. Update both the base
`:global(a)` selector and its `:global(a:hover)` counterpart, preserving the
breadcrumb link’s existing pill styling.
src/components/landing/Hero.astro (2)

252-290: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Fix transform collision between animation and hover state.

The .logo-wrapper element has a continuous CSS animation (floatLogo) that animates the transform property. Because @keyframes animations take precedence over regular CSS rules for the properties they animate, the transform: translateY(-4px); in .logo-wrapper:hover will be ignored while the animation is running.

To fix this seamlessly without altering the DOM, you can use the independent translate property for the hover state, while leaving the @keyframes to animate the transform property. These properties compose perfectly without colliding.

[visual_and_interaction]

🐛 Proposed fix using independent transform properties
   .logo-wrapper {
     width: 72px;
     height: 72px;
     display: flex;
     align-items: center;
     justify-content: center;
     background: rgba(255, 255, 255, 0.06);
     border: 1px solid var(--border);
     border-radius: 16px;
     backdrop-filter: blur(8px);
     -webkit-backdrop-filter: blur(8px);
     box-shadow:
       0 8px 32px oklch(0.2 0.02 60 / 0.12),
       inset 0 1px 0 oklch(1 0 0 / 0.25);
     animation: floatLogo 6s ease-in-out infinite;
     transition:
-      transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1),
+      translate 0.25s cubic-bezier(0.34, 1.56, 0.64, 1),
       box-shadow 0.25s ease,
       border-color 0.25s ease;
   }

   :root.dark .logo-wrapper {
     background: oklch(0.24 0.008 250);
     border: 1px solid oklch(0.42 0.01 250);
     box-shadow:
       0 10px 28px oklch(0 0 0 / 0.55),
       0 2px 6px oklch(0 0 0 / 0.5),
       inset 0 1px 0 oklch(1 0 0 / 0.08),
       inset 0 -1px 0 oklch(0 0 0 / 0.4);
   }

   .logo-wrapper:hover {
-    transform: translateY(-4px);
+    translate: 0 -4px;
     box-shadow:
       0 16px 42px oklch(0.2 0.02 60 / 0.22),
       inset 0 1px 0 oklch(1 0 0 / 0.3);
     border-color: var(--text-muted);
   }

Note: You will also need to update the prefers-reduced-motion media query at line 382 to disable translate: none; instead of transform: none; for the hover state.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/components/landing/Hero.astro` around lines 252 - 290, Update the
.logo-wrapper:hover rule to use the independent translate property for the hover
lift instead of transform, preserving the floatLogo animation on transform. Also
update the prefers-reduced-motion rule to reset translate rather than transform
for this hover state.

252-290: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Fix transform collision between animation and hover state.

The .logo-wrapper element has a continuous CSS animation (floatLogo) that animates the transform property. Because @keyframes animations take precedence over regular CSS rules (including :hover states) for the properties they animate, the transform: translateY(-4px); in .logo-wrapper:hover will be ignored while the animation is running.

To fix this, either apply the hover transform to an inner element, pause the animation on hover, or use scale / translate CSS properties independently (if browser support allows).

[visual_and_interaction]

🐛 Proposed fix using independent transform properties

Modern CSS allows animating translate and rotate independently from transform. This avoids the collision.

   .logo-wrapper {
-    animation: floatLogo 6s ease-in-out infinite;
-    transition:
-      transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1),
-      box-shadow 0.25s ease,
-      border-color 0.25s ease;
+    animation: floatLogo 6s ease-in-out infinite;
+    transition:
+      translate 0.25s cubic-bezier(0.34, 1.56, 0.64, 1),
+      box-shadow 0.25s ease,
+      border-color 0.25s ease;
   }

   .logo-wrapper:hover {
-    transform: translateY(-4px);
+    translate: 0 -4px;
     box-shadow:
       0 16px 42px oklch(0.2 0.02 60 / 0.22),
       inset 0 1px 0 oklch(1 0 0 / 0.3);
     border-color: var(--text-muted);
   }

   `@keyframes` floatLogo {
     0%,
     100% {
-      transform: translateY(0px) rotate(0deg);
+      translate: 0 0;
+      rotate: 0deg;
     }
     50% {
-      transform: translateY(-16px) rotate(3deg);
+      translate: 0 -16px;
+      rotate: 3deg;
     }
   }
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/components/landing/Hero.astro` around lines 252 - 290, Resolve the
transform collision between the continuous floatLogo animation and the hover
state on .logo-wrapper. Update the animation and hover styling to use
independent translate/scale properties, or otherwise pause/delegate the
animation, so hovering visibly applies the intended upward movement while
preserving the floating animation.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@src/components/landing/ReadingSummary.astro`:
- Around line 18-45: Update the latest-book link and each favorites-book link in
ReadingSummary to validate hiveId before interpolating it into the URL. When the
identifier is missing, render the row without a book link or use the existing
profile fallback; preserve the current linked behavior for valid identifiers.

---

Outside diff comments:
In `@src/components/landing/Hero.astro`:
- Around line 252-290: Update the .logo-wrapper:hover rule to use the
independent translate property for the hover lift instead of transform,
preserving the floatLogo animation on transform. Also update the
prefers-reduced-motion rule to reset translate rather than transform for this
hover state.
- Around line 252-290: Resolve the transform collision between the continuous
floatLogo animation and the hover state on .logo-wrapper. Update the animation
and hover styling to use independent translate/scale properties, or otherwise
pause/delegate the animation, so hovering visibly applies the intended upward
movement while preserving the floating animation.

In `@src/components/utils/PageHeader.astro`:
- Around line 71-85: Scope the link and hover selectors in the PageHeader styles
to `.page-description` so the underline styling applies only to description
links. Update both the base `:global(a)` selector and its `:global(a:hover)`
counterpart, preserving the breadcrumb link’s existing pill styling.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: d8e1a491-7bc0-4fa0-a72d-8003cb665bbd

📥 Commits

Reviewing files that changed from the base of the PR and between 6dadf65 and 36530de.

📒 Files selected for processing (15)
  • package.json
  • src/components/blog/BlogContent.astro
  • src/components/blog/BlogSkeleton.astro
  • src/components/blog/PostItem.astro
  • src/components/events/EventsContent.astro
  • src/components/events/EventsSkeleton.astro
  • src/components/landing/Hero.astro
  • src/components/landing/ReadingSummary.astro
  • src/components/utils/PageHeader.astro
  • src/layouts/BaseHead.astro
  • src/pages/blog.astro
  • src/pages/books.astro
  • src/pages/events.astro
  • src/pages/projects.astro
  • src/styles/global.css
💤 Files with no reviewable changes (1)
  • src/components/events/EventsContent.astro

Comment thread src/components/landing/ReadingSummary.astro Outdated
@trueberryless

Copy link
Copy Markdown
Owner Author

@coderabbitai full review

@coderabbitai

coderabbitai Bot commented Jul 18, 2026 •

Copy link
Copy Markdown
Contributor
✅ Action performed

Full review finished.


Your plan includes PR reviews subject to rate limits. More reviews will be available in 34 minutes.

@trueberryless
trueberryless merged commit 217299f into main Jul 18, 2026
8 checks passed
@trueberryless
trueberryless deleted the style/improvements branch July 18, 2026 21:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

📦 package Updates in package structure or package.json 🏯 styles Stylesheets or design updates

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant