Skip to content

Revert "feat: commit prefix"#27

Open
Luluameh wants to merge 1 commit intomainfrom
revert-25-feature/reusable-components
Open

Revert "feat: commit prefix"#27
Luluameh wants to merge 1 commit intomainfrom
revert-25-feature/reusable-components

Conversation

@Luluameh
Copy link
Contributor

@Luluameh Luluameh commented Jan 30, 2026

Reverts #25

Summary by CodeRabbit

Release Notes

  • Chores

    • Simplified design system by consolidating styling tokens and removing extended component library dependencies.
    • Cleaned up project dependencies related to UI component styling utilities.
    • Removed UI component demonstration page.
  • New Features

    • Added new logo component.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link

coderabbitai bot commented Jan 30, 2026

📝 Walkthrough

Walkthrough

This PR removes the entire UI component library (Button, Badge, Card, Checkbox, Avatar, Input, Separator, DropdownMenu), eliminates related Radix UI dependencies and utility packages, deletes the UI specifications documentation and demo page, simplifies the global CSS styling system, and adds a new Logo component.

Changes

Cohort / File(s) Summary
UI Component Library Deletion
src/components/ui/Button.tsx, src/components/ui/Badge.tsx, src/components/ui/Card.tsx, src/components/ui/Checkbox.tsx, src/components/ui/Avatar.tsx, src/components/ui/Input.tsx, src/components/ui/Separator.tsx, src/components/ui/DropdownMenu.tsx
Removed 8 exported UI components along with their variant configurations and Radix UI primitive wrappers; eliminates Button, Badge (with variants), Card (with subcomponents), Checkbox, Avatar (with subcomponents), Input, Separator, and DropdownMenu (with 15+ subcomponents/exports).
Component Index & Utilities
src/components/ui/index.ts, src/components/ui/utils.ts
Removed 34 barrel re-exports of deleted UI components and deleted the cn() utility function (class composition helper using clsx and twMerge).
Dependency Cleanup
package.json
Removed @radix-ui/* packages (avatar, checkbox, dropdown-menu, separator, slot), class-variance-authority, clx, and tailwind-merge from dependencies.
Styling System Overhaul
src/app/globals.css
Replaced complex token-based CSS root variables (colors, radii, glow, glass, shadows, fonts) with simplified tokens (--background, --foreground, --bg-full-pattern, --bg-gradient-pattern); removed @layer base utilities for per-element styling; introduced .dark class for dark mode overrides; simplified typography and removed component-specific styling rules.
Documentation & Demo Removal
docs/ui-specs.md, src/app/ui-demo/page.tsx
Deleted 97-line UI component specifications document and 325-line demo page showcasing the SkillSphere UI Kit with sections for buttons, forms, inputs, and data display.
New Logo Component
src/components/ui/Logo.tsx
Added new React component rendering an inline SVG with a base64-encoded pattern fill; forwards all props to the SVG element.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Possibly related PRs

  • PR #25: Directly opposite of this PR—originally added the exact UI components, dependencies, documentation, and demo page that are being removed here.
  • PR #26: Modifies src/app/globals.css to implement theme-related CSS variables and dark mode class structure, complementary to the styling system changes in this PR.

Poem

🐰 A rabbit's refrain on simplification:

Components once nestled, so styled and so bright,
Now vanish like moonlight fading from night.
We simplify tokens, shed radix's weight,
A new Logo stands where complexity waits.

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately reflects the primary intent of the PR—reverting a previous commit/feature. However, it references a commit prefix which is vague and doesn't specify what was actually removed (UI components, design specs, and dependencies).
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ 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
  • Commit unit tests in branch revert-25-feature/reusable-components

Tip

🧪 Unit Test Generation v2 is now available!

We have significantly improved our unit test generation capabilities.

To enable: Add this to your .coderabbit.yaml configuration:

reviews:
  finishing_touches:
    unit_tests:
      enabled: true

Try it out by using the @coderabbitai generate unit tests command on your code files or under ✨ Finishing Touches on the walkthrough!

Have feedback? Share your thoughts on our Discord thread!


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.

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: 2

🤖 Fix all issues with AI agents
In `@src/app/globals.css`:
- Around line 14-25: Biome's CSS parser needs tailwind directives enabled to
parse the `@theme inline` block in globals.css; update the Biome configuration
to set the CSS parser options to enable tailwindDirectives (and keep cssModules
enabled) so the `@theme inline { ... }` directive and related Tailwind CSS 4
features are parsed correctly.

In `@src/components/ui/Logo.tsx`:
- Around line 3-10: The inline SVG in src/components/ui/Logo.tsx lacks an
accessible name; update the <svg> in the Logo component to provide one by
default (or explicitly mark it decorative). For a meaningful name, add a <title>
element inside the SVG and set aria-labelledby to its id (and ensure
role="img"), or add a clear aria-label (e.g., "App logo") on the <svg>;
alternatively, if the logo is purely decorative, set aria-hidden="true" so
screen readers ignore it. Ensure this default is applied on the <svg> that
currently spreads {...props} so callers can still override if needed.
🧹 Nitpick comments (3)
src/components/ui/Logo.tsx (2)

1-10: Type the SVG props explicitly to avoid implicit any.

This improves TS safety and IntelliSense for consumers of the component.

♻️ Suggested update
-import * as React from 'react';
-const Logo = (props) => (
+import * as React from 'react';
+const Logo = (props: React.SVGProps<SVGSVGElement>) => (

5-31: Prefer href over xlinkHref for SVG2/React compatibility.

This avoids legacy SVG attributes and lets you drop the XLink namespace. Apply the same change to the <image> element as well.

♻️ Suggested update
-    xmlnsXlink="http://www.w3.org/1999/xlink"
...
-          xlinkHref="#b"
+          href="#b"
src/app/globals.css (1)

34-38: Consider using the theme font variable instead of hard‑coding Arial.

This keeps the global font consistent with your configured font tokens.

♻️ Suggested update
 body {
   background: var(--background);
   color: var(--foreground);
-  font-family: Arial, Helvetica, sans-serif;
+  font-family: var(--font-geist-sans), Arial, Helvetica, sans-serif;
 }

Comment on lines 14 to 25
@theme inline {
--color-background: var(--background);
--color-foreground: var(--foreground);

--color-card: var(--card);
--color-card-foreground: var(--card-foreground);

--color-popover: var(--popover);
--color-popover-foreground: var(--popover-foreground);

--color-primary: var(--primary);
--color-primary-foreground: var(--primary-foreground);

--color-secondary: var(--secondary);
--color-secondary-foreground: var(--secondary-foreground);

--color-muted: var(--muted);
--color-muted-foreground: var(--muted-foreground);

--color-accent: var(--accent);
--color-accent-foreground: var(--accent-foreground);

--color-destructive: var(--destructive);
--color-destructive-foreground: var(--destructive-foreground);

--color-border: var(--border);
--color-input: var(--input);
--color-ring: var(--ring);

--radius-xl: calc(var(--radius) + 4px);
--radius-lg: var(--radius);
--radius-md: calc(var(--radius) - 2px);
--radius-sm: calc(var(--radius) - 4px);

--font-sans: var(--font-geist-sans), ui-sans-serif, system-ui, sans-serif;
--font-inter: var(--font-inter);
--font-sans: var(--font-geist-sans);
--font-geist: var(--font-geist-sans);
--font-work: var(--font-work-sans);

--shadow-glow: 0 0 20px var(--glow-primary);
--font-space-mono: var(--font-space-mono);
--font-space-grotesk: var(--font-space-grotesk);
--font-jersey-10: var(--font-jersey-10);
--font-mono: var(--font-geist-mono);
--font-inter: var(--font-inter);
}
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:

# Find and check the CSS file
if [ -f "src/app/globals.css" ]; then
  echo "=== src/app/globals.css content (lines 10-30) ==="
  sed -n '10,30p' src/app/globals.css
else
  echo "File not found"
fi

Repository: LightForgeHub/SkillSphere-Dapp

Length of output: 887


🏁 Script executed:

# Find Biome configuration files
echo "=== Looking for Biome config files ==="
find . -type f \( -name "biome.json" -o -name ".biomerc" -o -name ".biomerc.json" \) 2>/dev/null | head -20

Repository: LightForgeHub/SkillSphere-Dapp

Length of output: 125


🏁 Script executed:

# Check if biome.json exists and show its content
if [ -f "biome.json" ]; then
  echo "=== biome.json content ==="
  cat biome.json
fi

Repository: LightForgeHub/SkillSphere-Dapp

Length of output: 1876


🏁 Script executed:

# Check for any CI/build configuration files that might run Biome
echo "=== Looking for CI/build config files ==="
find . -type f \( -name ".github" -o -name ".gitlab-ci.yml" -o -name ".circleci" -o -name "package.json" -o -name "Makefile" \) 2>/dev/null | head -10

Repository: LightForgeHub/SkillSphere-Dapp

Length of output: 130


🏁 Script executed:

# Check package.json for any lint scripts
if [ -f "package.json" ]; then
  echo "=== Checking for lint scripts in package.json ==="
  grep -A 5 '"scripts"' package.json | head -30
fi

Repository: LightForgeHub/SkillSphere-Dapp

Length of output: 256


🏁 Script executed:

# Check if there are any CSS-related Tailwind directives documentation comments
echo "=== Checking for Tailwind references in CSS or config ==="
rg -i "tailwind" --type css --type json . | head -20

Repository: LightForgeHub/SkillSphere-Dapp

Length of output: 1445


Biome CSS parser must enable tailwindDirectives to parse @theme inline.

The @theme inline directive at lines 14–25 is a Tailwind CSS 4 feature. Biome's CSS parser currently lacks the tailwindDirectives option and will fail to parse this valid directive. Update the Biome configuration:

{
  "css": {
    "parser": {
      "cssModules": true,
      "tailwindDirectives": true
    }
  }
}
🧰 Tools
🪛 Biome (2.3.13)

[error] 14-25: Tailwind-specific syntax is disabled.

Enable tailwindDirectives in the css parser options, or remove this if you are not using Tailwind CSS.

(parse)

🤖 Prompt for AI Agents
In `@src/app/globals.css` around lines 14 - 25, Biome's CSS parser needs tailwind
directives enabled to parse the `@theme inline` block in globals.css; update the
Biome configuration to set the CSS parser options to enable tailwindDirectives
(and keep cssModules enabled) so the `@theme inline { ... }` directive and
related Tailwind CSS 4 features are parsed correctly.

Comment on lines +3 to +10
<svg
xmlns="http://www.w3.org/2000/svg"
xmlnsXlink="http://www.w3.org/1999/xlink"
width={190}
height={244}
viewBox="0 0 125 119"
fill="none"
{...props}>
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Add a default accessible name (or mark decorative).

Inline SVGs should have an accessible name for screen readers, unless explicitly decorative.

🧭 Suggested update
   <svg
     xmlns="http://www.w3.org/2000/svg"
     xmlnsXlink="http://www.w3.org/1999/xlink"
     width={190}
     height={244}
     viewBox="0 0 125 119"
     fill="none"
+    role="img"
+    aria-label="Logo"
     {...props}>
📝 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
<svg
xmlns="http://www.w3.org/2000/svg"
xmlnsXlink="http://www.w3.org/1999/xlink"
width={190}
height={244}
viewBox="0 0 125 119"
fill="none"
{...props}>
<svg
xmlns="http://www.w3.org/2000/svg"
xmlnsXlink="http://www.w3.org/1999/xlink"
width={190}
height={244}
viewBox="0 0 125 119"
fill="none"
role="img"
aria-label="Logo"
{...props}>
🤖 Prompt for AI Agents
In `@src/components/ui/Logo.tsx` around lines 3 - 10, The inline SVG in
src/components/ui/Logo.tsx lacks an accessible name; update the <svg> in the
Logo component to provide one by default (or explicitly mark it decorative). For
a meaningful name, add a <title> element inside the SVG and set aria-labelledby
to its id (and ensure role="img"), or add a clear aria-label (e.g., "App logo")
on the <svg>; alternatively, if the logo is purely decorative, set
aria-hidden="true" so screen readers ignore it. Ensure this default is applied
on the <svg> that currently spreads {...props} so callers can still override if
needed.

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