<?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>DEV Community: Siva Ranchani</title>
    <description>The latest articles on DEV Community by Siva Ranchani (@siva_ranchani_aa4aa7a30cc).</description>
    <link>https://dev.to/siva_ranchani_aa4aa7a30cc</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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4108174%2F119ca2d1-b7d9-485e-bb01-4dae54168db4.jpeg</url>
      <title>DEV Community: Siva Ranchani</title>
      <link>https://dev.to/siva_ranchani_aa4aa7a30cc</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/siva_ranchani_aa4aa7a30cc"/>
    <language>en</language>
    <item>
      <title>Building Responsive Layout Without Breaking Accessibility:Modern HTML5 &amp; CSS3 Rules</title>
      <dc:creator>Siva Ranchani</dc:creator>
      <pubDate>Tue, 20 Oct 2026 12:48:13 +0000</pubDate>
      <link>https://dev.to/siva_ranchani_aa4aa7a30cc/building-responsive-layout-without-breaking-accessibilitymodern-html5-css3-rules-1kba</link>
      <guid>https://dev.to/siva_ranchani_aa4aa7a30cc/building-responsive-layout-without-breaking-accessibilitymodern-html5-css3-rules-1kba</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Modern CSS layout tools like Flexbox and CSS Grid make it easy to adapt user interfaces across different screen sizes. However, rearranging elements purely for visual appeal often introduces accessibility barriers for keyboard users and screen readers.&lt;/p&gt;

&lt;p&gt;In this article, we will explore key practices for building responsive HTML5 and CSS3 layouts that strictly adhere to &lt;strong&gt;WCAG (Web Content Accessibility Guidelines)&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  1. Visual Order vs. Logical DOM Order
&lt;/h2&gt;

&lt;p&gt;Properties like &lt;code&gt;flex-direction: column-reverse&lt;/code&gt; or CSS Grid &lt;code&gt;order&lt;/code&gt; allow us to change where elements appear visually. However, screen readers and keyboard &lt;code&gt;Tab&lt;/code&gt; navigation follow the underlying HTML DOM structure—not the visual layout.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Problem
&lt;/h3&gt;

&lt;p&gt;If a button appears at the top of the screen visually due to CSS &lt;code&gt;order: -1&lt;/code&gt;, a keyboard user will still tab to it based on its physical location in the HTML document.&lt;/p&gt;

&lt;h3&gt;
  
  
  Best Practice
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Keep your HTML document structure in logical reading order (top-to-bottom, left-to-right).&lt;/li&gt;
&lt;li&gt;Rely on structural HTML changes rather than CSS &lt;code&gt;order&lt;/code&gt; tricks to organize content contextually.&lt;/li&gt;
&lt;/ul&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
html
&amp;lt;!-- Logical DOM Structure --&amp;gt;
&amp;lt;header&amp;gt;
  &amp;lt;nav aria-label="Main Navigation"&amp;gt;
    &amp;lt;ul&amp;gt;
      &amp;lt;li&amp;gt;&amp;lt;a href="#about"&amp;gt;About&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
      &amp;lt;li&amp;gt;&amp;lt;a href="#contact"&amp;gt;Contact&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
    &amp;lt;/ul&amp;gt;
  &amp;lt;/nav&amp;gt;
&amp;lt;/header&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
      <category>css</category>
      <category>html</category>
      <category>webdev</category>
      <category>a11y</category>
    </item>
    <item>
      <title>How to Build an Animated CSS Penguin: A Step-by-Step Guide #html5 #css3 #animation #Responsive web design</title>
      <dc:creator>Siva Ranchani</dc:creator>
      <pubDate>Thu, 03 Sep 2026 15:00:20 +0000</pubDate>
      <link>https://dev.to/siva_ranchani_aa4aa7a30cc/how-to-build-an-animated-css-penguin-a-step-by-step-guide-html5-css3-animation-responsive-web-3hjb</link>
      <guid>https://dev.to/siva_ranchani_aa4aa7a30cc/how-to-build-an-animated-css-penguin-a-step-by-step-guide-html5-css3-animation-responsive-web-3hjb</guid>
      <description>&lt;p&gt;**While completing the freeCodeCamp Responsive Web Design Certification, I built an interactive penguin mascot to master pure CSS styling, positional layout techniques, and keyframe animations.&lt;/p&gt;

&lt;p&gt;In this tutorial, I'll walk you through the end-to-end process of structuring the HTML elements, applying custom styles, and creating a waving animation using pure CSS.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Project Overview &amp;amp; Interactive Demo&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Before diving into the code, you can view and test the complete live code directly on my CodePen:&lt;/p&gt;

&lt;p&gt;Live Demo: &lt;a href="https://codepen.io/editor/Siva-Ranchani/pen/01a067b1-27e2-712b-9d65-d0c674b3eee5" rel="noopener noreferrer"&gt;View my Penguin Project on CodePen&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Building the HTML Foundation&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;The penguin is composed of semantic div elements representing the head, facial features, body, heart badge, and arms.&lt;/p&gt;

&lt;p&gt;HTML&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;I &amp;lt;span&amp;gt;♥&amp;lt;/span&amp;gt; CSS
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;Positioning and Background Gradients&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;To create the vibrant background seen in the preview, we use CSS linear gradients across a multi-layered canvas:&lt;/p&gt;

&lt;p&gt;CSS&lt;br&gt;
/* Background environment layout */&lt;br&gt;
body {&lt;br&gt;
  background: linear-gradient(90deg, rgb(88, 175, 236), rgb(182, 255, 255));&lt;br&gt;
  margin: 0;&lt;br&gt;
  padding: 0;&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;/* Parent container setup */&lt;br&gt;
.penguin {&lt;br&gt;
  position: relative;&lt;br&gt;
  margin: 0 auto;&lt;br&gt;
  width: 200px;&lt;br&gt;
  height: 200px;&lt;br&gt;
  z-index: 3;&lt;br&gt;
}&lt;br&gt;
Using position: relative on .penguin creates an anchor frame. Every child element inside (like the eyes, beak, and arms) can then be placed precisely using position: absolute.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Crafting the Keyframe Wave Animation&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;To animate the penguin waving its arm smoothly back and forth, we define a @keyframes sequence and anchor the arm's rotational pivot point using transform-origin.&lt;/p&gt;

&lt;p&gt;CSS&lt;br&gt;
/* Define keyframe rotation */&lt;br&gt;
@keyframes wave {&lt;br&gt;
  0% {&lt;br&gt;
    transform: rotate(0deg);&lt;br&gt;
  }&lt;br&gt;
  50% {&lt;br&gt;
    transform: rotate(110deg);&lt;br&gt;
  }&lt;br&gt;
  100% {&lt;br&gt;
    transform: rotate(0deg);&lt;br&gt;
  }&lt;br&gt;
}&lt;/p&gt;

&lt;p&gt;/* Apply animation to the arm &lt;em&gt;/&lt;br&gt;
.arm.right {&lt;br&gt;
  position: absolute;&lt;br&gt;
  top: 10%;&lt;br&gt;
  left: 5%;&lt;br&gt;
  /&lt;/em&gt; Set shoulder joint pivot point */&lt;br&gt;
  transform-origin: 0% 0%; &lt;br&gt;
  animation: wave 3s infinite ease-in-out;&lt;br&gt;
}&lt;br&gt;
By default, CSS elements rotate around their middle (50% 50%). Setting transform-origin: 0% 0% locks the rotation to the top-left shoulder, allowing the arm to swing naturally instead of spinning in place.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Summary &amp;amp; Key Takeaways&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Layering with z-index: Controls feature stacking order so eyes and beak sit cleanly above face shapes.&lt;/p&gt;

&lt;p&gt;Transform Origins: Crucial for setting realistic joints and motion paths for 2D CSS animations.&lt;/p&gt;

&lt;p&gt;Timing Functions: ease-in-out creates organic acceleration and deceleration during animation cycles.&lt;/p&gt;

&lt;p&gt;About the Author&lt;/p&gt;

&lt;p&gt;I am a MERN Stack Developer focused on building responsive, performant, and user-centric web applications. Currently expanding her skills through freeCodeCamp certifications, she specializes in clean CSS architecture, React UI components, and full-stack API integration.&lt;/p&gt;

&lt;p&gt;i am available for remote frontend development roles, technical writing, and freelance projects.&lt;/p&gt;

</description>
      <category>css</category>
      <category>frontend</category>
      <category>html</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
