diff --git a/src/components/CardSkeleton.tsx b/src/components/CardSkeleton.tsx index b348e2d..5ca33e4 100644 --- a/src/components/CardSkeleton.tsx +++ b/src/components/CardSkeleton.tsx @@ -8,7 +8,7 @@ export interface CardSkeletonProps { export const CardSkeleton: React.FC = ({ className = '' }) => { return (
= ({ {isOpen && ( -
+
{languages.map((lang) => { const isActive = i18n.language.startsWith(lang.code); return ( {isOpen && ( -
+
{options.map((opt) => { const isSelected = opt.value === value; return ( @@ -92,9 +92,9 @@ const CustomDropdown: React.FC<{ onChange(opt.value); setIsOpen(false); }} - className={`w-full flex items-center justify-between px-3.5 py-2 text-xs transition-colors cursor-pointer ${ + className={`w-full flex items-center justify-between px-3 py-2 rounded-xl text-xs transition-colors cursor-pointer ${ isSelected - ? 'bg-[#CEFF00]/10 text-foreground font-bold' + ? 'bg-[#CEFF00]/15 dark:bg-[#CEFF00]/15 text-foreground font-bold' : 'text-neutral-600 dark:text-neutral-400 hover:bg-neutral-100 dark:hover:bg-neutral-800/80 hover:text-foreground' }`} > @@ -297,7 +297,7 @@ export const TechTable: React.FC = ({ ))}
) : ( -
+
{[1, 2].map((idx) => ( ))} @@ -307,16 +307,16 @@ export const TechTable: React.FC = ({
- - - - - - - - - - + + + + + + + + + + @@ -327,7 +327,7 @@ export const TechTable: React.FC = ({
{t('table.technology')}{t('table.creator')}{t('table.type')}{t('table.popularity')}{t('table.momentum')}{t('table.ecosystem')}{t('table.community')}{t('table.latestVersion')}{t('table.github')}
{t('table.technology')}{t('table.creator')}{t('table.type')}{t('table.popularity')}{t('table.momentum')}{t('table.ecosystem')}{t('table.community')}{t('table.latestVersion')}{t('table.github')}
) : ( -
+
{processedEntries.map((entry, index) => ( ))} @@ -368,9 +368,10 @@ const TableRow: React.FC = ({ entry, maxStars }) => { const isHostedOnGitHub = isGitHubRepo(entry.githubUrl); + const rawRatio = Math.max(0, entry.popularity.totalStars) / (maxStars || 1); const percentage = Math.min( 100, - Math.max(5, (entry.popularity.totalStars / (maxStars || 1)) * 100) + Math.max(5, Math.round(Math.sqrt(rawRatio) * 1000) / 10) ); const formattedStars = formatNumber(entry.popularity.totalStars, i18n.language); const formattedNewRepos = formatNumber(entry.momentum.newReposLast30Days, i18n.language); @@ -712,9 +713,10 @@ const MobileCard: React.FC = ({ entry, maxStars }) => { const isHostedOnGitHub = isGitHubRepo(entry.githubUrl); + const rawRatio = Math.max(0, entry.popularity.totalStars) / (maxStars || 1); const percentage = Math.min( 100, - Math.max(5, (entry.popularity.totalStars / (maxStars || 1)) * 100) + Math.max(5, Math.round(Math.sqrt(rawRatio) * 1000) / 10) ); const formattedStars = formatNumber(entry.popularity.totalStars, i18n.language); const formattedNewRepos = formatNumber(entry.momentum.newReposLast30Days, i18n.language); @@ -723,7 +725,7 @@ const MobileCard: React.FC = ({ entry, maxStars }) => { return (
{/* Top: Blurred Icon Container + Name */}
diff --git a/src/components/ThemeToggle.tsx b/src/components/ThemeToggle.tsx index af5ce14..d87bd6b 100644 --- a/src/components/ThemeToggle.tsx +++ b/src/components/ThemeToggle.tsx @@ -57,10 +57,10 @@ export const ThemeToggle: React.FC = ({ {isOpen && ( -
+