diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..bee1c8d --- /dev/null +++ b/.editorconfig @@ -0,0 +1,118 @@ +# http://EditorConfig.org +# https://gds-way.cloudapps.digital/manuals/programming-languages/editorconfig +root = true + +[*.java] +indent_size = 4 +indent_style = space +charset = utf-8 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = false +continuation_indent_size = 8 + +[*.scss] +indent_size = 2 +indent_style = space +charset = utf-8 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true + +[*.erb] +indent_size = 2 +indent_style = space +charset = utf-8 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true + +[*.html] +indent_size = 2 +indent_style = space +charset = utf-8 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true + +[*.njk] +indent_size = 2 +indent_style = space +charset = utf-8 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true + +[*.css] +indent_size = 2 +indent_style = space +charset = utf-8 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true + +[*.js] +indent_size = 2 +indent_style = space +charset = utf-8 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true + +[*.json] +indent_size = 2 +indent_style = space +charset = utf-8 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true + +[*.py] +indent_size = 4 +indent_style = space +charset = utf-8 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true +max_line_length = 119 + +[*.rb] +indent_size = 2 +indent_style = space +charset = utf-8 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true + +[*.sh] +indent_size = 2 +indent_style = space +charset = utf-8 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true + +[*.yml] +indent_size = 2 +indent_style = space +charset = utf-8 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true + +[Makefile] +indent_size = 2 +indent_style = tab +charset = utf-8 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true + +[**vendor**] +indent_size = +indent_style = +charset = +end_of_line = +insert_final_newline = +trim_trailing_whitespace = +max_line_length = diff --git a/.github/ISSUE_TEMPLATE/BUG_REPORT.md b/.github/ISSUE_TEMPLATE/BUG_REPORT.md new file mode 100644 index 0000000..7d8eed8 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/BUG_REPORT.md @@ -0,0 +1,48 @@ +--- +name: Bug report +about: Report a bug to help us improve the project + +--- + + + +### Prerequisites + +* [ ] Put an X between the brackets on this line if you have done all of the following: + * Reproduced the problem + * Followed all applicable steps in the debugging guide + * Checked the FAQs on the message board for common solutions + * Checked that your issue doesn't exist: https://github.com/whatterz/nhsuk-visual-studio-code-extension/issues + * Checked that there is not already a package that provides the described functionality + +### Description + +[Description of the issue] + +### Steps to Reproduce + +1. [First Step] +2. [Second Step] +3. [and so on...] + +**Expected behaviour:** [What you expect to happen] + +**Actual behaviour:** [What happens] + +**Reproduces how often:** [What percentage of the time does it reproduce?] + +### Versions + +You can get this information from the CHANGELOG. Also, please include details of the browser and OS version you're running. + +### Additional Information + +Provide any additional information, configuration or data that might be necessary to reproduce the issue. diff --git a/.github/ISSUE_TEMPLATE/FEATURE_REQUEST.md b/.github/ISSUE_TEMPLATE/FEATURE_REQUEST.md new file mode 100644 index 0000000..73525e8 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/FEATURE_REQUEST.md @@ -0,0 +1,43 @@ +--- +name: Feature request +about: Suggest an idea for this project + +--- + + + +## Summary + +Provide a one-paragraph explanation of the feature you are requesting. + +## Motivation + +Why are we doing this? What use cases does it support? What is the expected outcome? + +## Describe alternatives you've considered + +Include a clear and concise description of the alternative solutions you've considered. Make sure you explain why existing functionality isn't suitable for this feature. + +## Additional context + +Add any other context or screenshots about the feature request here. diff --git a/.github/PULL_REQUEST_TEMPLATE/BUG_FIX.md b/.github/PULL_REQUEST_TEMPLATE/BUG_FIX.md new file mode 100644 index 0000000..c27e048 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE/BUG_FIX.md @@ -0,0 +1,57 @@ +### Requirements for contributing a bug fix + +* Fill out the template below. Maintainers are free to close any pull requests that do not include enough information, at their discretion. +* The pull request must only fix an existing bug. To contribute other changes, you must use a different template. You can see all templates at https://github.com/whatterz/nhsuk-visual-studio-code-extension/tree/master/.github/PULL_REQUEST_TEMPLATE. +* The pull request must update the test suite to demonstrate the changed functionality. +* After you create the pull request, all status checks must be pass before a maintainer reviews your contribution. For more details, please see https://github.com/whatterz/nhsuk-visual-studio-code-extension/tree/master/CONTRIBUTING.md#pull-requests. + +### Identify the bug + + + +### Description of the change + + + +### Alternative designs + + + +### Possible drawbacks + + + +### Verification process + + + +### Release notes + + diff --git a/.github/PULL_REQUEST_TEMPLATE/DOCUMENTATION.md b/.github/PULL_REQUEST_TEMPLATE/DOCUMENTATION.md new file mode 100644 index 0000000..8396554 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE/DOCUMENTATION.md @@ -0,0 +1,28 @@ +### Requirements for contributing to documentation + +* Fill out the template below. Maintainers are free to close any pull requests that do not include enough information, at their discretion. +* The pull request must only contribute documentation (for example, markdown files or API docs). To contribute other changes, you must use a different template. You can see all templates at https://github.com/whatterz/nhsuk-visual-studio-code-extension/tree/master/.github/PULL_REQUEST_TEMPLATE. + +### Description of the change + + + +### Release notes + + diff --git a/.github/PULL_REQUEST_TEMPLATE/FEATURE_CHANGE.md b/.github/PULL_REQUEST_TEMPLATE/FEATURE_CHANGE.md new file mode 100644 index 0000000..6bef707 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE/FEATURE_CHANGE.md @@ -0,0 +1,72 @@ +### Requirements for adding, changing or removing a feature + +* Fill out the template below. Maintainers are free to close any pull requests that do not include enough information, at their discretion. +* The pull request must contribute a change that has been endorsed by the maintainer team. See details in the template below. +* The pull request must update the test suite to exercise the updated functionality. +* After you create the pull request, all status checks must pass before a maintainer reviews your contribution. + +### Issue or RFC endorsed by the maintainers + + + +### Description of the change + + + +### Alternative designs + + + +### Possible drawbacks + + + +### Verification process + + + +### Release notes + + diff --git a/.github/PULL_REQUEST_TEMPLATE/PERFORMANCE_IMPROVEMENT.md b/.github/PULL_REQUEST_TEMPLATE/PERFORMANCE_IMPROVEMENT.md new file mode 100644 index 0000000..3e31f30 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE/PERFORMANCE_IMPROVEMENT.md @@ -0,0 +1,53 @@ +### Requirements for contributing a performance improvement + +* Fill out the template below. Maintainers are free to close any pull requests that do not include enough information, at their discretion. +* The pull request must only fix an existing bug. To contribute other changes, you must use a different template. You can see all templates at https://github.com/whatterz/nhsuk-visual-studio-code-extension/tree/master/.github/PULL_REQUEST_TEMPLATE. +* After you create the pull request, all status checks must be pass before a maintainer reviews your contribution. For more details, please see https://github.com/whatterz/nhsuk-visual-studio-code-extension/tree/master/CONTRIBUTING.md#pull-requests. + +### Description of the change + + + +### Quantitative performance benefits + + + +### Possible drawbacks + + + +### Verification process + + + +### Applicable issues + + + +### Release notes + + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..02deee1 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +.DS_Store +*.tmp +*.vsix \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..81a2f4d --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,18 @@ +// A launch configuration that launches the extension inside a new window +// Use IntelliSense to learn about possible attributes. +// Hover to view descriptions of existing attributes. +// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 +{ + "version": "0.2.0", + "configurations": [ + { + "name": "Extension", + "type": "extensionHost", + "request": "launch", + "runtimeExecutable": "${execPath}", + "args": [ + "--extensionDevelopmentPath=${workspaceFolder}" + ] + } + ] +} diff --git a/.vscodeignore b/.vscodeignore new file mode 100644 index 0000000..d703f79 --- /dev/null +++ b/.vscodeignore @@ -0,0 +1,6 @@ +.editorconfig +.github +.gitignore +.vscode/** +.vscode-test/** +vsc-extension-quickstart.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..aa465af --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,3 @@ +# 1.0.0 + +Initial release \ No newline at end of file diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..3e4a535 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,47 @@ +# Contributor Code of Conduct + +## Our pledge + +In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to make participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation. + +## Our standards + +Examples of behaviour that contributes to creating a positive environment include: + +* Using welcoming and inclusive language; +* Being respectful of differing viewpoints and experiences; +* Gracefully accepting constructive criticism; +* Focusing on what is best for the community; and, +* Showing empathy towards other community members. + +Examples of unacceptable behaviour by participants include: + +* The use of sexualised language or imagery and unwelcome sexual attention or advances; +* Trolling, insulting/derogatory comments, and personal or political attacks; +* Public or private harassment; +* Publishing others' private information, such as a physical or electronic address, without explicit permission; and, +* Other conduct which could reasonably be considered inappropriate in a professional setting. + +## Our responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable behaviour and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behaviour. + +Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not in line with this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviours that they deem inappropriate, threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing or otherwise unacceptable behaviour may be reported by contacting the project team at conduct@humanedesign.co. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality concerning the reporter of an incident. + +Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. + +## Attribution + +This Code of Conduct is an adaptation of the [Contributor Covenant](https://www.contributor-covenant.org), version 1.4, available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html + +For answers to common questions about this code of conduct, see https://www.contributor-covenant.org/faq \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..2e09a3d --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,44 @@ +# Contribution guidelines + +When contributing to this repository, please first discuss the change you wish to make via issue, email, or any other method with the owners of this repository before making a change. + +Please note we have a [code of conduct](https://github.com/whatterz/nhsuk-visual-studio-code-extension/blob/master/CODE_OF_CONDUCT.md), please follow it in all your interactions with the project. + +## Contributing + +If you’ve got an idea or suggestion you can: + +* Email [contribute@humanedesign.co](contribute@humanedesign.co) putting the repository name in the subject line. +* [Create a GitHub issue](https://github.com/whatterz/nhsuk-visual-studio-code-extension/issues). + +## Raising bugs + +When raising bugs, please explain the issue in reasonable detail and provide a guide on how to replicate it. + +When describing the bug, it's useful to follow the format: + +- What you did +- What you expected to happen +- What happened + +## Suggesting features + +Please [raise feature requests as issues](https://github.com/whatterz/nhsuk-visual-studio-code-extension/issues) before contributing any code. + +Raising an issue ensures they are openly discussed and before spending any time on them. + +## Contributing code + +### Versioning + +Follow the guidelines on [Semantic Versioning](semver.org) for assigning version numbers. + +Change versions in a commit of their own, in a pull request of their own. This commit alerts team members to the new version and allows for last-minute scrutiny before the new version is released. Also, by raising a separate pull request, we avoid version number conflicts between feature branches. + +### Commit hygiene + +* Use the present tense ("Add feature" not "Added feature") +* Use the imperative mood ("Move thing to..." not "Moves thing to...") +* Limit the first line to 72 characters or less +* Reference issues and pull requests liberally after the first line +* Use a [pull request template](https://github.com/whatterz/nhsuk-visual-studio-code-extension/blob/master/.github/PULL_REQUEST_TEMPLATE) diff --git a/PULL_REQUEST_TEMPLATE.md b/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..c435633 --- /dev/null +++ b/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,12 @@ +# Pull-request templates + +Please follow the steps below to tell us about your contribution. + +1. Copy the correct template for your contribution + - Are you fixing a bug? [Copy the template](https://github.com/whatterz/nhsuk-visual-studio-code-extension/tree/master/.github/PULL_REQUEST_TEMPLATE/BUG_FIX.md) + - Are you improving performance? [Copy the template](https://github.com/whatterz/nhsuk-visual-studio-code-extension/tree/master/.github/PULL_REQUEST_TEMPLATE/PERFORMANCE_IMPROVEMENT.md) + - Are you updating documentation? [Copy the template](https://github.com/whatterz/nhsuk-visual-studio-code-extension/tree/master/.github/PULL_REQUEST_TEMPLATE/DOCUMENTATION.md) + - Are you changing functionality? [Copy the template](https://github.com/whatterz/nhsuk-visual-studio-code-extension/tree/master/.github/PULL_REQUEST_TEMPLATE/FEATURE_CHANGE.md) +2. Replace this text with the contents of the template +3. Fill in all sections of the template +4. Click "Create pull request". diff --git a/README.md b/README.md index 099e881..d701d4e 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,98 @@ -# nhsuk-visual-studio-code-extension -This extension for Visual Studio Code includes snippets to help in the building of the UK's NHS digital services. +# About the NHS.UK Visual Studio Code extension + +This extension for Visual Studio Code includes snippets to help in building the UK's NHS digital services. + +## Available snippets + +### Styles + +#### Layout + +|Name|Shortcut|Notes| +|-------------------------|-------------------------|---| +|[Form group](https://service-manual.nhs.uk/design-system/)|`nhsuk-form-group`|| +|[Form section](https://service-manual.nhs.uk/design-system/)|`nhsuk-form-section`|| +|[Grid column full](https://service-manual.nhs.uk/design-system/styles/layout/#full-width)|`nhsuk-grid-column-full`|| +|[Grid column one-half](https://service-manual.nhs.uk/design-system/styles/layout/#one-half)|`nhsuk-grid-column-one-half`|| +|[Grid column one-quarter](https://service-manual.nhs.uk/design-system/styles/layout/#one-quarter)|`nhsuk-grid-column-one-quarter`|| +|[Grid column one-third](https://service-manual.nhs.uk/design-system/styles/layout/#one-third)|`nhsuk-grid-column-one-third`|| +|[Grid column two-thirds](https://service-manual.nhs.uk/design-system/styles/layout/#two-thirds)|`nhsuk-grid-column-two-thirds`|| +|[Grid column](https://service-manual.nhs.uk/design-system/styles/layout/)|`nhsuk-grid-column`|| +|[Grid row](https://service-manual.nhs.uk/design-system/styles/layout/)|`nhsuk-grid-row`|| +|[Layout one-third / two-thirds](https://service-manual.nhs.uk/design-system/styles/layout/#two-thirds-one-third)|`nhsuk-layout-one-third-two-thirds`|| +|[Layout two-thirds / one-third](https://service-manual.nhs.uk/design-system/styles/layout/#two-thirds-one-third)|`nhsuk-layout-two-thirds-one-third`|| + +#### Typography + +|Name|Shortcut|Notes| +|-------------------------|-------------------------|---| +|[Caption](https://service-manual.nhs.uk/design-system/styles/typography/)|`nhsuk-caption`|| +|[Font size override](https://service-manual.nhs.uk/design-system/styles/typography/#font-size)|`nhsuk-font-size`|| +|[Font weight override](https://service-manual.nhs.uk/design-system/styles/typography/#font-weight)|`nhsuk-font-weight`|| +|[Heading](https://service-manual.nhs.uk/design-system/styles/typography/#headings)|`nhsuk-heading`|| +|[Links](https://service-manual.nhs.uk/design-system/styles/typography/#links)|`nhsuk-link`|| +|[Lists](https://service-manual.nhs.uk/design-system/styles/typography/#lists)|`nhsuk-list`|| +|[Lists – Bulleted](https://service-manual.nhs.uk/design-system/styles/typography/#bulleted-lists)|`nhsuk-list-bulleted`|| +|[Lists – Numbered](https://service-manual.nhs.uk/design-system/styles/typography/#numbered-lists)|`nhsuk-list-numbered`|| +|[Paragraph body text](https://service-manual.nhs.uk/design-system/styles/typography/#body)|`nhsuk-paragraph-body`|| +|[Paragraph body text large](https://service-manual.nhs.uk/design-system/styles/typography/#lead-paragraph)|`nhsuk-paragraph-body-lead`|| +|[Paragraph body text small](https://service-manual.nhs.uk/design-system/styles/typography/#body-small)|`nhsuk-paragraph-body-small`|| +|[Section break](https://service-manual.nhs.uk/design-system/styles/typography/#section-break)|`nhsuk-section-break`|| +|Visually hidden|`nhsuk-visually-hidden`|Creates a visually hidden `span`| + +### Components + +#### Form elements + +|Name|Shortcut|Notes| +|-------------------------|-------------------------|---| +|[Addresses](https://service-manual.nhs.uk/design-system/patterns/addresses/)|`nhsuk-address`|| +|[Button](https://service-manual.nhs.uk/design-system/components/button/)|`nhsuk-button`|| +|[Checkboxes](https://service-manual.nhs.uk/design-system/components/checkboxes/)|`nhsuk-checkboxes`|| +|Checkbox or radio option|`nhsuk-option`|Use in conjunction with the `nhsuk-checkboxes` and `nhsuk-radios` Nunjucks snippets.| +|[Dates](https://service-manual.nhs.uk/design-system/components/date-input/)|`nhsuk-date`|| +|[Error summary](https://service-manual.nhs.uk/design-system/components/error-summary/)|`nhsuk-error-summary`|| +|[Fieldset](https://service-manual.nhs.uk/design-system/components/fieldset/)|`nhsuk-fieldset`|| + +|[Radios](https://service-manual.nhs.uk/design-system/components/radios/)|`nhsuk-radios`|| +|[Select](https://service-manual.nhs.uk/design-system/components/select/)|`nhsuk-select`|| +|Select option|`nhsuk-select-option`|Use in conjunction with the `nhsuk-select` Nunjucks snippet.| +|[Text input](https://service-manual.nhs.uk/design-system/components/text-input/)|`nhsuk-input`|| +|[Textarea](https://service-manual.nhs.uk/design-system/components/textarea/)|`nhsuk-textarea`|| + +#### Content presentation + +|Name|Shortcut|Notes| +|-------------------------|-------------------------|---| +|[Details](https://service-manual.nhs.uk/design-system/components/details/)|`nhsuk-details`|| +|[Inset text](https://service-manual.nhs.uk/design-system/components/inset-text/)|`nhsuk-inset-text`|| +|[Tables](https://service-manual.nhs.uk/design-system/components/table/)|`nhsuk-table`|| +|[Warning callout](https://service-manual.nhs.uk/design-system/components/warning-text/)|`nhsuk-warning-callout`|| + +#### Navigation + +|Name|Shortcut|Notes| +|-------------------------|-------------------------|---| +|[Back link](https://service-manual.nhs.uk/design-system/components/back-link/)|`nhsuk-back-link`|| +|[Breadcrumbs](https://service-manual.nhs.uk/design-system/components/breadcrumbs/)|`nhsuk-breadcrumbs`|| +|[Footer](https://service-manual.nhs.uk/design-system/components/footer/)|`nhsuk-footer`|| +|[Header](https://service-manual.nhs.uk/design-system/components/header/)|`nhsuk-header`|| +|[Skip link](https://service-manual.nhs.uk/design-system/components/skip-link/)|`nhsuk-skip-link`|| + +## Dependencies +Using this extension depends on the installation of the [GOV.UK Frontend](https://www.npmjs.com/package/nhsuk-frontend) and [Nunjucks](https://www.npmjs.com/package/nunjucks) into your project. + +## Support +This repository is maintained by Simon Whatley. If you’ve got a question or need support you can: + +- Email support@humanedesign.co putting the repository name in the subject line. +- [View known issues on GitHub](https://github.com/whatterz/nhsuk-visual-studio-code-extension/issues). + +## Contributing +If you’ve got an idea or suggestion you can: + +- Email contribute@humanedesign.co putting the repository name in the subject line. +- [Create a GitHub issue](https://github.com/whatterz/nhsuk-visual-studio-code-extension/issues). + +## Licence +Unless otherwise stated, this codebase is released under the [MIT License](https://github.com/whatterz/nhsuk-visual-studio-code-extension/blob/master/LICENSE). This covers both the codebase and any sample code in the documentation. \ No newline at end of file diff --git a/images/icon.png b/images/icon.png new file mode 100644 index 0000000..b597643 Binary files /dev/null and b/images/icon.png differ diff --git a/package.json b/package.json new file mode 100644 index 0000000..7c5b75d --- /dev/null +++ b/package.json @@ -0,0 +1,46 @@ +{ + "name": "nhsuk-design-system-snippets", + "version": "1.0.0", + "publisher": "simonwhatley", + "displayName": "NHS.UK Design System snippets", + "description": "NHS.UK Design System snippets for Nunjucks by Simon Whatley", + "keywords": [ + "government", + "nhs", + "nhs.uk", + "nunjucks", + "prototyping", + "snippet", + "snippets", + "vscode" + ], + "icon": "images/icon.png", + "author": "Simon Whatley", + "licence": "MIT", + "repository": { + "type": "git", + "url": "git+https://github.com/whatterz/nhsuk-visual-studio-code-extension.git" + }, + "bugs": { + "url": "https://github.com/whatterz/nhsuk-visual-studio-code-extension/issues" + }, + "homepage": "https://github.com/whatterz/nhsuk-visual-studio-code-extension#readme", + "engines": { + "vscode": "^1.44.0" + }, + "categories": [ + "Snippets" + ], + "contributes": { + "snippets": [ + { + "language": "html", + "path": "./snippets/snippets.json" + }, + { + "language": "nunjucks", + "path": "./snippets/snippets.json" + } + ] + } +} diff --git a/snippets/snippets.json b/snippets/snippets.json new file mode 100644 index 0000000..b2bae73 --- /dev/null +++ b/snippets/snippets.json @@ -0,0 +1,675 @@ +{ + "Grid row": { + "prefix": "nhsuk-grid-row", + "body": [ + "
", + "\t$1", + "
$0" + ], + "description": "Grid row – NHS.UK Design System" + }, + "Grid column": { + "prefix": "nhsuk-grid-column", + "body": [ + "{# Column size class suffixes: full, one-half, one-third, two-thirds, one-quarter #}", + "
", + "\t$2", + "
$0" + ], + "description": "Grid column – NHS.UK Design System" + }, + "Grid column full": { + "prefix": "nhsuk-grid-column-full", + "body": [ + "
", + "\t$1", + "
$0" + ], + "description": "Grid column full width – NHS.UK Design System" + }, + "Grid column one-half": { + "prefix": "nhsuk-grid-column-one-half", + "body": [ + "
", + "\t$1", + "
$0" + ], + "description": "Grid column one-half width – NHS.UK Design System" + }, + "Grid column one-quarter": { + "prefix": "nhsuk-grid-column-one-quarter", + "body": [ + "
", + "\t$1", + "
$0" + ], + "description": "Grid column one-quarter width – NHS.UK Design System" + }, + "Grid column two-thirds": { + "prefix": "nhsuk-grid-column-two-thirds", + "body": [ + "
", + "\t$1", + "
$0" + ], + "description": "Grid column two-thirds width – NHS.UK Design System" + }, + "Grid column one-third": { + "prefix": "nhsuk-grid-column-one-third", + "body": [ + "
", + "\t$1", + "
$0" + ], + "description": "Grid column one-third width – NHS.UK Design System" + }, + "Layout two-thirds / one-third": { + "prefix": "nhsuk-layout-two-thirds-one-third", + "body": [ + "
", + "\t
", + "\t\t$1", + "\t
", + "\t
", + "\t\t$2", + "\t
", + "
$0" + ], + "description": "Layout two-thirds / one-third columns – NHS.UK Design System" + }, + "Layout one-third / two-thirds": { + "prefix": "nhsuk-layout-one-third-two-thirds", + "body": [ + "
", + "\t
", + "\t\t$1", + "\t
", + "\t
", + "\t\t$2", + "\t
", + "
$0" + ], + "description": "Layout one-third / two-thirds columns – NHS.UK Design System" + }, + "Form section": { + "prefix": "nhsuk-form-section", + "body": [ + "
", + "\t$1", + "
$0" + ], + "description": "Form section – NHS.UK Design System" + }, + "Form group": { + "prefix": "nhsuk-form-group", + "body": [ + "
", + "\t$1", + "
$0" + ], + "description": "Form group – NHS.UK Design System" + }, + "Form fieldset": { + "prefix": "nhsuk-fieldset", + "body": [ + "{{ fieldset({", + "\tlegend: {", + "\t\ttext: \"${1:Legend text}\",", + "\t\tclasses: \"nhsuk-fieldset__legend--${2:xl|l|m}\",", + "\t\tisPageHeading: ${3:true|false}", + "\t}", + "}) }}$0" + ], + "description": "Form fieldset – NHS.UK Design System" + }, + "Section break": { + "prefix": "nhsuk-section-break", + "body": [ + "{# Size modifiers: xl, l, m #}", + "
$0" + ], + "description": "Section break – NHS.UK Design System" + }, + "Headings": { + "prefix": "nhsuk-heading", + "body": [ + "", + "\t$3", + "$0" + ], + "description": "Headings – NHS.UK Design System" + }, + "Captions": { + "prefix": "nhsuk-caption", + "body": [ + "", + "\t$2", + "$0" + ], + "description": "Captions – NHS.UK Design System" + }, + "Paragraph body": { + "prefix": "nhsuk-paragraph-body", + "body": [ + "

", + "\t$1", + "

$0" + ], + "description": "Paragraph body – NHS.UK Design System" + }, + "Paragraph body small": { + "prefix": "nhsuk-paragraph-body-small", + "body": [ + "

", + "\t$1", + "

$0" + ], + "description": "Paragraph body small – NHS.UK Design System" + }, + "Lead paragraph": { + "prefix": "nhsuk-paragraph-lead", + "body": [ + "

", + "\t$1", + "

$0" + ], + "description": "Lead paragraph – NHS.UK Design System" + }, + "Font size override": { + "prefix": "nhsuk-font-size", + "body": [ + "{# Font sizes: 64, 48, 24, 22, 19, 16, 14 #}", + "

", + "\t$2", + "

$0" + ], + "description": "Font size override – NHS.UK Design System" + }, + "Font weight override": { + "prefix": "nhsuk-font-weight", + "body": [ + "{# Font weights: regular, bold #}", + "

", + "\t$2", + "

$0" + ], + "description": "Font weight override – NHS.UK Design System" + }, + "Links": { + "prefix": "nhsuk-link", + "body": [ + "$2$0" + ], + "description": "Links – NHS.UK Design System" + }, + "Visually hidden": { + "prefix": "nhsuk-visually-hidden", + "body": [ + "$1$0" + ], + "description": "Visually hidden text – NHS.UK Design System" + }, + "Lists": { + "prefix": "nhsuk-list", + "body": [ + "

$0" + ], + "description": "Lists – NHS.UK Design System" + }, + "Bulleted lists": { + "prefix": "nhsuk-list-bullet", + "body": [ + "$0" + ], + "description": "Bulleted lists – NHS.UK Design System" + }, + "Numbered lists": { + "prefix": "nhsuk-list-number", + "body": [ + "$0" + ], + "description": "Numbered lists – NHS.UK Design System" + }, + "Button": { + "prefix": "nhsuk-button", + "body": [ + "{{ button({", + "\ttext: \"${1:Button text}\"", + "}) }}$0" + ], + "description": "Button – NHS.UK Design System" + }, + "Checkboxes": { + "prefix": "nhsuk-checkboxes", + "body": [ + "{{ checkboxes({", + "\tidPrefix: \"$1\",", + "\tname: \"$1\",", + "\tfieldset: {", + "\t\tlegend: {", + "\t\t\ttext: \"${2:Legend text}\",", + "\t\t\tisPageHeading: ${3:true},", + "\t\t\tclasses: \"nhsuk-fieldset__legend--${4:l}\"", + "\t\t}", + "\t},", + "\thint: {", + "\t\ttext: \"${5:Hint text}\"", + "\t},", + "\titems: [", + "\t\t{", + "\t\t\tvalue: \"${6:Value}\",", + "\t\t\ttext: \"${7:Text}\",", + "\t\t\tchecked: $8", + "\t\t}$9", + "\t]", + "}) }}$0" + ], + "description": "Checkboxes – NHS.UK Design System" + }, + "Radios": { + "prefix": "nhsuk-radios", + "body": [ + "{{ radios({", + "\tidPrefix: \"$1\",", + "\tname: \"$1\",", + "\tfieldset: {", + "\t\tlegend: {", + "\t\t\ttext: \"${2:Legend text}\",", + "\t\t\tisPageHeading: ${3:true},", + "\t\t\tclasses: \"nhsuk-fieldset__legend--${4:l}\"", + "\t\t}", + "\t},", + "\thint: {", + "\t\ttext: \"${5:Hint text}\"", + "\t},", + "\titems: [", + "\t\t{", + "\t\t\tvalue: \"${6:Value}\",", + "\t\t\ttext: \"${7:Text}\",", + "\t\t\tchecked: $8", + "\t\t}$9", + "\t]", + "}) }}$0" + ], + "description": "Radios – NHS.UK Design System" + }, + "Select": { + "prefix": "nhsuk-select", + "body": [ + "{{ select({", + "\tid: \"$1\",", + "\tname: \"$1\",", + "\tlabel: {", + "\t\ttext: \"${2:Label text}\"", + "\t},", + "\thint: {", + "\t\ttext: \"${3:Hint text}\"", + "\t},", + "\titems: [", + "\t\t{", + "\t\t\tvalue: \"${4:Value}\",", + "\t\t\ttext: \"${5:Text}\",", + "\t\t\tselected: $6", + "\t\t}$7", + "\t]", + "}) }}$0" + ], + "description": "Select – NHS.UK Design System" + }, + "Radio or checkbox option": { + "prefix": "nhsuk-option", + "body": [ + "{", + "\tvalue: \"$1\",", + "\ttext: \"$2\",", + "\tchecked: $3", + "}$0" + ], + "description": "Radio or checkbox option – NHS.UK Design System" + }, + "Select option": { + "prefix": "nhsuk-select-option", + "body": [ + "{", + "\tvalue: \"$1\",", + "\ttext: \"$2\",", + "\tselected: $3", + "}$0" + ], + "description": "Select option – NHS.UK Design System" + }, + "Text input": { + "prefix": "nhsuk-input", + "body": [ + "{{ input({", + "\tid: \"$1\",", + "\tname: \"$1\",", + "\tlabel: {", + "\t\ttext: \"${2:Label text}\"", + "\t},", + "\thint: {", + "\t\ttext: \"${3:Hint text}\"", + "\t},", + "\tvalue: \"${4:Value}\"", + "}) }}", + "$0" + ], + "description": "Text input – NHS.UK Design System" + }, + "Textarea": { + "prefix": "nhsuk-textarea", + "body": [ + "{{ textarea({", + "\tid: \"$1\",", + "\tname: \"$1\",", + "\tlabel: {", + "\t\ttext: \"${2:Label text}\"", + "\t},", + "\thint: {", + "\t\ttext: \"${3:Hint text}\"", + "\t},", + "\tvalue: \"${4:Value}\"", + "}) }}$0" + ], + "description": "Textarea – NHS.UK Design System" + }, + "Address": { + "prefix": "nhsuk-address", + "body": [ + "{% call fieldset({", + "\tlegend: {", + "\t\ttext: \"${1:What is your address?}\",", + "\t\tisPageHeading: ${2:true},", + "\t\tclasses: \"nhsuk-fieldset__legend--${3:l}\"", + "\t}", + "}) %}", + "", + "\t{{ input({", + "\t\tid: \"address-line-1\",", + "\t\tname: \"address-line-1\",", + "\t\tlabel: {", + "\t\t\thtml: 'Building and street line 1 of 2'", + "\t\t},", + "\t\tvalue: \"${5:Value}\"", + "\t}) }}", + "", + "\t{{ input({", + "\t\tid: \"address-line-2\",", + "\t\tname: \"address-line-2\",", + "\t\tlabel: {", + "\t\t\thtml: 'Building and street line 2 of 2'", + "\t\t},", + "\t\tvalue: \"${6:Value}\"", + "\t}) }}", + "", + "\t{{ input({", + "\t\tid: \"address-town\",", + "\t\tname: \"address-town\",", + "\t\tlabel: {", + "\t\t\ttext: \"Town or city\"", + "\t\t},", + "\t\tvalue: \"${7:Value}\"", + "\t\tclasses: \"nhsuk-u-width-two-thirds\"", + "\t}) }}", + "", + "\t{{ input({", + "\t\tid: \"address-county\",", + "\t\tname: \"address-county\",", + "\t\tlabel: {", + "\t\t\ttext: \"County\"", + "\t\t},", + "\t\tvalue: \"${8:Value}\"", + "\t\tclasses: \"nhsuk-u-width-two-thirds\"", + "\t}) }}", + "", + "\t{{ input({", + "\t\tid: \"address-postcode\",", + "\t\tname: \"address-postcode\",", + "\t\tlabel: {", + "\t\t\ttext: \"Postcode\"", + "\t\t},", + "\t\tvalue: \"${9:Value}\"", + "\t\tclasses: \"nhsuk-input--width-10\"", + "\t}) }}", + "", + "{% endcall %}$0" + ], + "description": "Addresses – NHS.UK Design System" + }, + "Date input": { + "prefix": "nhsuk-date", + "body": [ + "{{ dateInput({", + "\tid: \"${1:date}\",", + "\tname: \"${1:date}\",", + "\tfieldset: {", + "\t\tlegend: {", + "\t\t\ttext: \"${2:Legend text}\",", + "\t\t\tisPageHeading: ${3:true},", + "\t\t\tclasses: \"nhsuk-fieldset__legend--${4:l}\"", + "\t\t}", + "\t},", + "\thint: {", + "\t\ttext: \"${5:For example, 31 3 1980}\"", + "\t},", + "\titems: [", + "\t\t{", + "\t\t\tname: \"day\",", + "\t\t\tvalue: \"${6:Value}\"", + "\t\t},", + "\t\t{", + "\t\t\tname: \"month\",", + "\t\t\tvalue: \"${7:Value}\"", + "\t\t},", + "\t\t{", + "\t\t\tname: \"year\",", + "\t\t\tvalue: \"${8:Value}\"", + "\t\t}", + "\t]", + "}) }}$0" + ], + "description": "Date input – NHS.UK Design System" + }, + "File upload": { + "prefix": "nhsuk-file", + "body": [ + "{{ fileUpload({", + "\tid: \"${1:file-upload-1}\",", + "\tname: \"${1:file-upload-1}\",", + "\tlabel: {", + "\t\ttext: \"${2:Upload a file}\"", + "\t}", + "\thint: {", + "\t\ttext: \"${3:Hint text}\"", + "\t}", + "}) }}$0" + ], + "description": "File upload – NHS.UK Design System" + }, + "Back link": { + "prefix": "nhsuk-back-link", + "body": [ + "{{ backLink({", + "\ttext: \"${1:Back}\",", + "\thref: \"${2:#}\"", + "}) }}$0" + ], + "description": "Back link – NHS.UK Design System" + }, + "Breadcrumbs": { + "prefix": "nhsuk-breadcrumbs", + "body": [ + "{{ breadcrumb({", + "\titems: [", + "\t\t{", + "\t\t\ttext: \"${1:Level one}\",", + "\t\t\thref: \"${2:/level-one}\"", + "\t\t}", + "\t\t{", + "\t\t\ttext: \"${3:Level two}\",", + "\t\t\thref: \"${4:/level-two}\"", + "\t\t}", + "\t]", + "}) }}$0" + ], + "description": "Breadcrumbs – NHS.UK Design System" + }, + "Details": { + "prefix": "nhsuk-details", + "body": [ + "{{ details({", + "\ttext: \"${1:Summary text}\",", + "\thtml: \"${2:HTML}\"", + "}) }}$0" + ], + "description": "Details – NHS.UK Design System" + }, + "Error summary": { + "prefix": "nhsuk-error-summary", + "body": [ + "{{ errorSummary({", + "\ttitleText: \"${1:There is a problem}\",", + "\terrorList: [", + "\t\t{", + "\t\t\ttext: \"${2:Error text}\",", + "\t\t\thref: \"${3:Anchor text}\"", + "\t\t}", + "\t]", + "}) }}$0" + ], + "description": "Error summary – NHS.UK Design System" + }, + "Footer": { + "prefix": "nhsuk-footer", + "body": [ + "{{ footer({", + "\tlinks: [", + "\t\t{", + "\t\t\tlabel: \"${1:Link text}\",", + "\t\t\turl: \"${2:Anchor text}\"", + "\t\t}", + "\t]", + "}) }}$0" + ], + "description": "Footer – NHS.UK Design System" + }, + "Header": { + "prefix": "nhsuk-header", + "body": [ + "{{ header({", + "\tshowNav: true,", + "\tshowSearch: true,", + "\tprimaryLinks: [", + "\t\t{", + "\t\t\tlabel: \"${1:Link text}\",", + "\t\t\turl: \"${2:Anchor text}\"", + "\t\t}", + "\t]", + "}) }}$0" + ], + "description": "Header – NHS.UK Design System" + }, + "Inset text": { + "prefix": "nhsuk-inset-text", + "body": [ + "{{ insetText({", + "\thtml: \"${1:Text}\"", + "}) }}$0" + ], + "description": "Inset text – NHS.UK Design System" + }, + "Skip link": { + "prefix": "nhsuk-skip-link", + "body": [ + "{{ skipLink({", + "\ttext: \"Skip to main content\",", + "\thref: \"#content\"", + "}) }}$0" + ], + "description": "Skip link – NHS.UK Design System" + }, + "Table": { + "prefix": "nhsuk-table", + "body": [ + "{{ table({", + "\tcaption: \"${1:Caption text}\",", + "\tfirstCellIsHeader: ${2:false},", + "\thead: [", + "\t\t{", + "\t\t\ttext: \"Column 1 heading\"", + "\t\t},", + "\t\t{", + "\t\t\ttext: \"Column 2 heading\"", + "\t\t}", + "\t],", + "\trows: [", + "\t\t[", + "\t\t\t{", + "\t\t\t\ttext: \"Row 1, column 1\"", + "\t\t\t},", + "\t\t\t{", + "\t\t\t\ttext: \"Row 1, column 2\"", + "\t\t\t}", + "\t\t],", + "\t\t[", + "\t\t\t{", + "\t\t\t\ttext: \"Row 2, column 1\"", + "\t\t\t},", + "\t\t\t{", + "\t\t\t\ttext: \"Row 2, column 2\"", + "\t\t\t}", + "\t\t],", + "\t\t[", + "\t\t\t{", + "\t\t\t\ttext: \"Row 3, column 1\"", + "\t\t\t},", + "\t\t\t{", + "\t\t\t\ttext: \"Row 3, column 2\"", + "\t\t\t}", + "\t\t]", + "\t]", + "}) }}$0" + ], + "description": "Table – NHS.UK Design System" + }, + "Warning callout": { + "prefix": "nhsuk-warning-callout", + "body": [ + "{{ warningCallout({", + "\theading: \"${1:Warning heading}\",", + "\thtml: \"${2:Warning text}\"", + "}) }}$0" + ], + "description": "Warning callout – NHS.UK Design System" + } +}