https://javascript.plainenglish.io/3-design-concepts-every-front-end-developer-needs-to-know-fccb072e675c