StudioNope Themes Get the module →
HubSpot CMS Module

Download Center Pro

Cards of files to download, in a grid or a list, with a search box, category pills and a file type menu. A card with one file gets a button. A card with several opens into a menu or a list. File types and sizes are read from the files themselves, and every colour, size and word is a field.

Get the module See it live ↓

Demo 1

A media kit, one row per document

The list layout: an icon on the left, the words in the middle, the button on the right. The rate card and the logo pack are one file each, so their button says what the file is and how big it is. The media kit and the audience data come in two formats, so their button opens a list inside the row. The type comes from the file name and the size from the file.

Advertise with Halden

Media kit and rate card

Everything a planner needs before the first call: formats, audiences, prices and our logo.


Demo 2

A resource library you can search

A grid of covers with every filter switched on. The search box matches titles, descriptions, categories and file names as you type. The pills come from the categories on the cards, and the menu beside the search box lists only the file types in the library. Six cards show first and Show more brings in the rest. A card with two files opens a small menu under its button.

Fernline library

Templates, reports and guides

The documents we use with clients, free to download and use with your own team.


Demo 3

A press kit with every file on show

The file lists are set to always open, so a journalist sees every format without pressing anything. Each file type carries its own icon: the logo pack is an archive, the portrait is an image, the release is a Word document and the boilerplate is plain text. The selected pill takes a light tint of the accent in place of the dark default, and the search box is off.

Press

Orla press kit

Logos, photography and the latest release. Use them freely in coverage of Orla.


Demo 4

Product documents, as a list or a grid

Rows with square thumbnails and outline buttons, a search box, a file type menu and the switch between list and grid in the corner. The bundle card holds four files and opens a menu, which flips upward when there is no room below it. The firmware card mixes a file with a link to a page elsewhere, which opens in a new tab and carries its own icon.

Support

Kestrel documentation

Data sheets, installation guides and CAD files for the K2 sensor and the K4 gateway.

What it is

A download section for HubSpot CMS. Each card carries a title, a description, an icon or an image, and one or more files from your File Manager. Visitors search the cards, narrow them by category and by file type, and download a file with a single click. The file arrives on their device under the name you gave it.

Cards and files

Cards are a repeater, and each card holds its own repeater of files. Per card:

FieldWhat it does
Card pictureAn icon from HubSpot's icon picker, an image, or nothing
Title, DescriptionThe words on the card. Both are searched
CategoryGroups the card under a filter pill
BadgeA short word beside the category, such as New
Small printA line under the description, such as a date or a revision
Button text for this cardReplaces the button text for this card only
FilesThe files on the card, each with a name, the file, an optional link, a type and an optional size

A file is picked from your File Manager. When a document lives somewhere else, leave the file empty and paste the address into Or a link: it opens in a new tab and carries the Link icon in place of the download arrow. A card whose only file is a link gets a button that reads Open, set on Button text for a link.

One file or several

A card with one file gets one button, which reads Download PDF, or whatever your button text is, followed by the type and the size. A card with several files gets a button that reads Download · 3 files, and what that button opens is chosen on a field:

Search and filters

Each is a switch on the Search and filters group.

When nothing matches, the grid gives way to a message and a button that clears every filter. Both are words you set.

Show more

Set Cards shown before Show more above 0 and the section opens with that many cards and a button under them that brings in the next set. Filters count every card, including the ones not shown yet, and a new search starts back at the first set. Keyboard focus moves to the first card that arrived.

Layouts

Grid of cards. A column count for desktop, tablet and phone. An image can run to the card edges or sit inside the padding, cropped to the shape you choose, and the button sits on the bottom edge so buttons line up across a row.

List of rows. One card per row with the picture on the left, the words in the middle and the button on the right. On a phone the button moves under the words and runs the full width.

File types and sizes

The type is read from the end of the file name, so media-kit.pdf shows as PDF. Set it on the File type field when a file name does not say what the file is. Each type has its own icon in the file list: PDF, Word, Excel, PowerPoint, archive, image, audio, video, code and text.

The size is read from the file when its card comes near the screen, written in the units on the Size units field, with the number written the way the page language writes it, so a German page shows 2,4 MB. Type a size into File size to show that instead. Switch sizes off and the module sends no request for them.

How the download works

Files from your own File Manager are served from your own website's address, which lets the browser save the file under the name you gave it instead of opening it in a tab. A PDF downloads as a PDF. The extension is added to the name for you.

A file from another HubSpot portal or another address is fetched by the page and saved under its name, with the button marked busy while that happens. If the fetch fails or takes longer than twenty seconds, the file opens in a new tab, so a click never does nothing and the page stays where it was. A file known to be larger than 50 MB is handed straight to the browser. A visitor who holds Command or Ctrl while clicking gets the browser's own behaviour.

Tracking

Every download pushes an event to the dataLayer for Google Tag Manager, named file_download unless you change it, carrying file_name, file_type, file_url and card_title. In Tag Manager, add a Custom Event trigger with that event name and read the four values as Data Layer Variables. The section also dispatches a downloadcenterpro:download event on the page, with the same four values, for any script of your own. A double click counts as one download. Switch the dataLayer event off on the Tracking group.

file_download is also an event GA4 records by itself when enhanced measurement is on. If a GA4 tag in Tag Manager forwards this event under the same name, a download can be counted twice, so a name of your own, such as resource_download, is the safer choice.

What it looks like before you touch anything

Dropped onto a page, the module shows a heading, a search box, category pills and a grid of three cards to a row on white. Each card has a hairline border, an icon on a pale tile tinted with your theme's primary colour, a category, a title, a description and a compact dark button. Cards with two files open a small menu. The fonts and the accent colour come from your HubSpot theme settings, so the section already matches the page around it.

Accessibility

The search box and the file type menu carry labels for screen readers. Pills are buttons that report whether they are pressed. Every download button names the card it belongs to, so a screen reader hears Download PDF: Launch checklist and not a list of identical buttons. The order is a field, Screen reader: button with its card. A link that opens a new tab says so. A button that opens a file list reports whether it is open and which list it controls. Escape closes an open list and returns focus to its button. After every search or filter change the number of matching cards is read out, or the nothing-found message when there are none, whether or not the count is shown. A file being fetched keeps its name while it is marked busy. Focus rings are visible on every control and take their colour from a field.

Reduced motion

A visitor whose device asks for less motion gets the cards already in place, no fade-in, no lift on hover and menus that open without travel. That follows the visitor's own setting, so it cannot be switched off from the editor.

Style

Every colour, size, weight, radius, space, duration and easing is a field on the Style tab, grouped by what it affects: fonts, section, section heading, search and filters, cards, card icon, card text, download button, file list, motion and breakpoints. Colour fields carry opacity as well as a colour, and both are used. Body font, heading font and the accent colours inherit from your HubSpot theme settings. The button comes filled, outlined or as text with an icon. Every word visitors see or hear is a field on the Words group, so the section can be translated in full.

Troubleshooting

Notes on this page

Four instances of one module, differing only in field values, each on the same container as the text above it: a media kit as rows with lists that open inside the row, a searchable library with Show more, a press kit with every file on show, and product documents with thumbnails, a layout switch and a menu that opens upward. Every file on this page is a real document you can download and open. No CSS on this page touches the module.