Skip to content

sindresorhus/srcset

This branch is up to date with main.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Jan 29, 2024
ee89972 · Jan 29, 2024

History

31 Commits
Jan 29, 2024
Apr 28, 2019
Apr 28, 2019
Apr 28, 2019
Apr 28, 2019
Nov 21, 2021
Jan 29, 2024
Nov 21, 2021
Jul 12, 2020
Jan 29, 2024
Jan 29, 2024
Jan 29, 2024

Repository files navigation

srcset

Parse and stringify the HTML <img> srcset attribute.

Can be useful if you're creating a build-tool.

Install

npm install srcset

Usage

How an image with srcset might look like:

<img
	alt="The Breakfast Combo"
	src="banner.jpg"
	srcset="banner-HD.jpg 2x, banner-phone.jpg 100w"
>

Then have some fun with it:

import {parseSrcset, stringifySrcset} from 'srcset';

const parsed = parseSrcset('banner-HD.jpg 2x, banner-phone.jpg 100w');
console.log(parsed);
/*
[
	{
		url: 'banner-HD.jpg',
		density: 2
	},
	{
		url: 'banner-phone.jpg',
		width: 100
	}
]
*/

parsed.push({
	url: 'banner-super-HD.jpg',
	density: 3
});

const stringified = stringifySrcset(parsed);
console.log(stringified);
/*
banner-HD.jpg 2x, banner-phone.jpg 100w, banner-super-HD.jpg 3x
*/

API

parseSrcset(string, options?)

Parse the HTML <img> srcset attribute.

Accepts a “srcset” string and returns an array of objects with the possible properties: url (always), width, height, and density.

string

Type: string

A “srcset” string.

options

Type: object

strict

Type: boolean
Default: false

When enabled, an invalid “srcset” string will cause an error to be thrown. When disabled, a best effort will be made to parse the string, potentially resulting in invalid or nonsensical output.

stringifySrcset(SrcSetDefinitions, options?)

Stringify SrcSetDefinitions. Accepts an array of SrcSetDefinition objects and returns a “srcset” string.

srcsetDescriptors

Type: array

An array of SrcSetDefinition objects. Each object should have a url field and may have width, height or density fields. When the strict option is true, only width or density is accepted.

options

Type: object

strict

Type: boolean
Default: false

Enable or disable validation of the SrcSetDefinition's. When true, invalid input will cause an error to be thrown. When false, a best effort will be made to stringify invalid input, likely resulting in invalid srcset value.