Skip to content

Conversation

@anmolsinghbhatia
Copy link
Collaborator

@anmolsinghbhatia anmolsinghbhatia commented Dec 19, 2025

Summary by CodeRabbit

  • Style
    • Updated background color styling across project layouts and filter components for improved visual consistency.
    • Enhanced button components with refined disabled state styling for better visual clarity.
    • Improved visual presentation with adjusted padding and rounded corners on filter interfaces.

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

@anmolsinghbhatia anmolsinghbhatia self-assigned this Dec 19, 2025
Copilot AI review requested due to automatic review settings December 19, 2025 15:38
@makeplane
Copy link

makeplane bot commented Dec 19, 2025

Linked to Plane Work Item(s)

This comment was auto-generated by Plane

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Dec 19, 2025

Walkthrough

This PR updates styling utility classes across multiple UI components, introducing a new color scheme for disabled button states and adjusting background and spacing properties in layout components. All changes are visual styling only with no functional modifications.

Changes

Cohort / File(s) Summary
Layout component styling
apps/web/core/components/issues/issue-layouts/roots/project-layout-root.tsx
Background utility class updated from bg-layer-2 to bg-surface-1 in the main content container.
Rich filters styling
apps/web/core/components/rich-filters/filters-row.tsx
Added background, horizontal padding, and rounded corners to main container. Updated HeaderVariant styling with modified padding and bg-surface-1 background class.
Button disabled state styling
packages/propel/src/button/helper.tsx, packages/propel/src/icon-button/helper.tsx, packages/ui/src/button/helper.tsx
Primary variant disabled text color changed from disabled:text-disabled / text-placeholder to disabled:text-on-color-disabled across button component libraries.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Areas for attention:

  • Verify the new bg-surface-1 and disabled:text-on-color-disabled utility classes exist and render correctly across the design system
  • Confirm visual consistency of disabled button states after the color change

Poem

🐰 With colors fresh and surfaces bright,
We paint the buttons in disabled light,
Background swaps make layouts sing,
A styling refresh—what joy we bring! ✨

Pre-merge checks and finishing touches

❌ Failed checks (1 warning, 1 inconclusive)
Check name Status Explanation Resolution
Description check ⚠️ Warning No pull request description was provided; all required template sections are missing. Add a comprehensive description including: detailed explanation of changes, type of change selection, test scenarios, and any relevant issue references.
Title check ❓ Inconclusive The title is generic and vague, using broad terms like 'enhancements' without specifying what changes are actually made. Revise the title to be more specific about the primary change, such as 'Update disabled button text colors and layout styling' or similar.
✅ Passed checks (1 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ 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 chore-package-and-layout-enhancement

📜 Recent review details

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 409a3e8 and 4dd57e4.

📒 Files selected for processing (5)
  • apps/web/core/components/issues/issue-layouts/roots/project-layout-root.tsx (1 hunks)
  • apps/web/core/components/rich-filters/filters-row.tsx (2 hunks)
  • packages/propel/src/button/helper.tsx (1 hunks)
  • packages/propel/src/icon-button/helper.tsx (1 hunks)
  • packages/ui/src/button/helper.tsx (1 hunks)
🧰 Additional context used
📓 Path-based instructions (4)
**/*.{ts,tsx,mts,cts}

📄 CodeRabbit inference engine (.github/instructions/typescript.instructions.md)

**/*.{ts,tsx,mts,cts}: Use const type parameters for more precise literal inference in TypeScript 5.0+
Use the satisfies operator to validate types without widening them
Leverage inferred type predicates to reduce the need for explicit is return types in filter/check functions
Use NoInfer<T> utility to block inference for specific type arguments when they should be determined by other arguments
Utilize narrowing in switch(true) blocks for control flow analysis (TypeScript 5.3+)
Rely on narrowing from direct boolean comparisons for type guards
Trust preserved narrowing in closures when variables aren't modified after the check (TypeScript 5.4+)
Use constant indices to narrow object/array properties (TypeScript 5.5+)
Use standard ECMAScript decorators (Stage 3) instead of legacy experimentalDecorators
Use using declarations for explicit resource management with Disposable pattern instead of manual cleanup (TypeScript 5.2+)
Use with { type: "json" } for import attributes; avoid deprecated assert syntax (TypeScript 5.3/5.8+)
Use import type explicitly when importing types to ensure they are erased during compilation, respecting verbatimModuleSyntax flag
Use .ts, .mts, .cts extensions in import type statements (TypeScript 5.2+)
Use import type { Type } from "mod" with { "resolution-mode": "import" } for specific module resolution contexts (TypeScript 5.3+)
Use new iterator methods (map, filter, etc.) if targeting modern environments (TypeScript 5.6+)
Utilize new Set methods like union, intersection, etc., when available (TypeScript 5.5+)
Use Object.groupBy / Map.groupBy standard methods for grouping instead of external libraries (TypeScript 5.4+)
Use Promise.withResolvers() for creating promises with exposed resolve/reject functions (TypeScript 5.7+)
Use copying array methods (toSorted, toSpliced, with) for immutable array operations (TypeScript 5.2+)
Avoid accessing instance fields via super in classes (TypeScript 5....

Files:

  • apps/web/core/components/issues/issue-layouts/roots/project-layout-root.tsx
  • packages/propel/src/icon-button/helper.tsx
  • packages/propel/src/button/helper.tsx
  • packages/ui/src/button/helper.tsx
  • apps/web/core/components/rich-filters/filters-row.tsx
**/*.{ts,tsx}

📄 CodeRabbit inference engine (AGENTS.md)

Enable TypeScript strict mode and ensure all files are fully typed

Files:

  • apps/web/core/components/issues/issue-layouts/roots/project-layout-root.tsx
  • packages/propel/src/icon-button/helper.tsx
  • packages/propel/src/button/helper.tsx
  • packages/ui/src/button/helper.tsx
  • apps/web/core/components/rich-filters/filters-row.tsx
**/*.{js,jsx,ts,tsx,json,css}

📄 CodeRabbit inference engine (AGENTS.md)

Use Prettier with Tailwind plugin for code formatting, run pnpm fix:format

Files:

  • apps/web/core/components/issues/issue-layouts/roots/project-layout-root.tsx
  • packages/propel/src/icon-button/helper.tsx
  • packages/propel/src/button/helper.tsx
  • packages/ui/src/button/helper.tsx
  • apps/web/core/components/rich-filters/filters-row.tsx
**/*.{js,jsx,ts,tsx}

📄 CodeRabbit inference engine (AGENTS.md)

**/*.{js,jsx,ts,tsx}: Use ESLint with shared config across packages, adhering to max warnings limits per package
Use camelCase for variable and function names, PascalCase for components and types
Use try-catch with proper error types and log errors appropriately

Files:

  • apps/web/core/components/issues/issue-layouts/roots/project-layout-root.tsx
  • packages/propel/src/icon-button/helper.tsx
  • packages/propel/src/button/helper.tsx
  • packages/ui/src/button/helper.tsx
  • apps/web/core/components/rich-filters/filters-row.tsx
🧠 Learnings (16)
📚 Learning: 2025-12-17T10:58:59.591Z
Learnt from: CR
Repo: makeplane/plane PR: 0
File: packages/tailwind-config/AGENTS.md:0-0
Timestamp: 2025-12-17T10:58:59.591Z
Learning: Applies to packages/tailwind-config/**/*.{ts,tsx} : Pages and routes should use `bg-surface-1` (or appropriate surface variant) as their root container, not `bg-canvas`

Applied to files:

  • apps/web/core/components/issues/issue-layouts/roots/project-layout-root.tsx
  • apps/web/core/components/rich-filters/filters-row.tsx
📚 Learning: 2025-12-17T10:58:59.591Z
Learnt from: CR
Repo: makeplane/plane PR: 0
File: packages/tailwind-config/AGENTS.md:0-0
Timestamp: 2025-12-17T10:58:59.591Z
Learning: Applies to packages/tailwind-config/**/*.{ts,tsx} : Use `bg-surface-1`, `bg-surface-2`, or `bg-surface-3` for top-level containers that sit directly on the canvas, such as main content areas, page sections, or primary containers

Applied to files:

  • apps/web/core/components/issues/issue-layouts/roots/project-layout-root.tsx
  • apps/web/core/components/rich-filters/filters-row.tsx
📚 Learning: 2025-12-17T10:58:59.591Z
Learnt from: CR
Repo: makeplane/plane PR: 0
File: packages/tailwind-config/AGENTS.md:0-0
Timestamp: 2025-12-17T10:58:59.591Z
Learning: Applies to packages/tailwind-config/**/*.{ts,tsx} : Headers and main content sections within a page should be part of the same surface container (using semantic borders for visual separation if needed) rather than using separate surface backgrounds

Applied to files:

  • apps/web/core/components/issues/issue-layouts/roots/project-layout-root.tsx
  • apps/web/core/components/rich-filters/filters-row.tsx
📚 Learning: 2025-12-17T10:58:59.591Z
Learnt from: CR
Repo: makeplane/plane PR: 0
File: packages/tailwind-config/AGENTS.md:0-0
Timestamp: 2025-12-17T10:58:59.591Z
Learning: Applies to packages/tailwind-config/**/*.{ts,tsx} : Never use `bg-layer-2` or higher for content boxes and cards - always use the matching layer number; the exception for going one level above applies only to interactive form elements

Applied to files:

  • apps/web/core/components/issues/issue-layouts/roots/project-layout-root.tsx
  • apps/web/core/components/rich-filters/filters-row.tsx
📚 Learning: 2025-12-17T10:58:59.591Z
Learnt from: CR
Repo: makeplane/plane PR: 0
File: packages/tailwind-config/AGENTS.md:0-0
Timestamp: 2025-12-17T10:58:59.591Z
Learning: Applies to packages/tailwind-config/**/*.{ts,tsx} : Do not use `bg-canvas` for page-level backgrounds, nested containers, cards, components, modals, dropdowns, sidebars, or panels

Applied to files:

  • apps/web/core/components/issues/issue-layouts/roots/project-layout-root.tsx
  • apps/web/core/components/rich-filters/filters-row.tsx
📚 Learning: 2025-12-17T10:58:59.591Z
Learnt from: CR
Repo: makeplane/plane PR: 0
File: packages/tailwind-config/AGENTS.md:0-0
Timestamp: 2025-12-17T10:58:59.591Z
Learning: Applies to packages/tailwind-config/**/*.{ts,tsx} : Match layers to their parent surface: use `bg-layer-1` within `bg-surface-1`, use `bg-layer-2` within `bg-surface-2`, and use `bg-layer-3` within `bg-surface-3`

Applied to files:

  • apps/web/core/components/issues/issue-layouts/roots/project-layout-root.tsx
📚 Learning: 2025-12-17T10:58:59.591Z
Learnt from: CR
Repo: makeplane/plane PR: 0
File: packages/tailwind-config/AGENTS.md:0-0
Timestamp: 2025-12-17T10:58:59.591Z
Learning: Applies to packages/tailwind-config/**/App.tsx **/app.tsx **/root.tsx **/layout.tsx **/main.tsx : Use `bg-canvas` only at the application root level (App.tsx or root layout) - this is the only place in the entire application where canvas should appear

Applied to files:

  • apps/web/core/components/issues/issue-layouts/roots/project-layout-root.tsx
📚 Learning: 2025-12-17T10:58:59.591Z
Learnt from: CR
Repo: makeplane/plane PR: 0
File: packages/tailwind-config/AGENTS.md:0-0
Timestamp: 2025-12-17T10:58:59.591Z
Learning: Applies to packages/tailwind-config/**/*.{ts,tsx} : Use `bg-layer-1`, `bg-layer-2`, and `bg-layer-3` for nested elements within a surface to create depth, with layer-1 being the closest to the surface, layer-2 on top of layer-1, and layer-3 on top of layer-2

Applied to files:

  • apps/web/core/components/issues/issue-layouts/roots/project-layout-root.tsx
📚 Learning: 2025-12-17T10:58:59.591Z
Learnt from: CR
Repo: makeplane/plane PR: 0
File: packages/tailwind-config/AGENTS.md:0-0
Timestamp: 2025-12-17T10:58:59.591Z
Learning: Applies to packages/tailwind-config/**/*.{ts,tsx} : Sidebar menu items should use transparent backgrounds with hover states like `hover:bg-layer-1-hover` rather than base layer backgrounds, maintaining visual lightness while providing hover feedback

Applied to files:

  • apps/web/core/components/issues/issue-layouts/roots/project-layout-root.tsx
  • packages/propel/src/icon-button/helper.tsx
  • packages/propel/src/button/helper.tsx
  • packages/ui/src/button/helper.tsx
  • apps/web/core/components/rich-filters/filters-row.tsx
📚 Learning: 2025-12-17T10:58:59.591Z
Learnt from: CR
Repo: makeplane/plane PR: 0
File: packages/tailwind-config/AGENTS.md:0-0
Timestamp: 2025-12-17T10:58:59.591Z
Learning: Applies to packages/tailwind-config/**/*.{ts,tsx} : Do not use hover state classes (e.g., `bg-layer-1-hover`) as base backgrounds - hover states should only be applied with the `hover:` prefix alongside the base background class

Applied to files:

  • apps/web/core/components/issues/issue-layouts/roots/project-layout-root.tsx
  • packages/propel/src/icon-button/helper.tsx
  • packages/propel/src/button/helper.tsx
  • packages/ui/src/button/helper.tsx
📚 Learning: 2025-12-17T10:58:59.591Z
Learnt from: CR
Repo: makeplane/plane PR: 0
File: packages/tailwind-config/AGENTS.md:0-0
Timestamp: 2025-12-17T10:58:59.591Z
Learning: Applies to packages/tailwind-config/**/*.{ts,tsx} : Use `-active` state variants (e.g., `bg-layer-1-active`) when an element is in a pressed or active state

Applied to files:

  • packages/propel/src/icon-button/helper.tsx
  • packages/propel/src/button/helper.tsx
  • packages/ui/src/button/helper.tsx
📚 Learning: 2025-12-17T10:58:59.591Z
Learnt from: CR
Repo: makeplane/plane PR: 0
File: packages/tailwind-config/AGENTS.md:0-0
Timestamp: 2025-12-17T10:58:59.591Z
Learning: Applies to packages/tailwind-config/**/*.{ts,tsx} : Use `-selected` state variants (e.g., `bg-layer-1-selected`) only when there is actual selection logic implemented, or use data attributes like `data-[selected]:bg-layer-1-selected`

Applied to files:

  • packages/propel/src/icon-button/helper.tsx
  • packages/propel/src/button/helper.tsx
  • packages/ui/src/button/helper.tsx
  • apps/web/core/components/rich-filters/filters-row.tsx
📚 Learning: 2025-12-17T10:58:59.591Z
Learnt from: CR
Repo: makeplane/plane PR: 0
File: packages/tailwind-config/AGENTS.md:0-0
Timestamp: 2025-12-17T10:58:59.591Z
Learning: Applies to packages/tailwind-config/**/*.{ts,tsx} : Use semantic text colors that match the visual hierarchy: `text-primary` for main text and headings, `text-secondary` for descriptions, `text-tertiary` for labels and metadata, and `text-placeholder` for placeholder text and hints

Applied to files:

  • packages/propel/src/icon-button/helper.tsx
  • packages/propel/src/button/helper.tsx
  • packages/ui/src/button/helper.tsx
📚 Learning: 2025-12-17T10:58:59.591Z
Learnt from: CR
Repo: makeplane/plane PR: 0
File: packages/tailwind-config/AGENTS.md:0-0
Timestamp: 2025-12-17T10:58:59.591Z
Learning: Applies to packages/tailwind-config/**/*.{ts,tsx} : Always pair hover states with matching base backgrounds: use `hover:bg-layer-X-hover` only with `bg-layer-X`, use `hover:bg-surface-X-hover` only with `bg-surface-X`, never use mismatched combinations like `bg-layer-1 hover:bg-layer-2-hover`

Applied to files:

  • packages/propel/src/icon-button/helper.tsx
  • packages/propel/src/button/helper.tsx
  • packages/ui/src/button/helper.tsx
📚 Learning: 2025-12-17T10:58:59.591Z
Learnt from: CR
Repo: makeplane/plane PR: 0
File: packages/tailwind-config/AGENTS.md:0-0
Timestamp: 2025-12-17T10:58:59.591Z
Learning: Applies to packages/tailwind-config/**/*.{ts,tsx} : Use the rare exception to go one level above for visual separation only in interactive form elements (inputs, buttons, switches) within modals - for example, a modal with `bg-surface-1` can use `bg-layer-2` for form inputs to achieve visual distinction

Applied to files:

  • packages/propel/src/icon-button/helper.tsx
  • packages/propel/src/button/helper.tsx
📚 Learning: 2025-12-17T10:58:59.591Z
Learnt from: CR
Repo: makeplane/plane PR: 0
File: packages/tailwind-config/AGENTS.md:0-0
Timestamp: 2025-12-17T10:58:59.591Z
Learning: Applies to packages/tailwind-config/**/*.{ts,tsx} : Use semantic border colors: `border-subtle` for subtle borders and dividers, `border-subtle-1` for slightly more visible borders, `border-strong` for strong emphasis borders, and `border-strong-1` for very strong borders

Applied to files:

  • packages/propel/src/button/helper.tsx
  • apps/web/core/components/rich-filters/filters-row.tsx
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
  • GitHub Check: CodeQL analysis (javascript-typescript)
  • GitHub Check: Build packages
  • GitHub Check: Analyze (javascript)
🔇 Additional comments (6)
packages/propel/src/icon-button/helper.tsx (1)

11-11: LGTM! Improved semantic token usage for disabled state.

The update to disabled:text-on-color-disabled is semantically correct for disabled text on colored backgrounds and aligns with the consistent styling updates across button components in this PR.

packages/ui/src/button/helper.tsx (1)

44-44: LGTM! Consistent disabled state styling.

The update to !text-on-color-disabled aligns with the semantic token improvements across the button component family and properly conveys the disabled state on colored backgrounds.

packages/propel/src/button/helper.tsx (1)

10-10: LGTM! Completes consistent disabled styling across button components.

This change aligns with the disabled text color updates in the icon-button and ui button helpers, ensuring consistent visual treatment across the button component family.

apps/web/core/components/issues/issue-layouts/roots/project-layout-root.tsx (1)

83-83: LGTM! Corrects the background hierarchy for the main content container.

The change from bg-layer-2 to bg-surface-1 is correct for this top-level content container. This properly establishes the surface/layer hierarchy, allowing child elements (like the mutation loader with bg-layer-1 at line 86) to sit at the appropriate layer depth.

Based on learnings, pages and routes should use surface backgrounds as their root container rather than layer backgrounds.

apps/web/core/components/rich-filters/filters-row.tsx (2)

122-122: LGTM! Proper layer background within surface container.

The bg-layer-1 styling is correct here. When used within the HeaderVariant (which uses bg-surface-1 at line 139), this creates the proper surface/layer hierarchy.


139-139: LGTM! Correct surface background for header component.

The bg-surface-1 is appropriate for the Header component as a top-level container. The !px-3 important modifier appears to be overriding the Header's default padding, which is acceptable if needed for this specific layout requirement.


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
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR updates button styling tokens and layout background colors across multiple packages. The changes focus on standardizing disabled button text colors and migrating from layer-* to surface-* background color tokens in layout components.

  • Updated disabled button text color from text-disabled/text-placeholder to text-on-color-disabled for primary button variants
  • Added background styling, padding, and border radius to filter row components
  • Migrated layout background colors from bg-layer-2 to bg-surface-1

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated no comments.

Show a summary per file
File Description
packages/ui/src/button/helper.tsx Updates disabled text color for primary button variant to use new token
packages/propel/src/icon-button/helper.tsx Updates disabled text color for primary icon button variant to use new token
packages/propel/src/button/helper.tsx Updates disabled text color for primary button variant to use new token
apps/web/core/components/rich-filters/filters-row.tsx Adds background, padding, and border radius to main content; updates header padding and background color
apps/web/core/components/issues/issue-layouts/roots/project-layout-root.tsx Changes background color from layer-2 to surface-1 for consistency
Comments suppressed due to low confidence (2)

packages/propel/src/icon-button/helper.tsx:21

  • The disabled text color has been updated to text-on-color-disabled for the primary variant, but the other variants (error-fill, error-outline, secondary, tertiary, ghost) still use the old disabled:text-disabled class. This creates an inconsistency in how disabled button states appear across different variants.
          "bg-danger-primary hover:bg-danger-primary-hover active:bg-danger-primary-active focus:bg-danger-primary-active disabled:bg-layer-disabled text-on-color disabled:text-disabled",
        "error-outline":
          "bg-layer-2 hover:bg-danger-subtle active:bg-danger-subtle-hover focus:bg-danger-subtle-hover disabled:bg-layer-2 text-danger disabled:text-disabled border border-danger-strong disabled:border-subtle-1",
        secondary:
          "bg-layer-2 hover:bg-layer-2-hover active:bg-layer-2-active focus:bg-layer-2-active disabled:bg-layer-transparent text-secondary disabled:text-disabled border border-strong disabled:border-subtle-1 shadow-raised-100",
        tertiary:
          "bg-layer-3 hover:bg-layer-3-hover active:bg-layer-3-active focus:bg-layer-3-active disabled:bg-layer-transparent text-secondary disabled:text-disabled",
        ghost:
          "bg-layer-transparent hover:bg-layer-transparent-hover active:bg-layer-transparent-active focus:bg-layer-transparent-active disabled:bg-layer-transparent text-secondary disabled:text-disabled",

packages/propel/src/button/helper.tsx:21

  • The disabled text color has been updated to text-on-color-disabled for the primary variant, but the other variants (error-fill, error-outline, secondary, tertiary, ghost, link) still use the old disabled:text-disabled class. This creates an inconsistency in how disabled button states appear across different variants.
          "bg-danger-primary hover:bg-danger-primary-hover active:bg-danger-primary-active disabled:bg-layer-disabled text-on-color disabled:text-disabled",
        "error-outline":
          "bg-layer-2 hover:bg-danger-subtle active:bg-danger-subtle-hover disabled:bg-layer-2 text-danger disabled:text-disabled border border-danger-strong disabled:border-subtle-1",
        secondary:
          "bg-layer-2 hover:bg-layer-2-hover active:bg-layer-2-active  disabled:bg-layer-transparent text-secondary disabled:text-disabled border border-strong disabled:border-subtle-1 shadow-raised-100",
        tertiary:
          "bg-layer-3 hover:bg-layer-3-hover active:bg-layer-3-active disabled:bg-layer-transparent text-secondary disabled:text-disabled",
        ghost:
          "bg-layer-transparent hover:bg-layer-transparent-hover active:bg-layer-transparent-active focus:bg-layer-transparent-active disabled:bg-layer-transparent text-secondary disabled:text-disabled",
        link: "px-0 underline text-link-primary hover:text-link-primary-hover active:text-link-primary-hover focus:text-link-primary-hover disabled:text-disabled",

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@pushya22 pushya22 merged commit 8349648 into preview Dec 21, 2025
17 of 18 checks passed
@pushya22 pushya22 deleted the chore-package-and-layout-enhancement branch December 21, 2025 07:11
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.

4 participants