Files
ftp/brize.css

515 lines
12 KiB
CSS
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/* ============================================================
Тема Redmine — ТСН Бризе
Стиль: современный минимализм, природная палитра
Версия: 1.0 | 2026
============================================================ */
/* --- Переменные палитры ------------------------------------ */
:root {
--brize-dark: #1d3a1d; /* шапка, заголовки */
--brize-mid: #2d5a2d; /* акцент, кнопки */
--brize-accent: #4a8a44; /* ссылки, иконки */
--brize-light: #eef1eb; /* фон сайдбара, тулбара */
--brize-bg: #f5f7f4; /* фон страницы */
--brize-border: #d0d8cc; /* бордеры */
--brize-text: #1a2e1a; /* основной текст */
--brize-muted: #6a9260; /* вспомогательный текст */
--brize-header-fg: #a8c8a0; /* текст в шапке */
--brize-header-link:#7aaa72; /* ссылки в шапке */
--brize-urgent: #c05028; /* аварийное */
}
/* --- Шрифты ------------------------------------------------ */
@import url('https://fonts.googleapis.com/css2?family=Geologica:wght@300;400;500&family=Unbounded:wght@400;500&display=swap');
body {
font-family: 'Geologica', -apple-system, sans-serif;
font-size: 13px;
color: var(--brize-text);
background: var(--brize-bg);
}
/* --- Шапка (header) --------------------------------------- */
#header {
background: var(--brize-dark) !important;
border-bottom: none !important;
box-shadow: none !important;
padding: 0 24px;
height: 52px;
display: flex;
align-items: center;
}
#header h1,
#header h1 a {
font-family: 'Unbounded', sans-serif !important;
font-size: 13px !important;
font-weight: 400 !important;
color: var(--brize-header-fg) !important;
letter-spacing: .04em;
text-decoration: none;
}
#header h1 a:hover {
color: #c8e8c0 !important;
}
/* Навигация в шапке */
#navigation {
background: transparent !important;
border: none !important;
}
#navigation ul li a,
#navigation ul li a:visited {
color: var(--brize-header-link) !important;
font-family: 'Geologica', sans-serif;
font-size: 12px;
padding: 6px 10px;
border-radius: 5px;
transition: background .15s, color .15s;
}
#navigation ul li a:hover,
#navigation ul li.selected a {
background: rgba(120, 180, 110, .15) !important;
color: #c8e8c0 !important;
}
/* Пользовательское меню */
#loggedas,
#account {
color: var(--brize-header-link) !important;
font-size: 12px;
}
#account a,
#loggedas a {
color: var(--brize-header-link) !important;
}
/* Поиск в шапке */
#header #quick-search input {
background: rgba(255,255,255,.08) !important;
border: 0.5px solid rgba(255,255,255,.15) !important;
color: #c8e8c0 !important;
border-radius: 6px;
font-size: 12px;
}
#header #quick-search input::placeholder {
color: rgba(168, 200, 160, .5);
}
/* --- Основной layout -------------------------------------- */
#main {
background: var(--brize-bg);
}
#sidebar {
background: var(--brize-light);
border-right: 0.5px solid var(--brize-border);
}
#content {
background: var(--brize-bg);
}
/* --- Сайдбар ---------------------------------------------- */
#sidebar h3,
#sidebar h4 {
font-family: 'Geologica', sans-serif;
font-size: 10px;
font-weight: 500;
color: var(--brize-muted);
text-transform: uppercase;
letter-spacing: .08em;
border-bottom: none;
padding-bottom: 4px;
margin-bottom: 4px;
}
#sidebar ul li a {
color: var(--brize-accent) !important;
font-size: 12px;
padding: 4px 8px;
border-radius: 5px;
display: block;
}
#sidebar ul li a:hover {
background: rgba(60, 110, 55, .08);
color: var(--brize-mid) !important;
}
/* --- Тулбар над контентом --------------------------------- */
#main-menu,
div.contextual {
background: var(--brize-light);
border-bottom: 0.5px solid var(--brize-border);
}
/* --- Заголовки страниц ------------------------------------ */
h1, h2 {
font-family: 'Unbounded', sans-serif !important;
font-weight: 400 !important;
color: var(--brize-dark) !important;
letter-spacing: -.01em;
}
h1 { font-size: 18px !important; margin-bottom: 16px; }
h2 { font-size: 14px !important; margin-bottom: 10px; }
h3 { font-size: 13px; font-weight: 500; color: var(--brize-dark); }
/* --- Ссылки ----------------------------------------------- */
a, a:visited {
color: var(--brize-accent) !important;
text-decoration: none;
}
a:hover {
color: var(--brize-mid) !important;
text-decoration: underline;
}
/* --- Кнопки ----------------------------------------------- */
.button,
input[type=submit],
input[type=button],
a.button {
background: var(--brize-mid) !important;
color: #c8e8c0 !important;
border: none !important;
border-radius: 6px !important;
font-family: 'Geologica', sans-serif !important;
font-size: 12px !important;
font-weight: 400 !important;
padding: 6px 14px !important;
cursor: pointer;
transition: background .15s;
}
.button:hover,
input[type=submit]:hover,
a.button:hover {
background: var(--brize-dark) !important;
color: #c8e8c0 !important;
}
/* Второстепенные кнопки */
a.icon, .icon-only {
color: var(--brize-accent) !important;
}
/* --- Таблица задач ---------------------------------------- */
table.list {
border-collapse: collapse;
width: 100%;
background: #fff;
border: 0.5px solid var(--brize-border);
border-radius: 8px;
overflow: hidden;
}
table.list thead th {
background: var(--brize-light) !important;
color: var(--brize-muted) !important;
font-size: 10px;
font-weight: 500;
text-transform: uppercase;
letter-spacing: .05em;
border-bottom: 0.5px solid var(--brize-border) !important;
padding: 8px 12px;
}
table.list thead th a {
color: var(--brize-muted) !important;
}
table.list tbody tr td {
padding: 8px 12px;
border-top: 0.5px solid #e8ede4;
font-size: 12px;
color: var(--brize-text);
}
table.list tbody tr:hover td {
background: #f8faf6;
}
table.list tbody tr.odd td {
background: transparent;
}
table.list tbody tr.even td {
background: #fafcf8;
}
table.list tbody tr.even:hover td,
table.list tbody tr.odd:hover td {
background: #f2f6ef;
}
/* --- Статусы задач (badges) ------------------------------- */
.issue-status-label,
span.status {
display: inline-block;
font-size: 10px;
font-weight: 500;
padding: 2px 8px;
border-radius: 10px;
}
/* Настрой под свои реальные имена статусов */
.status-new, [class*="New"] { background: #e8ede4; color: #3d5e38; }
.status-in-progress, [class*="In Progress"] { background: #ddeef8; color: #1a5080; }
.status-resolved, [class*="Resolved"] { background: #d8ecd0; color: #2a5824; }
.status-closed, [class*="Closed"] { background: #f0ede8; color: #5a5450; }
.status-urgent { background: #fde8e0; color: #8a3020; }
/* --- Приоритеты ------------------------------------------- */
.priority-urgent, .priority-immediate {
color: var(--brize-urgent) !important;
font-weight: 500;
}
/* --- Блок деталей задачи ---------------------------------- */
#issue-detail,
.issue.details {
background: #fff;
border: 0.5px solid var(--brize-border);
border-radius: 8px;
padding: 20px 24px;
}
.issue.details h3 {
border-bottom: 0.5px solid var(--brize-border);
padding-bottom: 8px;
margin-bottom: 12px;
}
/* Атрибуты задачи */
table.attributes th {
color: var(--brize-muted);
font-size: 11px;
font-weight: 500;
text-align: right;
padding-right: 12px;
white-space: nowrap;
}
table.attributes td {
font-size: 12px;
color: var(--brize-text);
}
/* --- Журнал (комментарии) --------------------------------- */
div.journal {
background: #fff;
border: 0.5px solid var(--brize-border);
border-radius: 8px;
margin-bottom: 10px;
overflow: hidden;
}
div.journal h4 {
background: var(--brize-light);
padding: 8px 14px;
font-size: 11px;
font-weight: 500;
color: var(--brize-muted);
border-bottom: 0.5px solid var(--brize-border);
margin: 0;
}
div.journal .wiki {
padding: 12px 14px;
font-size: 13px;
line-height: 1.6;
}
/* --- Wiki ------------------------------------------------- */
#wiki {
background: #fff;
border: 0.5px solid var(--brize-border);
border-radius: 8px;
padding: 24px;
line-height: 1.7;
}
#wiki h1, #wiki h2, #wiki h3 {
border-bottom: 0.5px solid var(--brize-border);
padding-bottom: 6px;
}
#wiki table {
border-collapse: collapse;
width: 100%;
}
#wiki table th {
background: var(--brize-light);
padding: 6px 10px;
font-size: 12px;
text-align: left;
border: 0.5px solid var(--brize-border);
}
#wiki table td {
padding: 6px 10px;
font-size: 12px;
border: 0.5px solid var(--brize-border);
}
/* --- Формы ------------------------------------------------- */
input[type=text],
input[type=email],
input[type=password],
textarea,
select {
font-family: 'Geologica', sans-serif !important;
font-size: 13px !important;
border: 0.5px solid var(--brize-border) !important;
border-radius: 6px !important;
padding: 6px 10px !important;
background: #fff !important;
color: var(--brize-text) !important;
transition: border-color .15s;
}
input[type=text]:focus,
textarea:focus,
select:focus {
border-color: var(--brize-accent) !important;
outline: none !important;
box-shadow: 0 0 0 3px rgba(74, 138, 68, .12) !important;
}
/* --- Флеш-уведомления ------------------------------------- */
div#flash_notice, p.notice {
background: #d8ecd0;
color: #1d3a1d;
border: 0.5px solid #b0d0a8;
border-radius: 6px;
padding: 10px 14px;
font-size: 12px;
}
div#flash_error, p.error {
background: #fde8e0;
color: #6a2010;
border: 0.5px solid #f0b8a0;
border-radius: 6px;
padding: 10px 14px;
font-size: 12px;
}
div#flash_warning {
background: #fdf3d8;
color: #5a3c08;
border: 0.5px solid #f0d898;
border-radius: 6px;
padding: 10px 14px;
font-size: 12px;
}
/* --- Пагинация -------------------------------------------- */
p.pagination {
font-size: 12px;
color: var(--brize-muted);
}
p.pagination a {
color: var(--brize-accent) !important;
border: 0.5px solid var(--brize-border);
padding: 3px 8px;
border-radius: 4px;
}
p.pagination a:hover {
background: var(--brize-light);
}
p.pagination span.current {
background: var(--brize-mid);
color: #c8e8c0;
padding: 3px 8px;
border-radius: 4px;
}
/* --- Стартовая страница / Welcome block ------------------- */
#welcome {
background: var(--brize-dark);
border-radius: 8px;
padding: 20px 24px;
margin-bottom: 20px;
color: var(--brize-header-fg);
}
#welcome h2 {
font-family: 'Unbounded', sans-serif !important;
font-size: 15px !important;
color: #c8e8c0 !important;
margin-bottom: 6px;
}
#welcome p {
color: var(--brize-header-link);
font-size: 12px;
}
/* --- Хлебные крошки --------------------------------------- */
p#breadcrumb,
div.breadcrumb {
font-size: 11px;
color: var(--brize-muted);
padding: 8px 0;
}
div.breadcrumb a {
color: var(--brize-accent) !important;
}
/* --- Табы (вкладки) --------------------------------------- */
div.tabs ul li a {
color: var(--brize-accent) !important;
border-bottom: 2px solid transparent;
font-size: 12px;
padding: 6px 12px;
transition: border-color .15s;
}
div.tabs ul li a:hover,
div.tabs ul li.selected a {
border-bottom-color: var(--brize-mid);
color: var(--brize-mid) !important;
background: transparent !important;
}
/* --- Gantt / Календарь ------------------------------------ */
.gantt_hdr {
background: var(--brize-light) !important;
color: var(--brize-muted) !important;
font-size: 11px;
}
/* --- Скроллбар (webkit) ----------------------------------- */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: var(--brize-bg); }
::-webkit-scrollbar-thumb { background: #b8c8b0; border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: var(--brize-accent); }
/* --- Футер ------------------------------------------------ */
#footer {
background: var(--brize-dark);
color: #5a7a54;
font-size: 11px;
text-align: center;
padding: 12px;
border-top: none;
}
#footer a {
color: #6a9a64 !important;
}