Maksutov Design МАКСУТОВ ДИЗАЙН
Web design Design system PWA RU / EN

Читатель аюрведы

Веб-приложение для чтения классических текстов аюрведы: 9 книг, 841 глава и более 34 500 стихов в оригинале, транслитерации и переводе. Я спроектировал интерфейс, собрал дизайн-систему со светлой и тёмной темами, нарисовал 91 иконок, продумал мобильную версию и реализовал всё на чистом JavaScript.

01 / масштаб и задача

Библиотека первоисточников, которую удобно читать на любом экране

9книг: от «Аштанга-хридаи» до «Расаратна-самуччаи»
841глава в одном читателе
34 500+стихов: деванагари, IAST и перевод
241статья энциклопедии в 45 разделах
397терминов в глоссарии санскрита
84болезни в отдельном глоссарии
113домашних средств
60вопросов в тесте конституции

Исходная задача — сделать читаемым то, что обычно читают в PDF и сканах: санскритский текст рядом с научной транслитерацией и переводом, комментарии, термины с пояснениями. Любой стих должен находиться за секунды, а длинная глава — читаться без усталости глаз.

Поэтому интерфейс устроен как книга и справочник одновременно: слева — оглавление и разделы, справа — спокойная колонка текста. Вокруг чтения выросли энциклопедия, глоссарии, домашние средства, расписание питания и тест конституции — и всё это живёт в одной системе компонентов.

02 / структура интерфейса

Левая навигация, одна колонка чтения и ничего лишнего

Экран собран из двух зон. Левая колонка шириной 280 px — навигация: логотип, переключатель языка и темы, поиск по всем книгам, выбор книги, главы по частям (стханам) и десять разделов приложения. Правая область — контент: на главной это приветствие и карточки книг, в читателе — узкая колонка текста с комфортной длиной строки.

Снизу закреплена тонкая полоса со ссылками на Telegram-канал и бот и счётчиком посетителей, а над ней — свёрнутый медицинский дисклеймер, который можно закрыть. На телефоне левая колонка превращается в выезжающее меню.

ayurvedareader.ru
01 — главная: библиотека
01 — главная: библиотекаПриветствие, статистика в чипах и сетка из девяти карточек книг. Каждая книга получила свою цветную иконку.
ayurvedareader.ru
02 — читатель
02 — читательЗаголовок главы, переключатель «деванагари / транслит», переход к стиху по номеру и карточка стиха с тремя слоями текста.

Анатомия карточки стиха

  • Номер стиха11 px, 700, капитель с разрядкой 0,88 px, цвет --verse-num
  • ДеванагариNoto Sans Devanagari, 18 px, интерлиньяж 36 px — санскрит читается крупно
  • IASTGeorgia italic, 14 px, спокойный серо-коричневый — научная транслитерация
  • ПереводGeorgia, 15,5 px, интерлиньяж 1,82 — основной смысловой слой
  • Действияподелиться стихом, озвучить санскрит, русский или английский перевод (Web Speech API)
  • Комментарийсворачиваемый блок «Комментарий» с зелёной полосой слева и автором

03 / экраны

Девять разделов — одна система

Разделы разные по содержанию, но собраны из одних и тех же деталей: те же карточки, чипы, поля поиска, иконки и отступы. Благодаря этому пользователь не учит интерфейс заново на каждом экране.

ayurvedareader.ru
03 — поиск по всем книгам
03 — поиск по всем книгамМгновенный поиск по тексту девяти книг с подсветкой совпадений: по слову «доша» находится 1 443 результата, каждый ведёт к стиху.
ayurvedareader.ru
04 — энциклопедия
04 — энциклопедия45 разделов с цветными иконками, счётчиком статей и коротким описанием. Раздел открывается в список статей, а статья — в полноценный текст с источниками.
ayurvedareader.ru
05 — статья энциклопедии
05 — статья энциклопедииСтатья: заголовок, краткое резюме, структурированный текст и список источников внизу.
ayurvedareader.ru
06 — глоссарий терминов
06 — глоссарий терминов397 терминов санскрита с транслитерацией, пояснением и переходом к статье энциклопедии, а также кнопкой «поделиться».
ayurvedareader.ru
07 — глоссарий болезней
07 — глоссарий болезней84 болезни: доша, категория, описание и подсказка по лечению, привязка к главам первоисточников.
ayurvedareader.ru
08 — домашние средства
08 — домашние средства113 средств в виде списка с поиском и карточки с составом и способом применения.
ayurvedareader.ru
09 — расписание питания
09 — расписание питанияТаблица оптимального времени приёма продуктов: категории-фильтры и шкала «с какого и до какого часа» для каждого продукта.
ayurvedareader.ru
10 — тест конституции
10 — тест конституции60 вопросов в трёх разделах — вата, питта, капха: ползунок от 0 до 6, прогресс и итоговый результат.
ayurvedareader.ru
11 — источники
11 — источникиСписок использованных изданий: переводчики, комментаторы и происхождение каждого текста на сайте.

04 / дизайн-система

Полная дизайн-система: цвета, шрифты, иконки, компоненты и состояния

Дизайн-система живёт в CSS-переменных и одном общем наборе компонентов — на ней держатся все экраны. Ниже она разобрана целиком: токены цвета для двух тем, три шрифтовых семейства и типографическая шкала, 91 иконок, компоненты в живом виде, а также радиусы, тени, слои и анимации. Все примеры на этой странице — настоящий HTML, а не картинки.

4.1

Цвета

Тёплая «бумажная» палитра, светлая и тёмная темы

Палитра построена вокруг тёплой бумаги и коричневой «чернильной» акцентной линии: фон — тёплый кремовый, текст — почти чёрный коричневый, акцент — тёмное золото. Холодных цветов в интерфейсе нет — их использует только цветовая кодировка иконок и три цвета дош в тесте. Все цвета заданы переменными на :root, а тёмная тема переопределяет их классом body.dark.

Светлая тема

--bg#faf8f4
--bg-sidebar#f2ede4
--bg-card#ffffff
--bg-verse#fffef8
--bg-comment#f7f5f0
--bg-hover#ede8dd
--bg-active#d9c9a8
--text#2c2416
--text-muted#776a52
--text-sidebar#4a3e2c
--accent#7a5c2e
--accent-light#c9a96e
--border#e0d8c8
--border-strong#c8bda8
--verse-num#9a7d4a
--comment-tag#7a8a6a
--search-bg#fffdf8
--term-bgrgba(122,92,46,.10)
--term-borderrgba(122,92,46,.30)
--accent-glowrgba(122,92,46,.15)

Тёмная тема

--bg#1a1712
--bg-sidebar#141210
--bg-card#1f1c17
--bg-verse#1f1c17
--bg-comment#18160f
--bg-hover#2a261d
--bg-active#3d3220
--text#e8dfc8
--text-muted#9a8d6e
--text-sidebar#c8b898
--accent#c9a96e
--accent-light#e8c98a
--border#2e2a20
--border-strong#3e3828
--verse-num#c9a96e
--comment-tag#8a9a7a
--search-bg#1f1c17
--term-bgrgba(201,169,110,.12)
--term-borderrgba(201,169,110,.30)
--accent-glowrgba(201,169,110,.15)

Цвета дош в тесте конституции

Ватавоздух · лёгкость, движение
Питтаогонь · тепло, метаболизм
Капхаземля и вода · устойчивость

Акцент меняется между темами: в светлой — #7a5c2e (тёмное золото), в тёмной — #c9a96e (светлое золото), так что контраст кнопок и ссылок сохраняется. Интерактивные состояния получают цвет из --bg-hover и --bg-active, а подсветка терминов — из --term-bg и --term-border.

4.2

Типографика

Georgia · system-ui · Noto Sans Devanagari

В системе три шрифтовых семейства, и у каждого своя роль. Georgia (serif) — для заголовков, перевода и транслитерации: он даёт «книжный» тон. system-ui — для интерфейса и основного текста: родной шрифт операционной системы, ноль загрузки. Noto Sans Devanagari — единственный загружаемый шрифт, нужен для санскрита.

Display / H1Georgia 700 · 32 / 38,4 px
Классические самхиты Аюрведы
Chapter titleGeorgia 700 · 27,2 / 34 px
Глава 1. Аюшкамия адхья
Subtitlesystem-ui italic · 14 / 22,4 px
стремление к долгой жизни
Bodysystem-ui 400 · 15 / 27 px
Слава апурва вайдье, который разрушил без остатка болезни, такие как рага (страсть) и другие.
DevanagariNoto Sans Devanagari 400 · 18 / 36 px · +0,36
रागादि-रोगान् सततानुषक्तान् अ-शेष-काय-प्रसृतान्
IASTGeorgia italic · 14 / 25,2 px · +0,14
rāgādi-rogān satatānuṣaktān a-śeṣa-kāya-prasṛtān
TranslationGeorgia 400 · 15,5 / 28,2 px
Теперь мы изложим главу Аюшкамия — так сказал Атрея и остальные мудрецы.
Commentsystem-ui 400 · 14,5 / 26,1 px
Комментарий И. И. Ветрова: слово «аюс» объединяет жизнь тела, чувств, ума и души.
Label / eyebrowsystem-ui 700 · 10–11 px · капитель +0,8–1 px
Сутрастхана · стих 1 · комментарий
UI controlsArial 600 · 12–13 px
Главная · Аштанга-хридая · Поиск по тексту…
РольСемействоРазмер / интерлиньяжВесНачертание / трекинг
ЗаголовкиGeorgia, Times New Roman, serif27–32 px / 34–38 px700нормальное
Основной текстsystem-ui, -apple-system, sans-serif15–16 px / 27 px400нормальное
СанскритNoto Sans Devanagari, serif18 px / 36 px400+0,36 px
IAST и переводGeorgia14–15,5 px / 25–28 px400курсив для IAST, +0,14 px
Меткиsystem-ui9–11 px / 16 px700капитель, +0,8–1 px
Кнопки и поляArial11–13 px600+0,24–0,33 px

Четыре размера чтения

Размер текста пользователь выбирает кнопкой «A» и сохраняет в браузере: масштаб применяется к основному тексту и всем производным размерам.

small · 14 px

Мелкий

normal · 16 px

Обычный

large · 18 px

Крупный

xlarge · 21 px

Очень крупный

4.3

Иконки

91 линейных SVG, один стиль

Все иконки нарисованы заново в едином стиле: сетка 24×24, линия 1,8 px со скруглёнными концами и закруглённая цветная подложка с радиусом 6,5 и прозрачностью 16 %. Цвет подложки и линии — один и тот же, у каждой иконки свой. Это помогает глазу различать разделы, а меню получается ровным. Иконки хранятся как JS-словарь «ключ → цвет + контур» и вставляются в интерфейс через одну функцию.

Сетка
24 × 24 px, viewBox 0 0 24 24
Подложка
rect 21 × 21, rx 6,5, fill-opacity 0,16
Линия
stroke 1,8, round caps и joins
Цвет
один цвет на иконку: подложка и контур

Меню разделов · 11

terms
pulse
mortar
book
books
clock
beaker
user
friends
heart
chat

Интерфейс · 17

lotus
offline
speaker
lock
copy
send
close
pencil
dna
medical
pray
arrow_back
readbook
feat_term
feat_search
feat_theme
share

Книги · 9

leaf
scroll
scalpel
magnifier
flask
sprout
bookmark
baby
flask-conical

Расписание питания · 9

ft_dairy
ft_spice
ft_fruit
ft_oil
ft_nuts
ft_veggie
ft_grain
ft_drink
ft_shroom

Энциклопедия · 45

enc_foundations
enc_prakriti
enc_nutrition
enc_herbs
enc_yoga
enc_massage
enc_beauty
enc_lifestyle
enc_digestion
enc_psychology
enc_panchakarma
enc_diagnostics
enc_marma
enc_seasonal
enc_quiz
enc_prana
enc_rasayana
enc_dinacharya
enc_food_wisdom
enc_tantra
enc_home_remedy
enc_cleanse
enc_kitchen
enc_alchemy
enc_elements
enc_family
enc_polarity
enc_philosophy
enc_history
enc_mudra
enc_sound
enc_gems
enc_pediatrics
enc_pk_protocol
enc_aroma
enc_eye
enc_preparations
enc_womens
enc_pk_joshi
enc_srota
enc_clinical
enc_chakra
enc_aroma_form
enc_vedic
enc_three_paths

Иконки одинаково выглядят в светлой и тёмной теме: подложка полупрозрачная, поэтому она «окрашивается» под фон.

4.4

Компоненты

Кнопки, поля, карточки, стих, комментарий, тест

Компоненты собраны живьём из тех же токенов — наведите курсор, чтобы увидеть состояния. Ниже — основные из них.

Кнопки, чипы и переключатели

9 книг841 глав
⌂ ГлавнаяA№ стиха →→
RU☀

Все интерактивные элементы — «пилюли» или плитки с радиусом 8–20 px; активное состояние закрашивается --bg-active, основное действие — акцентным цветом.

Поля ввода и выбор книги

Поиск по тексту…

ВЫБЕРИТЕ КНИГУ

Аштанга-хридая▾

Меню разделов

РАЗДЕЛЫ

Глоссарий терминов
Энциклопедия
Расписание питания
Тест конституции

Список глав

СУТРАСТХАНА
1.Аюшкамия адхья
2.Диначарья адхья
3.Ритучарья адхья

СТИХ 1

रागादि-रोगान् सततानुषक्तान् अ-शेष-काय-प्रसृतान् अ-शेषान्

rāgādi-rogān satatānuṣaktān a-śeṣa-kāya-prasṛtān a-śeṣān

Теперь мы изложим главу Аюшкамия (стремление к долгой жизни) – так сказал Атрея и остальные мудрецы.

RU

▸ КомментарийИ.И. Ветров

СТИХ 1

रागादि-रोगान् सततानुषक्तान् अ-शेष-काय-प्रसृतान् अ-शेषान्

rāgādi-rogān satatānuṣaktān a-śeṣa-kāya-prasṛtān a-śeṣān

Теперь мы изложим главу Аюшкамия (стремление к долгой жизни) – так сказал Атрея и остальные мудрецы.

RU

▸ КомментарийИ.И. Ветров

Подсветка терминов

…которые разрушил болезни, такие как рага (страсть) и моха (заблуждение)…

Карточки книг и разделов

Аштанга-хридаяВагбхата · VII в. н.э.118 глав · 7000+ стихов
ЧаракаЧарака · Дридхабала · I–IV вв. н.э.120 глав · 9000+ стихов
Конституция (пракрити)
4 статей

Три типа конституции, как определить свой тип.

Травы и растения
20 статей

Ключевые растения: свойства, применение и дозировки.

Тест и таймлайн

0 / 60 вопросов
Вата20 вопросов
1. По природе я очень активен, обычно делаю дела быстро
062
Молоко06:00 – 21:00

Состояния

  • Defaultспокойное состояние
  • Hover--bg-hover, обводка акцентом, подъём карточки на 2 px
  • Active--bg-active и насыщенный текст
  • Focusfocus-visible: контур; у полей — акцентная рамка
  • Disabledopacity 0,4
  • Playing--accent-glow на кнопке озвучки
4.5

Отступы, радиусы, тени, слои, анимации

Остальные токены системы

Кроме цвета и шрифта, система описывает форму и поведение: какие радиусы у каких элементов, как глубоко «лежит» карточка, что поверх чего и как всё анимируется.

Радиусы
2–4 pxвыделение терминов, мелкие элементы
8 px--radius: кнопки, поля, карточки стиха
10–14 pxкарточки книг и разделов, кнопки действий
16–20 pxчипы, кнопки в шапке главы
24 px и 999 pxпилюли, прогресс и переключатели
50%круглые иконки и аватар
Тени
--shadow-sm0 1px 3px rgba(0,0,0,.06)
--shadow-md0 4px 16px rgba(0,0,0,.08)
Popover0 6px 24px rgba(0,0,0,.25)
Modal0 12px 48px rgba(0,0,0,.3)
Sidebar4px 0 32px rgba(0,0,0,.22)
Focus ring0 0 0 2px var(--accent)
Слои z-index
10липкие элементы
200–300левая панель и оверлей
350–500модальные окна и чат
9000–9999подсказки и баннеры
Анимации и переходы
--transition0.18s ease — наведение и состояния
versePulseподсветка стиха при переходе по ссылке
verseTargetPulseмягкая пульсация целевого стиха
chatDotsиндикатор набора ответа в чат-боте
Брейкпоинты
≤ 700 pxглавная колонка, списки, карточки
≤ 640 pxшапка главы, кнопки, плотность
≤ 600 pxлевая панель становится выезжающим меню
4.6

Тёмная тема

body.dark · переопределение токенов

Тёмная тема — не инверсия, а отдельная палитра: фон стал тёмно-коричневым, акцент светлым золотом, карточки чуть светлее фона. Переключатель — в шапке левой панели, выбор запоминается в браузере. Картинки и иконки не меняются: подложки иконок прозрачные.

ayurvedareader.ru
12 — читатель в тёмной теме
12 — читатель в тёмной темеТот же стих и те же слои текста — другая палитра. Контраст основного текста остаётся высоким, а золотой акцент выделяет заголовки и номера стихов.
ayurvedareader.ru
13 — главная в тёмной теме
13 — главная в тёмной темеКарточки книг и чипы статистики на тёмной бумаге.

05 / мобильная версия

Телефон — основной сценарий чтения

Читают в основном с телефона, поэтому мобильная версия — не уменьшенный десктоп. Левая панель превращается в выезжающее меню, интерфейс чтения занимает всю ширину, а длинные списки сворачиваются.

Выезжающее менюЛевая панель открывается кнопкой в углу и закрывается касанием по затемнённому фону. Раздел «Разделы» по умолчанию свёрнут, чтобы глава была видна сразу.
ЧтениеКолонка текста занимает всю ширину, интерлиньяж сохраняется, а кнопки главы переносятся в одну строку.
Удобные цели касанияПункты меню и списков — плитки на всю ширину строки, а ползунок теста — крупный и двигается пальцем.
Тёмная темаПодходит для чтения вечером — переключается так же, как на десктопе.
14 — главная, меню, читатель и поиск
14 — главная, меню, читатель и поискЧетыре состояния подряд: приветствие, выезжающее меню, глава со стихом и результаты поиска.
15 — энциклопедия, глоссарий, тест и расписание питания
15 — энциклопедия, глоссарий, тест и расписание питанияТе же компоненты на узком экране: карточки встают в одну колонку, шкалы занимают всю ширину.
16 — тёмная тема на телефоне
16 — тёмная тема на телефонеГлавная и тест конституции в тёмной теме.

06 / техническое описание

Статический сайт на чистом JavaScript без сборщика

Приложение — статический одностраничный сайт: HTML, один CSS-файл и ES-модули без фреймворков и сборки. Он открывается прямо в браузере, не требует регистрации и после первого визита работает офлайн как PWA.

0фреймворков и сборщиков
~600 KBначальная загрузка
~28 MBтексты книг, подгружаются лениво
v565номер релиза для сброса кеша

Архитектура

  • Одностраничный сайт с маршрутизацией по хэшу: ссылка вида #ashtanga/c0 ведёт к конкретной главе.
  • ES-модули: app.js — ядро, books.js — реестр книг, glossary, diseases, quiz, foodtable, cabinet, chatbot, icons.
  • Данные: каждая книга — отдельный файл, подгружается при открытии, поэтому первый экран лёгкий.
  • Тексты извлечены из печатных изданий и приведены к единому формату «оригинал → IAST → перевод».

PWA и офлайн

  • Service worker: Cache First для статики и Network First для данных; кеш версионируется (ayurveda-v565).
  • Манифест: standalone-режим, иконки 192 и 512 px, maskable-иконки и ярлык «Аштанга-хридая».
  • Офлайн-баннер сообщает, что доступны уже прочитанные книги.
  • Cache busting: единая версия ?v=NN в index.html, app.js, books.js и sw.js.

Функции в браузере

  • Поиск по всем книгам на клиенте с подсветкой совпадений и счётчиком результатов.
  • Озвучка стиха через Web Speech API: санскрит (hi-IN), русский и английский.
  • Share API для ссылки на стих, копирование ссылки.
  • Настройки в localStorage: тема, размер текста, язык интерфейса.
  • Двуязычность: интерфейс и данные имеют русские и английские поля (*_en).

Серверная часть

  • Кабинет эксперта: вход через Telegram Login Widget, без паролей; правки глав и краудсорс-предложения.
  • Backend: serverless-функции на Vercel; если они недоступны, сайт остаётся статикой.
  • AI-помощник: поиск по загруженным стихам и вызов Gemini API.
  • Telegram-бот и канал: подписка и ежедневный пост со стихом.
  • Аналитика: счётчик посетителей и Яндекс.Метрика.
ФайлРазмерНазначение
style.css~92 KBединый файл стилей: токены, компоненты, две темы, 3 брейкпоинта
app.js~201 KBядро: маршрутизация, чтение, поиск, озвучка, настройки
books.js~244 KBреестр девяти книг, названия частей и глав (RU/EN)
glossary.js~206 KB397 терминов санскрита и подсказки в тексте
quiz.js~21 KB60 вопросов и подсчёт конституции
icons.js~14 KB91 иконок и функция icon(key)
sw.js~3 KBservice worker для офлайн-режима

Фрагмент: иконка как функция

icons.js
// ключ → цвет и контур; подложка и линия берут один цвет
export function icon(key) {
  const [c, paths] = G[key];
  return `<svg class="app-icon" viewBox="0 0 24 24" fill="none">
    <rect x="1.5" y="1.5" width="21" height="21" rx="6.5" fill="${c}" fill-opacity="0.16"/>
    <g stroke="${c}" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round">${paths}</g></svg>`;
}

07 / доступность и детали

Внимание к мелочам: от skip-ссылки до озвучки

  • Ссылка «Перейти к содержанию» в начале страницы и осмысленные aria-метки на кнопках.
  • Live-регион для скринридеров и отдельный офлайн-баннер с role=status.
  • Размер текста — четыре уровня, выбор сохраняется.
  • Тёмная тема для чтения вечером.
  • Озвучка стиха: санскрит, русский, английский.
  • Видимый фокус с клавиатуры и подсказки (tooltip) у иконок-действий.
  • Медицинский дисклеймер, который можно закрыть, но он всегда доступен.
  • Блок источников в каждой статье энциклопедии.

08 / SEO и метаданные

Что видит поисковик

У страницы расширенные метаданные: title и description с ключевыми запросами («классические самхиты аюрведы», «Аштанга-хридая», «Чарака-самхита», «тест пракрити»), canonical, Open Graph и Twitter Card с картинкой 1200×630, manifest и иконки для главного экрана. Поиск по сайту и статьи энциклопедии дают тексту «длинный хвост» запросов.

  • Title: «Классические самхиты Аюрведы — бесплатная онлайн-библиотека»
  • Description с цифрами: стихи, книги, глоссарий, энциклопедия
  • Open Graph и Twitter Card, картинка 1200×630
  • Canonical, manifest, apple-touch-icon
  • Ключевые слова: аюрведа, самхита, Аштанга-хридая, Чарака, Сушрута

Обсудить проект

Нужен такой же интерфейс?

Спроектирую веб-приложение или сайт с нуля: структуру, дизайн-систему, адаптивные макеты и вёрстку. Расскажите о своей задаче — отвечу в течение суток.

Заказать дизайн

10 / другие проекты услуги