From 203a7437e7a1b5f065900e8e2acccccfd1774245 Mon Sep 17 00:00:00 2001 From: Martin Jagodic Date: Fri, 13 Feb 2026 10:40:10 +0100 Subject: [PATCH 1/9] feat: add vulnerability report form, some related refactoring --- assets/scripts/vulnerability-form.js | 42 ++++++ assets/styles/_base.scss | 4 + assets/styles/_forms.scss | 107 +++++++++++++++ assets/styles/components/_button.scss | 8 ++ assets/styles/components/_page-hero.scss | 3 + assets/styles/components/_search.scss | 1 + assets/styles/layouts/_community.scss | 4 - assets/styles/style.scss | 3 +- content/community.md | 6 +- content/report-vulnerability.md | 55 ++++++++ layouts/_default/community.html | 5 +- .../forms/vulnerability-report-form.html | 125 ++++++++++++++++++ layouts/partials/page-hero.html | 7 + layouts/report-vulnerability/single.html | 16 +++ static/admin/config.yml | 4 +- 15 files changed, 376 insertions(+), 14 deletions(-) create mode 100644 assets/scripts/vulnerability-form.js create mode 100644 assets/styles/_forms.scss create mode 100644 assets/styles/components/_page-hero.scss create mode 100644 content/report-vulnerability.md create mode 100644 layouts/partials/forms/vulnerability-report-form.html create mode 100644 layouts/partials/page-hero.html create mode 100644 layouts/report-vulnerability/single.html diff --git a/assets/scripts/vulnerability-form.js b/assets/scripts/vulnerability-form.js new file mode 100644 index 00000000..6cb0566d --- /dev/null +++ b/assets/scripts/vulnerability-form.js @@ -0,0 +1,42 @@ +/** + * Vulnerability Report Form Handler + */ + +const form = document.getElementById('vulnerability-form') + +function handleVulnerabilityFormSubmit (event) { + event.preventDefault() + + const submitButton = document.getElementById('submit-button') + const errorMessage = document.getElementById('error-message') + const errorText = document.getElementById('error-text') + const successMessage = document.getElementById('success-message') + + errorMessage.classList.add('is-hidden') + successMessage.classList.add('is-hidden') + + submitButton.disabled = true + + const formData = new FormData(form) + + fetch('/', { + method: 'POST', + headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, + body: new URLSearchParams(formData).toString(), + }) + .then(() => { + submitButton.disabled = false + form.classList.add('is-hidden') + successMessage.classList.remove('is-hidden') + successMessage.scrollIntoView({ behavior: 'smooth', block: 'start' }) + }) + .catch((error) => { + console.error('Form submission error:', error) + errorText.textContent = `Error submitting report. Please try again. ${error.message}` + errorMessage.classList.remove('is-hidden') + submitButton.disabled = false + errorMessage.scrollIntoView({ behavior: 'smooth', block: 'start' }) + }) +} + +form?.addEventListener('submit', handleVulnerabilityFormSubmit) diff --git a/assets/styles/_base.scss b/assets/styles/_base.scss index fbb517b2..1c4c97df 100644 --- a/assets/styles/_base.scss +++ b/assets/styles/_base.scss @@ -19,4 +19,8 @@ img { iframe { width: 100%; +} + +.is-hidden { + display: none !important; } \ No newline at end of file diff --git a/assets/styles/_forms.scss b/assets/styles/_forms.scss new file mode 100644 index 00000000..89114dd2 --- /dev/null +++ b/assets/styles/_forms.scss @@ -0,0 +1,107 @@ +// Generic form element styles + +form { + display: flex; + flex-direction: column; + margin-bottom: var(--space-6); +} + +input[type="text"], +input[type="email"], +input[type="password"], +textarea { + padding: var(--space-2) var(--space-3); + font-size: var(--font-size-md); + font-family: var(--font-family-primary); + border: 1px solid var(--color-lightest-gray); + border-radius: var(--radius-md); + background-color: var(--color-white); + + &:focus { + outline: none; + border-color: var(--color-blue); + box-shadow: 0 0 0 2px rgba(58, 105, 199, 0.1); + } +} + +textarea { + resize: vertical; + min-height: 100px; +} + +input[type="checkbox"] { + width: auto; + margin: 0; + width: 16px; + height: 16px; +} + +.form-element { + display: flex; + flex-direction: column; + gap: var(--space-2); + margin-bottom: var(--space-4); + + span { + font-weight: var(--font-weight-medium); + font-size: var(--font-size-md); + } + + &:has(input:required, textarea:required) { + span:after { + content: ' *'; + color: var(--color-primary-light); + } + } + + small { + font-size: var(--font-size-sm); + color: var(--color-lightish-gray); + } + + &--checkbox { + label { + display: flex; + gap: var(--space-2); + align-items: center; + } + } +} + +button[type="submit"] { + align-self: flex-start; +} + +// Message containers +.form-success, +.form-error { + padding: var(--space-3) var(--space-4); + border-radius: var(--radius-md); + margin: var(--space-4) 0; +} + +.form-success { + background-color: #e8f5e9; + border-left: 4px solid #388e3c; + color: #1b5e20; + + h3 { + margin-top: 0; + color: #1b5e20; + } + + p { + margin: var(--space-2) 0; + color: #2e7d32; + } +} + +.form-error { + background-color: #fce4ec; + border-left: 4px solid #d32f2f; + color: #c62828; + + p { + margin: 0; + } +} diff --git a/assets/styles/components/_button.scss b/assets/styles/components/_button.scss index 7127e53c..96cb75e0 100644 --- a/assets/styles/components/_button.scss +++ b/assets/styles/components/_button.scss @@ -52,4 +52,12 @@ background: var(--color-primary-light); border-color: var(--color-primary-light); } + + &[disabled] { + background-color: var(--color-light-gray); + border-color: var(--color-light-gray); + color: var(--color-gray); + cursor: not-allowed; + opacity: 0.7; + } } diff --git a/assets/styles/components/_page-hero.scss b/assets/styles/components/_page-hero.scss new file mode 100644 index 00000000..7b4010e9 --- /dev/null +++ b/assets/styles/components/_page-hero.scss @@ -0,0 +1,3 @@ +.page-hero { + margin-bottom: var(--space-6); +} \ No newline at end of file diff --git a/assets/styles/components/_search.scss b/assets/styles/components/_search.scss index a1979e11..e1273927 100644 --- a/assets/styles/components/_search.scss +++ b/assets/styles/components/_search.scss @@ -3,6 +3,7 @@ &__form { width: 100%; + margin: 0; } &__field { diff --git a/assets/styles/layouts/_community.scss b/assets/styles/layouts/_community.scss index 043f9cbb..4291ba71 100644 --- a/assets/styles/layouts/_community.scss +++ b/assets/styles/layouts/_community.scss @@ -1,7 +1,3 @@ -.community-header { - margin-bottom: var(--space-6); -} - .community-section { margin-bottom: var(--space-6); } diff --git a/assets/styles/style.scss b/assets/styles/style.scss index b65a1b6b..2bb2dd66 100644 --- a/assets/styles/style.scss +++ b/assets/styles/style.scss @@ -13,6 +13,7 @@ @import 'table'; @import 'header'; @import 'footer'; +@import 'forms'; @import 'layouts/page'; @import 'layouts/blog-list'; @@ -27,6 +28,7 @@ @import 'components/button'; @import 'components/container'; @import 'components/hero-title'; +@import 'components/page-hero'; @import 'components/pagination-nav'; @import 'components/version-tag'; @import 'components/page-layout'; @@ -36,7 +38,6 @@ @import 'components/highlight'; @import 'components/carbon-ads'; @import 'components/widgets'; -@import 'components/features-grid'; @import 'components/home/hero'; @import 'components/home/developers'; diff --git a/content/community.md b/content/community.md index 3de30235..6deca3ee 100644 --- a/content/community.md +++ b/content/community.md @@ -1,8 +1,8 @@ --- -title: Community +linkTitle: Community layout: community -headline: Help us build the CMS of the future. -subhead: Get help, help others, and find out what's new through the channels below. +title: Help us build the CMS of the future. +description: Get help, help others, and find out what's new through the channels below. sections: - title: Contributing channels: diff --git a/content/report-vulnerability.md b/content/report-vulnerability.md new file mode 100644 index 00000000..6fe853ff --- /dev/null +++ b/content/report-vulnerability.md @@ -0,0 +1,55 @@ +--- +title: Report a Security Vulnerability +description: You can confidentially report security vulnerabilities in Decap CMS by filling out this form. Do not open public GitHub issues for security vulnerabilities! +layout: report-vulnerability +success_title: Thank You for Your Report +success_message: We've received your vulnerability submission. We'll investigate it and work with you to understand the problem. If confirmed, we'll coordinate a fix and responsible disclosure with you. +button_text: Submit Vulnerability Report +form_fields: + title: + label: Vulnerability Title + placeholder: e.g., XSS vulnerability in markdown widget + help: Brief summary of the security issue (max 200 characters) + maxlength: 200 + description: + label: Detailed Description + placeholder: Describe what the vulnerability is and why it's a security concern... + help: Explain the vulnerability in detail, including how it occurs (10-5000 characters) + minlength: 10 + maxlength: 5000 + versions: + label: Affected Version(s) + placeholder: e.g., 3.0.0, 3.1.x + help: Which version(s) of Decap CMS are affected? + steps: + label: Steps to Reproduce + placeholder: "1. Start Decap CMS with...\n2. Navigate to...\n3. Observe..." + help: Clear, numbered steps to demonstrate the vulnerability (optional, max 3000 characters) + maxlength: 3000 + impact: + label: Potential Impact + placeholder: This vulnerability could allow attackers to... + help: What is the impact of this vulnerability? (e.g., data exposure, unauthorized access, content integrity) + maxlength: 2000 + name: + label: Your Name + maxlength: 100 + email: + label: Your Email + placeholder: your@email.com + help: We'll use this to acknowledge receipt and follow up with you. We won't share it without your consent. + credit: + label: I would like public credit for this report + help: Your name will appear in the GitHub Security Advisory and release notes (unless you provide alternate details) +--- + +## Security Response Timeline + +We acknowledge receipt of your report: 2 days + +We work on fixing the vulnerability: 7 days + +We disclose the vulnerability publicly: 10 days + + +Your report will be handled confidentially. We will not share your contact information without your consent. \ No newline at end of file diff --git a/layouts/_default/community.html b/layouts/_default/community.html index c7c547b1..bd67f773 100644 --- a/layouts/_default/community.html +++ b/layouts/_default/community.html @@ -1,10 +1,7 @@ {{ define "main" }}
-
-

{{ .Params.headline | markdownify }}

-

{{ .Params.subhead | markdownify }}

-
+ {{ partial "page-hero" . }} {{ range .Params.sections }}
diff --git a/layouts/partials/forms/vulnerability-report-form.html b/layouts/partials/forms/vulnerability-report-form.html new file mode 100644 index 00000000..8427a71c --- /dev/null +++ b/layouts/partials/forms/vulnerability-report-form.html @@ -0,0 +1,125 @@ +
+
+ + {{ with .Params.form_fields.title }} + + {{ end }} + + {{ with .Params.form_fields.description }} + + {{ end }} + + {{ with .Params.form_fields.versions }} + + {{ end }} + + {{ with .Params.form_fields.steps }} + + {{ end }} + + {{ with .Params.form_fields.impact }} + + {{ end }} + + {{ with .Params.form_fields.name }} + + {{ end }} + + {{ with .Params.form_fields.email }} + + {{ end }} + + {{ with .Params.form_fields.credit }} +
+ + {{ .help }} +
+ {{ end }} + + + + +
+ + diff --git a/layouts/partials/page-hero.html b/layouts/partials/page-hero.html new file mode 100644 index 00000000..cbd2e8cc --- /dev/null +++ b/layouts/partials/page-hero.html @@ -0,0 +1,7 @@ +
+

{{ .Title }}

+ + {{ with .Description }} +

{{ . }}

+ {{ end }} +
\ No newline at end of file diff --git a/layouts/report-vulnerability/single.html b/layouts/report-vulnerability/single.html new file mode 100644 index 00000000..cd9be5c7 --- /dev/null +++ b/layouts/report-vulnerability/single.html @@ -0,0 +1,16 @@ +{{ define "main" }} +
+
+ {{ partial "page-hero" . }} + + {{ partial "forms/vulnerability-report-form" . }} + + {{ .Content }} +
+
+{{ end }} + +{{ define "scripts" }} + {{ $formJS := resources.Get "/scripts/vulnerability-form.js" | js.Build (dict "minify" true) }} + +{{ end }} diff --git a/static/admin/config.yml b/static/admin/config.yml index 1a509c94..4623c66d 100644 --- a/static/admin/config.yml +++ b/static/admin/config.yml @@ -161,9 +161,9 @@ collections: file: content/community.md preview_path: community fields: + - { label: Link Title, name: linkTitle } - { label: Title, name: title } - - { label: Headline, name: headline } - - { label: Subheading, name: subhead } + - { label: Description, name: description } - label: Sections name: sections widget: list From 6a82026f53c6297e6a335e0948ecb793514b3dcf Mon Sep 17 00:00:00 2001 From: Martin Jagodic Date: Fri, 13 Feb 2026 10:43:40 +0100 Subject: [PATCH 2/9] trigger form detection --- content/report-vulnerability.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/content/report-vulnerability.md b/content/report-vulnerability.md index 6fe853ff..baf109eb 100644 --- a/content/report-vulnerability.md +++ b/content/report-vulnerability.md @@ -45,11 +45,11 @@ form_fields: ## Security Response Timeline -We acknowledge receipt of your report: 2 days +We acknowledge receipt of your report: 5 days -We work on fixing the vulnerability: 7 days +We work on fixing the vulnerability: 10 days -We disclose the vulnerability publicly: 10 days +We disclose the vulnerability publicly: 15 days Your report will be handled confidentially. We will not share your contact information without your consent. \ No newline at end of file From 1d275e11c9717ce602e6aeb4bf26b422c026fac7 Mon Sep 17 00:00:00 2001 From: Martin Jagodic Date: Fri, 13 Feb 2026 10:50:53 +0100 Subject: [PATCH 3/9] change form name --- layouts/partials/forms/vulnerability-report-form.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/layouts/partials/forms/vulnerability-report-form.html b/layouts/partials/forms/vulnerability-report-form.html index 8427a71c..5dec0c7b 100644 --- a/layouts/partials/forms/vulnerability-report-form.html +++ b/layouts/partials/forms/vulnerability-report-form.html @@ -1,5 +1,5 @@
Date: Fri, 13 Feb 2026 10:54:30 +0100 Subject: [PATCH 4/9] update hugo version --- netlify.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/netlify.toml b/netlify.toml index 52db9cfd..27faa525 100644 --- a/netlify.toml +++ b/netlify.toml @@ -3,7 +3,7 @@ command = "hugo --gc --minify" [build.environment] - HUGO_VERSION = "0.148.1" + HUGO_VERSION = "0.155.3" HUGO_ENV = "production" HUGO_ENABLEGITINFO = "true" From 40c7f6cf3a8e30de9c880de1535d5abbb3b73b07 Mon Sep 17 00:00:00 2001 From: Martin Jagodic Date: Fri, 13 Feb 2026 11:21:33 +0100 Subject: [PATCH 5/9] Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- assets/styles/style.scss | 1 + layouts/partials/forms/vulnerability-report-form.html | 6 +++++- layouts/report-vulnerability/single.html | 4 +++- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/assets/styles/style.scss b/assets/styles/style.scss index 2bb2dd66..7b9e613d 100644 --- a/assets/styles/style.scss +++ b/assets/styles/style.scss @@ -38,6 +38,7 @@ @import 'components/highlight'; @import 'components/carbon-ads'; @import 'components/widgets'; +@import 'components/features-grid'; @import 'components/home/hero'; @import 'components/home/developers'; diff --git a/layouts/partials/forms/vulnerability-report-form.html b/layouts/partials/forms/vulnerability-report-form.html index 5dec0c7b..e63accf5 100644 --- a/layouts/partials/forms/vulnerability-report-form.html +++ b/layouts/partials/forms/vulnerability-report-form.html @@ -1,10 +1,14 @@ -
+
+ + +
{{ with .Params.form_fields.title }}
{{ end }} From d11f0ffa365df36e8e2135272f1b453f66df0c9f Mon Sep 17 00:00:00 2001 From: Martin Jagodic Date: Fri, 13 Feb 2026 11:22:03 +0100 Subject: [PATCH 6/9] fix: pr comments, page hero to features layout --- .github/copilot-instructions.md | 4 ++-- assets/scripts/vulnerability-form.js | 5 ++++- assets/styles/style.scss | 1 + layouts/features/single.html | 6 +----- layouts/partials/page-hero.html | 2 +- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index fd82da51..a9ac9250 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -2,7 +2,7 @@ ## Project Overview -This is the **Decap CMS website** built with **Hugo 0.148.1**. The site was successfully migrated from Gatsby in October 2025. +This is the **Decap CMS website** built with **Hugo**. The site was successfully migrated from Gatsby in October 2025. - **Production**: Hugo implementation (root directory) - **Legacy**: Gatsby source code (`gatsby/`) - kept for reference only, not actively maintained @@ -187,7 +187,7 @@ hugo --gc --minify # Build optimized site - **File**: `netlify.toml` in root - **Build command**: `hugo --gc --minify` - **Publish directory**: `public` -- **Hugo version**: 0.148.1 (extended) +- **Hugo version**: 0.155.3 (extended) ## Migration Patterns diff --git a/assets/scripts/vulnerability-form.js b/assets/scripts/vulnerability-form.js index 6cb0566d..85d1657b 100644 --- a/assets/scripts/vulnerability-form.js +++ b/assets/scripts/vulnerability-form.js @@ -24,7 +24,10 @@ function handleVulnerabilityFormSubmit (event) { headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, body: new URLSearchParams(formData).toString(), }) - .then(() => { + .then((res) => { + if (!res.ok) { + throw new Error(`HTTP error! status: ${res.status}`) + } submitButton.disabled = false form.classList.add('is-hidden') successMessage.classList.remove('is-hidden') diff --git a/assets/styles/style.scss b/assets/styles/style.scss index 7b9e613d..122e26a5 100644 --- a/assets/styles/style.scss +++ b/assets/styles/style.scss @@ -25,6 +25,7 @@ @import 'components/search'; @import 'components/alert'; @import 'components/template-card'; +@import 'components/features-grid'; @import 'components/button'; @import 'components/container'; @import 'components/hero-title'; diff --git a/layouts/features/single.html b/layouts/features/single.html index 4c06aecc..7904a493 100644 --- a/layouts/features/single.html +++ b/layouts/features/single.html @@ -1,11 +1,7 @@ {{ define "main" }}
-

{{ .Title }}

- - {{ if .Params.description }} -

{{ .Params.description }}

- {{ end }} + {{ partial "page-hero" . }} {{ if .Content }}
diff --git a/layouts/partials/page-hero.html b/layouts/partials/page-hero.html index cbd2e8cc..e69a3a45 100644 --- a/layouts/partials/page-hero.html +++ b/layouts/partials/page-hero.html @@ -2,6 +2,6 @@

{{ .Title }}

{{ with .Description }} -

{{ . }}

+

{{ . }}

{{ end }}
\ No newline at end of file From 5ff3c0630651abe992b9536a53411216e16febb6 Mon Sep 17 00:00:00 2001 From: Martin Jagodic Date: Fri, 13 Feb 2026 11:31:16 +0100 Subject: [PATCH 7/9] Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- assets/scripts/vulnerability-form.js | 2 +- assets/styles/_forms.scss | 2 +- layouts/partials/forms/vulnerability-report-form.html | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/assets/scripts/vulnerability-form.js b/assets/scripts/vulnerability-form.js index 85d1657b..2780f2a0 100644 --- a/assets/scripts/vulnerability-form.js +++ b/assets/scripts/vulnerability-form.js @@ -35,7 +35,7 @@ function handleVulnerabilityFormSubmit (event) { }) .catch((error) => { console.error('Form submission error:', error) - errorText.textContent = `Error submitting report. Please try again. ${error.message}` + errorText.textContent = 'Error submitting report. Please try again or contact us directly if the problem persists.' errorMessage.classList.remove('is-hidden') submitButton.disabled = false errorMessage.scrollIntoView({ behavior: 'smooth', block: 'start' }) diff --git a/assets/styles/_forms.scss b/assets/styles/_forms.scss index 89114dd2..68720e85 100644 --- a/assets/styles/_forms.scss +++ b/assets/styles/_forms.scss @@ -30,7 +30,7 @@ textarea { } input[type="checkbox"] { - width: auto; + margin: 0; width: 16px; height: 16px; diff --git a/layouts/partials/forms/vulnerability-report-form.html b/layouts/partials/forms/vulnerability-report-form.html index e63accf5..c33597d1 100644 --- a/layouts/partials/forms/vulnerability-report-form.html +++ b/layouts/partials/forms/vulnerability-report-form.html @@ -5,7 +5,7 @@ data-netlify-honeypot="bot-field" id="vulnerability-form" > -
+ From 490068c571993582fc27095333e890143d09fe94 Mon Sep 17 00:00:00 2001 From: Martin Jagodic Date: Fri, 13 Feb 2026 11:47:24 +0100 Subject: [PATCH 8/9] remove some content, reorder files --- content/report-vulnerability.md | 11 ----------- .../report-vulnerability.html} | 10 ++++++---- .../{forms => }/vulnerability-report-form.html | 0 3 files changed, 6 insertions(+), 15 deletions(-) rename layouts/{report-vulnerability/single.html => _default/report-vulnerability.html} (68%) rename layouts/partials/{forms => }/vulnerability-report-form.html (100%) diff --git a/content/report-vulnerability.md b/content/report-vulnerability.md index baf109eb..8c07e61e 100644 --- a/content/report-vulnerability.md +++ b/content/report-vulnerability.md @@ -42,14 +42,3 @@ form_fields: label: I would like public credit for this report help: Your name will appear in the GitHub Security Advisory and release notes (unless you provide alternate details) --- - -## Security Response Timeline - -We acknowledge receipt of your report: 5 days - -We work on fixing the vulnerability: 10 days - -We disclose the vulnerability publicly: 15 days - - -Your report will be handled confidentially. We will not share your contact information without your consent. \ No newline at end of file diff --git a/layouts/report-vulnerability/single.html b/layouts/_default/report-vulnerability.html similarity index 68% rename from layouts/report-vulnerability/single.html rename to layouts/_default/report-vulnerability.html index f1ca715c..41dccfaf 100644 --- a/layouts/report-vulnerability/single.html +++ b/layouts/_default/report-vulnerability.html @@ -3,11 +3,13 @@
{{ partial "page-hero" . }} - {{ partial "forms/vulnerability-report-form" . }} + {{ partial "vulnerability-report-form" . }} -
- {{ .Content }} -
+ {{ with .Content }} +
+ {{ . }} +
+ {{ end }}
{{ end }} diff --git a/layouts/partials/forms/vulnerability-report-form.html b/layouts/partials/vulnerability-report-form.html similarity index 100% rename from layouts/partials/forms/vulnerability-report-form.html rename to layouts/partials/vulnerability-report-form.html From fb266dbae5216c3a2f61081e8c5d8d02f17b4b55 Mon Sep 17 00:00:00 2001 From: Martin Jagodic Date: Thu, 19 Feb 2026 08:25:05 +0100 Subject: [PATCH 9/9] Apply suggestions from code review Co-authored-by: Yan <61414485+yanthomasdev@users.noreply.github.com> --- assets/styles/style.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assets/styles/style.scss b/assets/styles/style.scss index 122e26a5..9fd6b0fc 100644 --- a/assets/styles/style.scss +++ b/assets/styles/style.scss @@ -25,7 +25,7 @@ @import 'components/search'; @import 'components/alert'; @import 'components/template-card'; -@import 'components/features-grid'; + @import 'components/button'; @import 'components/container'; @import 'components/hero-title';