Skip to main content

· 10 min read
Jayesh Potlabattini

Web designing (the HTML & CSS part, not the Figma Part) can be a real pain if we don’t understand the design system/rules/procedure it uses. Even after watching HTML and CSS tutorials, we can still struggle to design anything in web. But, after having a decent understanding of divisions into rows and columns and learning about display properties and positioning in detail, you we can have some confidence to turn any Figma design to HTML and CSS. This is not a tutorial on HTML & CSS but a comprehensive usage of them. By reading this blog, I hope you can get the confidence and create the Mental Model of Web Design in your Brain ✨

This Blog also serves as a very precise summary of long web design bootcamp I took with **GenosisX Tech Community, watch here**

TL;DR: Create proper rows and columns for each block of design, put them into proper semantic tags or <div> tags. Use display flex or grid on them. Then style them properly with the fonts, colors, paddings, margins, borders, backgrounds. Position them properly with position property of CSS. Use responsive features of flex and grid. Done!

Prerequisite​

  • Basic knowledge of HTML and CSS would help, but not necessary.
  • That’s It!

Guide to Divisions

Making proper divisions of design into rows and columns will help you style them better and will make it 100x easier to make them responsive. Let’s get into it.

Visualize Design​

Visualize Design #1

Visualize Design #1

  • First think of the separate sections, in this case, there are two, a Header and a Hero section.
  • For every block of divisions, first think of sections as in one row or one column, then multiple columns or rows respectively.
  • Divisions
    • Here, the whole page is one column which has two rows, Navbar and Hero.
    • Then we clearly see, hero is divided into two columns, so hero itself is one row which has two different distinct columns.
    • You can try to dig further deep into each div visually.

So based upon the divisions, we can conclude the following code.

<body> <!-- First Column, whole page -->
<header></header> <!-- First Row, Header -->
<main> <!-- Second Row, Hero section -->
<section></section> <!-- First Column, Main Text Section-->
<section></section> <!-- Second Column, Main Image Section-->
</main>
</body>

Lets dig deep​

Visualize Design #2

Visualize Design #2

  • Divisions - Header - a row
    • Img - Logo - First column
    • Navbar - Second column
    • Button - Third column
<body> <!-- First Column, whole page -->
<header><!-- First Row, Header -->
<img src="/.." /> <!-- First column -->
<nav>bunch of <a></a> Tags</nav> <!-- Second column -->
<button>Sign up</button> <!-- Second column -->
</header>
<main> <!-- Second Row, Hero section -->
<section></section> <!-- First Column, Main Text Section-->
<section></section> <!-- Second Column, Main Image Section-->
</main>
</body>

Use semantic tags wherever possible, they hold some meaning and are very important for SEO, read this article to learn more about them. https://www.pluralsight.com/guides/semantic-html

Visualize Design #3

Visualize Design #3

  • Divisions - Main - a row
    • First Column of Hero Section
      • H1 - Main text - First row
      • p - Description text - Second row
      • span - Third Row having two buttons
        • Button - First Column
        • Button - Second Column
    • Second Column of Hero Section
      • img - First Column
<body> <!-- First Column, whole page -->
<header><!-- First Row, Header -->
<img src="/.." /> <!-- First column -->
<nav>bunch of <a></a> Tags</nav> <!-- Second column -->
<button>Sign up</button> <!-- Second column -->
</header>
<main> <!-- Second Row, Hero section -->
<section> <!-- First Column, Main Text Section-->
<h1>Main text...</h1>
<p>Description text...</p>
<span>
<button>Get Started</button>
<button>Order Now</button>
</span>
</section>
<section> <!-- Second Column, Main Image Section-->
<img src="/.." />
</section>
</main>
</body>

Guide to Style them

Pat yourself if you reached till here, and understood everything above! Lets go ahead.

For the next part, I’ll use tailwindcss because it’s easier to explain with. If you know CSS, you basically know tailwindcss. Read this article for a quick introduction, I hope you come back here after reading this. https://tailwindcss.com/docs/utility-first

Step-by-Step Linear Process to Design Anything!​

Remember, this is not a hard and fast rule to follow exactly as is. You can add you own flavours to this. Skip steps which are not required. I made this using my personal experience so add modify it if I missed anything.

  1. Write HTML, using the divisions approach
  2. Set background color
  3. Set display - flex (if any child tags)
  4. Set width - compulsory
  5. Set height - optional
  6. set overflow properties
  7. Set font → size, weight, line height, letter spacing,
  8. Set text colors → paddings → borders → margins
    1. Colors - normal, hover, active any states
    2. Borders - width/thickness , color, radius, style
  9. Set position (if want to move the element from its position)
    1. relative - move it from its current position
    2. absolute - move it from its first relative parent start point (top-0, left-0 of relative parent)
    3. fixed - move it from windows start point (top-0, left-0 of whole window)
  10. Set z-index - define stack, which element should be above which
  11. Anything else that suits your design

This is a linear process, which means you first style the first tag then the second tag then the third tag then the next tag then the next tag and so on!

<body> <!-- First style this #1 -->
<header><!-- then this #2 -->
<img src="/.." /> <!-- Then this #3 -->
<nav> <!-- Then this #4 -->
<a>..</a> <!-- Then this #5 -->
<a>..</a> <!-- Then this #6 -->
<a>..</a> <!-- Then this #7 -->
</nav> <!-- and so on till the last tag -->
<button>Sign up</button>
</header>
<main>
<section>
<h1>Main text...</h1>
<p>Description text...</p>
<span>
<button>Get Started</button>
<button>Order Now</button>
</span>
</section>
<section>
<img src="/.." />
</section>
</body>

Here comes the CSS​

Web Design Bootcamp Design

Web Design Bootcamp Design

Take a quick look, and we will start with the linear process

Body - main page​

We can see that the

  • background color is different
  • width is full screen
  • padding left and right i.e x-axis
<body class="bg-[#f3f3f3] w-[100vw] px-16 " > <!-- First Column, whole page -->
<header ><!-- First Row, Header -->
<img src="/.." /> <!-- First column -->
...

Here,

  • We see, everything is in one row, so set display as flex
  • width is full available space so 100%
  • img - logo
    • width of some pixels
  • navbar
    • width of fit content (automatic)
    • font weight is medium i.e 500
    • Color is gray for all but black for current one
  • button
    • background is orange
    • text is bold
    • longer padding in x-axis, shorted padding in y-axis
    • border radius full rounded
<body class="bg-[#f3f3f3] w-[100vw] px-20 " > <!-- First Column, whole page -->
<header class="flex w-full" ><!-- First Row, Header -->
<img class="w-20" src="/.." /> <!-- First column -->
<nav class="flex w-fit text-[#828282] font-medium" >
<a id="current" class="text-black" >Home</a>
<!-- if id="current" then class="text-black" add this login using javascript -->
<a>How it works</a>
...
</nav> <!-- Second column -->
<button class="bg-[#FF6F1E] w-fit text-white px-4 py-2 rounded-full" >Sign up</button> <!-- Second column -->
</header>
...

We won’t do the whole design, but this will give you enough idea on how we go about designing and how to follow the linear process which may seem overwhelming but is really easy to follow.

Responsiveness, how easy is it?​

Desktop First Design Approach​

  • First we design the desktop version of our web app
  • Then slowly add rules to make it responsive for tablets then mobile
  • Desktop → Tablet → Mobile
  • This is not recommended

Mobile First Design Approach​

  • First we design the mobile version of our web app
  • Then slowly add rules to make it responsive for tablets then desktop
  • Mobile → Tablet → Desktop
  • This is most recommended and used by tailwindcss by default

No media query methods​

  • Set max-widths and min-widths
  • Use display flex with flex-wrap, flex-grow, flex-shrink, flex-basis
  • Use display grid with grid-template-columns, repeat - autofit, minmax
  • You can much deeper with maths to avoid media queries but I feel that much is unnecessary.
  • Using some media queries to avoid extreme complexity is always a good idea

A good example of minimum media queries​

****The prefix lg: is how we use media queries in tailwindcss, refer this* https://tailwindcss.com/docs/responsive-design

<main class="flex flex-wrap text-lg lg:text-xl m-5 lg:m-10" > <!-- Second Row, Hero section --> 
<section class="max-w-lg" > <!-- First Column, Main Text Section-->
...
</section>
<section class="max-w-lg" > <!-- Second Column, Main Image Section-->
...
</section>
</main>

Get Creative with Positioning​

When we want to move some elements from their original position to something else, we use position property.

CSS Positions​

  • Static
    • Default value
    • Original position, cannot change it.
  • Relative
    • Set explicitly
    • Can change position from original using properties - top, left, bottom, right
    • Moves towards the specified direction from its current position.
  • Absolute
    • Set explicitly
    • Can change position from original using properties - top, left, bottom, right
    • Move towards the specified direction from the first relative parents start coordinates.
  • Fixed
    • Set explicitly
    • Can change position from original using properties - top, left, bottom, right
    • Move towards the specified direction from the coordinates of window (browser tab) itself
    • Does not move on scroll, stays fixed.

This article by MDN teaches all positionings perfectly. https://developer.mozilla.org/en-US/docs/Web/CSS/position

An example of positioning​

Lets look at the image which has blocks of elements floating above it.

Pizza Design

  • So the concept is we wrap the image in one div
  • This div will be set to position: relative
  • This div will contain image tag and other elements of those floating blocks
  • Don’t change image tag position
  • Change position: absolute of all floating elements
  • Then set them to their places via top, left, right, bottom
<section class="relative" > <!-- Second Column, Main Image Section-->
<img class="w-24 h-40" src="/.." />
<div class="absolute top-[30%] right-[-10%]" >...</div>
<div class="absolute top-[50%] left-[-10%]" >...</div>
<div class="absolute bottom-[-15%] right-[12%]" >...</div>
</section>

Conclusion

  • Make proper divisions while writing the whole HTML. Visualize and then create rows and columns.
  • Write whole HTML of one section then style the whole section using the step by step linear process.
  • Position properly and most of it depends on the parents element position property, so make sure you set those correct.
  • Learn flex, grid and positions of CSS very thoroughly.
  • Learn tailwindcss because it will make your life easier, trust me on this.

· 5 min read
Mahima Churi
As technology continues to evolve, web development has become an increasingly important field, and front-end frameworks such as ReactJS have emerged as crucial tools for building dynamic, user-friendly websites. Whether you are just starting out with web development or are looking to enhance your existing skills, I hope that you will find valuable insights and tips within these pages. So sit back, grab a cup of coffee, and join me on our journey through the exciting world of ReactJS!

“Design is not just what it looks like and feels like. Design is how it works.” — Steve Jobs
“Design is not just what it looks like and feels like. Design is how it works.” — Steve Jobs

What is React JS?

React JS is nothing but a java script library that helps the developers in creating reusable UI components there by increasing the efficiency of code. When making dynamic websites React JS is proven to be more effective than Vanilla JS, and hence it has become a popular choice for building fast and scalable single-page applications. In simple terms, ReactJS helps make web development more efficient, organized, and dynamic.

Characteristic Features of React JS that makes it more versatile and Popular

Features of ReactJS
Features of ReactJS

1. Virtual DOM​

In traditional web development, when changes are made to a web page, the entire page needs to be re-rendered, which can be slow and time-consuming. The Virtual DOM solves this issue by creating a virtual representation of the web page in memory so when changes are made, ReactJS updates the virtual DOM instead of the actual page, which is much faster. Then, ReactJS compares the virtual DOM to the actual page and updates only the parts that have changed, rather than the entire page. This makes the updates and rendering process much faster and more efficient, improving the overall user experience of the web application.

2. Reusable Components​

ReactJS uses a component-based architecture, which means that the user interface is built using reusable components. Each component is a self-contained unit that handles a specific task or displays a specific piece of information, we can say that each components are independent. This makes the code more organized and easier to maintain, as well as reducing the amount of redundant code.

3. Community​

React has a vast and supportive community of developers who are constantly contributing new features and tools. React is open-source, meaning that anyone can contribute to the development of the library by fixing bugs, adding new features, or improving existing ones.

Link to contribute to the React Library

4. JSX​

JSX stands for JavaScript XML. It is a syntax extension for JavaScript used by ReactJS that allows developers to write HTML-like code within their JavaScript. This makes it easier for users to write and understand the code, as it closely resembles the structure of HTML. This helps to improve the overall development experience by making the code more intuitive and easier to read.

For example, instead of writing the following code in pure JavaScript to render a simple button:

React.createElement("button", {className: "myButton"}, "Click Me!");

The same code can be written in JSX as:

<button className="myButton">Click Me!</button>; 

5. Server-side Rendering​

Server-side rendering (SSR) is the process of rendering a web page on the server before sending it to the browser. In the case of React, this means that the React components can be rendered on the server, allowing the browser to receive a fully rendered HTML page, instead of having to wait for JavaScript to execute and render the page on the client side again and again.

This results in faster initial load times, as the browser doesn’t have to wait for the JavaScript to execute and render the page. Additionally, server-side rendering can improve Search Engine Optimization (SEO), as search engines can better index and understand the content of the page.

6. Compatibility​

React’s simplicity and straightforward design makes it easy for developers to learn and adopt and it works seamlessly with other libraries and frameworks, such as Redux, allowing developers to create complex and scalable web applications.

Comaprison with other Frontend Frameworks

Popular Web Frameworks
Comparison with other frameworks as per the recent survey

Source: Stack Overflow Developer Survey 2021

From the above survey it can be clearly seen that React JS was named as one on the most commonly used web Framework.

React’s virtual DOM provides fast updates and rendering compared to traditional DOM manipulation. Angular and Vue also have optimized updates, but they may not be as fast as React’s virtual DOM.

Also, React is known for its simplicity and minimalistic approach, making it relatively easy to learn and get started with. Angular, on the other hand, has a steeper learning curve due to its more complex architecture. Vue falls somewhere in between, offering a more accessible learning experience as compared to Angular.

info

You can see more detailed insights of React JS on their Official Website

Conclusion​

In conclusion, React is the future of web development, offering a robust set of features and tools that make it easy to build high-performing, scalable, and maintainable web applications. Its simplicity, performance, and compatibility with other technologies make it an excellent choice for modern web development.

· 6 min read
Himanshu Agarwal
Mahima Churi

This Blog talks about the emerging trends in Cloud computing, and also gives a gist about the term Cloud Computing and its impact in leveraging businesses and individuals. The cloud has the ability to streamline and improve a variety of processes. From understanding the meaning of cloud computing model to discussing various characteristics, this blog will be your one-stop-shop for all things cloud computing. So, fasten your seatbelts and let's dive into the exciting world of the cloud together!!


What is Cloud Computing ?

Cloud computing is a way of using current technology where we can access and use internet-based services and storage to manage, process, and store data and information, instead of having to have it all on your own personal device or computer.

We can think of it like having access to a giant computer in the sky that we can use to do our work, store our files, and run our applications, without having to worry about the technical details or maintenance of the underlying hardware and software. This makes it easier and more convenient for us to access our data and resources from anywhere in the world, as long as we have an internet connection.

Let's take a look at some intriguing features of Cloud Computing!!​


🛠️ On-Demand Self-Service

With cloud computing, we can provision computing services, like server time and network storage, automatically. No communication with the service provider will be necessary. Customers of cloud services can view their cloud services, track their usage, and provision and de-provision services by logging into their cloud accounts through a web self-service portal.

đź’» Broad Network Access

Broad network connectivity is another crucial aspect of cloud computing. Through a network and on portable devices like smartphones, tablets, laptops, and desktop PCs, we can access cloud services. A private cloud employs a local area network, whereas a public cloud uses the internet. Broad network access and cloud computing both rely heavily on latency and bandwidth since they have an impact on service quality.

đź“ť Resource Pooling

With resource pooling, multiple customers can share physical resources using a multi-tenant model. Based on demand, this model distributes and redistributes real and virtual resources. Customers can share the same applications or infrastructure with multi-tenancy while still retaining their privacy and security. Customers may be able to designate the location of their resources at a higher level of abstraction, such as a country, state, or data centre, even though they won't know the precise location of their resources. Customers can pool a variety of resources, including memory, computing power, and bandwidth.

đź”— Rapid Elasticity

Cloud services can be elastically provisioned and released, sometimes automatically, so customers can scale quickly based on demand, thus making it highly scalable. The capabilities available for provisioning are practically unlimited. Customers can use these features whenever they want and in whatever amount. Customers can scale cloud capacity, cost, and usage without incurring additional contracts or charges. We won't need to acquire computer hardware thanks to quick elasticity.

⚙️ Measured Service

A metering capability in cloud systems optimises resource utilisation at an abstraction level appropriate for the type of service. For storage, processing, bandwidth, and users, for instance, we can utilise a metered service. A pay-for-what-you-use model is used to base payments on the customer's actual consumption. Consumers and service providers benefit from a transparent experience that is created by monitoring, managing, and reporting resource use.

Lets have a look at some of the most used Cloud Storage Services​


Most Used Cloud Storage Services
Most used Cloud Storage Services

Google Drive is by far the most popular cloud storage service in the world, with an use rate of 94.44 percent. The finest cloud storage for collaboration, Dropbox, is in second position with a still-impressive 66.2 percent, followed by OneDrive (39.35 percent) and iCloud (38.89 percent). Additionally popular cloud storage providers include MEGA (5.09 percent), Box (4.17 percent), and pCloud (1.39%), all of which made our list of the top cloud storage services.

Statistics on Cloud Service Providers​


Stats on Cloud Service Providers
Stats on Cloud Service Providers

AWS still holds over a third of the cloud services market:

  • In Q2 2022, AWS commanded 34% of the cloud market, a 1% increase year-over-year. Azure is second with 21% of the market, followed by Google Cloud (10%), Alibaba (5%), and IBM (4%).
  • Amazon's revenue from AWS grew from 5.62 in 2014 to 13.24% in 2021.
  • The survey also showed the cloud market continues to grow 34% year-over-year.
FunFact

It took Netflix seven years to migrate to AWS

Some drawbacks to have a look upon​


Drawbacks of Cloud Computing
Drawbacks of Cloud Computing

According to cybersecurity experts, the most pressing cloud security challenges are misconfiguration of the cloud infrastructure (68 percent); unauthorized access (58 percent); insecure API (52 percent); accounts, services or traffic hijacking (50 percent) and external data sharing (43 percent).

info

If you are interested in finding out more about cloud security, we have an excellent article detailing cloud security measures for cloud storage services.

Conclusion​

  • In conclusion, cloud computing has become an increasingly popular and indispensable tool for businesses and organizations of all sizes. With its ability to provide on-demand access to a wide range of computing resources, including storage, computing power, and applications, it has transformed the way organizations operate and has unlocked new opportunities for innovation and growth.
  • The cloud offers many benefits, including cost savings, scalability, increased efficiency, and improved security. As more and more businesses adopt cloud computing, it is likely that this trend will continue to grow, driving further innovation and enabling organizations to do more with less.
  • However, while the benefits of cloud computing are clear, there are also challenges that must be addressed, such as ensuring data security, managing vendor lock-in, and ensuring reliable performance.
  • Despite these challenges, the future of cloud computing looks bright, with advancements in areas such as artificial intelligence, machine learning, and the Internet of Things set to further drive its growth and revolutionize the way businesses operate.

In short, cloud computing is here to stay, and its impact on the business world will only continue to grow in the years to come.