Home

Awesome

<p align="center"> <a href="https://github.com/Celtian/ngx-fixed-footer" target="blank"><img src="assets/logo.svg?sanitize=true" alt="" width="120"></a> <h1 align="center">NgxFixedFooter</h1> </p>

npm version Package License NPM Downloads Snyk codecov stars forks HitCount

Angular directive that adds fixed footer without overlap

Angular 18 compatible

Here's the demo or stackblitz live preview or codesandbox live preview

🛠️ Install

  1. Use yarn (or npm) to install the package
yarn add ngx-fixed-footer
  1. Add NgxFixedFooterModule into your module imports

    2.1. import providers (optional)

      import { provideFixedFooter } from 'ngx-fixed-footer';
    
      export const appConfig: ApplicationConfig = {
        providers: [
          // ...
          provideFixedFooter({
            containerSelector: '[data-something]',
            cssAttribute: 'margin'
          })
        ]
      };
    
      // or
    
      import { provideFixedFooter } from 'ngx-fixed-footer';
    
      @NgModule({
       // ...
       imports: [
         // ...
         provideFixedFooter({
           containerSelector: '[data-something]',
           cssAttribute: 'margin'
         })
       ]
      })
    
    

    2.2 import directive

      import { NgxFixedFooterDirective } from 'ngx-fixed-footer';
    
      @Component({
         standalone: true,
         imports: [
           // ...
           NgxFixedFooterDirective
         ]
      })
    
      // or
    
      import { NgxFixedFooterDirective } from 'ngx-fixed-footer';
    
      @NgModule({
         // ...
         imports: [
           // ...
           NgxFixedFooterDirective
         ]
      })
    

🚀 Quick start

Example code

<div role="main">...some content here</div>
<div ngxFixedFooter [containerSelector]="[role='main']" [cssAttribute]="'padding'">... some content here</div>

Result

<div role="main" style="padding-bottom: {{ /* dynamic height of footer */ }}">...some content here</div>
<div ngxFixedFooter [containerSelector]="[role='main']" [cssAttribute]="'padding'">... some content here</div>

🛠️ Options

Root options

Module can be configured globally.

OptionTypeDefaultDescription
containerSelectorstring'[role="main"]'Css selector used for additional padding/margin
cssAttribute'margin' or 'padding''padding'Css attribute used on 'containerSelector'

Directive

Each directive can override global options.

OptionTypeDefaultDescription
[containerSelector]stringvalue taken from root optionsCss selector used for additional padding/margin
[cssAttribute]'margin' or 'padding'value taken from root optionsCss attribute used on 'containerSelector'

🔧 Compatibility

Angularngx-fixed-footerInstall
>= 183.xyarn add ngx-fixed-footer
>= 142.xyarn add ngx-fixed-footer@2
>= 121.xyarn add ngx-fixed-footer@1
>= 5 < 130.xyarn add ngx-fixed-footer@0

📦 Dependencies

None

🪪 License

Copyright © 2021 - 2024 Dominik Hladik

All contents are licensed under the MIT license.