Skip to content

css changes and hacker application speed up#465

Merged
Adr1an04 merged 2 commits into
mainfrom
bkandixmobilefixes
Jun 8, 2026
Merged

css changes and hacker application speed up#465
Adr1an04 merged 2 commits into
mainfrom
bkandixmobilefixes

Conversation

@Adr1an04

@Adr1an04 Adr1an04 commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

Why

Fixes the BloomKnights/KHIX mobile polish issues from #464. The BloomKnights application background needed to feel like one continuous scene instead of having viewport-pinned effects repeat

What

Closes: #464

  • Updated the BloomKnights hacker application background so leaves live in scene space, with more leaves and birds added.
  • Tightened the hacker application step transitions, scroll behavior, and fixed bottom nav behavior.
  • Added BloomKnights background preloads and kept key images eager.
  • Included KHIX mobile/SEO polish from this branch.
  • Compressed background more too

Test Plan

  • git diff --check
  • pnpm format
  • pnpm lint
  • pnpm typecheck
  • NODE_ENV=production pnpm build
  • pnpm lint:ws exits 0 with existing workspace warning for missing packages/transactional/package.json

Checklist

  • Database: No schema changes, or env stuff

Summary by CodeRabbit

  • New Features

    • Added asset preloading for optimized image delivery across device sizes.
  • Performance

    • Enhanced image loading optimization with eager loading for critical gallery images.
    • Improved animation timing and transitions throughout the application.
    • Updated Next.js image optimization configuration.
  • Updates

    • Replaced Facebook and Twitter social links with GitHub and LinkedIn.
  • Style

    • Refined animations, visual styling, and UI layout adjustments.

@coderabbitai

coderabbitai Bot commented Jun 8, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@Adr1an04, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 41 minutes and 49 seconds. Learn how PR review limits work.

Your organization has run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yml

Review profile: CHILL

Plan: Pro

Run ID: abf5786a-28a8-4288-9340-8887d3c6d65e

📥 Commits

Reviewing files that changed from the base of the PR and between a285236 and b0c1ce3.

📒 Files selected for processing (1)
  • apps/khix/src/app/globals.css
📝 Walkthrough

Walkthrough

This PR enhances the Blade hacker dashboard with refined bloomknights leaf/bird animations and responsive viewport-to-scene space transforms, improves hacker form mobile accessibility through safe-area-aware padding and pointer-events navigation controls, optimizes asset loading with preload directives and quality configuration, and updates KHiX social profile links from Facebook/Twitter to GitHub/LinkedIn.

Changes

Blade Hacker Dashboard UI

Layer / File(s) Summary
Bloomknights Leaf and Bird Animation System
apps/blade/src/app/_components/dashboard/hacker/hackbackgrounds/bloomknights.ts
Leaf field keyframe transforms (translate/rotate/scale) are retimed, bird glide animations expand with new C/D variants, leaf field clipping and pseudo-element widths adjusted, per-leaf instance styles updated with recalibrated animation durations and staggered delays, high/mid bird positioning classes introduced, ambient layers switch from viewport to scene space, bird scene layers added with reduced transition timing (questionTransitionMs, stepTransitionMs, transitionMs).
Hacker Form Animation and Navigation Controls
apps/blade/src/app/_components/dashboard/hacker/hacker-application-form.tsx
Title rise animation duration shortened, step content entrance animation and nth-child stagger delays recalibrated, shell wrapper overflow behavior adjusted from overflow-x-hidden to overflow-hidden, submitted-screen and content containers updated with safe-area-aware bottom padding (env(safe-area-inset-bottom)), step transition animation duration reduced, bottom navigation wrapper disables pointer interaction via pointer-events-none with explicit pointer-events-auto restored on Back, Next, and Submit buttons for mobile touch accessibility.

Asset Optimization and Image Loading

Layer / File(s) Summary
Image Preloading and Optimization Configuration
apps/bloomknights/next.config.js, apps/bloomknights/src/app/_components/graphics/BloomAssetPreloads.tsx, apps/bloomknights/src/app/layout.tsx, apps/bloomknights/src/app/_components/about/about.tsx
Next.js config adds images.qualities for quality-level optimization, new BloomAssetPreloads component renders two <link rel="preload"> elements for mobile/desktop Bloom background AVIF images with responsive media queries, component integrated into RootLayout, and about gallery Image elements explicitly set loading="eager" and fetchPriority="high" for the first image (otherwise "auto") to optimize paint timing.

Social Links and Branding Updates

Layer / File(s) Summary
KHiX Social Profile Migration
apps/khix/src/app/seo.ts, apps/khix/src/app/page.tsx, apps/khix/src/app/globals.css
SEO exports add LINKEDIN_URL and GITHUB_URL, remove FACEBOOK_URL and TWITTER_URL; SOCIAL_PROFILE_URLS array updated in JSON-LD generation; page.tsx imports swap FaFacebook/FaTwitter for FaGithub/FaLinkedin and corresponding URL constants; socialLinks array rebuilt with GitHub/LinkedIn entries; event text .khix-event-date-text and .khix-event-location-text shadow styling adjusted with modified RGBA values for glow intensity.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

  • KnightHacks/forge#458: Modifies bloomknights animations keyframes and layer configuration in the same file with overlapping visual/timing changes.
  • KnightHacks/forge#463: Updates Blade hacker UI styling and bloomknights leaf/godray animations alongside hacker form submitted/navigation behavior.
  • KnightHacks/forge#459: Introduces khix frontend scaffold with page.tsx and seo.ts touched by this PR's social link migration.

Suggested labels

Blade, Hack Sites, Major

Suggested reviewers

  • DVidal1205
  • cataladev
  • kwaiidev
🚥 Pre-merge checks | ✅ 6 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Title check ⚠️ Warning The pull request title does not start with a required issue number in brackets (e.g., "[#465]"), violating the specified format requirement. Update the title to start with "[#465]" followed by the description, e.g., "[#465] CSS changes and hacker application speed up" (keeping under 72 chars total).
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (6 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
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.
No Hardcoded Secrets ✅ Passed No hardcoded API keys, passwords, tokens, or secrets found in modified files. All external URLs reference public domains and SEO constants.
Validated Env Access ✅ Passed No direct process.env usage found in PR changes or anywhere in the codebase. The validated env import pattern is properly maintained throughout.
No Typescript Escape Hatches ✅ Passed No TypeScript escape hatches detected across all modified files—no instances of 'any', @ts-ignore, @ts-expect-error, or non-null assertions (!).

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch bkandixmobilefixes

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 and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🧹 Nitpick comments (2)
apps/bloomknights/src/app/_components/graphics/BloomAssetPreloads.tsx (1)

5-5: 💤 Low value

Optional: Remove unnecessary key props.

The key props on lines 5 and 13 are not needed here since these <link> elements are not rendered inside a map or array. Keys are only required for list reconciliation in React.

♻️ Simplify by removing keys
     <>
       <link
-        key="bloom-background-mobile"
         rel="preload"
         href="https://assets.knighthacks.org/bloom-background-mobile.avif"
         as="image"
         type="image/avif"
         media="(max-width: 767px)"
       />
       <link
-        key="bloom-background-desktop"
         rel="preload"
         href="https://assets.knighthacks.org/bloom-background-desktop.avif"
         as="image"
         type="image/avif"
         media="(min-width: 768px)"
       />
     </>

Also applies to: 13-13

🤖 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 `@apps/bloomknights/src/app/_components/graphics/BloomAssetPreloads.tsx` at
line 5, In BloomAssetPreloads.tsx (component BloomAssetPreloads) remove the
unnecessary key props from the static <link> elements (e.g.
key="bloom-background-mobile" and the second key at line 13) since these tags
are not part of a mapped list and React keys are only required for list
reconciliation; simply delete the key attributes from those <link> elements and
keep the rest of the attributes intact.
apps/bloomknights/src/app/_components/about/about.tsx (1)

126-126: ⚡ Quick win

Inconsistency: AI summary claims conditional eager loading, but code loads all images eagerly.

The AI summary states that loading="eager" is applied only to the first image, but the code shows loading="eager" is unconditional on line 126—both gallery images will load eagerly.

While the fetchPriority is correctly conditional (high for first, auto for second), setting both images to eager loading may impact performance if the second image is below the fold. Typically, only above-the-fold images should be eager-loaded.

🚀 Optimize loading strategy

If only the first image is consistently above the fold, consider making loading conditional:

                 <Image
                   src={image.src}
                   alt={image.alt}
                   width={6000}
                   height={4000}
                   sizes={
                     imageIndex === 0
                       ? "(min-width: 1536px) 768px, (min-width: 1181px) 464px, (min-width: 768px) 520px, 82vw"
                       : "(min-width: 1536px) 544px, (min-width: 1181px) 320px, (min-width: 768px) 360px, 62vw"
                   }
                   quality={72}
-                  loading="eager"
+                  loading={imageIndex === 0 ? "eager" : "lazy"}
                   fetchPriority={imageIndex === 0 ? "high" : "auto"}
                   className="about-gemiknight-image"
                 />

This allows the second image to lazy-load if it's not immediately visible, improving initial page performance.

🤖 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 `@apps/bloomknights/src/app/_components/about/about.tsx` at line 126, The code
unconditionally sets loading="eager" for gallery images in the About component
(apps/bloomknights/src/app/_components/about/about.tsx) while fetchPriority is
already conditional; change the loading prop to be conditional the same way
(e.g., eager for the first/above-the-fold image, lazy for others) so only the
primary image loads eagerly and below-the-fold images lazy-load; update the JSX
where loading="eager" is used alongside fetchPriority to use a conditional
expression tied to the image index or position.
🤖 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.

Nitpick comments:
In `@apps/bloomknights/src/app/_components/about/about.tsx`:
- Line 126: The code unconditionally sets loading="eager" for gallery images in
the About component (apps/bloomknights/src/app/_components/about/about.tsx)
while fetchPriority is already conditional; change the loading prop to be
conditional the same way (e.g., eager for the first/above-the-fold image, lazy
for others) so only the primary image loads eagerly and below-the-fold images
lazy-load; update the JSX where loading="eager" is used alongside fetchPriority
to use a conditional expression tied to the image index or position.

In `@apps/bloomknights/src/app/_components/graphics/BloomAssetPreloads.tsx`:
- Line 5: In BloomAssetPreloads.tsx (component BloomAssetPreloads) remove the
unnecessary key props from the static <link> elements (e.g.
key="bloom-background-mobile" and the second key at line 13) since these tags
are not part of a mapped list and React keys are only required for list
reconciliation; simply delete the key attributes from those <link> elements and
keep the rest of the attributes intact.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yml

Review profile: CHILL

Plan: Pro

Run ID: cf5187b0-f972-4235-bf0c-dbf3ca72b48b

📥 Commits

Reviewing files that changed from the base of the PR and between 30c7a62 and a285236.

📒 Files selected for processing (9)
  • apps/blade/src/app/_components/dashboard/hacker/hackbackgrounds/bloomknights.ts
  • apps/blade/src/app/_components/dashboard/hacker/hacker-application-form.tsx
  • apps/bloomknights/next.config.js
  • apps/bloomknights/src/app/_components/about/about.tsx
  • apps/bloomknights/src/app/_components/graphics/BloomAssetPreloads.tsx
  • apps/bloomknights/src/app/layout.tsx
  • apps/khix/src/app/globals.css
  • apps/khix/src/app/page.tsx
  • apps/khix/src/app/seo.ts

@Adr1an04 Adr1an04 added this pull request to the merge queue Jun 8, 2026
Merged via the queue into main with commit a8665ab Jun 8, 2026
11 checks passed
@Adr1an04 Adr1an04 deleted the bkandixmobilefixes branch June 8, 2026 05:07
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.

Application UI issues and bk loading/ixglow

1 participant