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:
@@ -14,7 +14,9 @@
|
||||
{{range .CV.Experience}}
|
||||
<div class="experience-item" id="exp-{{.CompanyID}}" data-company="{{.CompanyID}}" data-title="{{.Company}}" data-position="{{.Position}}">
|
||||
<div class="company-logo">
|
||||
{{if .CompanyLogo}}
|
||||
{{if .LogoIndex}}
|
||||
<span class="icon-sprite icon-section icon-company" style="--icon-index: {{.LogoIndex}};" role="img" aria-label="{{.Company}} logo"></span>
|
||||
{{else if .CompanyLogo}}
|
||||
<img src="/static/images/companies/{{.CompanyLogo}}" alt="{{.Company}} logo" onerror="this.parentElement.innerHTML='<iconify-icon icon=\'mdi:office-building\' width=\'80\' height=\'80\' class=\'default-company-icon\'></iconify-icon>'">
|
||||
{{else}}
|
||||
<iconify-icon icon="mdi:office-building" width="80" height="80" class="default-company-icon"></iconify-icon>
|
||||
|
||||
Reference in New Issue
Block a user