<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Ziv Peer on Medium]]></title>
        <description><![CDATA[Stories by Ziv Peer on Medium]]></description>
        <link>https://medium.com/@codingforweb?source=rss-10dc89e25b55------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/0*MlFFdER2Yj9sgCr3.jpg</url>
            <title>Stories by Ziv Peer on Medium</title>
            <link>https://medium.com/@codingforweb?source=rss-10dc89e25b55------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Thu, 28 May 2026 15:55:58 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@codingforweb/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[How I Finally Started Learning to Code — My Real Coddy.tech Journey]]></title>
            <link>https://medium.com/@codingforweb/how-i-finally-started-learning-to-code-my-real-coddy-tech-journey-7a007ef94dcb?source=rss-10dc89e25b55------2</link>
            <guid isPermaLink="false">https://medium.com/p/7a007ef94dcb</guid>
            <category><![CDATA[web-development]]></category>
            <category><![CDATA[career-change]]></category>
            <category><![CDATA[self-improvement]]></category>
            <category><![CDATA[learn-programming]]></category>
            <category><![CDATA[coding]]></category>
            <dc:creator><![CDATA[Ziv Peer]]></dc:creator>
            <pubDate>Thu, 27 Mar 2025 17:44:29 GMT</pubDate>
            <atom:updated>2025-03-27T17:44:29.203Z</atom:updated>
            <content:encoded><![CDATA[<h3>How I Finally Started Learning to Code — My Real Coddy.tech Journey</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*JssSpwb-aJpAxoI-N07abw.png" /><figcaption>Learn to Code</figcaption></figure><p>For years, I told myself, <em>“This is the year I’ll finally learn to code.”</em> I’d get all hyped up, bookmark some tutorials, and maybe even sign up for a course or two. But then life would sneak in — work, chores, Netflix — and that motivation? Gone in a week.</p><p>Sound familiar? Yep, That’s me and probably you too :)</p><p>It wasn’t that I didn’t <em>want</em> to learn programming. I just couldn’t stick with it. I always thought I needed hours of free time or some magical burst of discipline. Does this sound familiar to you? But in one moment, I figured out something that changed everything:</p><p>👉 <strong>You don’t need to do a lot. You just need to do a little — consistently.</strong></p><p>And that’s where <a href="https://coddy.tech/?from=codingforweb"><strong>Coddy.tech</strong></a> (aff) came in.</p><h3>Drowning in Options, Going Nowhere</h3><p>When you’re a beginner, learning to code feels like standing in front of a massive buffet with no plate. So many platforms, tools, and “must-learn” languages — it’s easy to freeze up and do… nothing.</p><p>I kept bouncing between YouTube tutorials, free courses, and Reddit threads. I knew what a variable was, but I didn’t know how to keep going. I never built a habit. I never felt progress.</p><h3>The Tiny Habit That Stuck</h3><p>Then my friend (experienced programmer) told me about <strong>Coddy.tech</strong>, and I figured I’d give it a try. I wasn’t expecting much — just another site with lessons, right?</p><p><strong>Wrong.</strong></p><p><a href="https://coddy.tech/?from=codingforweb"><strong>Coddy.tech</strong></a> (aff) hit differently.</p><p>It wasn’t about cramming hours of video or taking tests. It was about showing up daily, solving quick hands-on exercises, and building a rhythm. Just me, the code, and 30 focused minutes (sometimes even more, depending on my mood :)). That’s it.</p><p>What really hooked me? It felt fun. The design is sleek. The tasks are short but satisfying. And the platform is <strong>AI-oriented</strong>, so it adapts to how you’re doing.</p><p>Now? I look forward to it. Every morning, coffee in hand, I knock out a few coding tasks before work. And it feels amazing.</p><h3>Why I Recommend Coddy.tech (Especially If You’re New to Coding)</h3><ul><li><strong>Super beginner-friendly</strong> — No overwhelming jargon.</li><li><strong>AI-powered and smart</strong> — Adapts as you learn.</li><li><strong>Time-respectful</strong> — 5 to 10 minutes daily is OK, but if you have 30 minutes, then it’s the best.</li><li><strong>Built for habits</strong> — Keeps you consistent without pressure.</li></ul><p>I’ve been using it for over half a year now. Not once did I feel burnt out or lost. That’s a first for me.</p><h3>Final words</h3><p>If you’ve been stuck in the cycle of starting and stopping, I feel you. But here’s the truth: you don’t need to grind for hours. You just need to find something that helps you <em>show up</em> every day.</p><p><strong>Coddy.tech</strong> helped me finally break through.</p><p>👉 <a href="https://coddy.tech/?from=codingforweb">Try it out here — Coddy.tech</a> <em>(aff ) use this link and promo code — </em><strong><em>codingforweb20</em></strong><em> you will get a 20% discount, </em><strong><em>btw coddy.tech also has a free version too</em></strong></p><p>No pressure. But if you’ve been looking for a sign to start learning programming and actually <em>stick with it</em> — this might be it.</p><p>Thank you for reading me.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=7a007ef94dcb" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Why choose Сoddy.tech as your programming learning platform?]]></title>
            <link>https://medium.com/@codingforweb/why-choose-%D1%81oddy-tech-as-your-programming-learning-platform-6c644730091d?source=rss-10dc89e25b55------2</link>
            <guid isPermaLink="false">https://medium.com/p/6c644730091d</guid>
            <category><![CDATA[programming-tips]]></category>
            <category><![CDATA[online-coding-courses]]></category>
            <category><![CDATA[coding-for-beginners]]></category>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[coding-education]]></category>
            <dc:creator><![CDATA[Ziv Peer]]></dc:creator>
            <pubDate>Tue, 30 Jul 2024 10:59:07 GMT</pubDate>
            <atom:updated>2024-07-30T10:59:07.146Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="coddy.tech website" src="https://cdn-images-1.medium.com/max/1024/1*9ZKkFriStkWgBCTuDKUNnw.jpeg" /><figcaption>coddy.tech</figcaption></figure><p>Hi, my name is Ziv and I am a programmer with 10 years of experience. Today I would like to tell you about one of the coolest sites I have ever come across for learning programming, namely <strong>Coddy.tech</strong></p><p>In this digital age, where coding has become as fundamental as reading and writing, C<strong>oddy.tech</strong> is becoming a beacon for both newbies and experienced programmers. This innovative online platform is not just a learning center, it is a dynamic ecosystem designed to make coding accessible, fun, and enjoyable for everyone.</p><h3>Why Coddy.tech is so amazing?</h3><p>In my opinion, <strong>Coddy.tech</strong> breaks down the traditional barriers of learning to code by integrating cutting-edge generative <strong>AI technology</strong>. This innovation allows for a personalized learning experience, adapting in real-time to the user’s skill level and learning pace. Whether you’re a beginner or an experienced coder, Coddy.tech offers a range of courses across different programming languages, including Python, JavaScript, C++, and many more, making it a one-stop shop for all your <strong>coding learning needs</strong>.</p><p>👉 <strong>Check more about Coddy.tech (aff)</strong> 🔗 <a href="https://coddy.tech/?from=codingforweb"><strong>https://www.coddy.tech/</strong></a></p><h3>Practice, Practice, and more Practice</h3><p>At <strong>Coddy.tech</strong>, the ethos is clear: learn by doing. The platform offers a “<strong>Practice-Driven</strong>” approach where theoretical knowledge meets hands-on practice. Each course is peppered with challenges and projects that simulate real-life programming issues, ensuring learners not only understand the concepts but are also ready to implement them in real-life projects. <br>And how it works? <strong>Coddy.tech </strong>turns learning into a gamified experience. Collect points, track your learning streaks, and climb the leaderboards as you master new skills. This gamified approach not only makes learning more enjoyable but also more memorable.<br>Also, you will become a part of a growing community of coders. Coddy.tech encourages collaboration and peer learning through daily challenges and community forums, where you always can share your knowledge and innovative ideas and also bugs, we all have bugs — !false 😀</p><h3>AI, what is it used for on this site?</h3><p>You can harness the power of <strong>Artificial Intelligence</strong> while learning to code. The <strong>Coddy.tech platform uses AI</strong> to create customized content and exercises, ensuring that your learning experience is always fun, productive, and up-to-date. It was one of the main reasons why I started to use this site to learn and update my programming skills.</p><p>👉 <strong>Check more about Coddy.tech (aff)</strong>🔗 <a href="https://coddy.tech/?from=codingforweb"><strong>https://www.coddy.tech/</strong></a></p><h3>In Summary</h3><p>This site helped me a lot in learning and updating my knowledge of programming. During my experience, I have tried many learning methods and the learning process that Coddy offers is one of the best of which I have used in the past. Especially with the support of AI.</p><p><a href="https://coddy.tech/?from=codingforweb"><strong>Coddy.tech</strong></a> has both a paid and a free version, I studied for a very long time on the free one. By the way, in the paid version I received a promo code from the <strong>Instagram account — </strong><a href="https://www.instagram.com/codingforweb"><strong>CodingForWeb</strong></a> which gives a 20% discount and I will share it with you too. Promo code — <strong>codingforweb20</strong><br>Use, learn, and practice your skills.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=6c644730091d" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Webflow Unveiled: Why It’s the Ultimate Tool for Web Designers and Developers]]></title>
            <link>https://medium.com/@codingforweb/webflow-unveiled-why-its-the-ultimate-tool-for-web-designers-and-developers-b684acb0ca9c?source=rss-10dc89e25b55------2</link>
            <guid isPermaLink="false">https://medium.com/p/b684acb0ca9c</guid>
            <category><![CDATA[web-development]]></category>
            <category><![CDATA[website]]></category>
            <category><![CDATA[webflow]]></category>
            <category><![CDATA[web-design]]></category>
            <category><![CDATA[no-code-development]]></category>
            <dc:creator><![CDATA[Ziv Peer]]></dc:creator>
            <pubDate>Mon, 26 Feb 2024 16:14:04 GMT</pubDate>
            <atom:updated>2024-02-26T16:14:04.132Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*_aCm1ejdhyJSdO8NRIiq8Q.png" /></figure><h3>Introduction</h3><p>In the constantly evolving landscape of web design and development, finding a platform that seamlessly merges aesthetics with functionality can feel like searching for a needle in a haystack. Enter Webflow: a powerful, intuitive tool that has been making waves among web professionals. This post delves into the reasons why <a href="https://webflow.partnerlinks.io/4639739">Webflow</a> stands as an unparalleled choice for web designers and developers, offering an unmatched blend of flexibility, power, and efficiency.</p><h3>The Allure of Visual Design and Code Precision</h3><p>Webflow transcends traditional boundaries by offering a visual design interface that generates precise, clean code. This unique feature caters to both designers and developers, allowing for the creation of sophisticated, responsive websites without the need for manual coding. The platform’s design-first approach does not compromise on code quality, ensuring that the final product is both visually stunning and technically robust.</p><h3>Streamlined Workflow for Faster Turnaround</h3><p>Time is of the essence in web development projects, and Webflow understands this better than anyone. The platform streamlines the entire workflow, from conception to deployment, significantly reducing development time. This efficiency is a game-changer for professionals juggling multiple projects, enabling them to meet tight deadlines without sacrificing quality.</p><h3>Empowerment Through Customization</h3><p>Webflow’s visual editor is a dream come true for those who crave creative freedom. It offers an extensive range of customization options, allowing users to tweak every aspect of their site’s design. More experienced developers have the option to dive into the code, making custom tweaks to HTML, CSS, and JavaScript. This level of customization ensures that every website created with Webflow is as unique as the creator’s vision.</p><h3>Integrated CMS for Dynamic Content</h3><p>One of <a href="https://webflow.partnerlinks.io/4639739">Webflow’s</a> standout features is its integrated CMS, which simplifies the process of managing and updating content. The CMS is designed to be intuitive for non-technical users, making it easy for clients to make updates post-launch. This feature is particularly beneficial for developers and designers who create sites for clients who need to manage their content independently.</p><h3>Robust Hosting and Security</h3><p>Webflow offers hosting solutions that boast enterprise-grade reliability and security. The platform ensures that websites are fast, secure, and scalable, with global CDN, SSL certificates, and automatic backups. This robust hosting environment means developers can focus on creating exceptional websites without worrying about performance and security issues.</p><h3>Collaborative Environment</h3><p>The platform promotes a collaborative environment where designers and developers can work together seamlessly. Webflow’s team features facilitate real-time collaboration, making it easier to share feedback, iterate designs, and ensure that the final product aligns with the project’s vision. This collaborative approach streamlines the development process and enhances the quality of the work produced.</p><h3>Continuous Learning and Community Support</h3><p>Webflow is committed to empowering its users through education and support. Webflow University offers a wealth of resources, from tutorials to courses, designed to help users master the platform. Additionally, the vibrant Webflow community is a treasure trove of knowledge, offering support, inspiration, and networking opportunities for professionals.</p><h3>Conclusion</h3><p><a href="https://webflow.partnerlinks.io/4639739">Webflow</a> stands out as a beacon of innovation in the web design and development arena. Its blend of design flexibility, code generation, and comprehensive features make it an irresistible choice for professionals looking to push the boundaries of what’s possible on the web. Whether you’re a seasoned developer or a designer eager to bring your visions to life, Webflow offers the tools, community, and support to turn your ideas into reality. It’s not just a platform; it’s a movement towards a more integrated, efficient, and creative future in web development.</p><p>If you decide to use <a href="https://webflow.partnerlinks.io/4639739">Webflow</a>, please use one of the aff links from this story,<br>it won&#39;t cost you any penny but will help me to write more posts for you guys, thank you in advance.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=b684acb0ca9c" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Most Popular JS Frameworks 2023]]></title>
            <link>https://medium.com/@codingforweb/most-popular-js-frameworks-2023-6efbd7e348b3?source=rss-10dc89e25b55------2</link>
            <guid isPermaLink="false">https://medium.com/p/6efbd7e348b3</guid>
            <dc:creator><![CDATA[Ziv Peer]]></dc:creator>
            <pubDate>Wed, 29 Mar 2023 18:53:43 GMT</pubDate>
            <atom:updated>2023-03-29T18:53:43.992Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*qQRWyvMTaP5vKA_CKG0nFA@2x.jpeg" /></figure><p>JavaScript has become one of the most widely used programming languages in the world, and it’s no wonder that there are so many frameworks built on top of it. Frameworks allow developers to build web applications faster and more efficiently, by providing pre-written code and structure to build upon. In this post, we’ll take a look at some of the most popular JS frameworks currently in use.</p><p><strong>1. React</strong></p><p>React is a JavaScript library for building user interfaces. It was created by Facebook and has since become one of the most popular and widely used frameworks in the world. React is used by companies such as Netflix, Airbnb, and Dropbox. It allows developers to build web applications using a component-based architecture, making it easier to manage and maintain complex applications. React also provides excellent performance, thanks to its Virtual DOM, which allows it to update the UI more efficiently.</p><p><strong>2. Angular</strong></p><p>Angular is a TypeScript-based framework for building dynamic web applications. It was created by Google and has become very popular in recent years. Angular provides a complete framework for building web applications, including a templating engine, two-way data binding, and dependency injection. Angular also has a powerful CLI tool, which makes it easier to create and manage projects. Angular is used by companies such as Microsoft, IBM, and Nike.</p><p><strong>3. Vue</strong></p><p>Vue is a progressive JavaScript framework for building user interfaces. It was created by Evan You and has gained a lot of popularity in recent years. Vue is lightweight, fast, and easy to learn, making it an excellent choice for small to medium-sized projects. It also has a rich set of features, including a templating engine, two-way data binding, and component-based architecture. Vue is used by companies such as Alibaba, Xiaomi, and Wizz Air.</p><p><strong>4. Ember</strong></p><p>Ember is a JavaScript framework for building scalable and ambitious web applications. It was created by Yehuda Katz and Tom Dale and has been around since 2011. Ember provides a complete framework for building web applications, including a templating engine, two-way data binding, and a powerful CLI tool. Ember also has a strong community and ecosystem, with many add-ons and plugins available. Ember is used by companies such as LinkedIn, Square, and Intercom.</p><p><strong>5. Svelte</strong></p><p>Svelte is a radical new approach to building user interfaces. It was created by Rich Harris and has been gaining a lot of popularity in recent years. Svelte takes a different approach than other frameworks, by compiling components into highly optimized vanilla JavaScript code. This results in faster load times and smaller file sizes. Svelte also provides a rich set of features, including reactive statements, animations, and transitions. Svelte is used by companies such as Spotify, The New York Times, and Toyota.</p><p><strong>Conclusion</strong></p><p>Choosing the right framework for your project is an important decision. Each of the frameworks we’ve looked at has its own strengths and weaknesses, and the choice ultimately depends on your specific requirements. React, Angular, Vue, Ember, and Svelte are just a few of the many frameworks available to developers today. Regardless of which framework you choose, each of them provides a powerful set of tools and features to help you build fast and efficient web applications.</p><p>Thank you for reading. For more interesting posts join my <br><a href="https://instagram.com/codingforweb">Instagram account</a>.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=6efbd7e348b3" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Best JavaScript (ES6) Features, that’s can be used in 0b11111100100 (2020).]]></title>
            <link>https://medium.com/analytics-vidhya/best-javascript-es6-features-thats-can-be-used-in-0b11111100100-2020-3ecbbd36edce?source=rss-10dc89e25b55------2</link>
            <guid isPermaLink="false">https://medium.com/p/3ecbbd36edce</guid>
            <category><![CDATA[es6]]></category>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[coding]]></category>
            <category><![CDATA[front-end-development]]></category>
            <category><![CDATA[javascript]]></category>
            <dc:creator><![CDATA[Ziv Peer]]></dc:creator>
            <pubDate>Thu, 27 Feb 2020 13:37:14 GMT</pubDate>
            <atom:updated>2020-03-11T04:36:30.350Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*g3JGD3I2DiqauhK2CTMLmw.jpeg" /></figure><p>JavaScript has made significant progress over the past few years. If you are new to JavaScript or have some experience and want to quickly get comfortable with the most commonly used features of modern JavaScript, this post is for you.</p><blockquote>In this article I will cover four main features in JS ES6: <br>1.Arrow Functions<br>2.Destructuring<br>3.let and constvariables<br>4.Template literals</blockquote><p>All these new/old/renewed features are natively supported in all modern browsers. You can check it on <a href="https://www.caniuse.com">Can I use</a>. For better understanding, I advise you to test the code snippets below and write more code. Only with more code writing experience, you will get the necessary knowledge!</p><p>So, let’s move! Fewer words more code…</p><h3>Arrow Functions</h3><p>One of the most usable ES6 features. Arrow functions give you a clean and concise syntax for writing function expressions. For Example:</p><pre><strong>Function expression in ES5:</strong></pre><pre>var test = function(a) { <br>   return a * 4; <br>}</pre><pre><strong>Arrow Function in ES6:</strong></pre><pre>const test = (a) =&gt; { <br>   return a * 4; <br>}</pre><p>Arrow functions allow us to write shorter function syntax, we get rid of the function keyword and put a fat arrow =&gt; between the parameters and the body of the function.</p><p>Next example is the one-liner function that returns the value:</p><pre>const test = (a) =&gt; a * 4;</pre><p>Here we can drop the return keyword and curly braces too.<br>It’s a cleaner code, right?</p><p>And what If our arrow function includes only a single parameter? Then we can even drop the parenthesis…</p><pre>const test = x =&gt; x * number;</pre><p>I love it. We getting really clean code here.<br>What if our arrow function doesn’t have any parameters? Then we need to use a pair of parenthesis:</p><pre>const test = () =&gt; {console.log(&#39;Test Me&#39;);};</pre><p>More arrow function examples:</p><pre>An empty arrow function returns <strong>undefined</strong><br>let test = () =&gt; {};</pre><pre><strong>Immediately Invoked Function Expression</strong><br>(() =&gt; &#39;test&#39;)();<br><strong>// Returns &quot;test&quot;</strong></pre><pre><strong>If/Else Statement with arrow function</strong><br>var simple = a =&gt; a &gt; 21? 15 : a; <br>simple(25); // 15<br>simple(20); // 20</pre><p><strong>Browser compatibility</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1017/1*ibuLfWgPdPQA1y511Qjy8w.jpeg" /><figcaption>Arrow functions</figcaption></figure><p>As you can see, arrow functions are very useful and give us an option to write clean and understandable code. The next topic is Template Literals.</p><h3>Destructuring</h3><p>What is Destructuring? <strong>Destructuring simply implies breaking down a complex structure into simpler parts.</strong> In JavaScript, this complex structure is usually an object or an array. With the destructuring syntax, you can extract smaller fragments from arrays and objects. The destructuring syntax can be used for a <strong><em>variable declaration</em></strong> or <strong><em>variable assignment</em></strong>. You can also handle nested structures by using nested destructuring syntax.</p><p>Fewer words and more examples. Let’s say we have some object like this:</p><pre>const cat = { <br>   name: &#39;Murzik&#39;,<br>   age: 3,<br>   address: &#39;111 Find this st&#39;<br>};</pre><p>Now, somewhere else we need to access these properties and store their values in a bunch of variables:</p><pre>const name = cat.name;<br>const age= cat.age; <br>const address = cat.address;</pre><p>We have this repetitive code over and over: “cat” repeated <em>n </em>times. <strong>Object destructuring </strong>gives us a short and clean syntax to extract the value of multiple properties in an object:</p><pre>const { name, age, address} = cat;</pre><p>That’s it! This code is exactly equivalent to the snippet above. We use curly braces on the left to destructure the cat object. Inside the braces, we’re defining 3 variables: <strong>name</strong>, <strong>age,</strong> and <strong>address</strong>. Their values will be extracted from the corresponding properties in the address object.</p><p>Note that we don’t have to list all the properties in the address object. Maybe we’re interested only in the <strong>age </strong>property:</p><pre>const { age } = cat;</pre><p>The array destructuring has very much similar functionality with Object destructuring. It’s using square brackets ([]) instead of curly braces ({}).</p><p>Let’s see how it works. For example, we have an array and we want to store items from this array in different variables:</p><pre><strong>// ES5 Old Structure</strong><br>const colors = [&#39;red&#39;, &#39;green&#39;, &#39;blue&#39;];<br>const first = colors[0]; (gets &#39;red&#39;)<br>const second = colors[1]; (gets &#39;green&#39;)<br>const third = colors[2]; (gets &#39;blue&#39;)</pre><pre><strong><em>With destructuring, we can re-write the above code like this:</em></strong></pre><pre><strong>// ES6 The New One with Array Destructuring<br></strong>const colors = [&#39;red&#39;, &#39;green&#39;, &#39;blue&#39;]; <br>const [color1, color2, color3] = colors;<br> <br>console.log(`tone: ${color1}, grass: ${color2}, sky: ${color3}`); <br><strong>//Result: tone: red, grass: green, sky: blue</strong></pre><p>Cool, isn’t it.</p><h3>let and const variables</h3><p>With JavaScript (ES6), we got 2 new ways to define variables: let and const. Prior to ES6, we used the var keyword. What the difference? vardeclarations are globally scoped or function scoped and can be updated and re-declared within its scope. let and const are block-scoped. letvariables can be updated but not re-declared. constvariables can neither be updated nor re-declared. Let’s take a closer look at them:</p><p>Here are some examples for var keyword:</p><pre>function test() {<br>   for (var x = 0; x &lt; 10; x++) { <br>      // Technically, x should only be scoped to this block because this is <br>      // where we have defined x. <br>   }   // But it turns out that x is available here as well! <br>   console.log(x); // 10<br>}</pre><p>That’s not how most if not all other programming languages behave! Variables defined within a block should be scoped to that block only. In this example, x should not be accessible outside of the for block.</p><p>Another issue with the var keyword is that if you use it at the top level outside of a function, it creates a property on the global object:</p><pre>var test = 10; <br>console.log(window.test); // 10</pre><p>Let’s check examples with: let and const</p><pre>function test() {<br>   for (let x = 0; x &lt; 10; x++) { <br>      // With the &quot;let&quot; keyword, now x is only accessible in this block.<br>   }   // x is out of the scope here<br>   console.log(x); // x is not defined  <br>}</pre><p>As I said above with const we can define a constant. So we cannot reassign it later:</p><pre>const test = 1; <br>test = 2; // throws &quot;Assignment to constant variable.&quot;</pre><p>One more important thing to know is, unlike the var keyword, let and const don’t create a property on the global object if you use them at the top level:</p><pre>let test = 10; <br>console.log(window.test); // undefined</pre><p><em>From my experience:</em></p><ul><li><em>With ES6 I am trying to use the </em><em>var keyword as less as possible, and to use only </em><em>let or </em><em>const.</em></li><li><em>I am using </em><em>let only if I need to re-assign the identifier. Otherwise, I prefer to use </em><em>const to prevent accidentally re-assigning a constant.</em></li></ul><h3>Template Literals</h3><p>Before ES6, we had to deal with these ugly string concatenations:</p><pre><strong>Old Code version:</strong><br>var name = &#39;Codingforweb&#39;; <br>var message = &#39;Hi &#39; + name + &#39;,&#39;;</pre><p>Now, with template literals (previously called template strings), we can define a string with placeholders and get rid of all those concatenations:</p><pre><strong>ES6 code:</strong><br>var name = &#39;Codingforweb&#39;; <br>var message = `Hi ${name},`;</pre><p>Pay attention I’m using the back-tick character here. ES 6 comes up with a new type of string literal, using the back-tick as the delimiter. These literals do allow basic string interpolation expressions to be embedded, which are then automatically parsed and evaluated. Back-tick character you can find before number 1 on your keyboard.</p><p>To add a placeholder in a template literal, we use the <strong>${expression}</strong> syntax. You can replace “expression” with any JavaScript expressions. Here, we are adding the <strong>name</strong> variable there. You can also call a function or pass any JavaScript expressions that result in a value.</p><p>Another benefit of using template literals is that they can expand multiple lines. They are particularly useful when composing email messages:</p><pre>var message = `Hi ${name},Thank you for joining. Happy coding, Codingforweb`;</pre><figure><img alt="" src="https://cdn-images-1.medium.com/max/1013/1*SbKD50phXOijH7XeL9TwJw.jpeg" /><figcaption>Browser compatibility (Template Literals)</figcaption></figure><p>This is only a small part of the improvements from ES6. Just check them, and if you are still not using them, then start to do it as soon as possible.</p><p>That’s all for now. Feel free to join my <a href="https://t.me/coddingforweb">Telegram channel</a> and <a href="https://www.instagram.com/codingforweb/">Instagram</a>. Thank you for reading and see you later.</p><p><strong>Happy Coding</strong></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=3ecbbd36edce" width="1" height="1" alt=""><hr><p><a href="https://medium.com/analytics-vidhya/best-javascript-es6-features-thats-can-be-used-in-0b11111100100-2020-3ecbbd36edce">Best JavaScript (ES6) Features, that’s can be used in 0b11111100100 (2020).</a> was originally published in <a href="https://medium.com/analytics-vidhya">Analytics Vidhya</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Instagram-Начало (часть 1 из 4)]]></title>
            <link>https://medium.com/@codingforweb/instagram-%D0%BD%D0%B0%D1%87%D0%B0%D0%BB%D0%BE-%D1%87%D0%B0%D1%81%D1%82%D1%8C-1-%D0%B8%D0%B7-4-2570a4601640?source=rss-10dc89e25b55------2</link>
            <guid isPermaLink="false">https://medium.com/p/2570a4601640</guid>
            <category><![CDATA[insights]]></category>
            <category><![CDATA[продвижение-инстаграм]]></category>
            <category><![CDATA[instagram]]></category>
            <category><![CDATA[социальные-сети]]></category>
            <category><![CDATA[smm]]></category>
            <dc:creator><![CDATA[Ziv Peer]]></dc:creator>
            <pubDate>Mon, 13 Jan 2020 21:04:37 GMT</pubDate>
            <atom:updated>2020-01-13T21:04:37.390Z</atom:updated>
            <content:encoded><![CDATA[<p><em>Этой статей я хочу начать цикл статьей, в которых я буду рассказывать про мои личный опыт связанный с Instagram, как я раскрутил свой аккаунт и про то как избегать ненужных ошибок.</em></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*fEDBTWOL57qi9qCd1DdSVQ.jpeg" /></figure><p>Начнем с того что поймем что же такое Instagram? Зачем нужны подписчики и лайки? Неужели это и есть виртуальные деньги будущего? Что вообще происходит в этом мире?</p><p><em>Instagram — это приложение для обмена фотографиями и видеозаписями с элементами социальной сети, позволяющее снимать фотографии и видео, применять к ним фильтры, а также распространять их через свой сервис и ряд других социальных сетей (взято из Wikipedia).</em></p><p>Целью Instagram в самом начале была возможность делиться между пользователями фотографиями, в принципе эта цель существует и посей день, многие люди только это и делают, но незаметно для себя люди стали втягиваться в это все больше и больше и внешнее внимание приобрело для них иной смысл, люди стали обращать внимание на свой контент, на то сколько лайков оно получает и как много подписчиков за ними следуют. Часто доходит до маразма, приходишь в ресторан с девушкой, и тут вместо того чтобы насладиться блюдом, она начинает снимать это блюдо со всех сторон, чтоб выложить(похвастаться) в инсте. Ну блин, как тут не сказать давай до свидания, но с другой стороны я понимаю что мы живём в цифровом веке, так что пусть фоткает, а я со своей стороны наслажусь поеданием блюд в горячем виде :)</p><p>Лайки и Подписчики, а зачем они вообще нужны? — Спросите вы. Вопрос в точку, не занимаясь продвижением в Instagram, я бы сказал: — да чёрт его знает зачем они нужны, но есть одно но, с недавних пор а именно год назад я начал сам продвигать свою страницу в Instagram (@codingforweb ). Так что ответ я знаю, они нужны для всеобщего признания и зарабатывания денег на своем аккаунте. Кстати в данной статье речь пойдет не о моей странице. Я постараюсь передать вам свои знания того как это происходит, на что надо обращать внимание и что стоит игнорировать. Я не буду делать слишком длинные статьи, по своему опыту знаю, что в какой-то момент читая статью ты начинаешь теряться из-за того что всё напичкано в одном месте. Поэтому я и решил поделить свой рассказ про мои познания об Instagram на несколько частей. Оно будет состоять из:<br>1. Instagram — Начало<br>2. Instagram — На что стоит обращать внимание, как продвинуть свой блог, и каких ошибок избегать<br>3. Instagram — Полезные аппликации для фото редактирования и видео монтажа<br>4. Instagram — Монетизация вашего аккаунта. Или как делать денюжку из ваших стараний.</p><p>Я буду стараться писать с использованием как можно более легкого языка без навороченных терминов, чтобы вы не бегали у меня и не искали понятия разных выражений, а смогли сосредоточиться на понимании того, что же это за зверь — Instagram и, как набрать больше подписчиков и возможно даже заработать. <br>Спасибо что дочитали. Интересно? Похлопайте :)</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=2570a4601640" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Top 10 Blogs for Web Developers 2019]]></title>
            <link>https://medium.com/@codingforweb/top-10-blogs-for-web-developers-2019-995fa82c9482?source=rss-10dc89e25b55------2</link>
            <guid isPermaLink="false">https://medium.com/p/995fa82c9482</guid>
            <category><![CDATA[website]]></category>
            <category><![CDATA[blog]]></category>
            <category><![CDATA[web-development]]></category>
            <category><![CDATA[top-10]]></category>
            <category><![CDATA[webdev]]></category>
            <dc:creator><![CDATA[Ziv Peer]]></dc:creator>
            <pubDate>Mon, 15 Apr 2019 13:29:19 GMT</pubDate>
            <atom:updated>2024-08-20T17:12:32.551Z</atom:updated>
            <content:encoded><![CDATA[<h3>Top 10 Blogs for Web Developers 2024</h3><p>Presented by <a href="https://medium.com/u/10dc89e25b55">Ziv Peer</a></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*PE74XM6ZYGPOkOSzIrzXgw.jpeg" /></figure><p>We all have different learning preferences: Some like videos and others like books. Some of us like a little of both, but if we want to become a true expert in web development we need to do it by learning from our predecessors, same as to do a lot of practice. For this, we need to know what to read and which <strong>blogs to follow</strong>. If we do it right, then our life will much easier.</p><p>Whether you new into the world of web development or have been in the industry for years, there are always will new things to learn. New technologies, libraries, and techniques are continuously emerging and if you want to stay on top of all these changes you will need to immerse yourself in groups, communities, and conferences all revolving around web development. Another great way to stay on top is understanding of how web development works are to read well-known blogs.</p><blockquote>“STAY HUNGRY, STAY FOOLISH” — Steve Jobs</blockquote><p>Here I’ve compiled a list of the top web development blogs that will help us to find your footing and acquire essential skills in the modern web dev world. This list will help both beginners and professional developers. <br><strong>Let’s start:</strong></p><blockquote>1. CSS-Tricks</blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*BbVK7opcUNjlMvgget9Qzw.jpeg" /><figcaption>CSS-Tricks</figcaption></figure><p>CSS-Tricks is really about building websites and all that entails, mostly from a front-end perspective. They have staff writers and loads of guest authors, so the content you find there will be as diverse as they are.</p><p><a href="https://css-tricks.com/"><strong>Visit website</strong></a></p><blockquote>2. CodePen Blog</blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*Q4jtZk3-8zm3CCY6Epg8QQ.jpeg" /></figure><p>Read blogs, experiment and show your code instantly on the website (CodePen), you as well can learn how to code from examples of other developers.</p><p><a href="https://blog.codepen.io/"><strong>Visit website</strong></a></p><blockquote>3. Creative Bloq</blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/961/1*QgNd6xgmGkRJ-vo7oLNofA.jpeg" /></figure><p>Creative Bloq may tout itself as an art and design blog, but it’s just as detailed as any other web developer blog. It’s awesome for discovering how grid systems, CSS animation, Big Data, etc all play roles in real-world web design.</p><p><a href="https://www.creativebloq.com/"><strong>Visit website</strong></a></p><blockquote>4. Smashing Magazine</blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*u5T2De2U2GNqeyUwO3P0Bw.jpeg" /></figure><p>On Smashing Magazine you can learn about coding, design, UX, mobile development and CMS frameworks. Visit this resource for level up your front end skills.</p><p><a href="https://www.smashingmagazine.com/"><strong>Visit website</strong></a></p><blockquote>5. Free Code Camp</blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/1022/1*o7U1cegNGRs4TGnw6PFuOQ.jpeg" /></figure><p>One of the best resources to learn and improve your skills for free. They as well have an awesome channel on YouTube. Highly recommend.</p><p><a href="https://www.freecodecamp.org/news/"><strong>Visit website</strong></a></p><blockquote>6. Envato Tuts+</blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*VcYs8oJLSA2KckW6iEb2DQ.jpeg" /></figure><p>Envato Tuts+, you can read their blog posts for free, in addition, if you subscribe you will get an option to watch tutorials and to use Envato library.</p><p><a href="https://tutsplus.com/"><strong>Visit website</strong></a></p><blockquote>7. Codrops</blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/1023/1*HCvX6bSFxZXVpyBMpGMIpw.jpeg" /></figure><p>Codrops features blogs with topics ranging from UI design and page animations to image formatting and general JavaScript practices. It also includes a handy CSS reference, a web development experiment playground, and tutorials.</p><p><a href="https://tympanus.net/codrops/"><strong>Visit website</strong></a></p><blockquote>8. CSS Autor</blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/1020/1*KANUOtaJMWHbYOO0ffO2RQ.jpeg" /></figure><p>Do you want to find a great place to pick up new tricks and inspiration? Then CSS Author is a great place for you. Check this resource for general CSS articles and technique roundups. As well it includes a number of PSD design tools and other freebies.</p><p><a href="https://cssauthor.com/"><strong>Visit website</strong></a></p><blockquote>9. Scotch.io</blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*7DaA0DvHu7dN0z3_1XM8YQ.jpeg" /></figure><p>This place is good for both novice and expert developer. You can find their video courses, tutorials, last trend news and they have excellent community section.</p><p><a href="https://scotch.io/"><strong>Visit website</strong></a></p><blockquote>10. Hongkiat</blockquote><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*U9byJ_HHPpzyfCAQmG51Fw.jpeg" /></figure><p>From useful tech how-tos and tutorials to design inspiration and freebies, Hongkiat has everything that designers and developers look for. Doesn’t matter if you are novice or expert, this blog will help you equally.</p><p><a href="https://www.hongkiat.com/blog/"><strong>Visit website</strong></a></p><h3>Conclusion</h3><p>Now you know more about some of the most useful modern web development blogs, and I believe that’s you already added a few of them to your favorites list. Check them up occasionally and read their latest posts. Always update your knowledge, and don’t forget to follow me for more new stories in the future. Also, you can join my <a href="https://t.me/coddingforweb">Telegram channel</a> and <a href="https://www.instagram.com/codingforweb/">Instagram</a>.<br><strong><em>One more thing</em></strong>, if you have in your favorites list interesting websites for web developers, feel free to share them with us in the comments below. <br>If you like my selection of the top 10 blogs for web developers, then please do some <strong>claps.</strong> Enjoy! 😉</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=995fa82c9482" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[“In order to live further it’s necessary to change” — a strong parable]]></title>
            <link>https://medium.com/@codingforweb/in-order-to-live-further-its-necessary-to-change-a-strong-parable-d15b937696e?source=rss-10dc89e25b55------2</link>
            <guid isPermaLink="false">https://medium.com/p/d15b937696e</guid>
            <category><![CDATA[life-lessons]]></category>
            <category><![CDATA[change]]></category>
            <category><![CDATA[motivation]]></category>
            <category><![CDATA[love]]></category>
            <category><![CDATA[lifestyle]]></category>
            <dc:creator><![CDATA[Ziv Peer]]></dc:creator>
            <pubDate>Sat, 23 Feb 2019 13:01:21 GMT</pubDate>
            <atom:updated>2019-04-15T17:16:17.095Z</atom:updated>
            <content:encoded><![CDATA[<h3>In order to live further, it’s necessary to change…</h3><p>Very often, in order to live, we must do some changes in our life, sometimes this process is accompanied by pain, fear, doubts …</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*W4Tu_Hemv7_dqLP0_s18Pg.jpeg" /></figure><p>At the age of 40, the eagle’s claws become too long and flexible and it cannot grab prey by them. His beak becomes too long and curved and does not allow him to eat. Feathers on the wings and chest become too thick and heavy and make it difficult to fly. Now the eagle faces a choice: either death or a long and painful period of change, lasting 150 days …</p><p>He flies into his nest, located on the top of the mountain, and there he beats for a long time on the rock until the beak breaks and peels off … Then he waits until a new beak grows, with which he tears his claws … When new claws grow, the eagle pulls out his too heavy plumage on the chest and wings … And then, after 5 months of pain and torment, with a new beak, claws, and feathering, the eagle is reborn and can live for another 30 years…</p><p>Very often, in order to live, we have to change, sometimes this process is accompanied by pain, fear, doubts … We get rid of memories, habits, and traditions of the past … Only release from the burden of the past allows us to live and enjoy the present and prepare ourselves for the future.</p><p>Alas, for many “today” represents that “tomorrow”, about which they were worried “yesterday.” Remember to live “today”.</p><p>Like?<br>Enjoy and stay motivated.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=d15b937696e" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[2D Transform methods in CSS3: rotate(), scale(), skew() and translate()]]></title>
            <link>https://medium.com/@codingforweb/2d-transform-methods-in-css3-rotate-scale-skew-and-translate-338ee81e2f0c?source=rss-10dc89e25b55------2</link>
            <guid isPermaLink="false">https://medium.com/p/338ee81e2f0c</guid>
            <category><![CDATA[code]]></category>
            <category><![CDATA[css]]></category>
            <category><![CDATA[css-animation]]></category>
            <category><![CDATA[css3]]></category>
            <category><![CDATA[frontend]]></category>
            <dc:creator><![CDATA[Ziv Peer]]></dc:creator>
            <pubDate>Wed, 03 Oct 2018 14:29:11 GMT</pubDate>
            <atom:updated>2020-03-09T17:36:01.066Z</atom:updated>
            <content:encoded><![CDATA[<h3>2D Transform methods in CSS3</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*XnA5hAMXvyirmom-JrGSXw.jpeg" /></figure><h3>Some general characteristics of CSS3 2D Transforms</h3><p>CSS3 transform property can change size, shape, and position of an element on a web page. It converts the element without affecting other elements on the page, i.e. other elements do not move relative to it. By default, the transformation is relative to the center of the element. There are two types of CSS3 transforms — 2D and 3D. In this article we will go through the most frequently used methods of CSS3 2D transform.</p><p>2D transformations transform elements in two-dimensional space. In the code, there are four basic two-dimensional transformation methods: rotate, scale, skew and translate. Other methods like scaleX/scaleY, skewX/skewY, translateX and translateY transform an element in one dimension. <br>We can to combine 2D transform methods with transition and animation properties, so we can create animated elements and interfaces that rotate, “dance” and scale.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/720/1*_NVMTnvHTM9teQxrVRlDeg.png" /><figcaption>2D Transform Methods</figcaption></figure><h3>rotate() method</h3><p>This method rotates an element around its beginning by an angle indicated around the point where the transformation starts. If transform:rotate(45deg) is positive, the item will turn clockwise on <em>45 degrees</em>, and with a negative transform:rotate(-45deg), it will rotate counterclockwise. Example:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/987/0*-4Sh92Cr6p-B-oCE.png" /><figcaption>transform: rotate(45deg);</figcaption></figure><p>The transform: rotate() method can take values in angle units. Corner units are defined by the CSS module of values and units of level 3. These can be deg (degrees), rad (radians), grad (gradians), or turn (units of turnover). One full turn is equal to 360deg, 6.28rad, 400grad or 1turn.</p><blockquote>For example: the value of the method transform: rotate(), exceeding one turn 360deg. <em>transform: </em>rotate(540deg) or <em>transform: </em>rotate(1.5turn), statically displaying according to their residual value. In other words, 540deg will be displayed in the same way as 180deg (540deg-360deg), and 1.5turn as .5turn (1.5–1). If we will use on rotate(540deg) method, some animation or transition property, then it will turn this element 1.5 times with animation effect on it.</blockquote><h3>scale(), scaleX(), и scaleY() methods</h3><p>With the scale() method, we can increase or decrease the displayed element size in the X-dimension scaleX(), Y-dimension scaleY(), or both of them scale(). The example of this method is illustrated below, where the dotted border indicates the original size of the element, and the + sign denotes its center point.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*zJv-ZBGzLE8rAZnP.png" /><figcaption>Example of using scale() method</figcaption></figure><p>As an argument, the scale() method can take any positive or negative number. <strong>Percentage values are not supported.</strong> A positive value greater than 1 increases the size of the element. For example, scale(1.5) increases the size of an element in the X and Y directions by 1.5 times. Positive values between 0 and 1 reduce the size of the element.</p><p><strong>Values less than zero </strong>will also cause the element to increase or decrease in size and create a reflection effect.</p><blockquote>Important to know: If we will use scale(0) it will cause the element to disappear.</blockquote><p>Using scale(1) does not change the element. Same situation with scale(-1), but a negative value will cause the effect of the reflection element. Although the element does not change, it still launches the new stacking context and contains a block.</p><p>A swell you can use scale() and put to there two parameters — for the horizontal and vertical size change, respectively.</p><p><em>For example: </em><em>transform: scale(1.5, 2). The following code will increase the scale of the element one and a half times horizontally and two times vertically. Another example is when we want to reflect an object only along the X axis, using </em><em>transform: scale(-1, 1). <br>If scale has only one value, </em><em>transform: scale(1.5), it will change the element based on this value in both directions equally.</em></p><h3>translateX(), translateY(), and translate() methods</h3><p>Next methods we consider are translateX() and translateY(), they are allow you to move an object along the <strong>X axis</strong> — right / left or <strong>Y axis</strong> — up / down.</p><blockquote>For example: if an element is located with zero pixels on the left, then using transform: translateX(50px) will move it 50 pixels to the right of its starting position and transform: translateY(50px) will move the element vertically 50 pixels down.</blockquote><p>translateX(), translateY() andtranslate(x,y) methods— may take a unit length such as px, em, rem and viewport units (vw and vh).</p><p>We also can use translate(x,y), it’s the shorter version, in one method we can put two parameters with <strong>X and Y axis</strong>. The example of this method is illustrated below transform: translate(120%, -50px), where the left green square occupies the original position, and the right green square is shifted by 120% horizontally and -50px vertically from its original position.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*c7Z7Z6QEnuZolDA4.png" /><figcaption>Example, transform: translate(120%, -50px);</figcaption></figure><p>Moreover, if we specify only one value in translate(x, y), then it will automatically be used as the value of translateX(), and translateY() will receive the value zero.<br>For example: transform: translate(-50px) will move the element by 50px to the left, and in Y axis it’s won’t be changed.</p><p>It’s also important to note that with a positive value of the translateX() argument, the element is shifted to the right horizontally, and translateY() is downward along the vertical. Conversely, with a negative value, translateX() shifts the element horizontally to the left, and translateY() up vertically.</p><blockquote>We can use <em>translate()</em> method for:<br>- move the elements left and right, up and down and vice versa<br>- align elements on the center of the page (most frequently)</blockquote><h3>skew(), skewX(), and skewY() methods</h3><p>The transform method: skew() specifies the bevel of the element, thereby converting it from a rectangle to a parallelogram. The bevel is carried out around the point specified by the transform-origin property (by default it is the center of the element). Below is an example of how this method works.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*fnGWpsSPzv27oMuy.png" /><figcaption>Example of transform: skew()</figcaption></figure><p>Methods — skew(), skewX(), and skewY()—same as rotate()support such angular values of the argument as: deg, grad, rad (valid) and turn (not valid).</p><p>skew() can take one or two parameters. If there are two parameters — the first parameter sets the bevel horizontally, and the second — vertically. If the parameter is one, then it behaves like skewX(), sets the bevel horizontally, <strong>and not on both sides.</strong> For example:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*xgWIVZKy75VLtU1c.png" /><figcaption>Example of transform: skew() with one parameter</figcaption></figure><p>skewY sets the bevel of the element vertically. Below is an example of how this transform works: transform: skewY(30deg). The points to the right of the default position are shifted down with positive values and up if these values are negative transform: transform: skewY(-30deg).</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*Ac8x5VlU1pjTd0VH.png" /><figcaption>Example of transform: skewY(30deg)</figcaption></figure><h3>CSS3 2D Transforms browsers support:</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*sHGcvUMTS8YEH7WFIcytuA.jpeg" /><figcaption><a href="http://www.caniuse.com">www.caniuse.com</a> (Information valid on 10/2018)</figcaption></figure><h3>Conclusion</h3><p>In conclusion, I would like to say that together with the <strong>transform </strong>we got a lot of new opportunities to make our web page more beautiful and modern. And most importantly, it made life easier for web developers. Thanks to CSS3 2D Transforms.</p><p>For more useful information and links feel free to join my <a href="https://t.me/coddingforweb">Telegram channel</a> and <a href="https://www.instagram.com/codingforweb/">Instagram</a>. See you later :)</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=338ee81e2f0c" width="1" height="1" alt="">]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Методы 2D Transformation в CSS3: rotate(), scale(), skew() и translate().]]></title>
            <link>https://medium.com/@codingforweb/%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D1%8B-2d-transformation-%D0%B2-css3-rotate-scale-skew-%D0%B8-translate-c8a4af8a949d?source=rss-10dc89e25b55------2</link>
            <guid isPermaLink="false">https://medium.com/p/c8a4af8a949d</guid>
            <category><![CDATA[web-development]]></category>
            <category><![CDATA[front-end-development]]></category>
            <category><![CDATA[css]]></category>
            <category><![CDATA[css3]]></category>
            <category><![CDATA[frontend]]></category>
            <dc:creator><![CDATA[Ziv Peer]]></dc:creator>
            <pubDate>Thu, 27 Sep 2018 12:48:05 GMT</pubDate>
            <atom:updated>2018-09-27T12:48:05.812Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*0T-ddqbbgsrIYEdqxHmwVg.jpeg" /></figure><h3>Общие характеристики CSS3 2D Transforms</h3><p>Свойство <strong>transform </strong>в CSS3 может<strong> </strong>изменять размер, форму и положение элемента на веб-странице. Оно преобразовывают элемент, не затрагивая остальные элементы веб-страницы, т.е. другие элементы не сдвигаются относительно него. По умолчанию трансформация происходит относительно центра элемента. В сочетании с <em>transition</em> и <em>animation</em> мы можем создавать элементы и интерфейсы, которые вращаются, “танцуют” и масштабируются. Существуют два вида CSS3-трансформаций — <strong>2D</strong> и <strong>3D</strong>. В данной статье мы пройдёмся по самым часто-используемым методам CSS3-трансформаций — <strong>2D.</strong></p><p><strong>2D-трансформации</strong> преобразовывают элементы в двумерном пространстве. В коде существуют четыре основных метода двумерного преобразования это: rotate, scale, skew, иtranslate. Остальные методы преобразовывают элемент в одном измерени, речь идёт об scaleX/scaleY, skewX/skewY,translateX и translateY.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/720/1*_NVMTnvHTM9teQxrVRlDeg.png" /><figcaption>Основные методы 2D Transform</figcaption></figure><h3>Метод 2D Transform: rotate()</h3><p>Данный метод вращает элемент вокруг его начала на угол, указанный вокруг точки начала преобразования. При положительном значении rotate(45deg) элемент повернется по часовой стрелке на <br>45 градусов, а при отрицательном значении rotate(-45deg) оно повернётся против часовой стрелки. Пример:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/987/0*-4Sh92Cr6p-B-oCE.png" /><figcaption>Пример использования функций rotate()</figcaption></figure><p><em>Метод </em>rotate() может принимать значения в единицах угла. Угловые единицы определяются модулем CSS значений и единиц измерения уровня 3. Это могут быть deg (градусы), rad (радианы), grad (gradians), или turn(единицы оборота). Один полный оборот равен 360deg, 6.28rad, 400grad или 1turn.</p><blockquote>Например: значения метода rotate(), превышающие один оборот (скажем, <strong>rotate(</strong>540deg<strong>)</strong> или <strong>rotate(</strong>1.5turn<strong>)</strong>), отображаются статично в соответствии с их остаточным значением. Другими словами, 540deg отображается так же, как 180deg (540deg-360deg), а 1.5turn получается таким же, как .5turn (1,5-1). Ну а если мы хотим анимировать данный метод, то нам необходимо добавить к нашему коду в CSS, <em>transition</em> или <em>animation</em> эффекты. В данном случае <strong>(rotate(540deg)), </strong>анимация <strong>прокрутила</strong> бы элемент в полтора раза.</blockquote><h3>Методы 2D Transform: scale, scaleX, и scaleY</h3><p>С помощью метода scale()мы можем увеличить или уменьшить отображаемый размер элемента в X-размерности (scaleX), Y-размерности (scaleY) или обоих (scale). Работа данного метода проиллюстрирована ниже, где пунктирная граница указывает на исходные границы элемента, а знак + обозначает ее центральную точку.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*zJv-ZBGzLE8rAZnP.png" /><figcaption>Пример использования функций scale()</figcaption></figure><p>В качестве аргумента метод scale()может принимать любое положительное или отрицательное число. Процентные значения не поддерживаются. Положительное значение, превышающие 1, увеличивают размер элемента. Например, <em>scale(1.5)</em> увеличивает размер элемента в направлениях <em>X и Y</em> в <em>1,5 раза</em>. Положительные значения между <strong>0</strong> и <strong>1</strong> уменьшают размер элемента.</p><p>Значения, меньше нуля, также будут приводить к тому, что элемент будет увеличиваться или уменьшаться по размеру и создавать эффект отражения (flip).</p><blockquote>Примечание: Использование scale(0) приведет приведет к визуальному исчезновению элемента.</blockquote><p>Использование scale(1) никак не масштабирует элемент. scale(-1) так же не изменит размер элемента, но отрицательное значение вызовет эффект отражения элемента(flip). Несмотря на то, что элемент не изменяется, он по-прежнему запускает новый контекст стекирования и содержит блок.</p><p>Для более произвольного масштабирования можно указать два параметра — для горизонтали и вертикали соответственно. Например: scale(1.5, 2). Следующий код увеличит масштаб элемента в полтора раза по горизонтали и в два раза по вертикали. Мы могли бы так же, например, отразить объект только по оси Х, используя scale(-1, 1). А если scale будет иметь только одно значение, то это изменит элемент исходя из этого значения в оба направления одинаково.</p><h3>Методы 2D Transform: translateX, translateY, and translate</h3><p>Следующим методом, который мы рассмотрим это будет<em> </em>translate(x,y), которая позволяет двигать объект по оси <strong>X — вправо/влево и Y—вверх/вниз.</strong></p><blockquote>Например: если элемент расположен с нулевыми пикселями слева, то использование transform: translateX (50px) сдвинет его положение на 50 пикселей вправо от его начальной позиции, <br>а transform: translateY (50px) сдвинет элемент по вертикали на 50 пикселей вниз.</blockquote><p>Методы translateX(), translateY() и translate(x,y) — могут принимать такие единицы длины как пиксели <em>px, em, rem и viewport units (vw и vh)</em>.</p><p>С translate(), мы также можем изменять позицию элемента горизонтально и вертикально используя только один метод. В данном случае можно использовать два аргумента: <strong><em>X</em></strong><em> translation значение и </em><strong><em>Y</em></strong><em> translation значение</em>. На примере внизу вы можете видеть квадрат на котором было использован метод transform: translate(120%, -50px), где левый зелёный квадрат занимает оригинальную позицию, а правый зелёный квадрат смещён на 120% горизонтально и -50px вертикально от её оригинальной позиции.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*c7Z7Z6QEnuZolDA4.png" /><figcaption>Пример использования функций transform: translate(120%, -50px);</figcaption></figure><p>Вместо translateX() и translateY() по отдельности можно использовать translate(x,y) это более короткий вариант данного метода. Как я уже указывал выше X — будет отвечать за горизонтальный сдвиг, а Y — за вертикальный. Более того, если мы в translate(x,y) укажем только одно значение, то оно автоматический будет использоваться как значение translateX(), а translateY() получит значенье 0.<br>Например: transform: translate(-50px); сдвинет элемент влево по оси X на 50px, а по оси Y оно останется на месте со значением 0.</p><p>Важно так же отметить, что при положительном значении аргумента translateX(), элемент сдвигается вправо по горизонтали, а translateY() вниз по вертикали. И наоборот при отрицательном значении translateX() сдвигает элемент влево по горизонтали, а translateY() вверх по вертикали.</p><blockquote>Зачастую метод translate() используют:<br>- чтоб сдвигать элементы вправо-влево, вверх-вниз и наоборот<br>- для выравнивания элементов по центру страницы<br>- они служат одной из составляющих вместе с animation или transition для создания анимаций на странице и позволяют двигать элементы без какого-либо использования Java Script.</blockquote><h3>Методы 2D Transform: skew, skewX, and skewY</h3><p><em>Метод transform: skew</em> задает скос элемента, превращая тем самым его из прямоугольника в параллелограмм. Скос осуществляется вокруг точки, задаваемой свойством <a href="http://code.mu/css/transform-origin.html">transform-origin</a> (по умолчанию это центр элемента). Ниже приведён пример, о том как именно работает данный метод</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*fnGWpsSPzv27oMuy.png" /><figcaption>Пример transform: skew()</figcaption></figure><p>Методы— skew, skewX, and skewY—так же как и rotate() поддерживают такие угловые значения аргумента как: deg, grad, rad (valid) и turn(not valid).</p><p>skew может принимать один или два параметра. Если параметров два — первый параметр задает скос по горизонтали, а второй — по вертикали. Если параметр один, то оно ведет себя как skewX, <em>задает скос по горизонтали (а не по обеим сторонам!!!) </em>Пример:</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*xgWIVZKy75VLtU1c.png" /><figcaption>Пример поведения skew() с одним параметром (скос по горизонтали)</figcaption></figure><p>skewY задаёт скос элемента по вертикали. Ниже приведён пример того как это работает transform: skewY(30deg). Точки справа от позиции по умолчанию сдвигаются вниз с положительными значениями и вверх если эти значения отрицательные transform: skewY(-30deg).</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*Ac8x5VlU1pjTd0VH.png" /><figcaption>Пример поведения skew(30deg)</figcaption></figure><blockquote>Обратите внимание на то, что при любых трансформациях <strong>transform</strong>, другие элементы будут вести себя так, будто мы не трансформировали элемент, и он даже могут налезать друг на друга.</blockquote><h3>Немного о поддержке браузерами методов CSS Transforms</h3><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*sHGcvUMTS8YEH7WFIcytuA.jpeg" /><figcaption>Информация взята с сайта <a href="http://www.caniuse.com">www.caniuse.com</a> (данные на 09/2018)</figcaption></figure><h3>Заключение</h3><p>В заключении хотелось бы сказать что вместе с transform мы получили уйму новых возможностей сделать наш сайт более красивым и современным. И что самое главное это намного облегчило нам веб девелоперам жизнь. Спасибо CSS3. Отпишитесь ниже в комментариях, как вам статья и о чём бы вы хотели чтоб я написал в следующий раз. Спасибо что дочитали и до следующей встречи на страницах Medium.</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=c8a4af8a949d" width="1" height="1" alt="">]]></content:encoded>
        </item>
    </channel>
</rss>