Hidden and unlisted fonts

What the Visibility setting does – hiding a collection from your site, or leaving a collection or a single style out of the Store Modal while it stays for sale – and how to preview hidden fonts as an admin

A collection’s Visibility, on its Settings tab, decides where customers come across it. Visible is the default. A hidden collection exists in your admin and keeps serving its webfonts, but is left out of everywhere a customer browses your catalog – reach for it when a family isn’t ready to release, has been retired, or only ever exists to be used as a webfont on your own site rather than sold. An unlisted collection stays on your site and stays for sale, but has no button of its own in the Store Modal: customers get it through a bundle or its superfamily instead. A single font style can be unlisted too – see unlisting a single style.

The three settings differ in what they take away from a collection.

Collection Visible Unlisted Hidden
Store Modal section and Browse entry Yes No No
Product page and your site’s catalog Yes Yes No
GraphQL API Returned Returned Left out
How customers buy it On its own Through a bundle or superfamily Not for sale
Webfonts Served Served Served
Past customers’ downloads Kept Kept Kept

Hiding a collection

Open the collection, switch to the Settings tab, and set Visibility to Hidden. From then on the collection drops out of every surface a customer sees:

  • The catalog index – both the directory the demo template renders and the Store Modal’s Browse page – skips it.
  • Its product page returns a not-found unless you’re previewing it as an admin.
  • The GraphQL API omits it from the fontCollections listing and won’t return it by slug unless you’re previewing as an admin.

Hiding a superfamily hides everything under it – its child families drop out of the same surfaces even if they aren’t individually marked hidden.11The catalog filter excludes a collection whenever either it or its parent is hidden. An unlisted superfamily doesn’t pass anything on – its families keep their own visibility.

Hiding is its own mechanism, separate from password-protecting a collection or scheduling an article to publish in the future – each of those works differently. Hidden simply takes the collection out of view.

Webfonts stay available

Hiding a collection doesn’t take its webfonts offline. The webfont CSS and the .woff2 and .woff files keep being served from Fontdue’s CDN whatever the collection’s visibility.22Only the catalog listings and product pages check for hidden collections – the webfont and CSS endpoints don’t.

That’s what makes hidden collections useful for a typeface you want to use but not sell. Upload your interface font as its own collection, mark it hidden, and reference its webfont on your site – it loads like any other Fontdue webfont while staying out of your catalog and Store Modal.

Unlisted collections

An unlisted collection is for sale, but not on its own. The Store Modal leaves out its section – no family button, no bundles and no styles to click. On the Store Modal’s Browse page an unlisted family has no entry, and an unlisted superfamily is replaced by an entry for each of its families, each opening the superfamily’s page. Everything else about it stays as it was: its product page, its webfonts and its place in your site’s own catalog.

Customers still end up with an unlisted collection through the Store Modal’s upgrade, which snaps a selection to a larger product once that’s the better deal – see Selection pricing. Two setups use this:

  • A superfamily sold through its families. Unlist the superfamily and customers pick families one by one; each unselected family shows the +$X that completes the superfamily, and selecting enough of them selects the superfamily itself.
  • A variable family that comes with its static counterpart. Unlist the variable family and pair it with the static family in a bundle priced the same as the static family. Selecting the static family selects the bundle, variable included, and the variable can’t be bought by itself.

An unlisted collection with nothing to upgrade to – no bundle or superfamily containing it – can’t be bought from the Store Modal at all, so set up the bundle or superfamily price before unlisting it.

Unlisting a single style

A font style has a Visibility setting too, on the style’s own panel in the family’s Styles tab, and on the Add or replace fonts form for the styles an upload creates. To change several at once, tick their rows in the Styles tab (shift-click selects a range) and click Edit styles, which sets Visibility and Price on every selected style. Unlisted works as it does on a collection, one level down: the style has no row of its own in the Store Modal, so customers can’t pick it alone, while the family button and any bundle containing it still sell it. Reach for it when a style only makes sense as part of the set, not as a single purchase.33The rule lives in fontdue-js, so it also takes the style out of <fontdue-font-families> and removes its select button on a type tester. A site on the npm package needs fontdue-js 3.15.0 or later – the style’s panel tells you when yours is older.

Style Visible Unlisted
Row in the Store Modal Yes No
Font families list Yes No
Select button on a type tester Yes No
Type testers and glyph viewer Yes Yes
Sold on its own Yes, if it has a price No
Sold with its family, or in a bundle or font pack Yes Yes
Family’s style count and “buy every style” price Counted Counted
Trial fonts Included Included
Webfonts Served Served
Customers’ downloads Included Included

Where a style is named explicitly an unlisted one still appears: a bundle shows the styles it contains and a font pack shows the styles you put in it. Unlisting hides a style from its family’s own list, not from a product you built around it.

A style has no Hidden option, because every style in a family reaches everyone who buys it.44An order doesn’t record the styles it was sold – it means “whatever the family holds now”, which is the same reason a style you add later shows up in an earlier customer’s download. Until an order keeps its own list, a style can’t be left out of new purchases without also being taken from past ones. Keep an unfinished style out of the family until it’s ready, and delete a style you need out of customers’ hands.

When every style is unlisted

Unlist every style in a family and there is nothing for a customer to click. The family still appears in the Store Modal if it has a price of its own – its family button sells the whole thing – but if it has no price either, the family drops out of the Store Modal completely. The Styles tab says which of the two is happening.

Previewing hidden collections

When you’re logged into your Fontdue admin, both the demo template and any script-tag site show an admin toolbar with a Preview hidden fonts checkbox. Tick it and hidden collections appear – their product pages render and they show up in the catalog index – so you can preview an unreleased family on your live site before anyone else can. Leave it unchecked and you see exactly what the public sees.55Previewing is explicit: the toolbar tells Fontdue to include hidden collections for your session only while the box is checked, so a logged-in admin browsing normally no longer reveals hidden fonts by accident.

A site built with React or Next.js gives you the same checkbox, but needs a little wiring first: it fetches its catalog on its own server with no admin session attached, so the preview signal has to be forwarded from the toolbar through your server. Admin preview walks through that setup.

1 The catalog filter excludes a collection whenever either it or its parent is hidden. An unlisted superfamily doesn’t pass anything on – its families keep their own visibility. ↩
2 Only the catalog listings and product pages check for hidden collections – the webfont and CSS endpoints don’t. ↩
3 The rule lives in fontdue-js, so it also takes the style out of <fontdue-font-families> and removes its select button on a type tester. A site on the npm package needs fontdue-js 3.15.0 or later – the style’s panel tells you when yours is older. ↩
4 An order doesn’t record the styles it was sold – it means “whatever the family holds now”, which is the same reason a style you add later shows up in an earlier customer’s download. Until an order keeps its own list, a style can’t be left out of new purchases without also being taken from past ones. ↩
5 Previewing is explicit: the toolbar tells Fontdue to include hidden collections for your session only while the box is checked, so a logged-in admin browsing normally no longer reveals hidden fonts by accident. ↩