рефакторинг стилей

This commit is contained in:
gorbenko.pavel
2026-07-31 15:09:04 +05:00
parent 7566da06c2
commit 8a0bb146e9
6 changed files with 14 additions and 43 deletions
+7 -8
View File
@@ -106,19 +106,18 @@ $sp-7: 28px; $sp-8: 32px;
} }
// ---- Готовые миксины ---- // ---- Готовые миксины ----
// Светлая карточка заголовка страницы — сознательно НЕ грд-header (тёмный,
// как TopNav): два одинаковых тёмно-синих блока подряд читаются как один
// тяжёлый слипшийся элемент. Золотая полоса сверху — единственный акцент,
// вместо заливки всей карточки.
@mixin page-header { @mixin page-header {
background: $grad-header; background: #fff;
border: 1px solid $gray-200;
border-top: 3px solid $gold-500;
border-radius: $r-lg; border-radius: $r-lg;
padding: 26px 30px; padding: 26px 30px;
position: relative; position: relative;
overflow: hidden; overflow: hidden;
&::before {
content: '';
position: absolute;
left: 0; right: 0; bottom: 0;
height: 2px;
background: linear-gradient(90deg, $gold-500, transparent 60%);
}
} }
@mixin card-hover-gold { @mixin card-hover-gold {
@@ -23,20 +23,6 @@
flex-shrink: 0; flex-shrink: 0;
} }
.mark {
width: 30px;
height: 30px;
border-radius: 7px;
background: $grad-gold-v;
display: flex;
align-items: center;
justify-content: center;
color: $navy-950;
font-weight: 800;
font-size: 13px;
font-family: $font-serif;
}
.brandText { .brandText {
color: #fff; color: #fff;
font-weight: 600; font-weight: 600;
@@ -72,7 +72,6 @@ export const TopNav: React.FC<ITopNavProps> = ({ active, onSelect }) => {
return ( return (
<nav className={styles.topnav}> <nav className={styles.topnav}>
<div className={styles.brand}> <div className={styles.brand}>
<div className={styles.mark}>{texts.nav.markLetter}</div>
<div className={styles.brandText}>{texts.nav.title}</div> <div className={styles.brandText}>{texts.nav.title}</div>
</div> </div>
<div className={styles.tabs} ref={tabsRef}> <div className={styles.tabs} ref={tabsRef}>
@@ -110,7 +110,7 @@ export const RouteStepsScreen: React.FC<IRouteStepsScreenProps> = ({ api, route,
key: 'status', key: 'status',
header: texts.routeSteps.columnStatus, header: texts.routeSteps.columnStatus,
render: r => ( render: r => (
<Badge variant={r.status === RouteStepStatus.Approval ? 'gold' : 'blue'}> <Badge variant={r.status === RouteStepStatus.Approval ? 'neutral' : 'blue'}>
{routeStepStatusLabels[r.status]} {routeStepStatusLabels[r.status]}
</Badge> </Badge>
) )
@@ -29,21 +29,10 @@
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: space-between; justify-content: space-between;
box-shadow: $sh-2; box-shadow: $sh-1;
margin-bottom: 24px; margin-bottom: 24px;
flex-wrap: wrap; flex-wrap: wrap;
gap: 14px; gap: 14px;
&::after {
content: '';
position: absolute;
right: -60px;
top: -60px;
width: 220px;
height: 220px;
border-radius: 50%;
background: radial-gradient(circle, rgba(212,160,30,.14), transparent 65%);
}
} }
.phLeft { display: flex; align-items: center; gap: 18px; position: relative; z-index: 1; } .phLeft { display: flex; align-items: center; gap: 18px; position: relative; z-index: 1; }
@@ -52,9 +41,9 @@
width: 46px; width: 46px;
height: 46px; height: 46px;
border-radius: $r-md; border-radius: $r-md;
background: rgba(212,160,30,.14); background: $gold-100;
border: 1px solid rgba(212,160,30,.3); border: 1px solid $gold-300;
color: $gold-300; color: $gold-600;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
@@ -63,7 +52,7 @@
.phSub { .phSub {
font-size: 10.5px; font-size: 10.5px;
color: rgba(255,255,255,.55); color: $gray-500;
text-transform: uppercase; text-transform: uppercase;
letter-spacing: 1.8px; letter-spacing: 1.8px;
font-weight: 500; font-weight: 500;
@@ -73,7 +62,7 @@
font-family: $font-serif; font-family: $font-serif;
font-size: $fs-page-title; font-size: $fs-page-title;
font-weight: 600; font-weight: 600;
color: #fff; color: $navy-900;
margin-top: 3px; margin-top: 3px;
letter-spacing: .2px; letter-spacing: .2px;
} }
@@ -63,8 +63,6 @@ export const texts = {
}, },
nav: { nav: {
/** Буква в золотом квадрате логотипа — не зависит от заголовка панели. */
markLetter: 'T',
title: 'Панель настройки маршрутов', title: 'Панель настройки маршрутов',
dashboard: 'Дашборд', dashboard: 'Дашборд',
requestTypes: 'Типы заявок', requestTypes: 'Типы заявок',