Skip to content

Blog: .fmstr-blog-cta renders unstyled across 10 posts — class defined nowhere in the codebase #893

Description

@Abhay2133

Summary

The .fmstr-blog-cta CTA block is used in 11 blog posts but the class is not defined anywhere in the codebase. Every one of these CTAs renders as plain body text with a bare underlined link instead of a styled call-to-action box.

Confirmed by grep across all .vue, .css, and .scss files — none of fmstr-blog-cta, fmstr-blog-cta__btn, or fmstr-blog-cta__meta appear in any stylesheet or component. The only CTA classes components/blog/BlogPostView.vue actually defines are .cta, .cta--brand, and .better.

Impact

These are conversion CTAs on live Google Forms content — the highest-traffic cluster on the blog. They currently render with no box, no button, and no visual weight.

What it looks like

Caught during review of #887. The highlighted region is .fmstr-blog-cta; the correctly-styled .better block sits directly below it on the same page for comparison:

.fmstr-blog-cta renders unstyled next to a working .better block

Affected files

All are broken on master today:

  • content/blog/5-ways-to-view-responses-in-google-forms.md (line 109)
  • content/blog/captcha-for-google-forms.md (line 79)
  • content/blog/collect-email-address-google-form.md (line 113)
  • content/blog/form-limiter-add-on-for-google-forms.md (line 125)
  • content/blog/google-forms-webhooks.md (line 81)
  • content/blog/how-to-add-conditional-questions-in-google-forms.md (line 81)
  • content/blog/how-to-create-a-consent-form.md (line 168)
  • content/blog/how-to-save-google-forms-as-pdf.md (line 111)
  • content/blog/how-to-view-scores-in-google-forms.md (line 176)
  • content/blog/onboarding-mistakes.md (line 88)

An 11th instance is in content/blog/how-to-create-a-quiz-in-google-forms-the-only-guide-youll-need-in-2023.md (line 240). That one is introduced by #887 and is being tracked in that PR's review — it should be fixed there, not here.

Suggested fix

Two options:

  1. Migrate the content — replace each .fmstr-blog-cta block with the inline gradient CTA card already used in nine other content files (see content/blog/is-google-form-hipaa-compliant.md:99 for the current shape), or with the existing .cta / .cta--brand pattern.
  2. Define the CSS — add .fmstr-blog-cta styles to BlogPostView.vue and keep the existing markup.

Option 1 is probably preferable since it converges on one CTA pattern rather than adding a second.

Worth considering

There is no lint or CI on this repo, which is why this went unnoticed across 11 files. A build-time check that flags class names used in content/ but defined in no stylesheet would catch this class of bug automatically.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions