Skip to content

Iris logo needs elevation: flat and unseparated on light themes #374

Description

@Predixx

Problem

The Iris mascot (media/iris-logo-big-left.png) has no elevation and no edge treatment. On a light theme the surrounding card is white, so the logo reads as a solid blue block dropped onto the surface with nothing separating the two. It looks unfinished next to the rest of the UI, which does use borders and elevation. On a dark theme the contrast carries it, so this is primarily a light-theme problem.

Most visible on the exercise detail page in the "Ask Iris" card, where the logo is rendered largest (48x48) on a plain surface.

Where the logo is rendered

  • src/webview/components/AskIris/AskIris.tsx.logo, 48x48, the worst case
  • src/webview/views/IrisChat/components/WelcomeState.tsx — avatar, 48x48
  • src/webview/views/IrisChat/IrisChatView.tsx — chat header and message avatars
  • src/webview/views/IrisChat/components/ThinkingIndicator.tsx
  • src/webview/components/NudgeBanner/NudgeBanner.tsx

Since it affects every one of these, the fix belongs in a shared rule rather than in AskIris.module.css alone.

Suggested fix

Use filter: drop-shadow(...), not box-shadow. The asset is 557x512 RGBA with fully transparent corners (about 12% of its pixels are fully transparent), so the artwork is a rounded tile inside a transparent margin. A box-shadow follows the element box and would draw a rectangular shadow floating around the artwork instead of under it. drop-shadow follows the alpha channel and traces the actual silhouette.

.logo {
  filter: drop-shadow(0 1px 2px rgb(0 0 0 / 22%));
}

Worth checking while implementing:

  • Dark theme. A black shadow is invisible on a dark background. The webview already sets vscode-light / vscode-dark on the body, so the shadow can be tuned per theme, or dropped entirely in dark mode if it adds nothing there.
  • .mainMuted .logo in AskIris.module.css already sets filter: grayscale(0.6). filter is not additive, so that rule would silently remove the shadow again. Both values have to be listed together in the muted state.

Side note (not part of this issue)

The asset is 557x512 but rendered into a 48x48 box in several places, so it is being squashed by about 9%. Unrelated to the shadow, but it showed up while checking the asset.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions