diff --git a/plane-src/apps/web/core/components/home/home-dashboard-widgets.tsx b/plane-src/apps/web/core/components/home/home-dashboard-widgets.tsx index 26f8828..79f3035 100644 --- a/plane-src/apps/web/core/components/home/home-dashboard-widgets.tsx +++ b/plane-src/apps/web/core/components/home/home-dashboard-widgets.tsx @@ -232,6 +232,8 @@ export const DashboardWidgets = observer(function DashboardWidgets(props: Dashbo /> )} + + - - {!isWikiApp && } {hasDashboardContent ? ( diff --git a/plane-src/apps/web/core/components/home/home-project-insights.tsx b/plane-src/apps/web/core/components/home/home-project-insights.tsx index a443148..6eaf63f 100644 --- a/plane-src/apps/web/core/components/home/home-project-insights.tsx +++ b/plane-src/apps/web/core/components/home/home-project-insights.tsx @@ -190,15 +190,15 @@ export function HomeProjectInsights(props: HomeProjectInsightsProps) {
Темп активности
Последние 7 дней переходов и взаимодействий внутри сводки.
-
+
{recentTouchpoints} событий
-
+
{["col-1", "col-2", "col-3", "col-4"].map((key) => ( -
+
))}
@@ -268,7 +268,7 @@ export function HomeProjectInsights(props: HomeProjectInsightsProps) {
{activitySeries.map((point) => ( -
+
{point.label}
{point.value}
@@ -279,9 +279,9 @@ export function HomeProjectInsights(props: HomeProjectInsightsProps) {
-
+
-
+
@@ -311,17 +311,19 @@ export function HomeProjectInsights(props: HomeProjectInsightsProps) {
-
+
Ритм исполнения
Сколько уже закрыто и какой объём ещё держим открытым.
-
{completionRate}%
+
+ {completionRate}% +
-
+
Закрытые задачи {completedIssues} @@ -334,7 +336,7 @@ export function HomeProjectInsights(props: HomeProjectInsightsProps) {
-
+
Открытый остаток {openIssues} @@ -350,7 +352,7 @@ export function HomeProjectInsights(props: HomeProjectInsightsProps) {
-
+
{project ? project.identifier : "Workspace"} держит {totalIssues} diff --git a/plane-src/apps/web/core/components/home/user-greetings.tsx b/plane-src/apps/web/core/components/home/user-greetings.tsx index 2fda590..aeed03f 100644 --- a/plane-src/apps/web/core/components/home/user-greetings.tsx +++ b/plane-src/apps/web/core/components/home/user-greetings.tsx @@ -7,10 +7,7 @@ // plane types import { useTranslation } from "@plane/i18n"; import type { IUser, TProjectAnalyticsCount } from "@plane/types"; -// plane ui -// hooks import { useCurrentTime } from "@/hooks/use-current-time"; -import { HomeCardShell } from "./home-card-shell"; import { getCompletionRate, type THomeProjectData } from "./home.utils"; export interface IUserGreetingsView { @@ -52,49 +49,38 @@ export function UserGreetingsView(props: IUserGreetingsView) { const completionRate = getCompletionRate(selectedProjectAnalytics); return ( - -
-
-
- {greeting === "morning" ? "🌤️" : greeting === "afternoon" ? "🌥️" : "🌙️"} - Главная панель workspace -
-
- Домашняя страница теперь собирает проектный фокус, recent activity, быстрые ссылки и стикеры в один рабочий - экран без переходов по разделам. +
+
+
+
+
+ {workspaceName ?? "Workspace Home"} +
+

+ {`${t("good")} ${t(greeting)}, ${user?.first_name} ${user?.last_name}`} +

+
{`${weekDay}, ${date} ${timeString}`}
-
-
-
Текущий фокус
-
- {selectedProject ? selectedProject.name : "Выберите проект слева"} -
-
- {selectedProject ? selectedProject.identifier : "Домашняя сводка перестроится под выбранную карточку."} -
+
+
Текущий фокус
+
+ {selectedProject ? selectedProject.name : "Выберите проект слева"}
+
+ {selectedProject ? selectedProject.identifier : "Домашняя сводка перестроится под выбранную карточку."} +
+
-
-
Прогресс фокуса
-
- {selectedProject ? `${completionRate}%` : "—"} -
-
- {selectedProject - ? "Закрытые задачи относительно общего объёма." - : "Станет доступен после выбора проекта."} -
+
+
Прогресс фокуса
+
{selectedProject ? `${completionRate}%` : "—"}
+
+ {selectedProject ? "Закрытые задачи относительно общего объёма." : "Станет доступен после выбора проекта."}
- +
); } diff --git a/plane-src/apps/web/styles/globals.css b/plane-src/apps/web/styles/globals.css index 5dd3b54..5f9ff03 100644 --- a/plane-src/apps/web/styles/globals.css +++ b/plane-src/apps/web/styles/globals.css @@ -1545,11 +1545,11 @@ outline: none !important; border-radius: 2rem !important; background: - linear-gradient(180deg, rgba(255, 255, 255, 0.034) 0%, rgba(255, 255, 255, 0.012) 100%), - rgba(255, 255, 255, 0.028) !important; + linear-gradient(180deg, rgba(255, 255, 255, 0.026) 0%, rgba(255, 255, 255, 0.008) 100%), + rgba(10, 10, 12, 0.58) !important; box-shadow: - 0 18px 40px rgba(0, 0, 0, 0.18), - inset 0 1px 0 rgba(255, 255, 255, 0.028) !important; + 0 18px 40px rgba(0, 0, 0, 0.2), + inset 0 1px 0 rgba(255, 255, 255, 0.02) !important; -webkit-backdrop-filter: blur(28px); backdrop-filter: blur(28px); } @@ -1560,15 +1560,15 @@ inset: 0; z-index: 0; background: - radial-gradient(circle at top right, rgba(var(--nodedc-accent-rgb), 0.12), transparent 34%), - linear-gradient(180deg, rgba(255, 255, 255, 0.014) 0%, transparent 100%); + radial-gradient(circle at top right, rgba(var(--nodedc-accent-rgb), 0.08), transparent 34%), + linear-gradient(180deg, rgba(255, 255, 255, 0.01) 0%, transparent 100%); pointer-events: none; } .nodedc-home-card[data-tone="accent"] { background: - linear-gradient(180deg, rgba(255, 255, 255, 0.042) 0%, rgba(255, 255, 255, 0.016) 100%), - rgba(var(--nodedc-accent-rgb), 0.12) !important; + linear-gradient(180deg, rgba(255, 255, 255, 0.03) 0%, rgba(255, 255, 255, 0.012) 100%), + rgba(var(--nodedc-accent-rgb), 0.1) !important; } .nodedc-home-card[data-tone="accent"]::before { @@ -1713,31 +1713,37 @@ .nodedc-home-metric-card { border-radius: 1.5rem !important; - border: 1px solid rgba(255, 255, 255, 0.06); background: - linear-gradient(180deg, rgba(255, 255, 255, 0.032) 0%, rgba(255, 255, 255, 0.012) 100%), rgba(0, 0, 0, 0.14); + linear-gradient(180deg, rgba(255, 255, 255, 0.018) 0%, rgba(255, 255, 255, 0.006) 100%), + rgba(7, 7, 9, 0.58); padding: 1rem; + box-shadow: + 0 14px 28px rgba(0, 0, 0, 0.14), + inset 0 1px 0 rgba(255, 255, 255, 0.016) !important; } .nodedc-home-metric-card-accent { background: - linear-gradient(180deg, rgba(255, 255, 255, 0.042) 0%, rgba(255, 255, 255, 0.016) 100%), - rgba(var(--nodedc-accent-rgb), 0.12); + linear-gradient(180deg, rgba(255, 255, 255, 0.022) 0%, rgba(255, 255, 255, 0.008) 100%), + rgba(7, 7, 9, 0.62); } .nodedc-home-chart-panel { border-radius: 1.75rem !important; - border: 1px solid rgba(255, 255, 255, 0.06); background: - linear-gradient(180deg, rgba(255, 255, 255, 0.032) 0%, rgba(255, 255, 255, 0.012) 100%), rgba(0, 0, 0, 0.14); + linear-gradient(180deg, rgba(255, 255, 255, 0.018) 0%, rgba(255, 255, 255, 0.006) 100%), + rgba(7, 7, 9, 0.56); padding: 1rem; + box-shadow: + 0 18px 34px rgba(0, 0, 0, 0.16), + inset 0 1px 0 rgba(255, 255, 255, 0.016) !important; } .nodedc-home-progress-track { height: 0.55rem; overflow: hidden; border-radius: 999px; - background: rgba(255, 255, 255, 0.08); + background: rgba(255, 255, 255, 0.06); } .nodedc-home-progress-fill { @@ -1746,6 +1752,21 @@ background: linear-gradient(90deg, rgba(var(--nodedc-accent-rgb), 0.94) 0%, rgba(255, 255, 255, 0.92) 100%); } + .nodedc-home-subpanel { + border-radius: 1.5rem !important; + background: + linear-gradient(180deg, rgba(255, 255, 255, 0.018) 0%, rgba(255, 255, 255, 0.006) 100%), + rgba(6, 6, 8, 0.64) !important; + box-shadow: + 0 14px 28px rgba(0, 0, 0, 0.16), + inset 0 1px 0 rgba(255, 255, 255, 0.01) !important; + } + + .nodedc-home-soft-badge { + background: rgba(0, 0, 0, 0.34) !important; + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.01) !important; + } + .nodedc-workspace-list-row:hover { background: linear-gradient(180deg, rgba(255, 255, 255, 0.044) 0%, rgba(255, 255, 255, 0.018) 100%),