Skip to content

feat: implement header logo with dark mode support and favicon#95

Merged
NotYuSheng merged 3 commits intomainfrom
feature/implement-header-logo-with-dark-mode
Aug 17, 2025
Merged

feat: implement header logo with dark mode support and favicon#95
NotYuSheng merged 3 commits intomainfrom
feature/implement-header-logo-with-dark-mode

Conversation

@NotYuSheng
Copy link
Copy Markdown
Owner

Summary

  • Implemented custom SVG logo and favicon with MeetMemo microphone theme design
  • Added header logo display that automatically adapts to light/dark themes using CSS filters
  • Created PWA manifest and updated HTML metadata for enhanced mobile experience
  • Replaced generic MessagesSquare icon with branded MeetMemo logo in application header

Changes Made

  • New Files:

    • frontend/public/favicon.svg - SVG favicon with microphone and memo dots design
    • frontend/public/logo.svg - Identical SVG for header logo (allows separate customization)
    • frontend/public/manifest.json - PWA manifest for mobile app experience
    • frontend/src/MeetMemoIcon.js - Reusable React icon component (for future use)
  • Updated Files:

    • frontend/public/index.html - Added favicon, manifest, and theme color metadata
    • frontend/src/MeetingTranscriptionApp.js - Replaced MessagesSquare with logo image
    • frontend/src/MeetingTranscriptionApp.css - Added logo styling and dark mode inversion

Technical Implementation

  • Dark Mode Support: Logo automatically inverts colors using filter: invert(1) hue-rotate(180deg) in dark theme
  • Responsive Design: Logo sized at 2rem × 2rem with proper flex alignment next to title
  • Smooth Transitions: Added transition: filter 0.3s ease for seamless theme switching
  • PWA Ready: Manifest enables "Add to Home Screen" functionality on mobile devices

Test Plan

  • Verify logo displays correctly in light mode
  • Verify logo inverts properly in dark mode using theme toggle
  • Check favicon appears in browser tab
  • Confirm smooth color transition when switching themes
  • Test responsive behavior on different screen sizes
  • Validate PWA manifest loads correctly

Visual Changes

The header now displays a branded MeetMemo logo (microphone with memo elements) instead of the generic MessagesSquare icon, providing better brand identity and visual consistency across the application.

🤖 Generated with Claude Code

- Add SVG favicon and logo with MeetMemo microphone design
- Implement header logo display with proper sizing and alignment
- Add dark mode color inversion for logo using CSS filters
- Create PWA manifest for enhanced mobile experience
- Update HTML with favicon and theme color metadata
- Replace MessagesSquare icon with custom logo in header
- Add smooth transitions for theme switching

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

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

Summary of Changes

Hello @NotYuSheng, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request introduces significant branding and user experience enhancements to the MeetMemo application. It implements a custom SVG logo and favicon, ensuring visual consistency and brand identity. Furthermore, it adds robust dark mode support for the header logo and integrates a Progressive Web App (PWA) manifest, improving the application's mobile experience and overall aesthetic.

Highlights

  • Branded Visuals: Implemented a custom SVG logo and favicon featuring the MeetMemo microphone theme, replacing generic icons for a stronger brand presence.
  • Dynamic Dark Mode Support: The header logo now automatically adapts its appearance for light and dark themes using CSS filters, providing a seamless visual experience.
  • Enhanced Mobile Experience: Integration of a PWA manifest and updates to HTML metadata enable "Add to Home Screen" functionality and better mobile integration.
  • Header Icon Replacement: The generic MessagesSquare icon in the application header has been replaced with the new branded MeetMemo logo.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in issue comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request successfully implements a new header logo with dark mode support, a favicon, and a PWA manifest. The changes are well-structured. My feedback focuses on improving accessibility for the new SVG assets by adding <title> elements, enhancing PWA compatibility by suggesting additional icon formats in the manifest, and maintaining code cleanliness by removing an unused import.

Comment on lines +1 to +2
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<!-- MeetMemo icon - microphone with memo elements -->
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

For better accessibility, it's a good practice to add a role="img" attribute to the <svg> tag and include a <title> element as its first child. This provides a human-readable title for screen readers.

<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg" role="img">
  <title>MeetMemo Favicon</title>
  <!-- MeetMemo icon - microphone with memo elements -->

Comment thread frontend/public/logo.svg
Comment on lines +1 to +2
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<!-- MeetMemo icon - microphone with memo elements -->
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

For better accessibility, it's a good practice to add a role="img" attribute to the <svg> tag and include a <title> element as its first child. This provides a human-readable title for screen readers.

<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg" role="img">
  <title>MeetMemo Logo</title>
  <!-- MeetMemo icon - microphone with memo elements -->

Comment on lines +4 to +10
"icons": [
{
"src": "favicon.svg",
"sizes": "any",
"type": "image/svg+xml"
}
],
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

While an SVG icon with sizes: "any" is a good start, some platforms have better support for raster icons (like PNG) at specific sizes. For the best user experience across all devices and platforms, consider adding a few standard PNG icon sizes to the icons array, such as 192x192 and 512x512. These would need to be created and added to the public directory. For example:

"icons": [
  {
    "src": "favicon.svg",
    "sizes": "any",
    "type": "image/svg+xml"
  },
  {
    "src": "/logo192.png",
    "type": "image/png",
    "sizes": "192x192"
  },
  {
    "src": "/logo512.png",
    "type": "image/png",
    "sizes": "512x512"
  }
],

Comment thread frontend/src/MeetMemoIcon.js
import { useCallback } from "react";
import ReactMarkdown from "react-markdown";
import remarkGfm from "remark-gfm";
import MeetMemoIcon from "./MeetMemoIcon";
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

The MeetMemoIcon component is imported here but it's not used anywhere in this file. To keep the code clean and avoid confusion, this unused import should be removed.

Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
@NotYuSheng NotYuSheng merged commit 09d2015 into main Aug 17, 2025
1 check passed
@NotYuSheng NotYuSheng deleted the feature/implement-header-logo-with-dark-mode branch August 17, 2025 09:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant