Frequently Asked Questions
Find answers to common questions about Domma.

Getting Started

What is Domma?

Domma (Dynamic Object Manipulation & Modeling API) is a lightweight, zero-dependency JavaScript framework that combines jQuery-style DOM manipulation, Lodash utilities, Moment.js-style date handling, and modern UI components into a single ~260KB bundle.

How do I install Domma?

Simply include the script tag in your HTML:

<script src="domma.min.js"></script>

That's it! No npm install, no build step required. You can also use ES modules if preferred.

Does Domma require any dependencies?

No. Domma is completely self-contained with zero external dependencies. Everything you need is included in a single file.

Features & Compatibility

Can I use Domma with my existing CSS framework?

Absolutely! Domma's JavaScript functionality works independently of its CSS. You can disable Domma's theming entirely with $.setup({ noStyles: true }) and use Bootstrap, Tailwind, or your own custom styles.

Is Domma compatible with jQuery?

Domma uses the same $() syntax as jQuery, so if you're familiar with jQuery, you'll feel right at home. However, Domma is not a jQuery drop-in replacement — it's a separate library with its own implementation.

What browsers does Domma support?

Domma supports all modern browsers including Chrome, Firefox, Safari, and Edge. It uses standard ES6+ features and the Fetch API.

Can I use ES modules?

Yes! Domma is available as both UMD and ESM bundles. You can import specific modules if you prefer:

import { Domma, utils, dates } from './domma.esm.js';

Usage & Best Practices

What are the global aliases?

Domma provides convenient aliases for common operations:

  • $ - DOM manipulation (like jQuery)
  • _ - Utility functions (like Lodash)
  • D() - Date handling (like Moment.js)
  • M - Reactive models
  • S - Storage wrapper
How do I handle events?

Domma uses a jQuery-like event system:

$('.button').on('click', (e) => {
    console.log('Clicked!');
});

// Event delegation
$('.container').on('click', '.item', (e) => {
    console.log('Item clicked');
});
How does the reactive model system work?

Domma's model system allows you to create reactive data objects with validation and DOM binding:

const user = M.create({
    name: { type: M.types.string, required: true },
    age: { type: M.types.number }
});

M.bind(user, 'name', '#name-input', { twoWay: true });
user.onChange('name', (val) => console.log(val));

Support

Where can I find documentation?

Check out the Showcase for interactive examples of all features, or start with the Quickstart guide for a hands-on tutorial.

How do I report bugs or request features?

Please open an issue on our GitHub repository with as much detail as possible, including browser version, code samples, and expected vs actual behaviour.