feat: implement CSS sprite system for image optimization
Reduces HTTP requests from 44+ individual images to 3 sprite sheets (~93% reduction). Includes Go sprite generator tool, CSS classes, template integration, and E2E tests. - Add cmd/sprites/main.go for sprite generation (60x60px + 120x120px @2x) - Add _sprites.css with responsive sizing and retina support - Update templates to use sprites with logoIndex fallback - Add Makefile targets: sprites, sprites-clean - Add 9-test E2E suite for sprite functionality - Add doc/22-SPRITES.md with usage documentation
This commit is contained in:
@@ -55,6 +55,7 @@
|
||||
"API Integration"
|
||||
],
|
||||
"companyLogo": "olympic-broadcasting.png",
|
||||
"logoIndex": 15,
|
||||
"shortDescription": "SAP CDC solutions for international broadcasting events. Custom implementations and technical guidance.",
|
||||
"companyID": "olympic-broadcasting"
|
||||
},
|
||||
@@ -83,6 +84,7 @@
|
||||
"Authentication Systems"
|
||||
],
|
||||
"companyLogo": "livgolf.png",
|
||||
"logoIndex": 13,
|
||||
"shortDescription": "Technical consulting for SAP CDC implementation. Created authorization screens, backend endpoints, and comprehensive documentation.",
|
||||
"companyID": "livgolf"
|
||||
},
|
||||
@@ -116,6 +118,7 @@
|
||||
"Managed identity flows for millions of users across web and mobile platforms"
|
||||
],
|
||||
"companyLogo": "aena.png",
|
||||
"logoIndex": 2,
|
||||
"shortDescription": "Lead Technical Consultant for AENA Airports Authentication System serving millions of passengers across all Spanish airports.",
|
||||
"companyID": "aena"
|
||||
},
|
||||
@@ -143,6 +146,7 @@
|
||||
"Technical Documentation"
|
||||
],
|
||||
"companyLogo": "sap.png",
|
||||
"logoIndex": 18,
|
||||
"shortDescription": "SAP Customer Data Cloud technical consulting, troubleshooting, and stakeholder education on GDPR compliance.",
|
||||
"companyID": "sap"
|
||||
},
|
||||
@@ -169,6 +173,7 @@
|
||||
"System Monitoring"
|
||||
],
|
||||
"companyLogo": "gigya.png",
|
||||
"logoIndex": 10,
|
||||
"shortDescription": "Technical support and problem-solving for Gigya platform. System monitoring and training program development.",
|
||||
"companyID": "gigya"
|
||||
},
|
||||
@@ -201,6 +206,7 @@
|
||||
"DevOps"
|
||||
],
|
||||
"companyLogo": "drosoloft-plain.png",
|
||||
"logoIndex": 6,
|
||||
"shortDescription": "Freelance work for multiple clients (Megabanner, <a href='https://ebantic.com/en/' target='_blank' rel='noopener noreferrer'>Ebantic</a>, <a href='https://www.everis.com/' target='_blank' rel='noopener noreferrer'>Everis</a>, <a href='https://www.indracompany.com/' target='_blank' rel='noopener noreferrer'>Indra</a>) developing React applications, designing APIs, integrating video systems and managing projects.",
|
||||
"companyID": "drosoloft"
|
||||
},
|
||||
@@ -230,6 +236,7 @@
|
||||
"Successfully managed technical team and product development"
|
||||
],
|
||||
"companyLogo": "emailing-network.png",
|
||||
"logoIndex": 8,
|
||||
"shortDescription": "Technical Director leading development of backend and 5 websites. Reduced production times by 75%.",
|
||||
"companyID": "emailing-network"
|
||||
},
|
||||
@@ -252,6 +259,7 @@
|
||||
"JavaScript"
|
||||
],
|
||||
"companyLogo": "twentic.png",
|
||||
"logoIndex": 19,
|
||||
"shortDescription": "WordPress and PHP website development as freelance programmer.",
|
||||
"companyID": "twentic"
|
||||
},
|
||||
@@ -260,6 +268,7 @@
|
||||
"company": "Penta MSI",
|
||||
"companyURL": "http://pentamsi.com/",
|
||||
"companyLogo": "pentamsi.png",
|
||||
"logoIndex": 17,
|
||||
"expired": true,
|
||||
"location": "Barcelona, Spain",
|
||||
"startDate": "2010-10",
|
||||
@@ -283,6 +292,7 @@
|
||||
"company": "Homeria + WebRatio S.R.L.",
|
||||
"companyURL": "http://webratio.com/",
|
||||
"companyLogo": "webratio.png",
|
||||
"logoIndex": 21,
|
||||
"location": "Cáceres (Spain) / Como (Italy)",
|
||||
"startDate": "2008-01",
|
||||
"endDate": "2008-12",
|
||||
@@ -305,6 +315,7 @@
|
||||
"company": "Insa",
|
||||
"companyURL": "http://insags.com/",
|
||||
"companyLogo": "insa.png",
|
||||
"logoIndex": 12,
|
||||
"expired": true,
|
||||
"location": "Cáceres, Spain",
|
||||
"startDate": "2006-09",
|
||||
@@ -549,6 +560,7 @@
|
||||
"projectDesc": "Beach Cleaning Initiative",
|
||||
"url": "https://somosunaola.org",
|
||||
"projectLogo": "somosunaola.png",
|
||||
"logoIndex": 10,
|
||||
"location": "La Palma, Canary Islands",
|
||||
"startDate": "2023-07",
|
||||
"current": true,
|
||||
@@ -571,6 +583,7 @@
|
||||
"projectDesc": "Artist Portfolio Website",
|
||||
"url": "https://herrumbrevivoarte.com",
|
||||
"projectLogo": "herrumbre-vivo.png",
|
||||
"logoIndex": 2,
|
||||
"location": "Fuencaliente, La Palma",
|
||||
"startDate": "2024",
|
||||
"current": true,
|
||||
@@ -592,6 +605,7 @@
|
||||
"projectDesc": "Football Prediction Platform",
|
||||
"url": "https://laporra.club",
|
||||
"projectLogo": "laporra.png",
|
||||
"logoIndex": 5,
|
||||
"gitRepoUrl": "",
|
||||
"location": "Online",
|
||||
"current": true,
|
||||
@@ -617,6 +631,7 @@
|
||||
"projectDesc": "SAP Customer Data Cloud Demo",
|
||||
"url": "https://gigyademo.com/cdc-starter-kit/",
|
||||
"projectLogo": "sap.png",
|
||||
"logoIndex": 8,
|
||||
"location": "Online",
|
||||
"startDate": "2018",
|
||||
"current": true,
|
||||
@@ -726,6 +741,7 @@
|
||||
"title": "Codecademy Certifications",
|
||||
"institution": "Codecademy",
|
||||
"courseLogo": "codecademy.png",
|
||||
"logoIndex": 1,
|
||||
"location": "Online",
|
||||
"date": "2022-2024",
|
||||
"duration": "Various",
|
||||
@@ -740,6 +756,7 @@
|
||||
"title": "Udemy Certifications",
|
||||
"institution": "Udemy",
|
||||
"courseLogo": "udemy.png",
|
||||
"logoIndex": 7,
|
||||
"location": "Online",
|
||||
"date": "2024-2025",
|
||||
"duration": "Various",
|
||||
@@ -757,6 +774,7 @@
|
||||
"title": "LinkedIn Learning Certifications",
|
||||
"institution": "LinkedIn Learning",
|
||||
"courseLogo": "linkedin.png",
|
||||
"logoIndex": 4,
|
||||
"location": "Online",
|
||||
"date": "2019-2020",
|
||||
"duration": "Various",
|
||||
@@ -774,6 +792,7 @@
|
||||
"title": "Servoy World 2011",
|
||||
"institution": "Servoy",
|
||||
"courseLogo": "servoy.png",
|
||||
"logoIndex": 6,
|
||||
"location": "Amsterdam",
|
||||
"date": "2011-02",
|
||||
"duration": "3 days",
|
||||
@@ -789,6 +808,7 @@
|
||||
"title": "Train the Trainers",
|
||||
"institution": "FOREM Extremadura",
|
||||
"courseLogo": "forem.png",
|
||||
"logoIndex": 2,
|
||||
"location": "Cáceres",
|
||||
"date": "2009-06",
|
||||
"duration": "150 hours",
|
||||
@@ -804,6 +824,7 @@
|
||||
"title": "Windows 2003 Server",
|
||||
"institution": "Cáceres Chamber of Commerce",
|
||||
"courseLogo": "camaracomercio.png",
|
||||
"logoIndex": 0,
|
||||
"location": "Cáceres",
|
||||
"date": "2006-01",
|
||||
"duration": "80 hours",
|
||||
@@ -819,6 +840,7 @@
|
||||
"title": "1st Extremadura Conference on Software Industry",
|
||||
"institution": "University of Extremadura",
|
||||
"courseLogo": "uex.png",
|
||||
"logoIndex": 8,
|
||||
"location": "Cáceres",
|
||||
"date": "2005-07",
|
||||
"duration": "3 days",
|
||||
@@ -834,6 +856,7 @@
|
||||
"title": "Web Application Development: Apache, PHP and MySQL",
|
||||
"institution": "University of Extremadura",
|
||||
"courseLogo": "uex.png",
|
||||
"logoIndex": 8,
|
||||
"location": "Cáceres",
|
||||
"date": "2002",
|
||||
"duration": "40 hours",
|
||||
|
||||
Reference in New Issue
Block a user