8 CSS Periodic Tables

Designing a CSS periodic table is a common first project in web development courses for good reasons. This task requires a solid grasp of HTML and CSS, offering students hands-on experience with core concepts like grid layout, positioning, and responsive design. The periodic table’s structured format, with its rows and columns, provides a clear framework for students to practice and refine their skills, making it an ideal project to reinforce the basics of web development.

Beyond learning HTML and CSS, creating a CSS periodic table helps students develop problem-solving skills and attention to detail. Each element must be precisely placed and styled, encouraging accuracy in coding practices. This project also introduces students to interactivity, allowing them to experiment with hover effects or dynamic content using JavaScript. Overall, the CSS periodic table project provides a comprehensive introduction to web development, preparing students for more complex challenges ahead.

In this blog post, we have curated 8 CSS periodic tables from CodePen. Each snippet is a masterpiece, reflecting a unique approach to combining aesthetics with functionality.

Periodic Table of HTML Elements

Periodic table of HTML elements

Il’yar

HTML, CSS & Js

Yes

Overview

The “Periodic Table of HTML Elements” is a visually engaging and educational web page that creatively organizes and displays HTML elements in a periodic table format. This design provides an interactive and intuitive way to explore HTML elements, mirroring the familiar layout of the chemical periodic table. Each element on the table represents an HTML tag, categorized and color-coded according to its function within HTML, such as metadata, sectioning, forms, or text content. Hovering over or clicking on an element reveals detailed information about its usage and attributes, enhancing the learning experience.

HTML Elements:

The page uses a series of div elements arranged in row classes to represent rows of the periodic table. Each HTML element is represented by an a tag within a div with class element, making it interactive. Descriptions for each element are contained in div elements with the class description, showing more details when the associated element is selected.

CSS Properties:

The design employs a radial gradient background that gives the page a sleek, modern look. CSS Flexbox is used to layout the elements in rows and columns, ensuring that the structure adapts responsively to different screen sizes. Hover effects and color coding for different groups of HTML elements are implemented to enhance visual differentiation and interactivity.

JavaScript Functions:

JavaScript is utilized to manage interactive behaviors, such as revealing detailed descriptions of HTML elements when they are hovered over or clicked. Functions handle the dynamic positioning of the active description box relative to the selected HTML element, improving user experience by making information easily accessible.

Responsive Periodic Table with CSS Grids

Responsive Periodic Table with CSS Grids

Dudley Storey

HTML & CSS

Yes

Html and CSS Periodic Table

Html and CSS Periodic Table

Justin Avery

HTML & CSS

No

Periodic Table Of Elements With Hover Flip Animation

hover to play


Brady Sammons

HTML & SCSS

Yes

Description

This snippet showcases a creative and educational way to display the periodic table of elements, complete with a flip animation on hover. Each element is represented by a box that flips to reveal detailed information about the element, such as its atomic number, symbol, and atomic weight.

HTML Elements:

The HTML structure includes individual div elements for each element in the periodic table, contained within a wrapper div labeled #wrapper. Each element is represented as a clickable div with two sides: a front showing the element’s symbol and atomic number, and a back showing detailed information.

CSS Styling:

The CSS uses 3D transformations (rotateY) and transitions to achieve the flip effect on hover. Each element box is styled to flip smoothly when the user hovers over it, showing the back face with detailed information.

The grid layout is implemented using floating blocks for each element, ensuring that they are positioned correctly according to the layout of a standard periodic table.

CSS Grid Periodic Table

hover to play


Olivia Ng

Pug & SCSS

No

Dynamic Periodic Table

hover to play


Ferran Buireu

Html, SCSS & Babel

No

Periodic Table

hover to play


Kitty Giraudel

Html, SCSS & Js

No

Animated Periodic Table

hover to play


Dilum Sanjaya

Html, CSS & Js

Yes

Overview

The provided code snippet creates an animated, interactive periodic table using HTML, CSS, and JavaScript, specifically leveraging the D3.js library. The design showcases a visually appealing periodic table where each element is represented as a polygon. The table includes distinctive animations for different states of matter: solid, liquid, and gas. Elements in the “Solid” state feature a static fill, “Liquid” elements display dynamic, wavy animations, and “Gas” elements have orbiting atoms.

HTML Structure

The HTML structure is minimal, with a single div container (#container) where all the dynamic content is appended. This simplicity allows the JavaScript to dynamically create and manage the complex structure of the periodic table without cluttering the HTML with static elements.

CSS Styling

The CSS focuses on basic styling for the body and the container, ensuring a centered layout and a dark background for contrast:

  • The body uses a flex display for centering the container.
  • The container is styled with dimensions, background color, and border-radius for a polished look.

Specific CSS classes like .element-name, .element-number, and .legend are used to position and style the text within each element box. The choice of fonts from Google Fonts (Merriweather and Bowlby One SC) adds a modern and readable aesthetic.

JavaScript and D3.js

The JavaScript code, enhanced with D3.js, is responsible for the creation and animation of the periodic table:

Several utility functions (range, map, polar) assist in generating coordinates and mapping values.

The container div is selected, and an SVG root element is appended to it. A clipPath is defined to create custom shapes for elements.

Two classes, Atom and Element, encapsulate the properties and behaviors of individual atoms and elements, respectively. The Element class handles the creation of SVG elements for different phases and positions them accordingly.

The animate function updates positions of atoms and liquid paths in a continuous loop, creating the dynamic effect. This function uses trigonometric functions to simulate natural movements.

Leave a Comment