File upload Nunjucks macro options

Use options to customise the appearance, content and behaviour of this component when using a macro, for example, changing the text.

Also see the guidance on the File upload component page, which shows these options in use within each example.

Some options are required for the macro to work; these are marked as "Required" in the option description. Deprecated options are marked as "Deprecated".

If you're using Nunjucks macros in production with "html" options, or ones ending with "html", you must sanitise the HTML to protect against cross-site scripting exploits.

Primary options
Name Type Description
name string Required. The name of the input, which is submitted with the form data.
id string The ID of the input. Defaults to the value of name. If javascript is provided, this ID will be on the button of the improved version, and the hidden input’s ID will get the suffix “-input”.
disabled boolean If true, file input will be disabled.
multiple boolean If true, a user may select multiple files at the same time. The exact mechanism to do this differs depending on operating system.
describedBy string One or more element IDs to add to the aria-describedby attribute, used to provide additional descriptive information for screenreader users.
label object Required. The label used by the file upload component. See macro options for label.
hint object Can be used to add a hint to the file upload component. See macro options for hint.
errorMessage object Can be used to add an error message to the file upload component. The error message component will not display if you use a falsy value for errorMessage, for example false or null. See macro options for errorMessage.
formGroup object Additional options for the form group containing the file upload component. See macro options for formGroup.
javascript boolean Can be used to enable JavaScript enhancements for the component.
chooseFilesButtonText string The text of the button that opens the file picker. Default is "Choose file". If javascript is not provided, this option will be ignored.
dropInstructionText string The text informing users they can drop files. Default is "or drop file". If javascript is not provided, this option will be ignored.
multipleFilesChosenText object The text displayed when multiple files have been chosen by the user. The component will replace the %{count} placeholder with the number of files selected. Our pluralisation rules apply to this macro option. If javascript is not provided, this option will be ignored.
noFileChosenText string The text displayed when no file has been chosen by the user. Default is "No file chosen". If javascript is not provided, this option will be ignored.
enteredDropZoneText string The text announced by assistive technology when user drags files and enters the drop zone. Default is "Entered drop zone". If javascript is not provided, this option will be ignored.
leftDropZoneText string The text announced by assistive technology when user drags files and leaves the drop zone without dropping. Default is "Left drop zone". If javascript is not provided, this option will be ignored.
classes string Classes to add to the file upload <input> element. If javascript is provided, these are not copied to the visible button. To use classes for the visible button, use the wrapperClasses option.
attributes object HTML attributes (for example data attributes) to add to the file upload <input> element. If javascript is provided, these are not copied to the visible button. To add attributes to the container, use the wrapperAttributes option instead.
wrapperClasses string Classes to add to the improved file upload component’s wrapper. If javascript is not provided, this option will be ignored.
wrapperAttributes object HTML attributes (for example data attributes) to add to the improved file upload component’s wrapper. If javascript is not provided, this option will be ignored.
Options for formGroup object
Name Type Description
classes string Classes to add to the form group (for example to show error state for the whole group).
attributes object HTML attributes (for example data attributes) to add to the form group.
beforeInput object Content to add before the input used by the file upload component. See macro options for formGroup beforeInput.
afterInput object Content to add after the input used by the file upload component. See macro options for formGroup afterInput.
Options for formGroup beforeInput object
Name Type Description
text string Required. Text to add before the input. If html is provided, the text option will be ignored.
html string Required. HTML to add before the input. If html is provided, the text option will be ignored.
Options for formGroup afterInput object
Name Type Description
text string Required. Text to add after the input. If html is provided, the text option will be ignored.
html string Required. HTML to add after the input. If html is provided, the text option will be ignored.
Options for label component
Name Type Description
text string Required. If html is set, this is not required. Text to use within the label. If html is provided, the text option will be ignored.
html string Required. If text is set, this is not required. HTML to use within the label. If html is provided, the text option will be ignored.
for string The value of the for attribute, the ID of the input the label is associated with.
isPageHeading boolean Whether the label also acts as the heading for the page.
classes string Classes to add to the label tag.
attributes object HTML attributes (for example data attributes) to add to the label tag.
Options for hint component
Name Type Description
text string Required. If html is set, this is not required. Text to use within the hint. If html is provided, the text option will be ignored.
html string Required. If text is set, this is not required. HTML to use within the hint. If html is provided, the text option will be ignored.
id string Optional ID attribute to add to the hint span tag.
classes string Classes to add to the hint span tag.
attributes object HTML attributes (for example data attributes) to add to the hint span tag.