blurhash-gradients
TypeScript icon, indicating that this package has built-in type declarations

0.0.3 • Public • Published

🎨 Blurhash Gradients

Draw blurhashes using CSS gradients.

Blurhash's main drawback is that it absolutely requires some client side JS. It cannot be server rendered.

🥅 Goals

  • [x] Tiny CSS output (<1kb)
  • [x] Fast enough to run on the fly during SSR
  • [x] No Client side JS required
  • [x] Run in both browser and node
  • [ ] Don't need a wrapper element (not achieved yet)

🚀 Getting Started

Install the package using npm or yarn.

npm install blurhash-gradients

Then simply call the blurhashAsGradients function with the blurhash and use the resulting CSS object on a placeholder element behind your image.

import { blurhashAsGradients } from 'blurhash-gradients';

const css = blurhashAsGradients('LEHV6nWB2yk8pyo0adR*.7kCMdnj');
/*
{
    backgroundImage: string;
    backgroundSize: string;
    backgroundPosition: string;
    backgroundRepeat: string;
    boxShadow: string;
    filter: string;
    clipPath: string;
}
*/
<div style="position: relative">
    <div style="position: absolute; inset: 0px; z-index: -1; [THE CSS GRADIENT OUTPUT HERE]">
    <img src="./big_image.png" width="1920" height="1080"/> <!-- Make sure to include size -->
</div>

📖 Options

You can also optionally pass in an options object as the second argument. Here are the defaults:

import { blurhashAsGradients } from 'blurhash-gradients';

const css = blurhashAsGradients('LEHV6nWB2yk8pyo0adR*.7kCMdnj', {
    width: 8, //The horizontal resolution of the gradients
    height: 8, //The vertical resolution of the gradients
    blur: 20, //The amount of blur to apply to the gradients (in pixels). Increase this on large display sizes.
});

🤝 Credits

  • blurhash-to-css for the idea. Unfortunately it didn't quite do all I needed so I made this package.

Readme

Keywords

none

Package Sidebar

Install

npm i blurhash-gradients

Weekly Downloads

40

Version

0.0.3

License

none

Unpacked Size

9 kB

Total Files

6

Last publish

Collaborators

  • lurmwoch