feat: add static vanilla-JS web calculator (webcalc/) #42

Merged
claude-secretary merged 1 commit from baton/41-html-css-js-019ef2ca into main 2026-06-23 15:57:53 +07:00

Что сделано

Добавлен статический интерактивный веб-калькулятор в каталоге webcalc/ — несколько файлов, чистый ванильный стек без зависимостей и сборки.

Файлы

  • webcalc/index.html — семантичная разметка: <output> для дисплея и сетка кнопок (цифры 0–9, + − × ÷, =, C, .). Кнопки помечены data-digit / data-action.
  • webcalc/style.css — сетка кнопок на CSS grid, читаемый дисплей, отступы, hover- и focus-состояния. Без внешних библиотек.
  • webcalc/script.js — логика на ванильном JS: ввод чисел и точки, четыре операции, сброс, цепочечные вычисления. Один делегированный обработчик кликов на всю клавиатуру.
  • webcalc/README.md — описание и как открыть (index.html в браузере, без локального сервера).

Поведение

  • Все четыре операции и сброс C работают.
  • Цепочечные операции досчитывают промежуточный результат (2 + 3 × 4 и т.п.).
  • Деление на ноль не роняет страницу — на дисплее «Ошибка»; следующий ввод цифры сбрасывает состояние.
  • Хвостовые нули результата убираются (toPrecision), чтобы дисплей оставался читаемым.

Проверка

Логика прогнана headless-тестом (DOM застаблен, события эмулированы):

chain 2+3*4 = 20
5/0 = Ошибка
after error digit 7 = 7
1.5 + 2.5 = 4
clear = 0
9 - 4 = 5

Критерии приёмки

  • Созданы webcalc/index.html, style.css, script.js, README.md.
  • Все четыре операции и сброс работают, деление на ноль → «Ошибка».
  • Нет внешних зависимостей; калькулятор работает открытием index.html.

Исходная задача: «Веб-калькулятор: статический сайт (HTML + CSS + JS)».

Closes #41

## Что сделано Добавлен статический интерактивный веб-калькулятор в каталоге `webcalc/` — несколько файлов, чистый ванильный стек без зависимостей и сборки. ### Файлы - **`webcalc/index.html`** — семантичная разметка: `<output>` для дисплея и сетка кнопок (цифры 0–9, `+ − × ÷`, `=`, `C`, `.`). Кнопки помечены `data-digit` / `data-action`. - **`webcalc/style.css`** — сетка кнопок на CSS grid, читаемый дисплей, отступы, hover- и focus-состояния. Без внешних библиотек. - **`webcalc/script.js`** — логика на ванильном JS: ввод чисел и точки, четыре операции, сброс, цепочечные вычисления. Один делегированный обработчик кликов на всю клавиатуру. - **`webcalc/README.md`** — описание и как открыть (`index.html` в браузере, без локального сервера). ### Поведение - Все четыре операции и сброс `C` работают. - Цепочечные операции досчитывают промежуточный результат (`2 + 3 × 4` и т.п.). - **Деление на ноль не роняет страницу** — на дисплее «Ошибка»; следующий ввод цифры сбрасывает состояние. - Хвостовые нули результата убираются (`toPrecision`), чтобы дисплей оставался читаемым. ### Проверка Логика прогнана headless-тестом (DOM застаблен, события эмулированы): ``` chain 2+3*4 = 20 5/0 = Ошибка after error digit 7 = 7 1.5 + 2.5 = 4 clear = 0 9 - 4 = 5 ``` ### Критерии приёмки - [x] Созданы `webcalc/index.html`, `style.css`, `script.js`, `README.md`. - [x] Все четыре операции и сброс работают, деление на ноль → «Ошибка». - [x] Нет внешних зависимостей; калькулятор работает открытием `index.html`. Исходная задача: «Веб-калькулятор: статический сайт (HTML + CSS + JS)». Closes #41
feat: add static vanilla-JS web calculator in webcalc/
All checks were successful
acceptance/all-checked Acceptance #41: все пункты отмечены
Acceptance Gate / acceptance/all-checked (pull_request) Successful in 1s
ci / check (push) Successful in 3s
ci / check (pull_request) Successful in 3s
84d9a08d45
claude-secretary deleted branch baton/41-html-css-js-019ef2ca 2026-06-23 15:57:53 +07:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
senokosov/baton-dogfood!42
No description provided.