Элементы по отдельности
This commit is contained in:
BIN
lab1/report/img/elements/button-primary.png
Normal file
BIN
lab1/report/img/elements/button-primary.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.4 KiB |
BIN
lab1/report/img/elements/card.png
Normal file
BIN
lab1/report/img/elements/card.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 18 KiB |
BIN
lab1/report/img/elements/list-item.png
Normal file
BIN
lab1/report/img/elements/list-item.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 14 KiB |
BIN
lab1/report/img/elements/navigation-bar.png
Normal file
BIN
lab1/report/img/elements/navigation-bar.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 10 KiB |
BIN
lab1/report/img/elements/search-bar.png
Normal file
BIN
lab1/report/img/elements/search-bar.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.3 KiB |
BIN
lab1/report/img/elements/sos-button.png
Normal file
BIN
lab1/report/img/elements/sos-button.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 10 KiB |
@@ -880,6 +880,7 @@
|
||||
\item Тревожный сигнал при активации SOS (можно отключить, если нужна скрытность).
|
||||
\end{itemize}
|
||||
|
||||
\newpage
|
||||
\section{Шаблон экранной формы}
|
||||
|
||||
Шаблон экранной формы определяет единую структуру для всех основных экранов мобильного приложения. Он обеспечивает визуальную согласованность, предсказуемость навигации и соответствие принципам дизайна, описанным в предыдущем разделе.
|
||||
@@ -893,11 +894,71 @@
|
||||
|
||||
\item \textbf{Основная область контента (Main)} --- прокручиваемая область для размещения содержимого конкретного экрана. Включает заголовок экрана (22pt, полужирный), описание при необходимости (16pt, серый цвет), карточки с информацией и элементы управления. Отступы от краёв 20pt, отступ снизу 80pt для навигационной панели.
|
||||
|
||||
\item \textbf{Нижняя навигационная панель (Navigation)} --- фиксирована внизу экрана, высота 72pt, белый фон с тенью. Содержит 5 навигационных кнопок с иконками и подписями: "Маршрут", "Корзина", "Главная", "Чат", "Группа". Активная вкладка выделяется зелёным цветом текста и подчёркиванием снизу.
|
||||
\item \textbf{Нижняя навигационная панель (Navigation)} --- фиксирована внизу экрана, высота 72pt, белый фон с тенью. Содержит 5 навигационных кнопок с иконками и подписями: "Маршрут", "Корзина", "Главная", "Чат", "Справочник". Активная вкладка выделяется зелёным цветом текста и подчёркиванием снизу.
|
||||
|
||||
\item \textbf{Кнопка SOS} --- расположена в правом нижнем углу над навигацией, размер 80×80pt, красный цвет (\#C0392B), круглая форма с белой обводкой 4pt. Постоянно видима на всех экранах, имеет анимацию пульсации для привлечения внимания.
|
||||
\end{itemize}
|
||||
|
||||
\subsection{Основные элементы интерфейса}
|
||||
|
||||
Шаблон использует набор унифицированных элементов интерфейса, обеспечивающих визуальную согласованность и предсказуемость взаимодействия.
|
||||
|
||||
\textbf{Кнопка SOS} --- критически важный элемент безопасности, доступный на всех экранах. Размер 80×80pt обеспечивает уверенное нажатие даже в стрессовой ситуации. Красный цвет \#C0392B мгновенно привлекает внимание, белая обводка 4pt создаёт контраст с любым фоном.
|
||||
|
||||
\begin{figure}[h!]
|
||||
\centering
|
||||
\includegraphics[width=0.2\linewidth]{img/elements/sos-button.png}
|
||||
\caption{Кнопка SOS}
|
||||
\label{fig:sos-button}
|
||||
\end{figure}
|
||||
|
||||
\newpage
|
||||
\textbf{Карточка (Card)} --- базовый контейнер для группировки связанного контента. Белый фон \#FFFFFF, радиус скругления 12pt, отступы 16pt. Тень средней интенсивности. Используется для информации о маршруте, участниках, находках.
|
||||
|
||||
\begin{figure}[h!]
|
||||
\centering
|
||||
\includegraphics[width=0.35\linewidth]{img/elements/card.png}
|
||||
\caption{Карточка контента}
|
||||
\label{fig:card}
|
||||
\end{figure}
|
||||
|
||||
\textbf{Основная кнопка} --- минимальная высота 48pt (стандарт ISO 9241-161 для сенсорных элементов), радиус 8pt, шрифт 16pt полужирный. Основная кнопка (primary) имеет оранжевый цвет \#E67E22, вторичная (secondary) --- светло-серый \#ECF0F1. При нажатии кнопка уменьшается до 97\% размера для тактильного отклика.
|
||||
|
||||
\begin{figure}[h!]
|
||||
\centering
|
||||
\includegraphics[width=0.35\linewidth]{img/elements/button-primary.png}
|
||||
\caption{Основная и вторичная кнопки}
|
||||
\label{fig:button-primary}
|
||||
\end{figure}
|
||||
|
||||
\textbf{Элемент списка} --- используется для участников, находок, контрольных точек. Иконка 40×40pt в скруглённом контейнере слева, заголовок 17pt полужирный, подзаголовок 14pt серый цвет. Отступы 14pt по вертикали, 16pt по горизонтали. Белый фон, радиус 12pt, лёгкая тень.
|
||||
|
||||
\begin{figure}[h!]
|
||||
\centering
|
||||
\includegraphics[width=0.35\linewidth]{img/elements/list-item.png}
|
||||
\caption{Элемент списка}
|
||||
\label{fig:list-item}
|
||||
\end{figure}
|
||||
|
||||
\newpage
|
||||
\textbf{Поисковое поле} --- высота 48pt, радиус 12pt, иконка лупы 20pt слева, текст 16pt. Фон белый с лёгкой тенью. Placeholder серого цвета \#7F8C8D. Используется в справочнике грибов для быстрого поиска по названию.
|
||||
|
||||
\begin{figure}[h!]
|
||||
\centering
|
||||
\includegraphics[width=0.35\linewidth]{img/elements/search-bar.png}
|
||||
\caption{Поисковое поле}
|
||||
\label{fig:search-bar}
|
||||
\end{figure}
|
||||
|
||||
\textbf{Навигационная панель} --- высота 72pt, 5 кнопок равной ширины. Иконки 24pt, подписи 11pt. Активная вкладка: зелёный цвет текста \#2D5F3F, полужирное начертание, подчёркивание снизу 3pt высотой. Неактивные: серый цвет \#7F8C8D, обычное начертание.
|
||||
|
||||
\begin{figure}[h!]
|
||||
\centering
|
||||
\includegraphics[width=0.4\linewidth]{img/elements/navigation-bar.png}
|
||||
\caption{Навигационная панель}
|
||||
\label{fig:navigation-bar}
|
||||
\end{figure}
|
||||
|
||||
\subsection{Визуальные особенности}
|
||||
|
||||
Шаблон реализует описанную ранее цветовую палитру и типографику:
|
||||
@@ -918,6 +979,8 @@
|
||||
\label{fig:template}
|
||||
\end{figure}
|
||||
|
||||
\newpage
|
||||
\phantom{text}
|
||||
\newpage
|
||||
\section{Эскизы экранных форм}
|
||||
|
||||
|
||||
60
lab1/screen-forms/elements/button-primary.html
Normal file
60
lab1/screen-forms/elements/button-primary.html
Normal file
@@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="ru">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Основная кнопка</title>
|
||||
<link rel="stylesheet" href="../common.css">
|
||||
<style>
|
||||
body {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
min-height: 100vh;
|
||||
background: var(--color-bg-light);
|
||||
padding: 40px;
|
||||
}
|
||||
|
||||
.element-container {
|
||||
width: 335px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 20px;
|
||||
}
|
||||
|
||||
.element-title {
|
||||
font-size: 20px;
|
||||
font-weight: 600;
|
||||
color: var(--color-text-dark);
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.element-description {
|
||||
font-size: 14px;
|
||||
color: var(--color-text-medium);
|
||||
text-align: center;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="element-container">
|
||||
<h2 class="element-title">Основная кнопка</h2>
|
||||
|
||||
<button class="btn btn-primary btn-full">Создать поход</button>
|
||||
|
||||
<button class="btn btn-secondary btn-full">Сохранить черновик</button>
|
||||
|
||||
<p class="element-description">
|
||||
Минимальная высота: 48pt<br>
|
||||
Радиус: 8pt<br>
|
||||
Шрифт: 16pt, полужирный<br>
|
||||
Основная: оранжевый #E67E22<br>
|
||||
Вторичная: светло-серый #ECF0F1
|
||||
</p>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
63
lab1/screen-forms/elements/card.html
Normal file
63
lab1/screen-forms/elements/card.html
Normal file
@@ -0,0 +1,63 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="ru">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Карточка</title>
|
||||
<link rel="stylesheet" href="../common.css">
|
||||
<style>
|
||||
body {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
min-height: 100vh;
|
||||
background: var(--color-bg-light);
|
||||
padding: 40px;
|
||||
}
|
||||
|
||||
.element-container {
|
||||
width: 335px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 20px;
|
||||
}
|
||||
|
||||
.element-title {
|
||||
font-size: 20px;
|
||||
font-weight: 600;
|
||||
color: var(--color-text-dark);
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.element-description {
|
||||
font-size: 14px;
|
||||
color: var(--color-text-medium);
|
||||
text-align: center;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="element-container">
|
||||
<h2 class="element-title">Карточка (Card)</h2>
|
||||
|
||||
<div class="card">
|
||||
<h3 class="card-title">Заголовок карточки</h3>
|
||||
<p class="card-text">
|
||||
Содержимое карточки с информацией.
|
||||
Карточки используются для группировки связанного контента.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<p class="element-description">
|
||||
Фон: белый (#FFFFFF)<br>
|
||||
Радиус: 12pt<br>
|
||||
Отступы: 16pt<br>
|
||||
Тень: средняя (shadow-md)
|
||||
</p>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
71
lab1/screen-forms/elements/list-item.html
Normal file
71
lab1/screen-forms/elements/list-item.html
Normal file
@@ -0,0 +1,71 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="ru">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Элемент списка</title>
|
||||
<link rel="stylesheet" href="../common.css">
|
||||
<style>
|
||||
body {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
min-height: 100vh;
|
||||
background: var(--color-bg-light);
|
||||
padding: 40px;
|
||||
}
|
||||
|
||||
.element-container {
|
||||
width: 335px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 20px;
|
||||
}
|
||||
|
||||
.element-title {
|
||||
font-size: 20px;
|
||||
font-weight: 600;
|
||||
color: var(--color-text-dark);
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.element-description {
|
||||
font-size: 14px;
|
||||
color: var(--color-text-medium);
|
||||
text-align: center;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="element-container">
|
||||
<h2 class="element-title">Элемент списка</h2>
|
||||
|
||||
<div class="list-item">
|
||||
<div class="list-item-icon">📍</div>
|
||||
<div class="list-item-content">
|
||||
<div class="list-item-title">Заголовок элемента</div>
|
||||
<div class="list-item-subtitle">Дополнительная информация</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="list-item">
|
||||
<div class="list-item-icon">🍄</div>
|
||||
<div class="list-item-content">
|
||||
<div class="list-item-title">Белый гриб</div>
|
||||
<div class="list-item-subtitle">Найден в 14:35</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p class="element-description">
|
||||
Высота иконки: 40×40pt<br>
|
||||
Заголовок: 17pt, полужирный<br>
|
||||
Подзаголовок: 14pt, серый<br>
|
||||
Отступы: 14pt вертикально, 16pt горизонтально
|
||||
</p>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
84
lab1/screen-forms/elements/navigation-bar.html
Normal file
84
lab1/screen-forms/elements/navigation-bar.html
Normal file
@@ -0,0 +1,84 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="ru">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Навигационная панель</title>
|
||||
<link rel="stylesheet" href="../common.css">
|
||||
<style>
|
||||
body {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
min-height: 100vh;
|
||||
background: var(--color-bg-light);
|
||||
padding: 40px;
|
||||
}
|
||||
|
||||
.element-container {
|
||||
width: 375px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 20px;
|
||||
}
|
||||
|
||||
.element-title {
|
||||
font-size: 20px;
|
||||
font-weight: 600;
|
||||
color: var(--color-text-dark);
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.element-description {
|
||||
font-size: 14px;
|
||||
color: var(--color-text-medium);
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.nav-container {
|
||||
position: relative;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="element-container">
|
||||
<h2 class="element-title">Навигационная панель</h2>
|
||||
|
||||
<div class="nav-container">
|
||||
<nav class="app-navigation" style="position: relative; bottom: 0;">
|
||||
<button class="nav-button">
|
||||
<span class="nav-icon">🗺️</span>
|
||||
<span class="nav-label">Маршрут</span>
|
||||
</button>
|
||||
<button class="nav-button">
|
||||
<span class="nav-icon">🧺</span>
|
||||
<span class="nav-label">Корзина</span>
|
||||
</button>
|
||||
<button class="nav-button nav-button-active">
|
||||
<span class="nav-icon">🏠</span>
|
||||
<span class="nav-label">Главная</span>
|
||||
</button>
|
||||
<button class="nav-button">
|
||||
<span class="nav-icon">💬</span>
|
||||
<span class="nav-label">Чат</span>
|
||||
</button>
|
||||
<button class="nav-button">
|
||||
<span class="nav-icon">📖</span>
|
||||
<span class="nav-label">Справочник</span>
|
||||
</button>
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
<p class="element-description">
|
||||
Высота: 72pt<br>
|
||||
5 кнопок: Маршрут, Корзина, Главная, Чат, Справочник<br>
|
||||
Активная вкладка: зелёный текст + подчёркивание<br>
|
||||
Иконки: 24pt, подписи: 11pt
|
||||
</p>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
89
lab1/screen-forms/elements/search-bar.html
Normal file
89
lab1/screen-forms/elements/search-bar.html
Normal file
@@ -0,0 +1,89 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="ru">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Поисковое поле</title>
|
||||
<link rel="stylesheet" href="../common.css">
|
||||
<style>
|
||||
body {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
min-height: 100vh;
|
||||
background: var(--color-bg-light);
|
||||
padding: 40px;
|
||||
}
|
||||
|
||||
.element-container {
|
||||
width: 335px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 20px;
|
||||
}
|
||||
|
||||
.element-title {
|
||||
font-size: 20px;
|
||||
font-weight: 600;
|
||||
color: var(--color-text-dark);
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.search-bar {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: var(--spacing-md);
|
||||
background: var(--color-bg-card);
|
||||
border-radius: var(--radius-md);
|
||||
padding: var(--spacing-md) var(--spacing-lg);
|
||||
box-shadow: var(--shadow-sm);
|
||||
}
|
||||
|
||||
.search-icon {
|
||||
font-size: 20px;
|
||||
color: var(--color-text-medium);
|
||||
}
|
||||
|
||||
.search-input {
|
||||
flex: 1;
|
||||
border: none;
|
||||
outline: none;
|
||||
font-size: var(--font-size-base);
|
||||
font-family: var(--font-family);
|
||||
color: var(--color-text-dark);
|
||||
background: transparent;
|
||||
}
|
||||
|
||||
.search-input::placeholder {
|
||||
color: var(--color-text-medium);
|
||||
}
|
||||
|
||||
.element-description {
|
||||
font-size: 14px;
|
||||
color: var(--color-text-medium);
|
||||
text-align: center;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="element-container">
|
||||
<h2 class="element-title">Поисковое поле</h2>
|
||||
|
||||
<div class="search-bar">
|
||||
<span class="search-icon">🔍</span>
|
||||
<input type="text" class="search-input" placeholder="Поиск гриба...">
|
||||
</div>
|
||||
|
||||
<p class="element-description">
|
||||
Высота: 48pt (минимальный размер касания)<br>
|
||||
Радиус: 12pt<br>
|
||||
Шрифт: 16pt<br>
|
||||
Тень: лёгкая (shadow-sm)
|
||||
</p>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
60
lab1/screen-forms/elements/sos-button.html
Normal file
60
lab1/screen-forms/elements/sos-button.html
Normal file
@@ -0,0 +1,60 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="ru">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Кнопка SOS</title>
|
||||
<link rel="stylesheet" href="../common.css">
|
||||
<style>
|
||||
body {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
min-height: 100vh;
|
||||
background: var(--color-bg-light);
|
||||
padding: 40px;
|
||||
}
|
||||
|
||||
.element-container {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
gap: 20px;
|
||||
}
|
||||
|
||||
.element-title {
|
||||
font-size: 20px;
|
||||
font-weight: 600;
|
||||
color: var(--color-text-dark);
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.element-description {
|
||||
font-size: 14px;
|
||||
color: var(--color-text-medium);
|
||||
text-align: center;
|
||||
max-width: 300px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div class="element-container">
|
||||
<h2 class="element-title">Кнопка SOS</h2>
|
||||
|
||||
<button class="sos-button">
|
||||
<span class="sos-icon">🆘</span>
|
||||
</button>
|
||||
|
||||
<p class="element-description">
|
||||
Размер: 80×80pt<br>
|
||||
Цвет: #C0392B (красный)<br>
|
||||
Обводка: 4pt белая<br>
|
||||
Анимация: пульсация
|
||||
</p>
|
||||
</div>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user