DEV Community

Cover image for The Single Div trend & Making the React Logo.
Akshaya Venkatesh
Akshaya Venkatesh

Posted on

22 10

The Single Div trend & Making the React Logo.

What to expect?
This blog explains why creating single div art is a popular trend and how to build the React JS logo with just one div and pure CSS.

What is the "Single Div" hubbub all about?
Let us consider a basic example - creating a series of different colored dots. I could just create an array of elements and assign different colors to them but if I am given a condition that I may use only one div element - I will choose to use the background property (among other ways) to achieve the same. This is the main reason for the popularity of this trend. It challenges the developer to harness or exploit many CSS properties that would not be used otherwise.

Breaking down the React logo

Animated React Logo

The logo is pretty straightforward - there are three elliptical orbits with a nucleus at their center in what I like to call "React Blue" (hex code - #61dafb).

HTML
As promised, HTML will have nothing but a <div /> tag.

CSS
Orbit shape
For the orbit's elliptical shape, we first create a class that can style all three orbits. It simply uses the border properties to define the shape.

.logo-orbit {
height: 100px;
width: 300px;
border-radius: 50%;
border: 10px solid $react-blue;
}

This can style any div to look something like this 👇

React logo central ellipse orbit

The 3 orbits
For the central orbit, select the div tag and apply the .logo-orbit class. I have used Scss and extended the class name in the styles.
div{
@extend .logo-orbit;
}

For those not familiar with Scss, please replace @extend .logo-orbit with styles in the .logo-orbit class.

Next, we use the :before and :after pseudo-selectors. These are conventionally used for inserting content but here we use them for the other two orbits as follows.
:before, :after {
@extend .logo-orbit;
content: "";
position: absolute;
top: -10px;
left: -10px;
box-sizing: inherit;
}
.

It is worth noting that although box-sizing is an inherited property, the pseudo-elements do not inherit them and require an explicit inheritance.

Next, we position the logo with rotation as follows.
React logo 3 orbits
&:before {
transform: rotate(60deg);
}
&:after {
transform: rotate(-60deg);
}

Now we are only left with the nucleus.

Nucleus
We use radial-gradient with the background property applied to the div for creating the nucleus as follows.
Complete react logo
background: radial-gradient(circle, $react-blue 24px, transparent 25px);
With that the logo is done. The complete code along with the turn animation can be found in the following Codepen.

There is so much that can be done with just a single div. Be sure to checkout a.singlediv.com by Lynn Fisher who started this trend. Let me know about your single-div creations in the comments or reach me on Twitter. Thank you for reading!

Sentry blog image

How to reduce TTFB

In the past few years in the web dev world, we’ve seen a significant push towards rendering our websites on the server. Doing so is better for SEO and performs better on low-powered devices, but one thing we had to sacrifice is TTFB.

In this article, we’ll see how we can identify what makes our TTFB high so we can fix it.

Read more

Top comments (8)

Collapse
 
soundar24 profile image
Soundar • Edited

Hey, really nice article. Recently I developed a CSS chart library with the single div trend. If you are interested please have a look on this:

singledivui.com/

Collapse
 
venkyakshaya profile image
Akshaya Venkatesh

Broooo! what?! This is incredible. I loved it. Amazing work. Thanks for sharing here.

Collapse
 
jalaj profile image
Jalaj

Nice article...
also, you can put your code inside three backticks
to get syntax highlighting.

Collapse
 
link2twenty profile image
Andrew Bone
Collapse
 
venkyakshaya profile image
Akshaya Venkatesh

Thanks for the share Andrew :D

Collapse
 
venkyakshaya profile image
Akshaya Venkatesh

Oh thanks for sharing Jalaj! I will remember that ☺️

Collapse
 
fritzy profile image
Nathan Fritz

But you didn’t mention @lynnandtonic who I believe started this trend with a.singlediv.com/ ??!

Collapse
 
venkyakshaya profile image
Akshaya Venkatesh

I am aware that Lynn creates a lot of single div art and of course the amazing a.singlediv.com but didn't know she started the trend. Thanks for the info!

Cloudinary image

Optimize, customize, deliver, manage and analyze your images.

Remove background in all your web images at the same time, use outpainting to expand images with matching content, remove objects via open-set object detection and fill, recolor, crop, resize... Discover these and hundreds more ways to manage your web images and videos on a scale.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay