Low Quality Image Placeholders (LQIP)
SVG Placeholder Script
How to use SVG as a Placeholder, and Other Image Loading Techniques
svg-placeholder CDN by jsDelivr - A CDN for npm and GitHub BlobCDN - Make beautiful SVG shapes on the fly - simple CDN for generating SVG shapes on the fly.
Low-Quality Image Placeholder (LQIP), Slika u Low Quality rezoluciji
The Ultimate Low-Quality Image Placeholder Technique – Harry Roberts – Web Performance Consultant
Meni je najbolji neki standardni format odnosno Data URL format jer ne traži nikakve modifikacije i može da se smesti stvarno svugde gde ide orginalno neka slika. Idealno je SVG jer on može i URL encoded što je još manje, ali ako ne, nda base64 neka bude.
Obično se ide na to da se napravi neki format a onda se on bluruje na frontendu. Placeholders are often inline, Base64-encoded data URLs which are low-quality image placeholders (LQIP) or SVG image placeholders (SQIP).
CSS background-color, Gradient Image Placeholders (GIP) usualy as background CSS, LQIP, SQIP, Blur Hash, Potrace
GIP aka CSS gradient
stoyan/cssgip: Gradient Image Placeholders and demo GIP: Gradient Image Placeholder je browser library i radi posao meni. Postoji i stoyan/cssgip-browser: Gradient Image Placeholders, the browser edition
Low Quality Image Placeholders (LQIP) technique
Najmoderniji lib je: transitive-bullshit/lqip-modern: Modern approach to Low Quality Image Placeholders (LQIP) using webp and sharp. i on je navodno manji i od SQIP
SQIP is SVG-based LQIP
Primitive
transitive-bullshit/primitive: Reproduce images from geometric primitives. je ustvari vrlo lepo, a mislim da je više artistic nego što je mnogo manje veličine, iako jeste.
Triangula je još modernija verzija te ideje: rh12503/triangula: Generate high-quality triangulated and polygonal art from images. koja stvarno izgleda odlično, a tu je i browser demo Triangula Preview
Blurhash
blurhash - to je ubedljivo najkraće i praktično isto što i mali placeholder. Neka custom vrsta encodinga koja je još kraća i manja.
Originalni je JavaScript i može u browseru na mnogo načina: BlurHash, repo na woltapp/blurhash: A very compact representation of a placeholder for an image.. JamieMason/blurhash-to-css: Convert BlurHashes to CSS Objects using TypeScript, Rust, and WebAssembly.
Ima i pluginova za WordPress i oni su svi PHP.
Problem je što nešto mora da rendered Blurhash which means client-side JavaScript is needed. This tool creates the same visual effect using CSS, which can be rendered on the Server without any dependency on client-side JavaScript.
Staro “lazy” rešenje i on sad preporučuje: library that combines native lazy loading with blurry placeholder support, I recommend johannschopplich/unlazy: 🪧 Universal lazy loading library for placeholder images leveraging native browser APIs
Na kraju:
Odličan lib ali samo server-side:
Unlazy je super, ali nije idealan za ono što ja hoću. Meni je bitno da to bude validan HTML bez ikakvog JS, a to je jedino regularan data Url. Ostaje dilema da li da bude neki “blurovan” prikaz sličan originalu ili gray placeholder sa dimenzijama? Ili oba, ali onda mora SVG. Idealno je rešenje da SVG ima neki gradient background placeholder i text preko toga sa dimenzijom.
Convert An Image To A DataURL or Base64 String Using JavaScript - PQINA
Libs koji tako rade:
- Client-side image placeholders imsky/holder: Client-side image placeholders. je SVG forma i savršen je.
Image holders:
https://satyr.dev/documentation https://satyr.dev/1920x1080?type=webp
https://github.com/imsky/holder https://picsum.photos/
Pravatar - CC0 Avatar Placeholder
Image Placeholder
-
tharunoptimus/placeholder-image-data-url: Source Code of the npm package je super malo i koristi Canvas API koji je standardan.
-
matbrady/img-placeholder-src: A helper for using strcutured data to populate various image placeholder sources. je samo za sliek i to je ono što sam koristio za CNC, samo bolje :) odnosno, to je trebalo da koristim i da ne generišem na serveru što je baš glupo.
Iako po datumu nije najnoviji, ovaj je tekst sve savršeno sumirao: How to use SVG as a Placeholder, and Other Image Loading Techniques – José M. Pérez
Hoću prvo negde
Woow. Kakva picajzla je ovaj lik, ali svaka mu čast: Create Crisp Image Borders With CSS Pseudo Elements - PQINA
Kako u browseru kompresovati neku sliku u JPG, mislim to je browser Canvas API i zato je tako lako Compress An Image Before Upload With JavaScript - PQINA
-
mogu da generišem mali SVG sa cloudfour/simple-svg-placeholder
-
pa mogu da ga izrendam i prebacim u png yisibl/resvg-js, a ovo je wasm evo kako unpkg učitava a ima i online demo.
-
ne razumem šta će mi ovo, ali zapiši: ssssota/svg2png-wasm: SVG to PNG converter JS library made with WASM + resvg (no native dependencies).
Try esbuild in your browser: hyrious/esbuild-repl: esbuild-wasm esbuild.repl
File Resolution for Esbuild running in the Browser sinclairzx81/esbuild-wasm-resolve
Placehold ima default SVG, pa ostalo, sve može.
Postoji React component library shadcn/ui gde samo uzmeš copy-paste (ne instalira se preko npm) i to je to, pošto koristi Tailwind CSS minimalno običan React odnosno povremeno na nekim komponentama Radix UI Primitives as unstyled, accessible components library
What is “headless” UI?
Headless UI is a term for libraries and utilities that provide the logic, state, processing and API for UI elements and interactions, but do not provide markup, styles, or pre-built implementations.
Savršen sajt! Major Cloud Providers’ Always-Free Limits: Free for Developers Oracle ima baš Srbiju.
Jebote, ovo je sranje! Ustvari nije, nego LUDILO dobro
U pitanju je jedan API za sve EU banke. https://nordigen.com/en/coverage/ imaju sve zemlje i sve banke (Wise, N26, itd Pricing - Nordigen
Free. No trial period. No fees. Access to personal and business account data in Europe Access to transaction history, up to 730 days Access to bank account numbers (IBANs)
Valjda to samo za mene? Da, naravno! Uh. Ok.
Kako doći do Tailwind CSS?
Pa možeš direktno extenziju onu,
a možeš pokupiš odvojeno pa konvertuješ u Tailwind CSS
Proveravaš da li je dobar u Twind playground koji je isti sad kao i Tailwind playground
Neće da mi include background U budućnosti bih mogao da sve slike zamenim sa mnogo mnogo kraćom inline verzijom - samo da je veličina ista, neki datauri ili svg npr. I onda
Upoređivao sam Windy extenziju i onu free “CSS to Tailwind” koju sam patchovao, i Windy radi savršeno u odnosu na onu. osebno mi se sviđa što ne pravi “dinamičke” Tailwind styles, već samo doda lepo inline style za ono što nije uspeo da konvertuje. A možeš da mu daš i da to ignoriše.
Rezultujući CSS je mali, a to je ono što sam želeo.
SVG background in CSS without base64 encoding - Possible? | N8D
Lightweight Image Previews in WordPress with Gaussholder – Human Made humanmade/Gaussholder: Fast and lightweight image previews, using Gaussian blur
Using SVG background image with CSS code only Modifying SVG background fills
Plaiceholder joe-bell/plaiceholder: Beautiful image placeholders, without the hassle. Pazi ovaj deo koda: plaiceholder/index.ts at d09df807df5d11c5d91a7971c2f90e2faa845843 · joe-bell/plaiceholder SVG.js v3.0 | Home
Manuelno izmenjati: Build a Placeholder Image Generator with JavaScript 📷 🔥 - DEV Community
Baš sveže: @unpic/placeholder – Unpic ascorbic/unpic-placeholder: Pure-CSS image placeholders Unpic
Unpic - The best images for every framework ascorbic/unpic: Universal image CDN translator Image Optimization - Qwik
johannschopplich/kirby-blurry-placeholder: 🖼 Blurry image placeholders for better UX
Extensions to Copy image as: DataURI in original format or jpeg, png, webp Copycat is cross-browser so Copycat and open-source at repo BlackGlory/copycat
Ne razumem ali mislim da mi treba za dataUri
javascript - Convert inline SVG to Base64 string - Stack Overflow
A ovo neka ima: https://gist.github.com/jennyknuth/222825e315d45a738ed9d6e04c7a88d0 https://www.npmjs.com/package/mini-svg-data-uri
Yet, we have a good reason to pay attention to SVG favicon: dark mode support SVG Favicons in Action | CSS-Tricks - CSS-Tricks
ima i WP extenziju inače: WordPress plugin - Favicon by RealFaviconGenerator
a ima i za oG: Social checker
evo ga neki SVG manijak: Remove redundant groups petercollingridge/SVG-Optimiser: A python module to clear up SVG files, especially those created in Inkscape petercollingridge/SVG-optimiser.js: An online SVG optimiser using Javascript and jQuery
kada je inline svg a ne datauri, uradi sledeće:
-
elemenat je svg sa svim atributima kao i original - identično, a sve što je bilo unutra izvlačim van kao symbol izbaci xmlns=“http://www.w3.org/2000/svg" jer je dugačak a radi i bez toga i umesto contenta ide:
-
symbol može da bude i ispre i iza, nije bitno
inače, ovde ima script koji trči po externim SVG i ubacuje inline.
ustvari, pošto i Windi greši i uzima SVG pod tailwind detekciju, uradiš sledeće:
- skript koji prođe sve inline obične SVG i konvertuje ih u “izdvojeni” dataURI
a sve to pre Windi. Zašto? Pa sve za pripremu za AI.
https://css-tricks.com/svg-loader-a-different-way-to-work-with-external-svg/ I komentari su super
zouhir/lqip: Low Quality Image Placeholders (LQIP) Module for Node Introducing LQIP – Low Quality Image Placeholders – Guy’s Pod
Interesantno da wrapuješ SVG u IMG zbog: Blurry placeholder