From 67c39dfc3d408c0d03ea0cd430582b2165b6b741 Mon Sep 17 00:00:00 2001
From: Jayash Tripathy <76092296+JayashTripathy@users.noreply.github.com>
Date: Fri, 19 Dec 2025 18:15:56 +0530
Subject: [PATCH] [WEB-5762] fix: workitem detail sidebar properties design
consistency (#8400)
---
.../layout/sidebar/property-list-item.tsx | 2 +-
.../web/core/components/dropdowns/buttons.tsx | 25 ++++++++++-------
apps/web/core/components/dropdowns/date.tsx | 4 ++-
.../core/components/dropdowns/member/base.tsx | 2 +-
.../core/components/dropdowns/priority.tsx | 25 ++++++++++++++---
.../issues/issue-detail/cycle-select.tsx | 4 +--
.../issue-detail/label/label-list-item.tsx | 19 +++----------
.../issues/issue-detail/label/root.tsx | 2 +-
.../label/select/label-select.tsx | 17 ++++++------
.../issues/issue-detail/module-select.tsx | 4 +--
.../issues/issue-detail/parent-select.tsx | 6 ++---
.../issues/peek-overview/properties.tsx | 24 ++++++++++-------
.../rich-filters/filters-toggle.tsx | 27 ++++++++++++++++---
packages/tailwind-config/variables.css | 2 +-
14 files changed, 101 insertions(+), 62 deletions(-)
diff --git a/apps/web/core/components/common/layout/sidebar/property-list-item.tsx b/apps/web/core/components/common/layout/sidebar/property-list-item.tsx
index 4fd4ed0d1..33b4d58a9 100644
--- a/apps/web/core/components/common/layout/sidebar/property-list-item.tsx
+++ b/apps/web/core/components/common/layout/sidebar/property-list-item.tsx
@@ -19,7 +19,7 @@ export function SidebarPropertyListItem(props: TSidebarPropertyListItemProps) {
{label}
{appendElement}
-
{children}
+ {children}
);
}
diff --git a/apps/web/core/components/dropdowns/buttons.tsx b/apps/web/core/components/dropdowns/buttons.tsx
index 376cab85f..217ea5245 100644
--- a/apps/web/core/components/dropdowns/buttons.tsx
+++ b/apps/web/core/components/dropdowns/buttons.tsx
@@ -1,5 +1,6 @@
import React from "react";
// helpers
+import { Button } from "@plane/propel/button";
import { Tooltip } from "@plane/propel/tooltip";
import { cn } from "@plane/utils";
// types
@@ -71,9 +72,11 @@ function BorderButton(props: ButtonProps) {
isMobile={isMobile}
renderByDefault={renderToolTipByDefault}
>
-
{children}
-
+
);
}
@@ -97,14 +100,16 @@ function BackgroundButton(props: ButtonProps) {
isMobile={isMobile}
renderByDefault={renderToolTipByDefault}
>
-
{children}
-
+
);
}
@@ -120,9 +125,11 @@ function TransparentButton(props: ButtonProps) {
isMobile={isMobile}
renderByDefault={renderToolTipByDefault}
>
-
{children}
-
+
);
}
diff --git a/apps/web/core/components/dropdowns/date.tsx b/apps/web/core/components/dropdowns/date.tsx
index cb5986d8e..8ffdd5cfb 100644
--- a/apps/web/core/components/dropdowns/date.tsx
+++ b/apps/web/core/components/dropdowns/date.tsx
@@ -138,7 +138,9 @@ export const DateDropdown = observer(function DateDropdown(props: Props) {
>
{!hideIcon && icon}
{BUTTON_VARIANTS_WITH_TEXT.includes(buttonVariant) && (
- {value ? renderFormattedDate(value, formatToken) : placeholder}
+
+ {value ? renderFormattedDate(value, formatToken) : placeholder}
+
)}
{isClearable && !disabled && isDateSelected && (
{!hideIcon && }
{BUTTON_VARIANTS_WITH_TEXT.includes(buttonVariant) && (
-
+
{getDisplayName(value, showUserDetails, placeholder)}
)}
diff --git a/apps/web/core/components/dropdowns/priority.tsx b/apps/web/core/components/dropdowns/priority.tsx
index 1edc2baad..0932320c1 100644
--- a/apps/web/core/components/dropdowns/priority.tsx
+++ b/apps/web/core/components/dropdowns/priority.tsx
@@ -120,7 +120,14 @@ function BorderButton(props: ButtonProps) {
))}
{!hideText && (
- {priorityDetails?.title ?? placeholder}
+
+ {priorityDetails?.title ?? placeholder}
+
)}
{dropdownArrow && (
@@ -204,7 +211,12 @@ function BackgroundButton(props: ButtonProps) {
))}
{!hideText && (
-
+
{priorityDetails?.title ?? t("common.priority") ?? placeholder}
)}
@@ -246,7 +258,7 @@ function TransparentButton(props: ButtonProps) {
>
))}
{!hideText && (
-
+
{priorityDetails?.title ?? t("common.priority") ?? placeholder}
)}
diff --git a/apps/web/core/components/issues/issue-detail/cycle-select.tsx b/apps/web/core/components/issues/issue-detail/cycle-select.tsx
index b9d1a8059..7ac2b5b01 100644
--- a/apps/web/core/components/issues/issue-detail/cycle-select.tsx
+++ b/apps/web/core/components/issues/issue-detail/cycle-select.tsx
@@ -50,8 +50,8 @@ export const IssueCycleSelect = observer(function IssueCycleSelect(props: TIssue
disabled={disableSelect}
buttonVariant="transparent-with-text"
className="group w-full"
- buttonContainerClassName="w-full text-left rounded-sm"
- buttonClassName={`text-13 justify-between ${issue?.cycle_id ? "" : "text-placeholder"}`}
+ buttonContainerClassName="w-full text-left h-7.5 rounded-sm"
+ buttonClassName={`text-body-xs-medium justify-between ${issue?.cycle_id ? "" : "text-placeholder"}`}
placeholder={t("cycle.no_cycle")}
hideIcon
dropdownArrow
diff --git a/apps/web/core/components/issues/issue-detail/label/label-list-item.tsx b/apps/web/core/components/issues/issue-detail/label/label-list-item.tsx
index 8a4c01845..77a68153e 100644
--- a/apps/web/core/components/issues/issue-detail/label/label-list-item.tsx
+++ b/apps/web/core/components/issues/issue-detail/label/label-list-item.tsx
@@ -1,6 +1,6 @@
import { observer } from "mobx-react";
+import { Button } from "@plane/propel/button";
import { CloseIcon, LabelFilledIcon } from "@plane/propel/icons";
-import { cn } from "@plane/utils";
// types
import { useLabel } from "@/hooks/store/use-label";
import type { TLabelOperations } from "./root";
@@ -31,25 +31,14 @@ export const LabelListItem = observer(function LabelListItem(props: TLabelListIt
if (!label) return <>>;
return (
-
);
});
diff --git a/apps/web/core/components/issues/issue-detail/label/root.tsx b/apps/web/core/components/issues/issue-detail/label/root.tsx
index a61e01129..c8c669bfe 100644
--- a/apps/web/core/components/issues/issue-detail/label/root.tsx
+++ b/apps/web/core/components/issues/issue-detail/label/root.tsx
@@ -92,7 +92,7 @@ export const IssueLabel = observer(function IssueLabel(props: TIssueLabel) {
);
return (
-
+
- {t("label.select")}
-
- );
+ const label = {t("label.select")};
const searchInputKeyDown = async (e: React.KeyboardEvent) => {
if (query !== "" && e.key === "Escape") {
@@ -123,14 +120,16 @@ export const IssueLabelSelect = observer(function IssueLabelSelect(props: IIssue
multiple
>
- }
onClick={() => !projectLabels && fetchLabels()}
>
{label}
-
+
diff --git a/apps/web/core/components/issues/issue-detail/module-select.tsx b/apps/web/core/components/issues/issue-detail/module-select.tsx
index 407b4c1cc..4d601b2e2 100644
--- a/apps/web/core/components/issues/issue-detail/module-select.tsx
+++ b/apps/web/core/components/issues/issue-detail/module-select.tsx
@@ -64,8 +64,8 @@ export const IssueModuleSelect = observer(function IssueModuleSelect(props: TIss
placeholder={t("module.no_module")}
disabled={disableSelect}
className="group h-full w-full"
- buttonContainerClassName="w-full rounded-sm"
- buttonClassName={`min-h-8 text-13 justify-between ${issue?.module_ids?.length ? "" : "text-placeholder"}`}
+ buttonContainerClassName="w-full text-left h-7.5 rounded-sm"
+ buttonClassName={`text-body-xs-medium justify-between ${issue?.module_ids?.length ? "" : "text-placeholder"}`}
buttonVariant="transparent-with-text"
hideIcon
dropdownArrow
diff --git a/apps/web/core/components/issues/issue-detail/parent-select.tsx b/apps/web/core/components/issues/issue-detail/parent-select.tsx
index 5b470211c..625b0b57a 100644
--- a/apps/web/core/components/issues/issue-detail/parent-select.tsx
+++ b/apps/web/core/components/issues/issue-detail/parent-select.tsx
@@ -84,7 +84,7 @@ export const IssueParentSelect = observer(function IssueParentSelect(props: TIss
disabled={disabled}
>
{issue.parent_id && parentIssue ? (
-
+
e.stopPropagation()}>
{parentIssue?.project_id && parentIssueProjectDetails && (
@@ -94,7 +94,7 @@ export const IssueParentSelect = observer(function IssueParentSelect(props: TIss
projectIdentifier={parentIssueProjectDetails?.identifier}
issueSequenceId={parentIssue.sequence_id}
size="xs"
- variant="success"
+ variant="secondary"
/>
)}
@@ -115,7 +115,7 @@ export const IssueParentSelect = observer(function IssueParentSelect(props: TIss
)}
) : (
-
{t("issue.add.parent")}
+
{t("issue.add.parent")}
)}
{!disabled && (
{t("common.properties")}
-
+
@@ -102,7 +102,7 @@ export const PeekOverviewProperties = observer(function PeekOverviewProperties(p
buttonVariant={issue?.assignee_ids?.length > 1 ? "transparent-without-text" : "transparent-with-text"}
className="w-full grow group"
buttonContainerClassName="w-full text-left h-7.5"
- buttonClassName={`text-body-xs-regular justify-between ${issue?.assignee_ids?.length > 0 ? "" : "text-placeholder"}`}
+ buttonClassName={`text-body-xs-medium justify-between ${issue?.assignee_ids?.length > 0 ? "" : "text-placeholder"}`}
hideIcon={issue.assignee_ids?.length === 0}
dropdownArrow
dropdownArrowClassName="h-3.5 w-3.5 hidden group-hover:inline"
@@ -116,18 +116,22 @@ export const PeekOverviewProperties = observer(function PeekOverviewProperties(p
disabled={disabled}
buttonVariant="transparent-with-text"
className="w-full h-7.5 grow rounded-sm"
- buttonContainerClassName="size-full text-left"
- buttonClassName="size-full px-2 py-0.5 whitespace-nowrap [&_svg]:size-3.5"
+ buttonContainerClassName="w-full text-left h-7.5"
+ buttonClassName={`text-body-xs-medium whitespace-nowrap [&_svg]:size-3.5 ${!issue?.priority || issue?.priority === "none" ? "text-placeholder" : ""}`}
/>
{createdByDetails && (
-
+
-
+
{createdByDetails?.display_name.includes("-intake") ? "Plane" : createdByDetails?.display_name}
@@ -147,7 +151,7 @@ export const PeekOverviewProperties = observer(function PeekOverviewProperties(p
disabled={disabled}
className="w-full grow group"
buttonContainerClassName="w-full text-left h-7.5"
- buttonClassName={`text-body-xs-regular ${issue?.start_date ? "" : "text-placeholder"}`}
+ buttonClassName={`text-body-xs-medium ${issue?.start_date ? "" : "text-placeholder"}`}
hideIcon
clearIconClassName="h-3 w-3 hidden group-hover:inline"
/>
@@ -168,7 +172,7 @@ export const PeekOverviewProperties = observer(function PeekOverviewProperties(p
disabled={disabled}
className="w-full grow group"
buttonContainerClassName="w-full text-left h-7.5"
- buttonClassName={cn("text-body-xs-regular", {
+ buttonClassName={cn("text-body-xs-medium", {
"text-placeholder": !issue.target_date,
"text-danger": shouldHighlightIssueDueDate(issue.target_date, stateDetails?.group),
})}
@@ -189,7 +193,7 @@ export const PeekOverviewProperties = observer(function PeekOverviewProperties(p
buttonVariant="transparent-with-text"
className="w-full grow group"
buttonContainerClassName="w-full text-left h-7.5"
- buttonClassName={`text-body-xs-regular ${issue?.estimate_point !== undefined ? "" : "text-placeholder"}`}
+ buttonClassName={`text-body-xs-medium ${issue?.estimate_point !== undefined ? "" : "text-placeholder"}`}
placeholder="None"
hideIcon
dropdownArrow
diff --git a/apps/web/core/components/rich-filters/filters-toggle.tsx b/apps/web/core/components/rich-filters/filters-toggle.tsx
index 409b5fa84..76f844532 100644
--- a/apps/web/core/components/rich-filters/filters-toggle.tsx
+++ b/apps/web/core/components/rich-filters/filters-toggle.tsx
@@ -34,6 +34,28 @@ export const FiltersToggle = observer(function FiltersToggle
);
});
diff --git a/packages/tailwind-config/variables.css b/packages/tailwind-config/variables.css
index b3e87a289..d578e538c 100644
--- a/packages/tailwind-config/variables.css
+++ b/packages/tailwind-config/variables.css
@@ -295,7 +295,7 @@
/* Background colors */
--background-color-canvas: var(--color-neutral-300);
--background-color-surface-1: var(--color-neutral-white);
- --background-color-surface-2: var(--color-neutral-100);
+ --background-color-surface-2: var(--color-neutral-200);
--background-color-layer-1: var(--color-neutral-200);
--background-color-layer-1-hover: var(--color-neutral-300);
--background-color-layer-1-active: var(--color-neutral-400);