Skip to content

Personal page added (soul4code.eth) #18

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 4 commits into
base: main
Choose a base branch
from

Conversation

soul4code
Copy link

@soul4code soul4code commented Jul 10, 2025

Description

Personal builder page added, according Issue B.

Light Dark
2025-07-11_18-27-09 2025-07-11_18-29-28

Additional Information

Related Issues

Added my personal page according #8

Your ENS/address: soul4code.eth

Copy link

vercel bot commented Jul 10, 2025

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

Name Status Preview Comments Updated (UTC)
batch18.buidlguidl.com ✅ Ready (Inspect) Visit Preview 💬 Add feedback Jul 17, 2025 10:01am

Copy link
Collaborator

@melanke melanke left a comment

Choose a reason for hiding this comment

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

Hey @soul4code, thank you very much for your PR!

I like what you did with the avatar :)
(But it's not showing up on mobile devices, you should check this)
But I think you should try to improve the page a bit — add more information, some contrasting elements, different sections. That would be cool :)

And please add a screenshot of it to your PR description.

- Fix display avatar on mobile device
- Make avatar coolest a little )
- Added Skills with animation
@soul4code
Copy link
Author

soul4code commented Jul 11, 2025

Hey @soul4code, thank you very much for your PR!

I like what you did with the avatar :) (But it's not showing up on mobile devices, you should check this) But I think you should try to improve the page a bit — add more information, some contrasting elements, different sections. That would be cool :)

And please add a screenshot of it to your PR description.

Hi @melanke. Thank you for comments.
I've update my PR:

  • Fix display avatar on mobile device
  • Make avatar coolest a little )
  • Added Skills with animation
  • Screenshots added to PR description

Copy link
Collaborator

@melanke melanke left a comment

Choose a reason for hiding this comment

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

Very cool!

Just some improvements:

Comment on lines 24 to 32
// eslint-disable-next-line @next/next/no-img-element
<img
className="rounded-full"
src={avatar.data || ""}
width={100}
height={100}
alt={`${BUILDER_ADDRESS} avatar`}
onLoad={() => setAvatarLoaded(true)}
/>
Copy link
Collaborator

Choose a reason for hiding this comment

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

Oh no! I think you should keep the BlockieAvatar — that’s the proper way to show the avatar. It wasn’t working on mobile simply because it was squeezed, which could be fixed with Tailwind.

Copy link
Author

Choose a reason for hiding this comment

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

Thank you, I have fixed it. But added some unrequired props to BlockieAvatar

Copy link
Collaborator

Choose a reason for hiding this comment

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

This project follows the utility-first CSS approach, meaning we find it easier to read and style the code by adding pre-built CSS classes directly to the HTML. We're using Tailwind 4.1.3. I suggest checking out its documentation and the rest of the project code. I assure you the learning curve is easy.

I think even the animations can be done using Tailwind, but if not, let’s keep only those as CSS rules.

Copy link
Author

Choose a reason for hiding this comment

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

Tailwind classes used now. But animation keeped in css as tailwind theme extension according to https://tailwindcss.com/docs/animation#customizing-your-theme

Comment on lines +17 to +29
const preloaderClasses =
"w-12 h-12 border-10 border-solid border-base-100 rounded-full relative rotate-45 box-border";
const preloaderBeforeClasses = [
"before:content-['']",
"before:absolute",
"before:box-border",
"before:-inset-[10px]",
"before:rounded-full",
"before:border-10",
"before:border-solid",
"before:border-success",
"before:animate-avatar-loader",
].join(" ");
Copy link
Collaborator

Choose a reason for hiding this comment

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

A few considerations about this:

  1. You don’t need two distinct variables — the “before” classes could also be inside preloaderClasses.
  2. You could use clsx directly here, so you wouldn’t need to use arrays.
  3. Since this is a constant, it makes sense to place it outside the component, so it’s created only once at module initialization instead of on every render.

Comment on lines +6 to +12
interface BlockieAvatarProps {
address: string;
ensImage?: string | null;
size: number;
onLoad?: () => void;
defaultAvatar?: string;
}
Copy link
Collaborator

Choose a reason for hiding this comment

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

Why do you need defaultAvatar when you already have ensImage?
Also, couldn’t you extend AvatarComponent instead of rewriting it completely just to include onLoad?

Copy link
Author

Choose a reason for hiding this comment

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

How to extend AvatarComponent? It is just type and AvatarComponentProps didnt have external export.

Copy link
Collaborator

Choose a reason for hiding this comment

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

Maybe like this:
FC<AvatarComponentProps & { onLoad?: () => void; }>

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