32 lines
628 B
Templ
32 lines
628 B
Templ
package components
|
|
|
|
import "strings"
|
|
import "fmt"
|
|
|
|
templ ImageTile(src string) {
|
|
<div class="grid grid-cols-1 grid-rows-1">
|
|
<img
|
|
src={ src }
|
|
srcset={ makeSrcset(src) }
|
|
fetchpriority="high"
|
|
class="row-start-1 col-start-1 pointer-events-none w-full h-96 object-cover"
|
|
/>
|
|
<div class="row-start-1 col-start-1">
|
|
{ children... }
|
|
</div>
|
|
</div>
|
|
}
|
|
|
|
func makeSrcset(src string) string {
|
|
sb := strings.Builder{}
|
|
|
|
for i := range 19 {
|
|
sb.WriteString(fmt.Sprintf("%s?w=%d %dw, ", src, 100*(i+1), 50*(i+1)))
|
|
}
|
|
|
|
i := 20
|
|
sb.WriteString(fmt.Sprintf("%s?w=%d %dw", src, 100*(i+1), 50*(i+1)))
|
|
|
|
return sb.String()
|
|
}
|