Skip to content
  • Unlock Pro
  • Log in with GitHub
Solution
Submitted almost 2 years ago

Newsletter sign-up form with success message

bem, sass/scss, typescript, vue, vite
Caramello•180
@BuzzFizzer
A solution to the Newsletter sign-up form with success message challenge
View live sitePreview (opens in new tab)View codeCode (opens in new tab)

Solution retrospective


console.log("Hello Programmers"),

This is my first project ever using TypeScript and Vue.js, and I hope I did a decent job.

Technologies Used:

  • TypeScript
  • SCSS/Sass
  • Vue.js

Naming Convention:

  • BEM (Block Element Modifier)

Difficulties Encountered:

  • Media queries: I always find working with media queries to be a pain, especially with Vue components that are reliant on one another. Any suggestions on how to better tackle this are greatly appreciated.
  • Linear-gradient: linear-gradient does not play nice with the transition property, if you have any work around please leave me a comment.

Questions:

  • Does Vue.js scoped styles make the BEM naming convention redundant ?

If you have any suggestions on how I can improve my code, I would greatly appreciate it if you could leave a comment. Thank you in advance. (✿◠‿◠)

Code
Select a file

Please log in to post a comment

Log in with GitHub

Community feedback

  • Gus•60
    @angusgee
    Posted almost 2 years ago

    Caramello, your feed is great! Your solutions are on point and your use of Vue and TS is something I can only aspire to. 🙌

    I do have one small suggestion for this project. On both the standard Desktop view and Success state, I think the UX could be improved slightly by removing the ugly blinking caret: caret-color: transparent;

    Marked as helpful
  • Wladimir Sanvicente•80
    @Wladi1000
    Posted almost 2 years ago

    Hello Caramello.

    To have a better experience with the Responsive web design I recommend using Mobile-First. A methodology for styling starting from the smallest to the largest screen, this way your projects, if they grow, will have a good scalability.

    https://www.youtube.com/watch?v=0ohtVzCSHqs

    Marked as helpful
  • Haiko•200
    @Haiko-E
    Posted almost 2 years ago

    He there, wanted to give you an answer on the scoped style and BEM. When using scoped styling, BEM is not necessary. Just back to writing short classes 🤙

    about media queries, i also think its a pain in the ass. But if your trouble is to handle it with different components. the new container queries is gonna be a nice solution. still not fully supported by browsers but think its gonna be very helpfull in future.

    Marked as helpful
  • RiveN•200
    @rivenintech
    Posted almost 2 years ago

    I was also looking for a workaround to create a transition between gradients on my second challenge. I found these interesting:

    • Stackoverflow answer (updated 2021)
    • Workaround (from 2017)

    I didn't test them yet. I had enough "fun" after trying to match gradients on my second challenge.

    I hope one of these works. 😀

    Marked as helpful
  • Sean Hill•240
    @seanhillweb
    Posted almost 2 years ago

    I had a similar difficulty with transitions and CSS gradients. I found this article to be helpful and informative: https://fjolt.com/article/css-animating-transitions-gradients

    However, I didn't use this approach for my solution either. This feels over engineered.

    Marked as helpful
  • David Rocha•20
    @davidrockkj
    Posted almost 2 years ago

    Your main-board have the exact size from design's main-board. How did you do that?

  • Ignacio Spreafico•590
    @nachospreafico
    Posted almost 2 years ago

    Hey Caramello! Really loving your feed. Although I don't use TS or Vue, I find your work nicely organized and the designs really on point.

    Keep it up, you are really on to something! Happy coding.

  • c3c3c5•60
    @c3c3c5
    Posted almost 2 years ago

    i see u understand the concept of over shooting and under shooting. master is proud of you.

  • Arman karimi•80
    @iArmanKarimi
    Posted almost 2 years ago

    Impressive solution! Your use of TypeScript and Vue.js for the Newsletter sign-up form is commendable. The form looks clean and user-friendly. Keep up the great work! 👍

  • Nikhil Tanwar•260
    @NikNT
    Posted almost 2 years ago

    An excellent job, Caramello!

    If possible please checkout my YouTube video where I undertake this challenge using ReactJS and CSS. Any feedback would be highly appreciable.

    https://youtu.be/B9T_yjWqZtk

    Keep Coding.

Join our Discord community

Join thousands of Frontend Mentor community members taking the challenges, sharing resources, helping each other, and chatting about all things front-end!

Join our Discord
Frontend Mentor logo

Stay up to datewith new challenges, featured solutions, selected articles, and our latest news

Frontend Mentor

  • Unlock Pro
  • Contact us
  • FAQs
  • Become a partner

Explore

  • Learning paths
  • Challenges
  • Solutions
  • Articles

Community

  • Discord
  • Guidelines

For companies

  • Hire developers
  • Train developers
© Frontend Mentor 2019 - 2025
  • Terms
  • Cookie Policy
  • Privacy Policy
  • License

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

How does the accessibility report work?

When a solution is submitted, we use axe-core to run an automated audit of your code.

This picks out common accessibility issues like not using semantic HTML and not having proper heading hierarchies, among others.

This automated audit is fairly surface level, so we encourage to you review the project and code in more detail with accessibility best practices in mind.

How does the CSS report work?

When a solution is submitted, we use stylelint to run an automated check on the CSS code.

We've added some of our own linting rules based on recommended best practices. These rules are prefixed with frontend-mentor/ which you'll see at the top of each issue in the report.

The report will audit 1st-party linked stylesheets, and styles within <style> tags.

How does the HTML validation report work?

When a solution is submitted, we use html-validate to run an automated check on the HTML code.

The report picks out common HTML issues such as not using headings within section elements and incorrect nesting of elements, among others.

Note that the report can pick up “invalid” attributes, which some frameworks automatically add to the HTML. These attributes are crucial for how the frameworks function, although they’re technically not valid HTML. As such, some projects can show up with many HTML validation errors, which are benign and are a necessary part of the framework.

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub

Oops! 😬

You need to be logged in before you can do that.

Log in with GitHub