6.6.1 • Published 11 months ago

@hundh/contao-bootstrap-theme v6.6.1

Weekly downloads
6
License
MIT
Repository
github
Last release
11 months ago

Contao Bootstrap 4 theme

Dieses Modul dient als gemeinsame CSS-Code-Basis. Neben diesem Modul sollte dann ein eigenes projektspezifisches Theme erstellt werden (siehe unten).

Installation

yarn add @hundh/contao-bootstrap-theme

Aufbau projektspezifischer Themes

SCSS

Hier werden alle SASS-Dateien in ihren zugehörigen Verzeichnissen abgelegt.

  • components: Komponenten sind konfigurierbare Bausteine innerhalb unserer Seite, wie die Hauptnavigation, Nachrichtentemplates oder Tabellen. Sowohl Mixins als CSS-Selektoren für die Komponenten werden hier abgelegt.
  • mixins: Mixins sind wiederverwendbare Funktionen für SASS. Hier werden globale Verläufe, Grid- oder Sticky-Footer-Funktionen deklariert. Hier landen ausschließlich Mixins, keine CSS-Selektoren!
  • regions: Basis-Regionen des Hauptlayouts(fe_page.html) werden hier gestaltet. Hier werden ausschließlich CSS-Selektoren gestaltet. Mixins haben hier nichts verloren!
  • vendor: Hier werden Fremd-Plugins und Bibliotheken wie z.B. der Slick Slider oder Bootstrap-Select gestaltet. Sowohl Mixins als CSS-Selektoren für die Komponenten werden hier abgelegt.
  • browser: Hier werden alle browserspezifischen Änderungen (IE, Firefox, ...) angelegt. Dieser Ordner wird typischerweise als letzter in der aggregierten Datei referenziert.
  • bei Bedarf zusätzlicher Ordner pages in dem dann alle Änderungen Seiten betreffend in separaten SASS-Dateien gehalten werden

Fonts

Hier werden projektspezifische Web- bzw. Iconfonts abgelegt.

Images

Hier werden projektspezifische Bilder und Grafiken abgelegt.

  • img/icons Hier landen Icon-Grafiken.
  • img/logos Hier landen Logos.
  • img/patterns Hier landen Verläufe und Muster für Hintergrundbilder.
  • img/sprites Hier landen Image-sprites.

JavaScripts

Hier werden projektspezifische Javascript-Dateien abgelegt. Dafür bitte eine Datei common.js anlegen, die folgenden Aufbau aufweist:

let u = require('umbrellajs');

(function($)
{
    window.ContaoBootstrapCommon = {
        onReady: function()
        {
        },
        onResize: function()
        {
        }
    };

    document.addEventListener("DOMContentLoaded", function() {
        window.ContaoBootstrapCommon.onReady();
    });

    window.addEventListener('resize', function()
    {
        window.ContaoBootstrapCommon.onResize();
    }, false);

})(u);

Verwendung

SCSS

Es muss die scss/_common.scss-Datei und scss/_variables-Datei (optional) im Projekt importiert werden. Diese importiert alle enthaltenen Datein. Für eine spezifische Anpassung muss der Inhalt der _common.scss kopiert und ungenutzte Einträge entfernt werden.

/vendor/heimrichhannot/contao-project-bundle/src/Resources/assets/scss/project.scss

@import "variables.scss";
@import "~contao-bootstrap-theme/scss/_variables.scss";
@import "~contao-bootstrap-theme/scss/_common.scss";

// mixins
...

Mixins

Responsive font size fluid-type

Um Überschriften responsive optimal auszuliefern und den Aufwand der Dimensionierung pro Breakpoint so gering wie möglich zu halten gibt es das mixin fluid-type

// _variables.scss
$h1-font-size: 3.75rem; // ~60px
$h2-font-size: 3.315rem; // ~53px
$h3-font-size: 1.935rem; // ~31px
$h4-font-size: 1.315rem; // ~21px
$h5-font-size: 1.625rem; // ~25px
$h6-font-size: $font-size-base; // ~17px

$h1-font-sizes: (
  min: $h1-font-size * 0.55,
  max: $h1-font-size
);

$h2-font-sizes: (
  min: $h2-font-size * 0.5,
  max: $h2-font-size
);

$h2-lg-font-sizes: (
  min: $h2-font-size * 0.75 * 1.1,
  max: $h2-font-size * 1.1
);

$h3-font-sizes: (
  min: $h3-font-size * 0.7,
  max: $h3-font-size
);

$h4-font-sizes: (
  min: $h4-font-size * 0.7,
  max: $h4-font-size
);

$h5-font-sizes: (
  min: $h5-font-size * 0.7,
  max: $h5-font-size
);

$h6-font-sizes: (
  min: $h6-font-size,
  max: $h6-font-size
);
// _type.scss
h1, .h1 {
  @include fluid-type(map_get($container-max-widths, 'sm'),map_get($container-max-widths, 'xl'), map_get($h1-font-sizes, 'min'), map_get($h1-font-sizes, 'max'));
  line-height: 1.2;
}

h2, .h2 {
  @include fluid-type(map_get($container-max-widths, 'sm'),map_get($container-max-widths, 'xl'), map_get($h2-font-sizes, 'min'), map_get($h2-font-sizes, 'max'));
  color: $body-color;
  line-height: 1.2;
}

h3, .h3 {
  @include fluid-type(map_get($container-max-widths, 'sm'),map_get($container-max-widths, 'xl'), map_get($h3-font-sizes, 'min'), map_get($h3-font-sizes, 'max'));
  margin-bottom: 1rem;
}

h4, .h4 {
  @include fluid-type(map_get($container-max-widths, 'sm'),map_get($container-max-widths, 'xl'), map_get($h4-font-sizes, 'min'), map_get($h4-font-sizes, 'max'));
  font-weight: $font-weight-base;
  margin-bottom: 1rem;
}

h5, .h5 {
  @include fluid-type(map_get($container-max-widths, 'sm'),map_get($container-max-widths, 'xl'), map_get($h5-font-sizes, 'min'), map_get($h5-font-sizes, 'max'));
  color: theme-color('primary');
  margin-bottom: 1rem;
}

h6, .h6 {
  @include fluid-type(map_get($container-max-widths, 'sm'),map_get($container-max-widths, 'xl'), map_get($h6-font-sizes, 'min'), map_get($h6-font-sizes, 'max'));
  margin-bottom: 1rem;
}
6.6.1

11 months ago

6.6.0

2 years ago

6.5.2

3 years ago

6.5.1

3 years ago

6.3.0

3 years ago

6.2.0

3 years ago

6.5.0

3 years ago

6.4.0

3 years ago

6.1.0

3 years ago

6.0.0

3 years ago

5.0.8

3 years ago

5.0.7

4 years ago

5.0.6

4 years ago

5.0.5

4 years ago

5.0.3

4 years ago

5.0.1

4 years ago

5.0.0

4 years ago

4.4.2

4 years ago

4.4.0

4 years ago

4.3.0

5 years ago

4.2.1

5 years ago

4.2.0

5 years ago

4.1.1

5 years ago

4.1.0

5 years ago

4.0.2

5 years ago

4.0.1

5 years ago

4.0.0

5 years ago

3.0.1

5 years ago

3.0.0

5 years ago