<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Koray S.</title>
    <description>The latest articles on Forem by Koray S. (@koraysels).</description>
    <link>https://forem.com/koraysels</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F642031%2Fba5fc0e7-e79f-48e6-aabf-d7f31c6f37fb.jpg</url>
      <title>Forem: Koray S.</title>
      <link>https://forem.com/koraysels</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/koraysels"/>
    <language>en</language>
    <item>
      <title>tsconfig.json</title>
      <dc:creator>Koray S.</dc:creator>
      <pubDate>Sat, 03 Feb 2024 13:03:46 +0000</pubDate>
      <link>https://forem.com/koraysels/tsconfigjson-no2</link>
      <guid>https://forem.com/koraysels/tsconfigjson-no2</guid>
      <description>&lt;h2&gt;
  
  
  Waarvoor dient &lt;code&gt;tsconfig.json&lt;/code&gt;?
&lt;/h2&gt;

&lt;p&gt;TypeScript is heel nuttig: het stelt ons bijvoorbeeld in staat om types toe te voegen aan gewone JavaScript code. Het controleert ook op syntaxfouten, nog voor het uitvoeren. Het biedt zelfs tooltips die je laten zien waarom sommige code een fout zou kunnen opleveren. &lt;/p&gt;

&lt;p&gt;Er zijn zoveel geweldige functies die standaard worden meegeleverd. Zelfs met al deze geweldige functies erkent TypeScript de behoefte aan flexibiliteit.&lt;/p&gt;

&lt;p&gt;Soms wilt je niet alle standaardregels die TypeScript probeert op te leggen - en dat is prima. Dat is een van de redenen waarom een &lt;code&gt;tsconfig.json&lt;/code&gt; bestand nuttig is. &lt;/p&gt;

&lt;p&gt;Laten we eens kijken hoe dit bestand eruit ziet en hoe het helpt.&lt;/p&gt;

&lt;h2&gt;
  
  
  Voorbeeld tsconfig.json en structuur
&lt;/h2&gt;

&lt;p&gt;Het tsconfig.json bestand komt altijd in de hoofdmap van je project terecht. Jij bepaalt welke regels de TypeScript compiler moet handhaven. Hier zie je een voorbeeld &lt;code&gt;tsconfig.json&lt;/code&gt;-bestand.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"compilerOptions"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="err"&gt;//&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;Stel&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;het&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;doel&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;in&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;op&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;ECMAScript&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2017&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"target"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"es2017"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;

    &lt;/span&gt;&lt;span class="err"&gt;//&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;Kies&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;het&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;moduleformaat&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;als&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;CommonJS&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"module"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"commonjs"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;

    &lt;/span&gt;&lt;span class="err"&gt;//&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;Schakel&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;strikte&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;controle&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;op&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="err"&gt;waarden&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;in&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"strictNullChecks"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;&lt;span class="w"&gt;

  &lt;/span&gt;&lt;span class="err"&gt;//&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;Specificeer&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;welke&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;TypeScript-bestanden&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;moeten&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;worden&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="err"&gt;opgenomen&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"include"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s2"&gt;"**/*.ts"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In de JSON zijn er verschillende eigenschappen:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;"&lt;code&gt;compilerOptions&lt;/code&gt;", dit is een genest object dat de regels bevat die de TypeScript compiler moet afdwingen.

&lt;ul&gt;
&lt;li&gt;"&lt;code&gt;target&lt;/code&gt;", de waarde "es2017" betekent dat we onze code gaan transpileren naar de 2017 versie van EcmaScript standaarden voor JavaScript.&lt;/li&gt;
&lt;li&gt;"&lt;code&gt;module&lt;/code&gt;", welk moduleformaat de TypeScript-compiler moet gebruiken bij het genereren van de JavaScript-uitvoer. In dit geval dus "commonjs".&lt;/li&gt;
&lt;li&gt;"&lt;code&gt;strictNullChecks&lt;/code&gt;", variabelen kunnen alleen &lt;code&gt;null&lt;/code&gt; of &lt;code&gt;undefined&lt;/code&gt; zijn, als ze expliciet die waarden toegewezen hebben gekregen.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;"&lt;code&gt;include&lt;/code&gt;" dat bepaalt op welke bestanden de compiler de regels toepast. In dit geval betekent &lt;code&gt;["*&lt;em&gt;/&lt;/em&gt;.ts"]&lt;/code&gt; dat de compiler elk bestand met de extensie &lt;code&gt;.ts&lt;/code&gt; moet transpileren.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Je hebt nu een idee van de regels die je kan toepassen, maar voor je eigen projecten kun je deze regels naar eigen voorkeur instellen! Het &lt;code&gt;tsconfig.json&lt;/code&gt; bestand is perfect voor zowel individueel werk als voor teamprojecten, omdat het iedereen in staat stelt op dezelfde pagina te zitten over hoe hun code geschreven moet worden.&lt;/p&gt;

&lt;h2&gt;
  
  
  Gebruik
&lt;/h2&gt;

&lt;p&gt;Een andere leuke toevoeging is dat door het toevoegen van een &lt;code&gt;tsconfig.json&lt;/code&gt; bestand, je nu het commando &lt;code&gt;tsc&lt;/code&gt; zonder argumenten in je terminal kunt gebruiken! De compiler zal automatisch uit je &lt;code&gt;tsconfig.json&lt;/code&gt; bestand herkennen op welke specifieke bestanden hij moet draaien. Je kunt nog steeds specifieke bestanden opgeven zoals &lt;code&gt;$ tsc fileName.ts&lt;/code&gt; als dat het enige bestand is dat de compiler moet controleren.&lt;/p&gt;

&lt;h2&gt;
  
  
  Documentatie
&lt;/h2&gt;

&lt;p&gt;Bekijk TypeScript's compiler optie &lt;a href="https://www.typescriptlang.org/docs/handbook/compiler-options.html"&gt;documentatie&lt;/a&gt; voor nog meer informatie.&lt;/p&gt;

&lt;p&gt;Veel plezier met coderen!&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>typescript</category>
      <category>dutch</category>
      <category>node</category>
    </item>
    <item>
      <title>Tips voor het schrijven van goede CSS</title>
      <dc:creator>Koray S.</dc:creator>
      <pubDate>Mon, 23 Oct 2023 07:54:52 +0000</pubDate>
      <link>https://forem.com/koraysels/tips-voor-het-schrijven-van-goede-css-5fic</link>
      <guid>https://forem.com/koraysels/tips-voor-het-schrijven-van-goede-css-5fic</guid>
      <description>&lt;h5&gt;
  
  
  Inhoudstabel:
&lt;/h5&gt;

&lt;ol&gt;
&lt;li&gt;DRY (Don't Repeat Yourself)&lt;/li&gt;
&lt;li&gt;Naamgeving van CSS-selectors&lt;/li&gt;
&lt;li&gt;Gebruik van CSS-klassen om duplicatie te voorkomen&lt;/li&gt;
&lt;li&gt;Consistentie behouden in CSS&lt;/li&gt;
&lt;li&gt;Gebruik van externe stylesheets&lt;/li&gt;
&lt;li&gt;Vermijd het gebruik van de !important tag&lt;/li&gt;
&lt;li&gt;Houd CSS compact&lt;/li&gt;
&lt;li&gt;Schrijf commentaren waar nodig&lt;/li&gt;
&lt;li&gt;Gebruik van meerdere CSS-bestanden&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  1. DRY
&lt;/h2&gt;

&lt;p&gt;DRY staat voor "Don't Repeat Yourself" (Herhaal jezelf niet). Dit is een algemeen principe voor softwareontwikkeling en kan worden toegepast in elke programmeertaal, maar ook in CSS. Zoals we uit de naam kunnen opmaken, is DRY erop gericht om herhaling zoveel mogelijk te voorkomen of te verminderen.&lt;br&gt;
We kunnen bijvoorbeeld 3 CSS-klassen maken voor 3 knoppen:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.primary-button&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;background&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;blue&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;white&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;border-radius&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;5px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;10px&lt;/span&gt; &lt;span class="m"&gt;20px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;text-align&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;center&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;font-size&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;16px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.form-button&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;background&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;green&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;white&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;border-radius&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;5px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;10px&lt;/span&gt; &lt;span class="m"&gt;20px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;text-align&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;center&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;font-size&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;16px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.cancel-button&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;background&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;red&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;white&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;border-radius&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;5px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;10px&lt;/span&gt; &lt;span class="m"&gt;20px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;text-align&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;center&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;font-size&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;16px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Of we kunnen het DRY-principe gebruiken door de gemeenschappelijke regels één keer in een extra klasse te schrijven en de verschillende regels elk in andere klassen:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.button&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;white&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;border-radius&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;5px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;10px&lt;/span&gt; &lt;span class="m"&gt;20px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;text-align&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;center&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;font-size&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;16px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.primary-button&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;background&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;blue&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.form-button&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;background&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;green&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.cancel-button&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;background&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;red&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  2. Naamgeving
&lt;/h2&gt;

&lt;p&gt;De naamgeving van CSS-selectors is een ander belangrijk punt voor het schrijven van betere CSS. &lt;br&gt;
Als je bijvoorbeeld classes gaat gebruiken, moet de naam van een selector zelfbeschrijvend en leesbaar zijn.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="c"&gt;/* BAD NAMING */&lt;/span&gt;

&lt;span class="nc"&gt;.p&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c"&gt;/* Rules */&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.myFirstForm&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c"&gt;/* Rules */&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Normaal gesproken is &lt;/p&gt;
&lt;p&gt; een HTML-tag en staat het voor paragraaf. Hierboven kunnen we niet echt begrijpen wat klasse p is. Je moet ook namen als “myFirstForm” vermijden.&lt;br&gt;
Gebruik in plaats daarvan declaratieve namen (eventueel ook gescheiden door een streepje voor meerdere namen):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="c"&gt;/* GOOD NAMING */&lt;/span&gt;

&lt;span class="nc"&gt;.article-paragraph&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c"&gt;/* Rules */&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.contact-form&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c"&gt;/* Rules */&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;_Ter Info: _Dingen een naam geven in programmeren is niet zo eenvoudig, maar er zijn verschillende naamgevingsconventies die je kunt gebruiken in je project. BEM (block element modifier) is er daar één van.&lt;/p&gt;

&lt;h2&gt;
  
  
  3. Gebruik CSS classen om duplicatie te bestrijden
&lt;/h2&gt;

&lt;p&gt;Je kan perfect meerdere klassen aan een element toe te voegen. Sterker nog, je kan bijvoorbeeld veel gebruikte stijl eigenschappen gaan extraheren in wat men ‘utility-classes’ noemt.&lt;br&gt;
Laten we een gedetailleerd begrip krijgen met een eenvoudig voorbeeld.&lt;br&gt;
Stel dat je een section "info-box" hebt waar je je text wil laten centreren en een border wil geven. Hier zie je een voorbeeld van zo’n stijlregel.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.info-box&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="py"&gt;grid-area&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;info-box&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;  &lt;span class="m"&gt;1rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;margin-right&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;.5rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;text-align&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;center&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;border&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;2px&lt;/span&gt; &lt;span class="nb"&gt;solid&lt;/span&gt; &lt;span class="m"&gt;#aa4400&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Je hebt misschien nog andere elementen die ook gecentreerde text nodig hebben en nog andere die ook dezelfde border moeten krijgen.&lt;br&gt;
In dat geval kan je bv. een utility class &lt;code&gt;.text-centered&lt;/code&gt; in je CSS code maken die je text alignment op center gaat zetten. Dit kan je ook doen voor je &lt;code&gt;.bordered&lt;/code&gt;, merk op dat je meerdere (relevante) eigenschappen in zo'n utility class kan zetten.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.info-box&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="py"&gt;grid-area&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;info-box&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;  &lt;span class="m"&gt;1rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;margin-right&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;.5rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.text-centered&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;text-align&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;center&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nc"&gt;.bordered&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;border&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;2px&lt;/span&gt; &lt;span class="nb"&gt;solid&lt;/span&gt; &lt;span class="m"&gt;#aa4400&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;padding&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;.5rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;border-radius&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;.5rem&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;section&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"info-box text-centered bordered"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;{.....}&lt;span class="nt"&gt;&amp;lt;/section&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;section&lt;/span&gt; &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"other-box bordered"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;{.....}&lt;span class="nt"&gt;&amp;lt;/section&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h5&gt;
  
  
  Opgelet!:
&lt;/h5&gt;

&lt;p&gt;Vermijd het overvloedig gebruik van dit soort classes. Het mag niet zo zijn dat je voor elke stijl eigenschap een aparte &lt;code&gt;class&lt;/code&gt; gaat aanmaken. &lt;br&gt;
Het doel is veel gebruikte stijlregels die op veel van &lt;em&gt;jouw elementen&lt;/em&gt; toepasbaar zijn te gaan extraheren in hun eigen &lt;code&gt;class&lt;/code&gt; om zo code duplicatie te vermijden en gaandeweg flexibeler aanpassingen te kunnen maken.&lt;/p&gt;
&lt;h2&gt;
  
  
  4. Consistentie behouden
&lt;/h2&gt;

&lt;p&gt;Ongeacht de manier waarop je je CSS code in HTML schrijft, of de manier waarop je de css-eigenschappen toevoegt, het is belangrijk om consistentie in de code te behouden. &lt;br&gt;
Veel ontwerpers geven er de voorkeur aan om hun eigenschappen alfabetisch te ordenen, terwijl veel anderen een logische benadering gebruiken, zoals het ordenen van dingen op type of uitlijning. &lt;br&gt;
Het is helemaal aan jou hoe je het wilt doen, maar het komt erop neer dat je je aan de volgorde houdt, zodat het later makkelijk wordt om dingen terug te vinden.&lt;/p&gt;
&lt;h2&gt;
  
  
  5. Gebruik externe stylesheets
&lt;/h2&gt;

&lt;p&gt;Je hebt algemeen 3 manieren om css in te laden:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Inline CSS&lt;/strong&gt;. Hiermee kun je specifieke HTML elementen stijlen. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Externe CSS&lt;/strong&gt;. Hierbij wordt een bestand zoals een stylesheet gebruikt om de site in zijn geheel op te maken.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Interne CSS&lt;/strong&gt;. Hiermee kun je een hele pagina stijlen in plaats van specifieke elementen. (met de &lt;code&gt;&amp;lt;style&amp;gt;&lt;/code&gt; tag in je &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Door gebruik te maken van inline styles wordt het "&lt;a href="https://en.wikipedia.org/wiki/Separation_of_concerns"&gt;SoC&lt;/a&gt;" principe geschonden en zal je nagenoeg altijd eindigen met slecht onderhoudbare code. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;Separation of Concerns (SoC)&lt;/em&gt;:&lt;/p&gt;

&lt;p&gt;Volgens het principe van Separation of Concerns oftewel “scheiding van belangen” moeten ontwerp (CSS), inhoud (HTML) en logica (JavaScript) worden gescheiden.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;section&amp;gt;&lt;/span&gt;
   &lt;span class="c"&gt;&amp;lt;!-- DO NOT USE INLINE STYLES --&amp;gt;&lt;/span&gt;
   &lt;span class="nt"&gt;&amp;lt;h2&lt;/span&gt; &lt;span class="na"&gt;style=&lt;/span&gt;&lt;span class="s"&gt;"font-size: 40px"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;Some Title&lt;span class="nt"&gt;&amp;lt;/h2&amp;gt;&lt;/span&gt;
   &lt;span class="nt"&gt;&amp;lt;p&amp;gt;&lt;/span&gt;some paragraph&lt;span class="nt"&gt;&amp;lt;/p&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/section&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;voorbeeld van inline CSS&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Daarbij komt ook nog dat als je inline styles gaat gebruiken, je heel moeilijk stijlen kan gaan updaten via css zonder gebruik van &lt;code&gt;!important&lt;/code&gt; (zie puntje 6). &lt;/p&gt;

&lt;h2&gt;
  
  
  6. Vermijd de &lt;code&gt;!important&lt;/code&gt; tag
&lt;/h2&gt;

&lt;p&gt;Oké, dus je CSS werkte niet zoals het hoorde te werken en je hebt het laten werken door de important tag toe te passen:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nt"&gt;important&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Wat gebeurt er nu? De &lt;code&gt;!important&lt;/code&gt; tag heeft de hoogste specificiteit van alle CSS selectors.&lt;br&gt;
Je zegt in feite tegen de browser om die specifieke regel altijd en onder alle omstandigheden toe te passen met de &lt;code&gt;!important&lt;/code&gt; tag. Dit is niet goed omdat CSS regels kunnen verschillen van de ene selector naar de andere, van parent selector naar child.&lt;br&gt;
De enige manier om een &lt;code&gt;!important&lt;/code&gt; tag te overschrijven is door een andere important tag te gebruiken. En dit leidt tot het gebruik van steeds meer &lt;code&gt;!important&lt;/code&gt; tags. In de nabije toekomst zal je projectcode vol staan met &lt;code&gt;!important&lt;/code&gt; tags, wat je CSS-code veel moeilijker te onderhouden maakt. Probeer het dus niet te gebruiken.&lt;/p&gt;
&lt;h2&gt;
  
  
  7. Hou het compact
&lt;/h2&gt;
&lt;h3&gt;
  
  
  7.1 Gebruik Shorthand “korte” notatie
&lt;/h3&gt;

&lt;p&gt;Sommige CSS-eigenschappen zoals paddings, marges, lettertypen en randen kunnen veel eenvoudiger worden geschreven met shorthand notatie. Het gebruik van shorthands helpt om het aantal regels te verminderen.&lt;br&gt;
Dus zonder shorthand notatie zou een CSS class er zo uitzien:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.article-container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;padding-top&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;10px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;padding-bottom&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;20px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;padding-left&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;15px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;padding-right&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;15px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;margin-top&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;10px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;margin-bottom&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;10px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;margin-left&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;15px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;margin-right&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;15px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;border-width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;border-style&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;solid&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;  
  &lt;span class="nl"&gt;border-color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="no"&gt;black&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;En met gebruik van shorthand notatie:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.article-container&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nl"&gt;padding&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;10px&lt;/span&gt; &lt;span class="m"&gt;15px&lt;/span&gt; &lt;span class="m"&gt;20px&lt;/span&gt; &lt;span class="m"&gt;15px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;margin&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;10px&lt;/span&gt; &lt;span class="m"&gt;15px&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="nl"&gt;border&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1px&lt;/span&gt; &lt;span class="nb"&gt;solid&lt;/span&gt; &lt;span class="no"&gt;black&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Je kunt hier meer informatie vinden over het gebruik van shorthand notatie voor eigenschappen en voor welke CSS eigenschappen ze kunnen worden toegepast.&lt;/p&gt;

&lt;h3&gt;
  
  
  7.2 Vermijd te specifieke selectors
&lt;/h3&gt;

&lt;p&gt;Onbewust voegen veel ontwerpers extra selectors toe aan de CSS-code die het stylesheet opleukt. Het meest voorkomende voorbeeld van het toevoegen van een extra selector is te vinden in lijsten.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;body&lt;/span&gt; &lt;span class="nf"&gt;#container&lt;/span&gt; &lt;span class="nc"&gt;.someclass&lt;/span&gt; &lt;span class="nt"&gt;ul&lt;/span&gt; &lt;span class="nt"&gt;li&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="err"&gt;....&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In het bovenstaande voorbeeld hadden we ook gewoon het volgende statement kunnen gebruiken&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nc"&gt;.someclass&lt;/span&gt; &lt;span class="nt"&gt;li&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="err"&gt;...&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Het is aan te raden om deze te vermijden, zodat we de CSS-code zo eenvoudig en schoon mogelijk kunnen houden.&lt;/p&gt;

&lt;h3&gt;
  
  
  7.3 Combineer elementen waar mogelijk
&lt;/h3&gt;

&lt;p&gt;Het is niet altijd nodig om voor elk tekstelement op een pagina het lettertype, dezelfde kleur en de uitlijning op te sommen als ze allemaal dezelfde eigenschappen hebben. &lt;/p&gt;

&lt;p&gt;Combineer ze in plaats daarvan in één regel:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="nt"&gt;h1&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nt"&gt;h2&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nt"&gt;h3&lt;/span&gt;&lt;span class="o"&gt;,&lt;/span&gt; &lt;span class="nt"&gt;p&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
&lt;span class="nl"&gt;font-family&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;arial&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="n"&gt;color&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="m"&gt;#00000&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  8. Schrijf commentaren waar nodig
&lt;/h2&gt;

&lt;p&gt;Normaal gesproken heeft goede code geen commentaar nodig, omdat het al duidelijk en zelfbeschrijvend is. Maar in sommige gevallen kan het nodig zijn om extra uitleg te schrijven.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight css"&gt;&lt;code&gt;&lt;span class="c"&gt;/* Your Comments */&lt;/span&gt;
&lt;span class="nc"&gt;.example-class&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c"&gt;/* your rules */&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Dus als je het gevoel hebt dat sommige delen van de code onduidelijk zijn, wees dan niet bang om commentaar toe te voegen (zonder te overdrijven).&lt;/p&gt;

&lt;h2&gt;
  
  
  9. Meerdere css bestanden
&lt;/h2&gt;

&lt;p&gt;In plaats van één gigantisch stylesheet te maken, is het aan te raden om kleinere en meerdere stylesheets te maken, afhankelijk van de complexiteit van de grootte en het ontwerp van de site. &lt;br&gt;
Ze zijn niet alleen gemakkelijker te beheren, maar ze stellen je ook in staat om bepaalde CSS weg te laten op pagina's die het niet nodig hebben.&lt;/p&gt;

&lt;p&gt;_Sidenote: Wat dan met performance? _&lt;br&gt;
Veel ontwikkelaars volgen dit patroon in de beginfase, maar hebben later de neiging om ze te combineren in één bestand, bijvoorbeeld met behulp van een css minifier. Hierdoor wordt het aantal HTTP-verzoeken teruggebracht tot één en kan het hele bestand in de cache worden opgeslagen op de computer van de gebruiker.&lt;/p&gt;

</description>
      <category>css</category>
      <category>cleancode</category>
      <category>frontend</category>
      <category>dutch</category>
    </item>
  </channel>
</rss>
