Skip to content

feat: add Org Explorer logo with AOSSIE-aligned branding#7

Merged
Zahnentferner merged 1 commit intoAOSSIE-Org:mainfrom
Sarthakkad05:main
Feb 17, 2026
Merged

feat: add Org Explorer logo with AOSSIE-aligned branding#7
Zahnentferner merged 1 commit intoAOSSIE-Org:mainfrom
Sarthakkad05:main

Conversation

@Sarthakkad05
Copy link
Contributor

@Sarthakkad05 Sarthakkad05 commented Feb 11, 2026

This PR introduces the Org Explorer logo aligned with AOSSIE’s branding palette.

The update includes:

  • Addition of a scalable SVG logo asset
  • Color alignment with AOSSIE’s primary branding (green & yellow)
  • Compatibility with both light and dark UI modes

No functional logic is modified in this PR.

Checklist

  • [ x] My code follows the project's code style and conventions
  • I have made corresponding changes to the documentation
  • [x ] My changes generate no new warnings or errors
  • [x ] I have joined the Discord server and I will share a link to this PR with the project maintainers there
  • [x ] I have read the Contributing Guidelines

⚠️ AI Notice - Important!

We encourage contributors to use AI tools responsibly when creating Pull Requests. While AI can be a valuable aid, it is essential to ensure that your contributions meet the task requirements, build successfully, include relevant tests, and pass all linters. Submissions that do not meet these standards may be closed without warning to maintain the quality and integrity of the project. Please take the time to understand the changes you are proposing and their impact.

Summary by CodeRabbit

  • New Features

    • Added UI component library with buttons, badges, and card layouts.
    • Introduced data visualization charts to the application.
    • Implemented a comprehensive theming system with light and dark mode support.
  • Style

    • Updated global styling to use a modern CSS framework with improved layout flexibility.
    • Root content now spans full viewport height.
  • Chores

    • Updated build and styling tooling configuration.

@coderabbitai
Copy link

coderabbitai bot commented Feb 11, 2026

📝 Walkthrough

Walkthrough

The PR introduces shadcn UI component library setup with Tailwind CSS theming infrastructure, adding pre-built UI components (Button, Badge, Card), a recharts-based TestChart component, utility functions for class merging, and configuration for path aliases and PostCSS processing.

Changes

Cohort / File(s) Summary
Configuration & Setup
components.json, postcss.config.js, tailwind.config.js, tsconfig.json, vite.config.ts
Added shadcn UI schema, PostCSS with autoprefixer/tailwindcss, comprehensive Tailwind theme with CSS variables for colors/spacing, TypeScript baseUrl and path alias "@/*", and Vite "@" alias pointing to src directory.
Package Dependencies
package.json
Added runtime dependencies (@radix-ui/react-slot, class-variance-authority, clsx, lucide-react, recharts, tailwind-merge, tailwindcss-animate) and dev tools (autoprefixer, postcss, tailwindcss); updated @types/node.
UI Components
src/components/ui/button.tsx, src/components/ui/badge.tsx, src/components/ui/card.tsx
Created forwardRef-based UI components with class-variance-authority for variant styling; Button supports asChild polymorphism via Radix Slot; Badge and Card provide semantic building blocks with Tailwind-based styling.
Utilities & Theming
src/lib/utils.ts, src/index.css
Added cn() utility combining clsx and twMerge for intelligent class composition; replaced CSS baseline with Tailwind directives and comprehensive CSS custom property tokens for light/dark theme support (colors, radius, semantic tokens).
Chart Component
src/components/charts/TestChart.tsx
Introduced responsive line chart using recharts with fixed demo dataset (months Jan–May) and basic axes/tooltip configuration.
App Integration
src/App.tsx, src/App.css
Restructured App from minimal fragment to full page layout with header, CTA button, and chart container; removed fixed max-width and added full viewport height to root element.
TypeScript Config
tsconfig.app.json
Formatting cleanup; no functional changes.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested labels

javascript, configuration, frontend, dependencies

Suggested reviewers

  • Zahnentferner

Poem

🐰 A UI garden now takes root,
With Tailwind tokens bearing fruit—
Cards and buttons, charts that gleam,
Shadcn magic fuels the dream!
From config files to components bright,
This setup shines with organized might!

🚥 Pre-merge checks | ✅ 1 | ❌ 2
❌ Failed checks (2 warnings)
Check name Status Explanation Resolution
Title check ⚠️ Warning The PR title claims to add a logo with AOSSIE branding, but the changeset contains no logo files—only UI framework setup (Tailwind, shadcn/ui, PostCSS, chart components, and styling). The title is misleading and does not reflect the actual changes. Update the title to accurately reflect the actual changes, such as 'feat: setup UI foundation with Tailwind, shadcn/ui, and Recharts' or similar, matching the second commit message.
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (1 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@Sarthakkad05
Copy link
Contributor Author

Hi @Zahnentferner, could you please review this when you get a chance? I am happy to make any necessary changes.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 5

🤖 Fix all issues with AI agents
In `@package.json`:
- Around line 29-35: tailwind.config.js mixes CJS require with ESM export
causing runtime errors; replace the require("tailwindcss-animate") call by
adding an ESM import (import animate from "tailwindcss-animate") at the top and
update the plugins array to reference the imported animate variable (instead of
require(...)); ensure you remove any require usage and keep the existing export
default configuration intact so the plugins array uses animate.

In `@src/App.tsx`:
- Line 20: The div in App (the JSX with className="w-full bg-zinc-900
rounded-2xl p-6 shadow-lg") uses a hardcoded dark background that breaks
light-mode theming; replace the bg-zinc-900 token with the theme-aware CSS
variable-based token (e.g. use the component's background token such as the
--card variable via a utility that maps to it, and ensure text uses
--card-foreground) so the card follows light/dark themes, and add the missing
--card and --card-foreground token definitions to index.css; update the
className string on that element (and any sibling card elements) to reference
the theme token instead of bg-zinc-900 and verify colors render correctly in
both themes.

In `@src/index.css`:
- Around line 20-38: The theme is missing many CSS custom properties used by
shadcn/ui (referenced in button.tsx and card.tsx); update :root and .dark blocks
to define the missing tokens (and their dark-mode counterparts): add variables
such as --primary-foreground, --destructive, --destructive-foreground,
--secondary, --secondary-foreground, --accent-foreground, --border-input (or
--input-border), --ring, --bg-card (or --card), --card-foreground, and
--muted-foreground with appropriate HSL values derived from your existing
palette so bg-primary / text-primary-foreground / bg-destructive /
text-destructive-foreground / bg-secondary / text-secondary-foreground /
bg-accent / text-accent-foreground / border-input / ring-ring / bg-card /
text-card-foreground / text-muted-foreground resolve correctly in both :root and
.dark scopes.

In `@tailwind.config.js`:
- Line 59: Replace the CommonJS require call in the Tailwind config with an ESM
import: add an ESM import for the package (e.g., import tailwindcssAnimate from
'tailwindcss-animate') at the top of the file and then use that imported
identifier in the plugins array instead of require("tailwindcss-animate");
update the export (e.g., export default ...) if necessary so the file remains a
valid ES module and the plugins array references the imported symbol.

In `@tsconfig.json`:
- Around line 2-7: The root tsconfig's "paths" alias isn't inherited by
referenced projects, so update tsconfig.app.json to add a compilerOptions block
with baseUrl set to "." and a paths entry mapping "@/*" to "../src/*" (i.e., add
"compilerOptions": { "baseUrl": ".", "paths": { "@/*": ["../src/*"] } }) so IDEs
and tsc recognize the `@/`* alias when compiling the app project.
🧹 Nitpick comments (6)
src/components/ui/badge.tsx (1)

4-4: Use the @/ path alias instead of a relative import.

The project just set up the @/* alias (in vite.config.ts and tsconfig.json). Prefer @/lib/utils over ../../lib/utils.ts for consistency and maintainability. Also, importing with an explicit .ts extension is non-standard for bundled TypeScript projects.

Suggested fix
-import { cn } from "../../lib/utils.ts"
+import { cn } from "@/lib/utils"
tailwind.config.js (1)

1-58: Inconsistent indentation — tabs mixed with spaces.

The file uses tabs for some lines (e.g., Lines 9-56) but spaces elsewhere. Consider normalizing to match the project's formatting convention.

src/index.css (1)

1-3: Static analysis warnings are false positives — Tailwind directives are expected here.

The Biome and Stylelint errors about unknown @tailwind at-rules and @apply are false positives. These are standard Tailwind CSS directives processed by PostCSS. Configure the linters to recognize Tailwind syntax (e.g., enable tailwindDirectives in Biome's CSS parser options, or use tailwindcss/no-custom-at-rules override in Stylelint) to suppress these.

src/components/charts/TestChart.tsx (2)

34-34: Hardcoded color bypasses the theme system.

stroke="#2e8b57" duplicates the primary brand color as a magic string instead of using the CSS variable defined in index.css. If the brand color changes, this will be missed.

Consider using stroke="hsl(var(--primary))" or extracting it from the Tailwind theme to stay in sync.


9-39: Inconsistent indentation — top-level declarations are indented an extra level.

The const data, export default function, and all their contents are indented by an extra 2 spaces relative to the file's top-level scope. This appears unintentional.

src/App.tsx (1)

11-11: Use text-primary instead of text-green-500 for brand consistency.

The heading hardcodes text-green-500 while the theme defines --primary: 146 50% 36% for the brand green. Using text-primary keeps the heading in sync with the token system.

-          <h1 className="text-4xl md:text-5xl font-bold text-green-500">
+          <h1 className="text-4xl md:text-5xl font-bold text-primary">

package.json Outdated
Comment on lines 29 to 35
"autoprefixer": "^10.4.24",
"eslint": "^9.39.1",
"eslint-plugin-react-hooks": "^7.0.1",
"eslint-plugin-react-refresh": "^0.4.24",
"globals": "^16.5.0",
"postcss": "^8.5.6",
"tailwindcss": "^3.4.1",
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Check for tailwind.config files and their content
echo "=== Checking for tailwind.config files ==="
fd -i tailwind.config

echo -e "\n=== Checking package.json for type field ==="
cat package.json | grep -A 1 '"type"'

echo -e "\n=== Checking tailwind.config.js for require() usage ==="
fd -i tailwind.config.js -x cat {}

Repository: AOSSIE-Org/OrgExplorer

Length of output: 1819


Switch tailwind.config.js to use ESM import syntax for the animate plugin.

package.json declares "type": "module", but tailwind.config.js uses require("tailwindcss-animate") in the plugins array while using export default syntax. This mixes ESM and CommonJS, which will cause a require is not defined error at runtime.

Replace require("tailwindcss-animate") with import animate from "tailwindcss-animate" and update the plugins array to use the imported variable.

🤖 Prompt for AI Agents
In `@package.json` around lines 29 - 35, tailwind.config.js mixes CJS require with
ESM export causing runtime errors; replace the require("tailwindcss-animate")
call by adding an ESM import (import animate from "tailwindcss-animate") at the
top and update the plugins array to reference the imported animate variable
(instead of require(...)); ensure you remove any require usage and keep the
existing export default configuration intact so the plugins array uses animate.

src/App.tsx Outdated
</div>

{/* recharts example chart */}
<div className="w-full bg-zinc-900 rounded-2xl p-6 shadow-lg">
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

Hardcoded bg-zinc-900 breaks light-mode theming.

This dark background is always applied regardless of the active theme. In light mode, you'll get a jarring dark card on a white page. Use a theme-aware token instead:

-        <div className="w-full bg-zinc-900 rounded-2xl p-6 shadow-lg">
+        <div className="w-full bg-card text-card-foreground rounded-2xl p-6 shadow-lg">

(This also requires the missing --card / --card-foreground tokens flagged in index.css.)

🤖 Prompt for AI Agents
In `@src/App.tsx` at line 20, The div in App (the JSX with className="w-full
bg-zinc-900 rounded-2xl p-6 shadow-lg") uses a hardcoded dark background that
breaks light-mode theming; replace the bg-zinc-900 token with the theme-aware
CSS variable-based token (e.g. use the component's background token such as the
--card variable via a utility that maps to it, and ensure text uses
--card-foreground) so the card follows light/dark themes, and add the missing
--card and --card-foreground token definitions to index.css; update the
className string on that element (and any sibling card elements) to reference
the theme token instead of bg-zinc-900 and verify colors render correctly in
both themes.

src/index.css Outdated
Comment on lines 20 to 38
@layer base {
:root {
--radius: 0.5rem;

/* Brand Colors (HSL format) */
--primary: 146 50% 36%; /* #2e8b57 */
--accent: 47 89% 60%; /* #f4c430 */

/* Light Theme */
--background: 0 0% 100%;
--foreground: 222 47% 11%;
--border: 214 32% 91%;
}

.dark {
--background: 222 47% 11%;
--foreground: 0 0% 98%;
--border: 217 33% 17%;
}
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

Missing CSS custom properties will break component styling.

The theme only defines --primary, --accent, --background, --foreground, --border, and --radius. However, the shadcn/ui components in this PR reference many additional tokens that are undefined:

  • button.tsx uses: bg-primary, text-primary-foreground, bg-destructive, text-destructive-foreground, bg-secondary, text-secondary-foreground, bg-accent, text-accent-foreground, border-input, ring-ring
  • card.tsx uses: bg-card, text-card-foreground, text-muted-foreground

Without these variables defined, the components will render with missing or transparent colors.

Proposed fix — add the missing tokens
 `@layer` base {
   :root {
     --radius: 0.5rem;

     /* Brand Colors (HSL format) */
     --primary: 146 50% 36%;   /* `#2e8b57` */
+    --primary-foreground: 0 0% 100%;
     --accent: 47 89% 60%;     /* `#f4c430` */
+    --accent-foreground: 222 47% 11%;

     /* Light Theme */
     --background: 0 0% 100%;
     --foreground: 222 47% 11%;
     --border: 214 32% 91%;
+    --input: 214 32% 91%;
+    --ring: 146 50% 36%;
+    --card: 0 0% 100%;
+    --card-foreground: 222 47% 11%;
+    --secondary: 210 40% 96%;
+    --secondary-foreground: 222 47% 11%;
+    --muted: 210 40% 96%;
+    --muted-foreground: 215 16% 47%;
+    --destructive: 0 84% 60%;
+    --destructive-foreground: 0 0% 100%;
   }

   .dark {
     --background: 222 47% 11%;
     --foreground: 0 0% 98%;
     --border: 217 33% 17%;
+    --input: 217 33% 17%;
+    --ring: 146 50% 36%;
+    --card: 222 47% 11%;
+    --card-foreground: 0 0% 98%;
+    --secondary: 217 33% 17%;
+    --secondary-foreground: 0 0% 98%;
+    --muted: 217 33% 17%;
+    --muted-foreground: 215 20% 65%;
+    --destructive: 0 62% 30%;
+    --destructive-foreground: 0 0% 98%;
+    --accent: 47 89% 60%;
+    --accent-foreground: 222 47% 11%;
+    --primary: 146 50% 36%;
+    --primary-foreground: 0 0% 100%;
   }
🤖 Prompt for AI Agents
In `@src/index.css` around lines 20 - 38, The theme is missing many CSS custom
properties used by shadcn/ui (referenced in button.tsx and card.tsx); update
:root and .dark blocks to define the missing tokens (and their dark-mode
counterparts): add variables such as --primary-foreground, --destructive,
--destructive-foreground, --secondary, --secondary-foreground,
--accent-foreground, --border-input (or --input-border), --ring, --bg-card (or
--card), --card-foreground, and --muted-foreground with appropriate HSL values
derived from your existing palette so bg-primary / text-primary-foreground /
bg-destructive / text-destructive-foreground / bg-secondary /
text-secondary-foreground / bg-accent / text-accent-foreground / border-input /
ring-ring / bg-card / text-card-foreground / text-muted-foreground resolve
correctly in both :root and .dark scopes.

}
}
},
plugins: [require("tailwindcss-animate")],
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

require() is not available in ESM — this will fail at build time.

As noted in the package.json review, the project uses "type": "module", so require() is not available. Use an ESM import instead.

Suggested fix
+import tailwindcssAnimate from "tailwindcss-animate"
+
 /** `@type` {import('tailwindcss').Config} */
 export default {
   ...
-  plugins: [require("tailwindcss-animate")],
+  plugins: [tailwindcssAnimate],
 }
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
plugins: [require("tailwindcss-animate")],
import tailwindcssAnimate from "tailwindcss-animate"
/** `@type` {import('tailwindcss').Config} */
export default {
...
plugins: [tailwindcssAnimate],
}
🤖 Prompt for AI Agents
In `@tailwind.config.js` at line 59, Replace the CommonJS require call in the
Tailwind config with an ESM import: add an ESM import for the package (e.g.,
import tailwindcssAnimate from 'tailwindcss-animate') at the top of the file and
then use that imported identifier in the plugins array instead of
require("tailwindcss-animate"); update the export (e.g., export default ...) if
necessary so the file remains a valid ES module and the plugins array references
the imported symbol.

tsconfig.json Outdated
Comment on lines 2 to 7
"compilerOptions": {
"baseUrl": ".",
"paths": {
"@/*": ["src/*"]
}
},
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Check if tsconfig.app.json exists and examine its contents
fd tsconfig.app.json --type f --exec cat {}

Repository: AOSSIE-Org/OrgExplorer

Length of output: 796


🏁 Script executed:

#!/bin/bash
# Read the root tsconfig.json
cat tsconfig.json

Repository: AOSSIE-Org/OrgExplorer

Length of output: 276


Add paths alias to tsconfig.app.json — it's not inherited from the root config.

This is a solution-style tsconfig.json with "files": [] and "references". In TypeScript project references, compilerOptions from the root are not inherited by referenced projects. The @/* path alias defined here must also be added to tsconfig.app.json for IDE resolution and tsc to recognize it when compiling source files.

Add the following to tsconfig.app.json:

"compilerOptions": {
  "baseUrl": ".",
  "paths": {
    "@/*": ["../src/*"]
  }
}
🤖 Prompt for AI Agents
In `@tsconfig.json` around lines 2 - 7, The root tsconfig's "paths" alias isn't
inherited by referenced projects, so update tsconfig.app.json to add a
compilerOptions block with baseUrl set to "." and a paths entry mapping "@/*" to
"../src/*" (i.e., add "compilerOptions": { "baseUrl": ".", "paths": { "@/*":
["../src/*"] } }) so IDEs and tsc recognize the `@/`* alias when compiling the app
project.

@Sarthakkad05
Copy link
Contributor Author

hey @Zahnentferner
I previously experimented with additional UI changes in this branch, but I’ve reverted those to keep this PR focused strictly on the logo addition. The current diff only includes the SVG asset and related minimal updates.
Please let me know if any further refinements are needed.

@Zahnentferner Zahnentferner merged commit 0ba6244 into AOSSIE-Org:main Feb 17, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants