Skip to content

Conversation

@karthik05122
Copy link

Description

This PR implements a global dark/light mode theme system for AsyncAPI Studio, addressing the long-standing request for theme customization functionality.

Key Changes:

  • Theme Toggle Component: Added a theme toggle button in the sidebar with a color icon (VscSymbolColor)
  • Dark Mode Support: Configured Tailwind CSS with darkMode: 'class' for proper dark mode styling
  • Theme Persistence: Implemented basic theme state management using React useState
  • Component Updates: Updated multiple components to support both light and dark themes using Tailwind's dark: variants
  • Smooth Transitions: Added CSS transitions for theme switching

Components Updated:

  • Sidebar (theme toggle button)
  • Toolbar (dark mode variants)
  • Navigation components (dark mode variants)
  • Terminal components (dark mode variants)
  • Editor components (dark mode variants)
  • Form elements and dropdowns (dark mode variants)

Technical Implementation:

  • Added theme toggle state in Sidebar component
  • Configured Tailwind CSS dark mode with class strategy
  • Applied dark: variants throughout the component library
  • Maintained backward compatibility with existing dark theme

Related issue(s)
Resolves #1206

Testing:

  • Theme toggle functionality works correctly
  • Dark mode styles are applied properly
  • Light mode styles are applied properly
  • Theme preference persists during session
  • All components render correctly in both themes
  • No breaking changes introduced
img

@changeset-bot
Copy link

changeset-bot bot commented Aug 31, 2025

🦋 Changeset detected

Latest commit: cd2b529

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@asyncapi/studio Minor

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@netlify
Copy link

netlify bot commented Aug 31, 2025

Deploy Preview for asyncapi-studio-design-system ready!

Name Link
🔨 Latest commit cd2b529
🔍 Latest deploy log https://app.netlify.com/projects/asyncapi-studio-design-system/deploys/68d20a4c63249b000989d259
😎 Deploy Preview https://deploy-preview-1216--asyncapi-studio-design-system.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@netlify
Copy link

netlify bot commented Aug 31, 2025

Deploy Preview for modest-rosalind-098b67 ready!

Name Link
🔨 Latest commit cd2b529
🔍 Latest deploy log https://app.netlify.com/projects/modest-rosalind-098b67/deploys/68d20a4c74eace00081118f4
😎 Deploy Preview https://deploy-preview-1216--modest-rosalind-098b67.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Welcome to AsyncAPI. Thanks a lot for creating your first pull request. Please check out our contributors guide useful for opening a pull request.
Keep in mind there are also other channels you can use to interact with AsyncAPI community. For more details check out this issue.

@Shurtu-gal
Copy link
Collaborator

2 problems right now:

  1. We don't have a unified design for lighr mode in studio. Can take inspiration from website though.
  2. Current deploy is failing.

@sonarqubecloud
Copy link

@karthik05122
Copy link
Author

@Shurtu-gal Thanks for the feedback! I have addressed both issues.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Backlog

Development

Successfully merging this pull request may close these issues.

Implement Dark/Light Mode Theme System for AsyncAPI Studio

2 participants