Skip to content

Instantly share code, notes, and snippets.

@stowball
Last active June 20, 2023 06:13
Show Gist options
  • Save stowball/27dd326e481e5d24e8ff174f53374363 to your computer and use it in GitHub Desktop.
Save stowball/27dd326e481e5d24e8ff174f53374363 to your computer and use it in GitHub Desktop.
Placeholder React Components
function PlaceholderImage({
height,
width,
...consumerProps
}) {
return (
<img
{...consumerProps}
alt=""
src={`https://placehold.co/${width}x${height}.png`}
/>
);
}
const lipsum =
'Lorem ipsum dolor sit amet consectetur adipisicing elit. Molestias quo voluptas fugit quidem nemo autem eos reprehenderit voluptatum nam. Error odio repellendus quisquam magni rerum hic facere laboriosam, aspernatur fugiat.';
function PlaceholderText({
characters,
...consumerProps
}) {
const string =
characters <= lipsum.length
? lipsum.slice(0, characters)
: lipsum
.repeat(Math.ceil(characters / lipsum.length))
.slice(0, characters);
return (
<span
{...consumerProps}
style={{
backgroundImage:
'repeating-linear-gradient(to bottom, #fff 0px, #fff 2px, #bbb 2px, #bbb 10px, #fff 10px, #fff 18px)',
display: 'inline-block',
fontSize: 12,
lineHeight: 1,
}}
>
<span style={{ visibility: 'hidden' }}>{string}</span>
</span>
);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment