Footer Component

Flexible, responsive footer with three layout modes (simple, columns, minimal) and theme variants. Perfect for completing your page layout with branding, links, and social media.

Features

Features

Three Layouts

Simple horizontal, multi-column grid, or minimal centered layouts.

Fully Responsive

Mobile-first design adapts seamlessly to all screen sizes.

Social Icons

Integrated social media links with Domma icon system.

Theme Variants

Light, dark, and transparent themes with automatic color adaptation.

<div class="feature-grid">
    <div class="card">
        <div class="card-body">
            <div class="mb-3 text-primary" data-icon="layout" data-size="32"></div>
            <h3 class="card-title">Three Layouts</h3>
            <p class="card-text">Simple horizontal, multi-column grid, or minimal centered layouts.</p>
        </div>
    </div>

    <div class="card">
        <div class="card-body">
            <div class="mb-3 text-success" data-icon="smartphone" data-size="32"></div>
            <h3 class="card-title">Fully Responsive</h3>
            <p class="card-text">Mobile-first design adapts seamlessly to all screen sizes.</p>
        </div>
    </div>

    <div class="card">
        <div class="card-body">
            <div class="mb-3 text-info" data-icon="share-2" data-size="32"></div>
            <h3 class="card-title">Social Icons</h3>
            <p class="card-text">Integrated social media links with Domma icon system.</p>
        </div>
    </div>

    <div class="card">
        <div class="card-body">
            <div class="mb-3 text-warning" data-icon="sun" data-size="32"></div>
            <h3 class="card-title">Theme Variants</h3>
            <p class="card-text">Light, dark, and transparent themes with automatic color adaptation.</p>
        </div>
    </div>
</div>

Add a footer to your page in three simple steps

Step 1: Add HTML Container

Add a <footer> element to your page, typically at the bottom:

<body>
    <main class="content">
        <!-- Your page content -->
    </main>

    <footer id="site-footer"></footer>
</body>

Step 2: Include Domma

Add Domma CSS and JavaScript to your page:

<!-- CSS -->
<link rel="stylesheet" href="dist/domma.css">
<link rel="stylesheet" href="dist/elements.css">

<!-- JavaScript -->
<script src="dist/domma.min.js"></script>

Step 3: Initialize the Footer

Call Domma.elements.footer() with your content:

Domma.elements.footer('#site-footer', {
    layout: 'simple',
    brand: { text: 'My Site' },
    links: [
        { text: 'About', url: '/about' },
        { text: 'Contact', url: '/contact' }
    ],
    copyright: '© 2026 My Site'
});

Note: The footer component will automatically generate all HTML structure, styling, and layout. You only need to provide the empty container element and configuration options.

Simple Layout

Simple Layout

Horizontal footer with brand, links, social icons, and copyright

Main Content

Simple layout is perfect for landing pages and marketing sites.

JavaScript


            Domma.elements.footer('#footer', {
            layout: 'simple',
            variant: 'light',
            brand: {
            text: 'Domma',
            logo: '/assets/logo.svg',
            url: '/'
            },
            links: [
            { text: 'Features', url: '/features' },
            { text: 'Pricing', url: '/pricing' },
            { text: 'About', url: '/about' },
            { text: 'Contact', url: '/contact' }
            ],
            social: [
            { icon: 'github', url: 'https://github.com', label: 'GitHub' },
            { icon: 'twitter', url: 'https://twitter.com', label: 'Twitter' }
            ],
            copyright: '© 2026 Domma. All rights reserved.'
            });
    
<p class="mb-6 text-gray-600">Horizontal footer with brand, links, social icons, and copyright</p>

<div class="demo-container">
    <div class="demo-page">
        <div class="demo-main">
            <h3>Main Content</h3>
            <p>Simple layout is perfect for landing pages and marketing sites.</p>
        </div>
        <footer id="footer-simple"></footer>
    </div>
</div>

<h3 class="text-xl font-semibold mb-3">JavaScript</h3>
<div class="code-block language-javascript">
    <pre><code>
            Domma.elements.footer('#footer', {
            layout: 'simple',
            variant: 'light',
            brand: {
            text: 'Domma',
            logo: '/assets/logo.svg',
            url: '/'
            },
            links: [
            { text: 'Features', url: '/features' },
            { text: 'Pricing', url: '/pricing' },
            { text: 'About', url: '/about' },
            { text: 'Contact', url: '/contact' }
            ],
            social: [
            { icon: 'github', url: 'https://github.com', label: 'GitHub' },
            { icon: 'twitter', url: 'https://twitter.com', label: 'Twitter' }
            ],
            copyright: '© 2026 Domma. All rights reserved.'
            });
    </code></pre>
</div>
/**
 * Simple Layout - from public/showcase/footer.
 */
export function mount(root) {
    E.footer(root.querySelector('#footer-simple'), {
        layout: 'simple',
        variant: 'light',
        brand: {
            text: 'Domma',
            url: '/'
        },
        links: [
            { text: 'Features', url: '#features' },
            { text: 'Pricing', url: '#pricing' },
            { text: 'About', url: '#about' },
            { text: 'Contact', url: '#contact' }
        ],
        social: [
            { icon: 'github', url: 'https://github.com', label: 'GitHub' },
            { icon: 'twitter', url: 'https://twitter.com', label: 'Twitter' },
            { icon: 'linkedin', url: 'https://linkedin.com', label: 'LinkedIn' }
        ],
        copyright: '© 2026 Domma. All rights reserved.'
    });
}

Columns Layout

Columns Layout

Multi-column grid with organized link sections

Main Content

Columns layout is ideal for comprehensive footers with many links.

JavaScript


            Domma.elements.footer('#footer', {
            layout: 'columns',
            variant: 'dark',
            brand: {
            text: 'Domma Framework',
            logo: '/assets/logo.svg'
            },
            columns: [
            {
            title: 'Product',
            links: [
            { text: 'Features', url: '/features' },
            { text: 'Pricing', url: '/pricing' },
            { text: 'Changelog', url: '/changelog' }
            ]
            },
            {
            title: 'Resources',
            links: [
            { text: 'Documentation', url: '/docs' },
            { text: 'API Reference', url: '/api' },
            { text: 'Examples', url: '/examples' }
            ]
            },
            {
            title: 'Company',
            links: [
            { text: 'About', url: '/about' },
            { text: 'Blog', url: '/blog' },
            { text: 'Contact', url: '/contact' }
            ]
            }
            ],
            social: [
            { icon: 'github', url: '#', label: 'GitHub' },
            { icon: 'twitter', url: '#', label: 'Twitter' }
            ],
            copyright: '© 2026 Domma. All rights reserved.'
            });
    
<p class="mb-6 text-gray-600">Multi-column grid with organized link sections</p>

<div class="demo-container">
    <div class="demo-page">
        <div class="demo-main">
            <h3>Main Content</h3>
            <p>Columns layout is ideal for comprehensive footers with many links.</p>
        </div>
        <footer id="footer-columns"></footer>
    </div>
</div>

<h3 class="text-xl font-semibold mb-3">JavaScript</h3>
<div class="code-block language-javascript">
    <pre><code>
            Domma.elements.footer('#footer', {
            layout: 'columns',
            variant: 'dark',
            brand: {
            text: 'Domma Framework',
            logo: '/assets/logo.svg'
            },
            columns: [
            {
            title: 'Product',
            links: [
            { text: 'Features', url: '/features' },
            { text: 'Pricing', url: '/pricing' },
            { text: 'Changelog', url: '/changelog' }
            ]
            },
            {
            title: 'Resources',
            links: [
            { text: 'Documentation', url: '/docs' },
            { text: 'API Reference', url: '/api' },
            { text: 'Examples', url: '/examples' }
            ]
            },
            {
            title: 'Company',
            links: [
            { text: 'About', url: '/about' },
            { text: 'Blog', url: '/blog' },
            { text: 'Contact', url: '/contact' }
            ]
            }
            ],
            social: [
            { icon: 'github', url: '#', label: 'GitHub' },
            { icon: 'twitter', url: '#', label: 'Twitter' }
            ],
            copyright: '© 2026 Domma. All rights reserved.'
            });
    </code></pre>
</div>
/**
 * Columns Layout - from public/showcase/footer.
 */
export function mount(root) {
            // Columns Layout
    E.footer(root.querySelector('#footer-columns'), {
                layout: 'columns',
                variant: 'dark',
                brand: {
                    text: 'Domma Framework'
                },
                columns: [
                    {
                        title: 'Product',
                        links: [
                            { text: 'Features', url: '#' },
                            { text: 'Pricing', url: '#' },
                            { text: 'Changelog', url: '#' },
                            { text: 'Roadmap', url: '#' }
                        ]
                    },
                    {
                        title: 'Resources',
                        links: [
                            { text: 'Documentation', url: '#' },
                            { text: 'API Reference', url: '#' },
                            { text: 'Examples', url: '#' },
                            { text: 'Tutorials', url: '#' }
                        ]
                    },
                    {
                        title: 'Company',
                        links: [
                            { text: 'About', url: '#' },
                            { text: 'Blog', url: '#' },
                            { text: 'Contact', url: '#' },
                            { text: 'Careers', url: '#' }
                        ]
                    },
                    {
                        title: 'Legal',
                        links: [
                            { text: 'Privacy', url: '#' },
                            { text: 'Terms', url: '#' },
                            { text: 'Security', url: '#' }
                        ]
                    }
                ],
                social: [
                    { icon: 'github', url: '#', label: 'GitHub' },
                    { icon: 'twitter', url: '#', label: 'Twitter' },
                    { icon: 'linkedin', url: '#', label: 'LinkedIn' },
                    { icon: 'youtube', url: '#', label: 'YouTube' }
                ],
                copyright: '© 2026 Domma. All rights reserved.'
            });
}

Minimal Layout

Minimal Layout

Centered minimal footer with copyright and social links

Main Content

Minimal layout is perfect for clean, simple pages.

JavaScript


            Domma.elements.footer('#footer', {
            layout: 'minimal',
            variant: 'light',
            copyright: '© 2026 Domma',
            social: [
            { icon: 'github', url: '#', label: 'GitHub' },
            { icon: 'twitter', url: '#', label: 'Twitter' },
            { icon: 'linkedin', url: '#', label: 'LinkedIn' }
            ]
            });
    
<p class="mb-6 text-gray-600">Centered minimal footer with copyright and social links</p>

<div class="demo-container">
    <div class="demo-page">
        <div class="demo-main">
            <h3>Main Content</h3>
            <p>Minimal layout is perfect for clean, simple pages.</p>
        </div>
        <footer id="footer-minimal"></footer>
    </div>
</div>

<h3 class="text-xl font-semibold mb-3">JavaScript</h3>
<div class="code-block language-javascript">
    <pre><code>
            Domma.elements.footer('#footer', {
            layout: 'minimal',
            variant: 'light',
            copyright: '© 2026 Domma',
            social: [
            { icon: 'github', url: '#', label: 'GitHub' },
            { icon: 'twitter', url: '#', label: 'Twitter' },
            { icon: 'linkedin', url: '#', label: 'LinkedIn' }
            ]
            });
    </code></pre>
</div>
/**
 * Minimal Layout - from public/showcase/footer.
 */
export function mount(root) {
            // Minimal Layout
    E.footer(root.querySelector('#footer-minimal'), {
                layout: 'minimal',
                variant: 'light',
                copyright: '© 2026 Domma',
                social: [
                    { icon: 'github', url: '#', label: 'GitHub' },
                    { icon: 'twitter', url: '#', label: 'Twitter' },
                    { icon: 'linkedin', url: '#', label: 'LinkedIn' }
                ]
            });
}

Dark Theme Variant

Dark Theme Variant

Footer with dark background

Main Content

Dark variant works great with light-themed pages.

JavaScript


            Domma.elements.footer('#footer', {
            variant: 'dark',  // 'light', 'dark', or 'transparent'
            layout: 'simple',
            // ... other options
            });
    
<p class="mb-6 text-gray-600">Footer with dark background</p>

<div class="demo-container">
    <div class="demo-page">
        <div class="demo-main">
            <h3>Main Content</h3>
            <p>Dark variant works great with light-themed pages.</p>
        </div>
        <footer id="footer-dark"></footer>
    </div>
</div>

<h3 class="text-xl font-semibold mb-3">JavaScript</h3>
<div class="code-block language-javascript">
    <pre><code>
            Domma.elements.footer('#footer', {
            variant: 'dark',  // 'light', 'dark', or 'transparent'
            layout: 'simple',
            // ... other options
            });
    </code></pre>
</div>
/**
 * Dark Theme Variant - from public/showcase/footer.
 */
export function mount(root) {
            // Dark Theme Example
    E.footer(root.querySelector('#footer-dark'), {
                layout: 'simple',
                variant: 'dark',
                brand: {
                    text: 'Domma'
                },
                links: [
                    { text: 'Home', url: '#' },
                    { text: 'Features', url: '#' },
                    { text: 'Docs', url: '#' }
                ],
                social: [
                    { icon: 'github', url: '#', label: 'GitHub' },
                    { icon: 'twitter', url: '#', label: 'Twitter' }
                ],
                copyright: '© 2026 Domma'
            });
}

API Reference

API Reference

Options

Option Type Default Description
variant String 'light' 'light', 'dark', or 'transparent'
layout String 'simple' 'simple', 'columns', or 'minimal'
brand Object null { text, logo, url }
columns Array [] Multi-column layout
links Array [] Simple link list
social Array [] Social media icons
copyright String/Object null Copyright text or {text, year}
position String 'static' 'static', 'fixed', or 'sticky'

Methods

Method Description
setBrand(brand) Update brand information
setLinks(links) Update links array
setColumns(columns) Update columns array
setSocial(social) Update social links
setCopyright(copyright) Update copyright text
<h3 class="text-xl font-semibold mb-3">Options</h3>
<div class="table-responsive mb-6">
    <table class="table">
        <thead>
            <tr>
                <th>Option</th>
                <th>Type</th>
                <th>Default</th>
                <th>Description</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td><code>variant</code></td>
                <td>String</td>
                <td>'light'</td>
                <td>'light', 'dark', or 'transparent'</td>
            </tr>
            <tr>
                <td><code>layout</code></td>
                <td>String</td>
                <td>'simple'</td>
                <td>'simple', 'columns', or 'minimal'</td>
            </tr>
            <tr>
                <td><code>brand</code></td>
                <td>Object</td>
                <td>null</td>
                <td>{ text, logo, url }</td>
            </tr>
            <tr>
                <td><code>columns</code></td>
                <td>Array</td>
                <td>[]</td>
                <td>Multi-column layout</td>
            </tr>
            <tr>
                <td><code>links</code></td>
                <td>Array</td>
                <td>[]</td>
                <td>Simple link list</td>
            </tr>
            <tr>
                <td><code>social</code></td>
                <td>Array</td>
                <td>[]</td>
                <td>Social media icons</td>
            </tr>
            <tr>
                <td><code>copyright</code></td>
                <td>String/Object</td>
                <td>null</td>
                <td>Copyright text or {text, year}</td>
            </tr>
            <tr>
                <td><code>position</code></td>
                <td>String</td>
                <td>'static'</td>
                <td>'static', 'fixed', or 'sticky'</td>
            </tr>
        </tbody>
    </table>
</div>

<h3 class="text-xl font-semibold mb-3">Methods</h3>
<div class="table-responsive">
    <table class="table">
        <thead>
            <tr>
                <th>Method</th>
                <th>Description</th>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td><code>setBrand(brand)</code></td>
                <td>Update brand information</td>
            </tr>
            <tr>
                <td><code>setLinks(links)</code></td>
                <td>Update links array</td>
            </tr>
            <tr>
                <td><code>setColumns(columns)</code></td>
                <td>Update columns array</td>
            </tr>
            <tr>
                <td><code>setSocial(social)</code></td>
                <td>Update social links</td>
            </tr>
            <tr>
                <td><code>setCopyright(copyright)</code></td>
                <td>Update copyright text</td>
            </tr>
        </tbody>
    </table>
</div>

Use $.setup() for declarative initialization

$.setup({
    '#site-footer': {
        component: 'footer',
        options: {
            layout: 'columns',
            variant: 'dark',
            brand: { text: 'My App', logo: '/logo.svg' },
            columns: [/* ... */],
            copyright: '© 2026 My App'
        }
    }
});