Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file removed apps/nextjs/public/favicon.ico
Binary file not shown.
Binary file added apps/nextjs/public/web-app-manifest-192x192.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added apps/nextjs/src/app/apple-icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added apps/nextjs/src/app/favicon.ico
Binary file not shown.
36 changes: 36 additions & 0 deletions apps/nextjs/src/app/icon0.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added apps/nextjs/src/app/icon1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions apps/nextjs/src/app/layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,9 @@ export const metadata: Metadata = {
twitter: {
card: "summary_large_image",
},
appleWebApp: {
title: "Leopard",
},
};

export const viewport: Viewport = {
Expand Down
21 changes: 21 additions & 0 deletions apps/nextjs/src/app/manifest.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"name": "Leopard",
"short_name": "Leopard",
"icons": [
{
"src": "/web-app-manifest-192x192.png",
"sizes": "192x192",
"type": "image/png",
"purpose": "maskable"
},
{
"src": "/web-app-manifest-512x512.png",
"sizes": "512x512",
"type": "image/png",
"purpose": "maskable"
}
],
"theme_color": "#ffffff",
"background_color": "#ffffff",
"display": "standalone"
}
6 changes: 4 additions & 2 deletions apps/nextjs/src/app/page.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import Link from "next/link";
import { CodeXml, History, UsersRound } from "lucide-react";

import { LeopardLogo } from "~/components/leopard-logo";
import { isAuthenticated } from "~/lib/auth-server";

const featureItems = [
Expand Down Expand Up @@ -29,9 +30,10 @@ export default async function HomePage() {
<div className="grid w-full items-center gap-16 lg:grid-cols-[minmax(0,0.95fr)_minmax(0,1.15fr)] lg:gap-20">
<section className="max-w-[520px]">
<div className="mb-12 flex items-center gap-5">
<div className="bg-primary text-primary-foreground flex h-[60px] w-[60px] items-center justify-center rounded-[18px] text-[2rem] font-bold shadow-md">
L
<div className="w-15 overflow-hidden rounded-lg">
<LeopardLogo className="h-full w-full" />
</div>
Comment on lines +33 to 35
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Component integrated in same PR as its creation

LeopardLogo is both created (src/components/leopard-logo.tsx) and wired into the main landing page in this single PR. Per project convention, components should be developed in isolation and integrated into pages in a separate, follow-up PR. This makes each change independently reviewable and revertable.

Rule Used: Keep PRs focused on individual components without ... (source)

Learnt From
deltahacks/landing-12#12

Prompt To Fix With AI
This is a comment left during a code review.
Path: apps/nextjs/src/app/page.tsx
Line: 33-35

Comment:
**Component integrated in same PR as its creation**

`LeopardLogo` is both created (`src/components/leopard-logo.tsx`) and wired into the main landing page in this single PR. Per project convention, components should be developed in isolation and integrated into pages in a separate, follow-up PR. This makes each change independently reviewable and revertable.

**Rule Used:** Keep PRs focused on individual components without ... ([source](https://app.greptile.com/review/custom-context?memory=1468e328-08d6-42d6-9f09-f6b8b663275a))

**Learnt From**
[deltahacks/landing-12#12](https://github.com/deltahacks/landing-12/pull/12)

How can I resolve this? If you propose a fix, please make it concise.

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!


<div className="text-foreground text-[2rem] font-semibold tracking-[-0.04em]">
Leopard
</div>
Expand Down
89 changes: 89 additions & 0 deletions apps/nextjs/src/components/leopard-logo.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
import type { SVGProps } from "react";

export function LeopardLogo(props: SVGProps<SVGSVGElement>) {
return (
<svg
viewBox="0 0 1024 1024"
fill="none"
xmlns="http://www.w3.org/2000/svg"
{...props}
>
<g clipPath="url(#clip0_205_66)">
<rect width="1024" height="1024" rx="32" fill="#7CBAE9" />
<path
d="M373.682 680.346C338.682 578.089 362.224 538.276 383.611 529.11L567.102 515.136L1061.15 587.622L1066.87 1077.86L595.953 1083.64C568.71 1016.94 504.295 877.106 464.576 851.442C414.928 819.361 416.24 804.687 373.682 680.346Z"
fill="black"
fillOpacity="0.08"
/>
<mask
id="mask0_205_66"
style={{ maskType: "alpha" }}
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Inline style on SVG mask element

style={{ maskType: "alpha" }} is an inline style. The project rule prefers Tailwind CSS classes over inline styles. While mask-type has no direct Tailwind utility, you can express it via an arbitrary CSS property using Tailwind's [mask-type:alpha] syntax:

Suggested change
style={{ maskType: "alpha" }}
className="[mask-type:alpha]"
maskUnits="userSpaceOnUse"

Rule Used: Use Tailwind CSS classes instead of inline styles ... (source)

Learnt From
deltahacks/landing-12#12

Prompt To Fix With AI
This is a comment left during a code review.
Path: apps/nextjs/src/components/leopard-logo.tsx
Line: 20

Comment:
**Inline style on SVG mask element**

`style={{ maskType: "alpha" }}` is an inline style. The project rule prefers Tailwind CSS classes over inline styles. While `mask-type` has no direct Tailwind utility, you can express it via an arbitrary CSS property using Tailwind's `[mask-type:alpha]` syntax:

```suggestion
          className="[mask-type:alpha]"
          maskUnits="userSpaceOnUse"
```

**Rule Used:** Use Tailwind CSS classes instead of inline styles ... ([source](https://app.greptile.com/review/custom-context?memory=0b2b635d-cbb8-42e2-a38c-193803fa0968))

**Learnt From**
[deltahacks/landing-12#12](https://github.com/deltahacks/landing-12/pull/12)

How can I resolve this? If you propose a fix, please make it concise.

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

maskUnits="userSpaceOnUse"
x="11"
y="-56"
width="1081"
height="1016"
>
<mask id="path-3-inside-1_205_66" fill="white">
<path d="M11.9551 452.27V-55.0303H551.955H1091.96V452.27V959.57H551.955H11.9551V452.27ZM957.955 940.27C965.055 938.27 977.455 932.67 986.555 927.57C991.855 924.47 1006.16 912.17 1011.46 905.97C1016.26 900.37 1027.56 884.07 1027.56 882.67C1027.56 880.77 1007.96 866.17 994.455 858.37C964.755 840.97 930.955 827.47 893.055 817.87C869.255 811.87 854.455 809.17 828.655 805.97C806.155 803.27 747.955 802.17 722.255 803.97C671.755 807.57 627.955 816.57 587.755 831.87C562.555 841.37 544.955 847.47 535.155 849.97C495.855 860.07 462.455 854.57 442.355 834.77C438.655 831.07 434.055 825.37 432.155 821.97L428.655 815.87L428.355 780.77L427.955 745.77L431.255 742.67L434.555 739.57H448.055C458.155 739.57 463.255 740.07 468.655 741.47C502.655 750.87 520.255 753.87 546.355 754.47C557.055 754.77 569.955 754.57 574.955 754.07C593.155 752.27 613.055 745.77 629.455 736.77C639.855 731.07 642.655 724.07 636.755 718.17C631.455 712.87 626.455 713.77 593.755 725.57C567.155 735.27 548.555 738.57 520.755 738.57C500.055 738.57 487.155 737.27 473.155 733.87C462.855 731.27 440.055 722.47 427.955 716.47C421.955 713.37 416.855 710.97 416.655 710.97C416.455 710.97 416.555 718.17 416.655 726.87L417.055 742.77H413.455C404.855 742.77 389.755 725.07 382.255 706.37C375.955 690.17 367.755 658.37 367.755 649.57V644.57H371.455C376.055 644.57 383.355 650.37 392.655 661.57C396.155 665.77 399.055 668.87 399.255 668.67C399.555 668.47 400.255 664.17 401.055 659.17C402.555 648.87 405.155 641.37 409.855 633.37C412.655 628.87 415.355 626.27 423.955 620.27C429.855 616.17 437.055 610.77 440.055 608.27C446.455 602.77 454.055 591.57 456.855 583.47C460.355 573.37 459.555 573.27 448.355 581.57C435.455 591.27 433.055 592.37 424.155 592.37C415.855 592.37 409.355 590.47 402.155 585.97C395.655 581.87 389.455 581.37 377.255 584.17C366.655 586.67 361.355 586.87 356.555 585.17C353.455 584.07 353.355 583.97 353.355 577.47C353.355 571.97 353.955 569.67 357.055 563.47C361.855 554.07 368.655 544.07 378.055 532.47C386.655 522.07 388.155 520.17 418.055 488.57C453.555 450.87 464.255 437.37 473.155 419.07C479.655 405.67 481.955 396.27 483.755 375.07C485.455 355.17 487.955 344.77 493.455 332.97C504.955 308.57 534.755 278.67 576.255 250.07C588.855 241.37 598.255 235.57 599.755 235.57C600.255 235.57 603.455 233.77 606.855 231.47C610.355 229.07 615.155 226.47 617.555 225.47C620.055 224.37 624.755 222.27 627.955 220.77C635.455 217.37 634.555 217.67 650.355 212.07C667.255 206.07 686.055 202.97 712.455 201.87L732.455 201.07L739.555 196.47C743.355 193.97 752.055 186.77 758.755 180.37C779.755 160.87 795.255 150.17 809.655 145.47C818.955 142.37 836.855 141.67 844.255 144.07C857.955 148.47 875.955 160.37 890.955 174.77L899.055 182.47L902.255 177.97C906.455 172.27 915.855 160.87 924.955 150.77C935.655 138.87 956.955 121.67 964.855 118.47C965.655 118.17 968.655 116.97 971.455 115.77C974.255 114.67 981.155 113.17 986.855 112.57C995.555 111.67 998.355 111.77 1003.76 113.07C1016.86 116.37 1025.56 120.67 1036.66 129.27L1039.46 131.57V111.77C1039.46 99.1697 1038.96 88.6697 1037.96 82.6697C1031.66 43.8697 1009.56 13.2697 975.555 -3.63027C968.755 -7.03027 959.555 -10.7303 955.055 -12.0303L946.855 -14.3303L554.655 -14.6303C264.555 -14.8303 160.355 -14.6303 154.755 -13.8303C131.455 -10.2303 109.155 1.76973 91.5551 20.3697C75.9551 37.0697 67.0551 53.9697 61.9551 77.2697C60.2551 85.5697 60.1551 101.77 60.1551 466.97V847.97L62.9551 858.17C66.1551 869.57 73.6551 885.97 80.1551 895.57C96.1551 918.97 123.555 936.87 150.455 941.47C153.155 941.87 334.855 942.17 554.255 942.07C874.655 941.97 954.055 941.67 957.755 940.67L957.955 940.27ZM587.555 456.67C590.055 454.87 592.455 453.27 592.955 453.27C593.555 453.27 595.555 452.17 597.355 450.67C599.155 449.27 601.455 448.07 602.355 448.07C603.255 448.07 604.255 447.67 604.655 447.07C604.955 446.57 606.555 446.07 608.255 446.07C609.855 446.07 611.555 445.67 611.855 445.07C612.155 444.57 613.655 444.07 615.255 444.07C616.755 443.97 619.155 443.37 620.555 442.57C621.955 441.77 624.355 441.17 625.755 441.07C629.055 441.07 638.655 436.07 646.155 430.57C649.255 428.27 658.555 419.77 666.755 411.57C674.955 403.37 683.155 395.57 684.855 394.27C686.655 392.97 688.155 391.47 688.155 391.07C688.155 390.27 675.755 388.27 645.155 384.27C621.655 381.27 614.955 382.17 608.755 389.07C604.855 393.27 604.255 395.67 603.855 408.07C603.555 422.17 602.755 424.37 592.955 437.47C586.455 446.27 580.755 456.57 580.755 459.67C580.755 461.97 581.155 461.67 587.755 456.67H587.555ZM1039.56 401.47L1039.26 396.57L1035.96 402.77L1032.66 408.97L1035.96 412.27L1039.26 415.57L1039.56 410.87C1039.76 408.27 1039.76 404.07 1039.56 401.47ZM1011.76 345.77C1019.26 336.87 1031.66 300.97 1036.76 273.87C1042.06 245.47 1036.66 208.57 1023.86 185.57C1019.16 177.17 1008.36 166.17 1001.46 162.87C997.655 161.17 994.555 160.37 989.655 160.37C976.955 160.27 964.255 167.47 948.255 183.77C933.355 198.97 910.355 231.97 906.155 244.07C902.955 253.57 902.555 253.17 944.255 291.87C954.855 301.77 970.155 316.77 978.055 324.97C992.955 340.87 1002.66 348.87 1006.56 348.87C1007.96 348.87 1010.06 347.57 1011.76 345.57V345.77Z" />
</mask>
<path
d="M11.9551 452.27V-55.0303H551.955H1091.96V452.27V959.57H551.955H11.9551V452.27ZM957.955 940.27C965.055 938.27 977.455 932.67 986.555 927.57C991.855 924.47 1006.16 912.17 1011.46 905.97C1016.26 900.37 1027.56 884.07 1027.56 882.67C1027.56 880.77 1007.96 866.17 994.455 858.37C964.755 840.97 930.955 827.47 893.055 817.87C869.255 811.87 854.455 809.17 828.655 805.97C806.155 803.27 747.955 802.17 722.255 803.97C671.755 807.57 627.955 816.57 587.755 831.87C562.555 841.37 544.955 847.47 535.155 849.97C495.855 860.07 462.455 854.57 442.355 834.77C438.655 831.07 434.055 825.37 432.155 821.97L428.655 815.87L428.355 780.77L427.955 745.77L431.255 742.67L434.555 739.57H448.055C458.155 739.57 463.255 740.07 468.655 741.47C502.655 750.87 520.255 753.87 546.355 754.47C557.055 754.77 569.955 754.57 574.955 754.07C593.155 752.27 613.055 745.77 629.455 736.77C639.855 731.07 642.655 724.07 636.755 718.17C631.455 712.87 626.455 713.77 593.755 725.57C567.155 735.27 548.555 738.57 520.755 738.57C500.055 738.57 487.155 737.27 473.155 733.87C462.855 731.27 440.055 722.47 427.955 716.47C421.955 713.37 416.855 710.97 416.655 710.97C416.455 710.97 416.555 718.17 416.655 726.87L417.055 742.77H413.455C404.855 742.77 389.755 725.07 382.255 706.37C375.955 690.17 367.755 658.37 367.755 649.57V644.57H371.455C376.055 644.57 383.355 650.37 392.655 661.57C396.155 665.77 399.055 668.87 399.255 668.67C399.555 668.47 400.255 664.17 401.055 659.17C402.555 648.87 405.155 641.37 409.855 633.37C412.655 628.87 415.355 626.27 423.955 620.27C429.855 616.17 437.055 610.77 440.055 608.27C446.455 602.77 454.055 591.57 456.855 583.47C460.355 573.37 459.555 573.27 448.355 581.57C435.455 591.27 433.055 592.37 424.155 592.37C415.855 592.37 409.355 590.47 402.155 585.97C395.655 581.87 389.455 581.37 377.255 584.17C366.655 586.67 361.355 586.87 356.555 585.17C353.455 584.07 353.355 583.97 353.355 577.47C353.355 571.97 353.955 569.67 357.055 563.47C361.855 554.07 368.655 544.07 378.055 532.47C386.655 522.07 388.155 520.17 418.055 488.57C453.555 450.87 464.255 437.37 473.155 419.07C479.655 405.67 481.955 396.27 483.755 375.07C485.455 355.17 487.955 344.77 493.455 332.97C504.955 308.57 534.755 278.67 576.255 250.07C588.855 241.37 598.255 235.57 599.755 235.57C600.255 235.57 603.455 233.77 606.855 231.47C610.355 229.07 615.155 226.47 617.555 225.47C620.055 224.37 624.755 222.27 627.955 220.77C635.455 217.37 634.555 217.67 650.355 212.07C667.255 206.07 686.055 202.97 712.455 201.87L732.455 201.07L739.555 196.47C743.355 193.97 752.055 186.77 758.755 180.37C779.755 160.87 795.255 150.17 809.655 145.47C818.955 142.37 836.855 141.67 844.255 144.07C857.955 148.47 875.955 160.37 890.955 174.77L899.055 182.47L902.255 177.97C906.455 172.27 915.855 160.87 924.955 150.77C935.655 138.87 956.955 121.67 964.855 118.47C965.655 118.17 968.655 116.97 971.455 115.77C974.255 114.67 981.155 113.17 986.855 112.57C995.555 111.67 998.355 111.77 1003.76 113.07C1016.86 116.37 1025.56 120.67 1036.66 129.27L1039.46 131.57V111.77C1039.46 99.1697 1038.96 88.6697 1037.96 82.6697C1031.66 43.8697 1009.56 13.2697 975.555 -3.63027C968.755 -7.03027 959.555 -10.7303 955.055 -12.0303L946.855 -14.3303L554.655 -14.6303C264.555 -14.8303 160.355 -14.6303 154.755 -13.8303C131.455 -10.2303 109.155 1.76973 91.5551 20.3697C75.9551 37.0697 67.0551 53.9697 61.9551 77.2697C60.2551 85.5697 60.1551 101.77 60.1551 466.97V847.97L62.9551 858.17C66.1551 869.57 73.6551 885.97 80.1551 895.57C96.1551 918.97 123.555 936.87 150.455 941.47C153.155 941.87 334.855 942.17 554.255 942.07C874.655 941.97 954.055 941.67 957.755 940.67L957.955 940.27ZM587.555 456.67C590.055 454.87 592.455 453.27 592.955 453.27C593.555 453.27 595.555 452.17 597.355 450.67C599.155 449.27 601.455 448.07 602.355 448.07C603.255 448.07 604.255 447.67 604.655 447.07C604.955 446.57 606.555 446.07 608.255 446.07C609.855 446.07 611.555 445.67 611.855 445.07C612.155 444.57 613.655 444.07 615.255 444.07C616.755 443.97 619.155 443.37 620.555 442.57C621.955 441.77 624.355 441.17 625.755 441.07C629.055 441.07 638.655 436.07 646.155 430.57C649.255 428.27 658.555 419.77 666.755 411.57C674.955 403.37 683.155 395.57 684.855 394.27C686.655 392.97 688.155 391.47 688.155 391.07C688.155 390.27 675.755 388.27 645.155 384.27C621.655 381.27 614.955 382.17 608.755 389.07C604.855 393.27 604.255 395.67 603.855 408.07C603.555 422.17 602.755 424.37 592.955 437.47C586.455 446.27 580.755 456.57 580.755 459.67C580.755 461.97 581.155 461.67 587.755 456.67H587.555ZM1039.56 401.47L1039.26 396.57L1035.96 402.77L1032.66 408.97L1035.96 412.27L1039.26 415.57L1039.56 410.87C1039.76 408.27 1039.76 404.07 1039.56 401.47ZM1011.76 345.77C1019.26 336.87 1031.66 300.97 1036.76 273.87C1042.06 245.47 1036.66 208.57 1023.86 185.57C1019.16 177.17 1008.36 166.17 1001.46 162.87C997.655 161.17 994.555 160.37 989.655 160.37C976.955 160.27 964.255 167.47 948.255 183.77C933.355 198.97 910.355 231.97 906.155 244.07C902.955 253.57 902.555 253.17 944.255 291.87C954.855 301.77 970.155 316.77 978.055 324.97C992.955 340.87 1002.66 348.87 1006.56 348.87C1007.96 348.87 1010.06 347.57 1011.76 345.57V345.77Z"
fill="#FFFEFE"
stroke="#FF0000"
strokeWidth="2"
Comment on lines +32 to +34
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Red debug stroke left in SVG

The path inside the mask0_205_66 mask element has stroke="#FF0000" and strokeWidth="2", which is a classic Figma "debug outline" artifact. Because the parent mask uses maskType: "alpha", the red color itself doesn't affect visible output (alpha is what drives the mask, and red is fully opaque just like white). However, this is unexpectedly left in the SVG source and will confuse anyone reading or editing this file. The same red stroke is also present in apps/nextjs/src/app/icon0.svg (line 8) and should be removed from both assets.

Suggested change
fill="#FFFEFE"
stroke="#FF0000"
strokeWidth="2"
fill="#FFFEFE"
strokeWidth="2"
mask="url(#path-3-inside-1_205_66)"
Prompt To Fix With AI
This is a comment left during a code review.
Path: apps/nextjs/src/components/leopard-logo.tsx
Line: 32-34

Comment:
**Red debug stroke left in SVG**

The path inside the `mask0_205_66` mask element has `stroke="#FF0000"` and `strokeWidth="2"`, which is a classic Figma "debug outline" artifact. Because the parent mask uses `maskType: "alpha"`, the red color itself doesn't affect visible output (alpha is what drives the mask, and red is fully opaque just like white). However, this is unexpectedly left in the SVG source and will confuse anyone reading or editing this file. The same red stroke is also present in `apps/nextjs/src/app/icon0.svg` (line 8) and should be removed from both assets.

```suggestion
            fill="#FFFEFE"
            strokeWidth="2"
            mask="url(#path-3-inside-1_205_66)"
```

How can I resolve this? If you propose a fix, please make it concise.

mask="url(#path-3-inside-1_205_66)"
/>
</mask>
<g mask="url(#mask0_205_66)">
<g filter="url(#filter0_d_205_66)">
<path
d="M286.43 102.286H1039.43V882.815H286.43V102.286Z"
fill="white"
/>
</g>
</g>
</g>
<defs>
<filter
id="filter0_d_205_66"
x="282.43"
y="102.286"
width="761"
height="788.529"
filterUnits="userSpaceOnUse"
colorInterpolationFilters="sRGB"
>
<feFlood floodOpacity="0" result="BackgroundImageFix" />
<feColorMatrix
in="SourceAlpha"
type="matrix"
values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"
result="hardAlpha"
/>
<feOffset dy="4" />
<feGaussianBlur stdDeviation="2" />
<feComposite in2="hardAlpha" operator="out" />
<feColorMatrix
type="matrix"
values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"
/>
<feBlend
mode="normal"
in2="BackgroundImageFix"
result="effect1_dropShadow_205_66"
/>
<feBlend
mode="normal"
in="SourceGraphic"
in2="effect1_dropShadow_205_66"
result="shape"
/>
</filter>
<clipPath id="clip0_205_66">
<rect width="1024" height="1024" rx="32" fill="white" />
</clipPath>
</defs>
</svg>
);
}
Loading