{"id":2289,"date":"2020-01-07T10:06:29","date_gmt":"2020-01-07T09:06:29","guid":{"rendered":"https:\/\/www.codemotion.com\/magazine\/uncategorized\/css-build-your-pipeline-with-style\/"},"modified":"2021-07-05T13:12:57","modified_gmt":"2021-07-05T11:12:57","slug":"css-build-your-pipeline-with-style","status":"publish","type":"post","link":"https:\/\/www.codemotion.com\/magazine\/frontend\/css-build-your-pipeline-with-style\/","title":{"rendered":"Build your pipeline project with\u2026 style!"},"content":{"rendered":"<p>How many of you are afraid of <strong>Cascade Style Sheet<\/strong>, also known as <strong>CSS<\/strong>? Honestly, I am really scared of it, maybe because I\u2019m not a designer and my ability on computer graphics is not so good to make me feel comfortable with CSS. However, when we are in a medium-sized project, or when we are working alone on a small project, we need to think about the general architecture of the technology stack of our application to succeed. This includes style with the right choice such as which style language will be applied, which level of browser compatibility we are looking for, and so on.<\/p>\n<p>In a <strong>frontend<\/strong> perspective way, we need to cover and think about many different topics from <strong>usability<\/strong> to functionality, from <strong>user experience<\/strong> (<strong><span id=\"urn:enhancement-d501f0a0\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/user_experience\">UX<\/span><\/strong>) to User Interface (UI) and last but not least, which kind of <span id=\"urn:enhancement-7da430d9\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/entry_point\">main<\/span> library or framework we will use to build our components and client side application logic.<\/p>\n<p>So this is the <span id=\"urn:enhancement-446f56d6\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/entry_point\">main<\/span> reason why, at Codemotion Rome 2019, I listened to Giacomo Zinetti\u2019s talk &#8211; from Liferay an open-source company &#8211; with the hope I would increase my knowledge about the pipeline building project that involves styling.<\/p>\n<p>Giacomo revealed to us what kind of questions we need to answer in order to do it right, starting from scratch for the style point of view.<\/p>\n<h2 id=\"b9jmg\">Environment<\/h2>\n<p>Our environment is not only about what software or <strong>IDE<\/strong> will we use to write and build the application. Mainly, the environment is composed by people who work together in one or more team. So, the team is the first resource that we need to know well, in order to enjoy the work and get the most from everyone.<\/p>\n<p>We need to know the level of <strong>experience<\/strong> of our team to assign them the right work balance.<\/p>\n<p>Next, the <strong>type<\/strong> of the project is also fundamental to understand not only how many people we need to involve on it, but it will be the key to choose from library or a framework or build all the css rules from scratch. The type of project can be a complete web application like an e-commerce, a simple landing page, a single web component or an admin panel made mainly with charts and data table.<\/p>\n<p>After that, the <strong>life-span<\/strong> of our products is another aspect that we need to evaluate before selecting what kind of framework or not we need. A light technology stack is preferable for little projects with a short life-span.<\/p>\n<p>Then we have to decide about <strong>Vendor Compatibility<\/strong>, <strong>Browser Compatibility<\/strong> and <strong>Performance<\/strong>, but we do not always handle those aspects; most of the time both are imposed constraints and we don\u2019t have to much control over them.<\/p>\n<p>Finally, we need to discuss handling the application logic, do we need a framework like Vue, <a href=\"https:\/\/www.codemotion.com\/magazine\/dev-hub\/frontend-dev\/reactive-forms-in-angular\/\">Angular or  React<\/a> or even to try the new way of the <a href=\"https:\/\/www.codemotion.com\/magazine\/dev-hub\/web-developer\/thinking-in-web-component\/\">Web Components<\/a> or stick with Vanilla <span id=\"urn:enhancement-ada3b3bf\" class=\"textannotation disambiguated wl-creative-work\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/javascript\">JavaScript<\/span> (please don\u2019t use jQuery anymore). <\/p>\n<p>In addition, what kind of architecture should we choose? <a href=\"https:\/\/www.codemotion.com\/magazine\/dev-hub\/cloud-manager\/microservices-from-dev-to-deploy-part-1-getting-started-with-helidon-2\/\">Microservices<\/a> Architecture pattern or Monolithic Architecture pattern?<\/p>\n<blockquote><p><em>Microservice architecture is a method of developing software systems that tries to focus on building single responsibility function modules with well-defined interfaces and operations. The trend has grown popular in recent years as Enterprises look to become more Agile and move towards a DevOps and continuous testing.<\/em><\/p><\/blockquote>\n<h2 id=\"99olu\">Style Build Pipeline<\/h2>\n<p>Let us begin to discover how many ways we have to get involved with CSS. It sounds like a very nice job from Giacomo\u2019s words.<\/p>\n<p>First, we discovered that out of the <strong>Bootstrap<\/strong> framework, there are many other frameworks! Wow! I need to admit that I am too addicted to Bootstrap.<\/p>\n<p>Secondly, related to CSS framework like <a href=\"https:\/\/www.codemotion.com\/magazine\/dev-hub\/javascript\/javascript-frameworks-guide\/\" target=\"_blank\" rel=\"noopener\">JavaScript framework<\/a>, we can have different kinds of typologies, from pure CSS library to a complete set of CSS rules with a set of JavaScript scripts that give us components like Carousel or Hamburger Menu, but I discovered an unknown typology to me: utility framework like Tailwind or Tachyons.<\/p>\n<p>A utility framework does not have a default theme and there are no built-in UI components like Bootstrap, Foundation or Bulma. On the other hand, it also has no opinion about how your site should look and does not impose design decisions that you have to fight to undo. Instead, it provides highly composable, low-level utility classes that make it easy to build complex user interfaces <em>without encouraging any two sites to look the same<\/em>.<\/p>\n<p>However, if you like to write custom CSS or modify an already existed one, what kind of steps do we need to take?<\/p>\n<p>There are two main steps: <strong>pre<\/strong>&#8211;<strong>processing<\/strong> and <strong>post<\/strong>&#8211;<strong>processing<\/strong>. <\/p>\n<p>Pre-processing is the step where our CSS syntax code is not written in standard CSS but with another language like SASS, Less or Stylus. Therefore, we need to transform the new syntax that seems to be like CSS, in plain CSS to make it understandable for the browser.<\/p>\n<p>Why we use those kind of languages? To add \u201cpower\u201d to our syntax and get access to mixins, functions and variables, that we use in standard <span id=\"urn:enhancement-4bd16439\" class=\"textannotation disambiguated wl-other\" itemid=\"http:\/\/data.wordlift.io\/wl01770\/entity\/rust_programming_language\">programming language<\/span>, and can be useful to get more control on our style code.<\/p>\n<figure class=\"image regular \"><picture style=\"\"><source srcset=\"https:\/\/codemotion.com\/magazine\/wp-content\/uploads\/2020\/01\/MY-IMAGE_1_8f81f7368f0b2ed0619ec6c762c1b498_800.png 1x\" media=\"(max-width: 768px)\"><source srcset=\"https:\/\/codemotion.com\/magazine\/wp-content\/uploads\/2020\/01\/MY-IMAGE_1_8f81f7368f0b2ed0619ec6c762c1b498_800.png 1x\" media=\"(min-width: 769px)\"><img decoding=\"async\" style=\"\" alt=\"\" src=\"https:\/\/codemotion.com\/magazine\/wp-content\/uploads\/2020\/01\/MY-IMAGE_1_8f81f7368f0b2ed0619ec6c762c1b498_800.png\"><\/picture><figcaption>SASS Example<\/figcaption><\/figure>\n<figure class=\"image regular \"><picture style=\"\"><source srcset=\"https:\/\/codemotion.com\/magazine\/wp-content\/uploads\/2020\/01\/MY-IMAGE_2_9d70edc83c32fb5f58b7acee2a7e77a8_800.png 1x\" media=\"(max-width: 768px)\"><source srcset=\"https:\/\/codemotion.com\/magazine\/wp-content\/uploads\/2020\/01\/MY-IMAGE_2_9d70edc83c32fb5f58b7acee2a7e77a8_800.png 1x\" media=\"(min-width: 769px)\"><img decoding=\"async\" style=\"\" alt=\"\" src=\"https:\/\/codemotion.com\/magazine\/wp-content\/uploads\/2020\/01\/MY-IMAGE_2_9d70edc83c32fb5f58b7acee2a7e77a8_800.png\"><\/picture>\n<figcaption>Less Example<\/figcaption>\n<\/figure>\n<p>Post-processing is the step where our CSS is transformed in CSS (yes, it seems to be the same) which enriches our rules with vendor prefix, optimises tasks such as compression and minification, the linting task involves error checking operations and checks the style guide related to the code we write.<\/p>\n<p>If our project is a lifelong one, Giacomo advises us to stick to classic CSS with semantic names for our class styles to prevent a choice that can be deprecated or abandoned in the future.<\/p>\n<p>Is that all? In truth, before starting every project, it is good to write and share with all team members a style guide and a naming convention like BEM, to have a clear folder structure with the appropriate file names which improves organisation and finding operations.<\/p>\n<p>A linter helps us write better code. With the right settings, we can check our code while we are writing it and get suggestions and warnings. It can greatly improve our productivity and prevent hidden problems.<\/p>\n<p>Finally, do not forget that stylesheet is determined by the cascade feature. It is a fundamental feature that defines how to combine property values coming from different sources. This is the key to know how an element can be rendered in a certain way.<\/p>\n<figure class=\"image regular \"><picture style=\"\"><source srcset=\"https:\/\/codemotion.com\/magazine\/wp-content\/uploads\/2020\/01\/MY-IMAGE_3_9d6a1b755f9a97665af2a47f7c160fb0_800.png 1x\" media=\"(max-width: 768px)\"><source srcset=\"https:\/\/codemotion.com\/magazine\/wp-content\/uploads\/2020\/01\/MY-IMAGE_3_9d6a1b755f9a97665af2a47f7c160fb0_800.png 1x\" media=\"(min-width: 769px)\"><img decoding=\"async\" style=\"\" alt=\"\" src=\"https:\/\/codemotion.com\/magazine\/wp-content\/uploads\/2020\/01\/MY-IMAGE_3_9d6a1b755f9a97665af2a47f7c160fb0_800.png\"><\/picture>\n<figcaption>Why you need to know cascade<\/figcaption>\n<\/figure>\n<p><!-- strchf script --><script>        if(window.strchfSettings === undefined) window.strchfSettings = {};    window.strchfSettings.stats = {url: \"https:\/\/codemotion.storychief.io\/css-build-your-pipeline-with-style?id=753341372&type=2\",title: \"Build your pipeline project with\u2026 style!\",id: \"66543c6c-96d5-4792-a44b-49339654b7a1\"};            (function(d, s, id) {      var js, sjs = d.getElementsByTagName(s)[0];      if (d.getElementById(id)) {window.strchf.update(); return;}      js = d.createElement(s); js.id = id;      js.src = \"https:\/\/d37oebn0w9ir6a.cloudfront.net\/scripts\/v0\/strchf.js\";      js.async = true;      sjs.parentNode.insertBefore(js, sjs);    }(document, 'script', 'storychief-jssdk'))    <\/script><!-- End strchf script --><\/p>\n\n","protected":false},"excerpt":{"rendered":"<p>An overview of how to approach CSS and why any web developer (even if not working on frontend) should know a bit of it.<\/p>\n","protected":false},"author":79,"featured_media":2290,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_editorskit_title_hidden":false,"_editorskit_reading_time":0,"_editorskit_is_block_options_detached":false,"_editorskit_block_options_position":"{}","_uag_custom_page_level_css":"","_genesis_hide_title":false,"_genesis_hide_breadcrumbs":false,"_genesis_hide_singular_image":false,"_genesis_hide_footer_widgets":false,"_genesis_custom_body_class":"","_genesis_custom_post_class":"","_genesis_layout":"","footnotes":""},"categories":[6],"tags":[4,66],"collections":[],"class_list":{"0":"post-2289","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-frontend","8":"tag-codemotion-rome","9":"tag-css","10":"entry"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v26.9 (Yoast SEO v27.5) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>CSS: build your pipeline project with style! - Codemotion Magazine<\/title>\n<meta name=\"description\" content=\"An overview of how to approach CSS and why any web developer (even if not working on frontend) should know a bit of it.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.codemotion.com\/magazine\/frontend\/css-build-your-pipeline-with-style\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Build your pipeline project with\u2026 style!\" \/>\n<meta property=\"og:description\" content=\"An overview of how to approach CSS and why any web developer (even if not working on frontend) should know a bit of it.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.codemotion.com\/magazine\/frontend\/css-build-your-pipeline-with-style\/\" \/>\n<meta property=\"og:site_name\" content=\"Codemotion Magazine\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Codemotion.Italy\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-01-07T09:06:29+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-07-05T11:12:57+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/01\/css-1797778_1280_ce8a86e4f9580f8352d7038d76a5a500_2000.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1019\" \/>\n\t<meta property=\"og:image:height\" content=\"675\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Lorenzo Franceschini\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:site\" content=\"@CodemotionIT\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Lorenzo Franceschini\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/frontend\\\/css-build-your-pipeline-with-style\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/frontend\\\/css-build-your-pipeline-with-style\\\/\"},\"author\":{\"name\":\"Lorenzo Franceschini\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#\\\/schema\\\/person\\\/c48e30a376daa81f0b5099d3e0c16b04\"},\"headline\":\"Build your pipeline project with\u2026 style!\",\"datePublished\":\"2020-01-07T09:06:29+00:00\",\"dateModified\":\"2021-07-05T11:12:57+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/frontend\\\/css-build-your-pipeline-with-style\\\/\"},\"wordCount\":1089,\"publisher\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/frontend\\\/css-build-your-pipeline-with-style\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/wp-content\\\/uploads\\\/2020\\\/01\\\/css-1797778_1280_ce8a86e4f9580f8352d7038d76a5a500_2000.jpg\",\"keywords\":[\"Codemotion Rome\",\"CSS\"],\"articleSection\":[\"Frontend\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/frontend\\\/css-build-your-pipeline-with-style\\\/\",\"url\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/frontend\\\/css-build-your-pipeline-with-style\\\/\",\"name\":\"CSS: build your pipeline project with style! - Codemotion Magazine\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/frontend\\\/css-build-your-pipeline-with-style\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/frontend\\\/css-build-your-pipeline-with-style\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/wp-content\\\/uploads\\\/2020\\\/01\\\/css-1797778_1280_ce8a86e4f9580f8352d7038d76a5a500_2000.jpg\",\"datePublished\":\"2020-01-07T09:06:29+00:00\",\"dateModified\":\"2021-07-05T11:12:57+00:00\",\"description\":\"An overview of how to approach CSS and why any web developer (even if not working on frontend) should know a bit of it.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/frontend\\\/css-build-your-pipeline-with-style\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/frontend\\\/css-build-your-pipeline-with-style\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/frontend\\\/css-build-your-pipeline-with-style\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/wp-content\\\/uploads\\\/2020\\\/01\\\/css-1797778_1280_ce8a86e4f9580f8352d7038d76a5a500_2000.jpg\",\"contentUrl\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/wp-content\\\/uploads\\\/2020\\\/01\\\/css-1797778_1280_ce8a86e4f9580f8352d7038d76a5a500_2000.jpg\",\"width\":1019,\"height\":675,\"caption\":\"Build your pipeline project with\u2026 style!\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/frontend\\\/css-build-your-pipeline-with-style\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Frontend\",\"item\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/frontend\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Build your pipeline project with\u2026 style!\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#website\",\"url\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/\",\"name\":\"Codemotion Magazine\",\"description\":\"We code the future. Together\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#organization\",\"name\":\"Codemotion\",\"url\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/wp-content\\\/uploads\\\/2019\\\/11\\\/codemotionlogo.png\",\"contentUrl\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/wp-content\\\/uploads\\\/2019\\\/11\\\/codemotionlogo.png\",\"width\":225,\"height\":225,\"caption\":\"Codemotion\"},\"image\":{\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/Codemotion.Italy\\\/\",\"https:\\\/\\\/x.com\\\/CodemotionIT\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/#\\\/schema\\\/person\\\/c48e30a376daa81f0b5099d3e0c16b04\",\"name\":\"Lorenzo Franceschini\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/adfbaabe86bc433a00657b5827f9f5d47c1d66c20519afedcf67805ef30c9fb2?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/adfbaabe86bc433a00657b5827f9f5d47c1d66c20519afedcf67805ef30c9fb2?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/adfbaabe86bc433a00657b5827f9f5d47c1d66c20519afedcf67805ef30c9fb2?s=96&d=mm&r=g\",\"caption\":\"Lorenzo Franceschini\"},\"url\":\"https:\\\/\\\/www.codemotion.com\\\/magazine\\\/author\\\/lorenzo-franceschini\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"CSS: build your pipeline project with style! - Codemotion Magazine","description":"An overview of how to approach CSS and why any web developer (even if not working on frontend) should know a bit of it.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.codemotion.com\/magazine\/frontend\/css-build-your-pipeline-with-style\/","og_locale":"en_US","og_type":"article","og_title":"Build your pipeline project with\u2026 style!","og_description":"An overview of how to approach CSS and why any web developer (even if not working on frontend) should know a bit of it.","og_url":"https:\/\/www.codemotion.com\/magazine\/frontend\/css-build-your-pipeline-with-style\/","og_site_name":"Codemotion Magazine","article_publisher":"https:\/\/www.facebook.com\/Codemotion.Italy\/","article_published_time":"2020-01-07T09:06:29+00:00","article_modified_time":"2021-07-05T11:12:57+00:00","og_image":[{"width":1019,"height":675,"url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/01\/css-1797778_1280_ce8a86e4f9580f8352d7038d76a5a500_2000.jpg","type":"image\/jpeg"}],"author":"Lorenzo Franceschini","twitter_card":"summary_large_image","twitter_creator":"@CodemotionIT","twitter_site":"@CodemotionIT","twitter_misc":{"Written by":"Lorenzo Franceschini","Est. reading time":"5 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/css-build-your-pipeline-with-style\/#article","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/css-build-your-pipeline-with-style\/"},"author":{"name":"Lorenzo Franceschini","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/c48e30a376daa81f0b5099d3e0c16b04"},"headline":"Build your pipeline project with\u2026 style!","datePublished":"2020-01-07T09:06:29+00:00","dateModified":"2021-07-05T11:12:57+00:00","mainEntityOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/css-build-your-pipeline-with-style\/"},"wordCount":1089,"publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/css-build-your-pipeline-with-style\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/01\/css-1797778_1280_ce8a86e4f9580f8352d7038d76a5a500_2000.jpg","keywords":["Codemotion Rome","CSS"],"articleSection":["Frontend"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/css-build-your-pipeline-with-style\/","url":"https:\/\/www.codemotion.com\/magazine\/frontend\/css-build-your-pipeline-with-style\/","name":"CSS: build your pipeline project with style! - Codemotion Magazine","isPartOf":{"@id":"https:\/\/www.codemotion.com\/magazine\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/css-build-your-pipeline-with-style\/#primaryimage"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/css-build-your-pipeline-with-style\/#primaryimage"},"thumbnailUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/01\/css-1797778_1280_ce8a86e4f9580f8352d7038d76a5a500_2000.jpg","datePublished":"2020-01-07T09:06:29+00:00","dateModified":"2021-07-05T11:12:57+00:00","description":"An overview of how to approach CSS and why any web developer (even if not working on frontend) should know a bit of it.","breadcrumb":{"@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/css-build-your-pipeline-with-style\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.codemotion.com\/magazine\/frontend\/css-build-your-pipeline-with-style\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/css-build-your-pipeline-with-style\/#primaryimage","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/01\/css-1797778_1280_ce8a86e4f9580f8352d7038d76a5a500_2000.jpg","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/01\/css-1797778_1280_ce8a86e4f9580f8352d7038d76a5a500_2000.jpg","width":1019,"height":675,"caption":"Build your pipeline project with\u2026 style!"},{"@type":"BreadcrumbList","@id":"https:\/\/www.codemotion.com\/magazine\/frontend\/css-build-your-pipeline-with-style\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.codemotion.com\/magazine\/"},{"@type":"ListItem","position":2,"name":"Frontend","item":"https:\/\/www.codemotion.com\/magazine\/frontend\/"},{"@type":"ListItem","position":3,"name":"Build your pipeline project with\u2026 style!"}]},{"@type":"WebSite","@id":"https:\/\/www.codemotion.com\/magazine\/#website","url":"https:\/\/www.codemotion.com\/magazine\/","name":"Codemotion Magazine","description":"We code the future. Together","publisher":{"@id":"https:\/\/www.codemotion.com\/magazine\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.codemotion.com\/magazine\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.codemotion.com\/magazine\/#organization","name":"Codemotion","url":"https:\/\/www.codemotion.com\/magazine\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/","url":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","contentUrl":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2019\/11\/codemotionlogo.png","width":225,"height":225,"caption":"Codemotion"},"image":{"@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Codemotion.Italy\/","https:\/\/x.com\/CodemotionIT"]},{"@type":"Person","@id":"https:\/\/www.codemotion.com\/magazine\/#\/schema\/person\/c48e30a376daa81f0b5099d3e0c16b04","name":"Lorenzo Franceschini","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/adfbaabe86bc433a00657b5827f9f5d47c1d66c20519afedcf67805ef30c9fb2?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/adfbaabe86bc433a00657b5827f9f5d47c1d66c20519afedcf67805ef30c9fb2?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/adfbaabe86bc433a00657b5827f9f5d47c1d66c20519afedcf67805ef30c9fb2?s=96&d=mm&r=g","caption":"Lorenzo Franceschini"},"url":"https:\/\/www.codemotion.com\/magazine\/author\/lorenzo-franceschini\/"}]}},"featured_image_src":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/01\/css-1797778_1280_ce8a86e4f9580f8352d7038d76a5a500_2000-600x400.jpg","featured_image_src_square":"https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/01\/css-1797778_1280_ce8a86e4f9580f8352d7038d76a5a500_2000-600x600.jpg","author_info":{"display_name":"Lorenzo Franceschini","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/lorenzo-franceschini\/"},"uagb_featured_image_src":{"full":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/01\/css-1797778_1280_ce8a86e4f9580f8352d7038d76a5a500_2000.jpg",1019,675,false],"thumbnail":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/01\/css-1797778_1280_ce8a86e4f9580f8352d7038d76a5a500_2000-150x150.jpg",150,150,true],"medium":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/01\/css-1797778_1280_ce8a86e4f9580f8352d7038d76a5a500_2000-300x199.jpg",300,199,true],"medium_large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/01\/css-1797778_1280_ce8a86e4f9580f8352d7038d76a5a500_2000-768x509.jpg",768,509,true],"large":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/01\/css-1797778_1280_ce8a86e4f9580f8352d7038d76a5a500_2000.jpg",1019,675,false],"1536x1536":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/01\/css-1797778_1280_ce8a86e4f9580f8352d7038d76a5a500_2000.jpg",1019,675,false],"2048x2048":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/01\/css-1797778_1280_ce8a86e4f9580f8352d7038d76a5a500_2000.jpg",1019,675,false],"small-home-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/01\/css-1797778_1280_ce8a86e4f9580f8352d7038d76a5a500_2000.jpg",100,66,false],"sidebar-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/01\/css-1797778_1280_ce8a86e4f9580f8352d7038d76a5a500_2000-180x128.jpg",180,128,true],"genesis-singular-images":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/01\/css-1797778_1280_ce8a86e4f9580f8352d7038d76a5a500_2000-896x504.jpg",896,504,true],"archive-featured":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/01\/css-1797778_1280_ce8a86e4f9580f8352d7038d76a5a500_2000-400x225.jpg",400,225,true],"gb-block-post-grid-landscape":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/01\/css-1797778_1280_ce8a86e4f9580f8352d7038d76a5a500_2000-600x400.jpg",600,400,true],"gb-block-post-grid-square":["https:\/\/www.codemotion.com\/magazine\/wp-content\/uploads\/2020\/01\/css-1797778_1280_ce8a86e4f9580f8352d7038d76a5a500_2000-600x600.jpg",600,600,true]},"uagb_author_info":{"display_name":"Lorenzo Franceschini","author_link":"https:\/\/www.codemotion.com\/magazine\/author\/lorenzo-franceschini\/"},"uagb_comment_info":0,"uagb_excerpt":"An overview of how to approach CSS and why any web developer (even if not working on frontend) should know a bit of it.","lang":"en","_links":{"self":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/2289","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/users\/79"}],"replies":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/comments?post=2289"}],"version-history":[{"count":4,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/2289\/revisions"}],"predecessor-version":[{"id":15372,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/posts\/2289\/revisions\/15372"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media\/2290"}],"wp:attachment":[{"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/media?parent=2289"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/categories?post=2289"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/tags?post=2289"},{"taxonomy":"collections","embeddable":true,"href":"https:\/\/www.codemotion.com\/magazine\/wp-json\/wp\/v2\/collections?post=2289"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}