Легковесная UI/UX библиотека для frontend разработки с TypeScript и SCSS.
npm install dnt-ap// ES Modules
import { App, Form, Menu, init } from 'dnt-ap';
// Или автоматическая инициализация
import { init } from 'dnt-ap';
init();// CommonJS
const { App, Form, Menu, init } = require('dnt-ap');
init();// В вашем главном JS файле
import 'dnt-ap/styles';Или в HTML:
<link rel="stylesheet" href="node_modules/dnt-ap/dist/styles.css">// В вашем SCSS файле
@use "dnt-ap/styles/scss" as *;
// Или импорт отдельных компонентов
@use "dnt-ap/styles/scss/ui/button" as *;
@use "dnt-ap/styles/scss/ui/input" as *;Библиотека автоматически найдет и инициализирует компоненты на странице:
<!-- Меню -->
<button data-burger>☰</button>
<nav data-menu>
<button data-menu-close>✕</button>
<!-- содержимое меню -->
</nav>
<!-- Форма -->
<form data-form action="/api/submit">
<input name="name" required>
<textarea name="message" required></textarea>
<input type="checkbox" data-form-check>
<button type="submit">Отправить</button>
</form>import { init } from 'dnt-ap';
init(); // Автоматически найдет все компонентыimport { App, Form, Menu } from 'dnt-ap';
// Инициализация всего приложения
const app = new App();
// Или отдельные компоненты
const menuElement = document.querySelector('[data-menu]');
const burgerElement = document.querySelector('[data-burger]');
const menu = new Menu(menuElement, burgerElement);
const formElement = document.querySelector('[data-form]');
const form = new Form(formElement);Управление мобильным меню с бургер-кнопкой.
HTML:
<button data-burger>Меню</button>
<nav data-menu>
<button data-menu-close>Закрыть</button>
<!-- навигация -->
</nav>JavaScript:
import { Menu } from 'dnt-ap';
const menu = new Menu(menuElement, burgerElement);
menu.openMenu();
menu.closeMenu();Валидация и отправка форм с поддержкой согласия.
HTML:
<form data-form action="/api/submit">
<input name="email" type="email" required>
<textarea name="message" required></textarea>
<input type="checkbox" data-form-check>
<button type="submit">Отправить</button>
</form>Особенности:
- Автоматическая валидация обязательных полей (минимум 3 символа)
- Блокировка отправки без согласия (чекбокс
data-form-check) - Отправка через Axios на URL из атрибута
action
Главный класс, который автоматически инициализирует все компоненты на странице.
import { App } from 'dnt-ap';
const app = new App(); // Найдет и инициализирует все компонентыБиблиотека использует CSS переменные для легкой кастомизации:
:root {
--dnt-ap-c-background: #FFFFFF;
--dnt-ap-c-black: #000000;
--dnt-ap-container-width: 1240px;
--dnt-ap-button-bg: #D9D9D9;
/* и другие... */
}@use "dnt-ap/styles/scss" as *;
// Переопределение переменных
$font-main: 'Roboto', sans-serif;
$size-mobile: 768px;
// Использование миксинов
.my-component {
@include response($size-mobile) {
// стили для мобильных
}
}Библиотека требует:
- axios - для отправки форм (должен быть установлен в вашем проекте)
npm install axiosБиблиотека полностью типизирована и включает TypeScript декларации:
import { App, Form, Menu } from 'dnt-ap';
const app: App = new App();- Современные браузеры (Chrome, Firefox, Safari, Edge)
- IE11+ (с полифиллами при необходимости)
MIT