Vertical menus provide an efficient way to organize navigation, especially when space is a premium or when a sidebar navigation is preferred. A basic vertical menu is often a simple list of links stacked vertically, making it easier to navigate through items quickly. However, a CSS3 vertical menu elevates this basic concept with enhanced features like smooth animations, hover effects, and flexible layouts, providing a modern and interactive navigation experience.
Key properties that play a crucial role in creating CSS3 vertical menus include flexbox
for structured layout control, transitions
and animations
for fluid and visually appealing interactions, and transform
for dynamic transformations.
In this post, I’ve shared 10 CSS3 vertical menus that showcase the power and flexibility of CSS3. These examples, curated from CodePen, illustrate how to enhance your website’s navigation in diverse and creative ways, offering you valuable insights and inspiration for your next project.
Gooey Effect On Vertical Menu
Overview
The snippet showcases a creative, visually engaging sidebar navigation menu with a gooey animation effect that smoothly follows the user’s hover interaction. This vertical menu features a series of icons with descriptive text, which expand into view upon hovering over each item. The gooey animation effect visually enhances the interaction by stretching and morphing the background element, creating a playful and engaging effect.
HTML Structure:
The vertical menu is structured within a navbar
element, which houses an unordered list (ul
) for the menu items. Each list item (li
) within the unordered list represents a navigation item, containing an anchor (a
) element for navigation and an icon generated with Feather icons. The use of span elements within the anchor tags helps in displaying descriptive text that appears on hover.
CSS Styling:
The menu layout is achieved using properties like position: fixed
, ensuring the menu stays in place during scrolling. Transitions and keyframe animations create the gooey effect, where the background of the last menu item morphs to follow the hover interaction.
Additional transition effects are applied to the descriptive text using properties like transform
and opacity
to create smooth and visually engaging animations.
Vertical Icons Sidebar Navigation With Tooltips
Left Sidebar Menu
Overview
The snippet offers a clean and interactive sidebar navigation design that expands upon hovering. Initially appearing as a slim column of icons, the menu widens to reveal full text labels when the cursor hovers over it, enhancing usability while saving screen space. The design features a bold color palette, primarily using a vivid red background that draws attention to the menu. The icons are sourced from Font Awesome, providing recognizable visual cues for each menu item. This approach makes navigation intuitive and straightforward, allowing users to quickly find the section they need.
HTML Structure:
The sidebar menu is represented by an unordered list (ul
) with the class side-menu
. Each list item (li
) within the list contains an anchor tag (a
) that wraps a Font Awesome icon and a text label.
CSS Styling:
The position: fixed
and top: 0
properties keep the sidebar anchored to the left side of the screen, ensuring it remains visible and accessible during scrolling. Transitions applied to the width
property of the side-menu
create the smooth expansion effect when the menu is hovered over.
Specific list item styles control the background colors, font sizes, and margins, ensuring the expanded menu is legible and visually appealing.
Vertical Menus With Semantic UI
Pure CSS Vertical Menus
Animated Vertical Dropdown Menu in CSS
CSS3 Vertical Menu With Hover Effect
Animated Menu Active Item Indicator
Overview
The snippet showcases a vertical menu that dynamically indicates the active menu item using a sliding marker effect. When a user clicks on a menu item, the marker smoothly moves to highlight the active selection. This approach ensures that users always know which section they have selected. The design uses a modern color palette, with gradient effects to emphasize the active marker.
HTML Structure:
The vertical menu is structured with an unordered list (ul
) that houses individual list items (li
), each representing a menu option. An i
element with the class active-marker
serves as the moving indicator, visually marking the active menu item.
Each menu item is wrapped in an anchor tag (a
) for navigation, and the data attribute data-vertical
aids in identifying each menu item’s position.
JavaScript Functions:
The JavaScript manages the click event on the menu items and adjusts the marker’s position accordingly. The toggleActive
function toggles the is-active
class on the selected menu item and moves the marker to the corresponding position. The getItemOffset
function calculates the vertical offset of each menu item to position the marker accurately.