DEV Community

Cover image for Project Introduction: Portfolio Developer

Project Introduction: Portfolio Developer

Lê Vĩnh Tuyến on October 23, 2024

1. Project Objective: This project is designed to create an online space for developers to showcase their skills, expertise, and past pr...
Collapse
 
mac_long_a43b605abdf6242d profile image
Mac Long

The tech stack icons seem to take a second or so to load in, something I have found that helps with this is to create components within your framework that export the SVG code inline; this works because you are no longer fetching the asset on load it is inlined as standard html and therefor processed with the rest of your site.

An example of how that would look

<template>
  <svg 
    :width="props.size" 
    :height="props.size"
    viewBox="0 0 24 24" 
    :aria-label="props.label"
    :role="props.label ? 'img' : 'presentation'"
    :class="[
      'inline-block align-middle',
      props.color ? `text-${props.color}` : '',
      props.className
    ]"
    fill="none"
    stroke="currentColor"
    stroke-width="2"
    stroke-linecap="round"
    stroke-linejoin="round"
  >
    <!-- Example paths for a "bookmark" icon -->
    <path d="M19 21l-7-5-7 5V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v16z" />

    <!-- Slot for custom paths -->
    <slot></slot>
  </svg>
</template>

<script setup lang="ts">
interface IconProps {
  // Icon size in pixels
  size?: number | string;
  // Tailwind color class (e.g. 'blue-500')
  color?: string;
  // Additional classes
  className?: string;
  // Accessibility label
  label?: string;
}

const props = withDefaults(defineProps<IconProps>(), {
  size: 24,
  color: '',
  className: '',
  label: ''
})
</script>

<style scoped>
svg {
  flex-shrink: 0;
}
</style>
Enter fullscreen mode Exit fullscreen mode
Collapse
 
letuyen profile image
Lê Vĩnh Tuyến

Thank you for sharing, it’s really helpful to me

Collapse
 
mac_long_a43b605abdf6242d profile image
Mac Long

No worries!

Collapse
 
juttthakra profile image
THAKRA JUTT

when i do with page insights
Image description
on mobile

Image description

Collapse
 
letuyen profile image
Lê Vĩnh Tuyến

That's right, on the detail page, the score depends heavily on the content of your article. With different content, the score will vary. That's why it's essential to write detailed, SEO-friendly content.

Collapse
 
t0nylombardi profile image
Anthony Lombardi • Edited

Nice job. Looks similar to my blog: t0nylombardi.dev/ I used Astrojs to make this

Collapse
 
hoachlinux profile image
Nguyen Hoach

Looks great

Collapse
 
hanaesf profile image
HANA

It looks so cool! good job

Collapse
 
poziom profile image
Krzysztof

The page looks very nice and clean. You can also use i18n or some other translation and be consistent with one type of language throughout the app. Nevertheless, great job.

Collapse
 
stphane_31 profile image
Stéphane

Thanks guys

Collapse
 
letuyen profile image
Lê Vĩnh Tuyến

update package pdfjs-dist and page mycv, load file CV pdf

Collapse
 
letuyen profile image
Lê Vĩnh Tuyến

added multilingual functionality and back-to-top feature