@profitlich/template-toolkit 4.0.0 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@profitlich/template-toolkit",
3
- "version": "4.0.0",
3
+ "version": "4.1.0",
4
4
  "description": "Shared SCSS layout system, JS utilities, components and build scripts for profitlich template repos",
5
5
  "type": "module",
6
6
  "exports": {
@@ -9,6 +9,7 @@
9
9
  "./dev": "./dev/Dev.js",
10
10
  "./dev/toolbar": "./dev/toolbar/Toolbar.js",
11
11
  "./scss/forward": "./scss/forward.scss",
12
+ "./scss/core/capsize": "./scss/core/capsize.scss",
12
13
  "./scss/core/hamburger": "./scss/core/hamburger.scss",
13
14
  "./scss/core/layout": "./scss/core/layout.scss",
14
15
  "./scss/core/mediaqueries": "./scss/core/mediaqueries.scss",
@@ -0,0 +1,15 @@
1
+ // Emittiert die Capsize-Pseudo-Elemente (::before/::after mit Em-Trims)
2
+ // für den aktuellen Selektor. Die Inhalte (welche Pseudo-Elemente, welche
3
+ // Properties) kommen vollständig aus @capsizecss/core via der
4
+ // Sass-Custom-Function capsize-pseudo-elements (registriert im
5
+ // vite/capsizeSassFunctions.js des Toolkits).
6
+ @mixin capsize($name, $fontSize, $lineHeight) {
7
+ $pseudo: capsize-pseudo-elements($name, $fontSize, $lineHeight);
8
+ @each $selector-suffix, $props in $pseudo {
9
+ &#{$selector-suffix} {
10
+ @each $prop, $val in $props {
11
+ #{$prop}: $val;
12
+ }
13
+ }
14
+ }
15
+ }
@@ -1,12 +1,10 @@
1
1
  @use "config";
2
+ @use "capsize" as *;
2
3
  @use "sass:list";
3
4
  @use "sass:map";
4
5
  @use "sass:meta";
5
6
  @use "sass:math";
6
7
 
7
- // capsize-trims wird ggf. von Vite via preprocessorOptions.scss.functions bereitgestellt
8
- // (siehe createCapsizeFunctions in vite/capsizeSassFunctions.js).
9
-
10
8
  // Liest das optionale Top-Level Feld `vwBasis` aus der Konsumenten-config.
11
9
  // Default 'viewport' = bisheriges Verhalten (raw vw).
12
10
  // 'body' = calc(var(--vw-body, 1vw) * X) — skaliert mit scrollbar-freier Body-Breite.
@@ -90,18 +88,7 @@ $mediaqueries: (
90
88
  line-height: size($layout, $lineHeight);
91
89
 
92
90
  @if ($capsize != null) {
93
- // capsize-pseudo-elements() ist eine Sass-Custom-Function aus dem Toolkit-Vite-Plugin.
94
- // Ruft intern @capsizecss/core.createStyleObject auf und gibt eine Sass-Map
95
- // mit allen Pseudo-Element-Stilen zurück. Inhalte (welche Pseudo-Elemente,
96
- // welche Properties) kommen vollständig aus Capsize.
97
- $pseudo: capsize-pseudo-elements($capsize, $fontSize, $lineHeight);
98
- @each $selector-suffix, $props in $pseudo {
99
- &#{$selector-suffix} {
100
- @each $prop, $val in $props {
101
- #{$prop}: $val;
102
- }
103
- }
104
- }
91
+ @include capsize($capsize, $fontSize, $lineHeight);
105
92
  }
106
93
 
107
94
  }
package/scss/forward.scss CHANGED
@@ -2,3 +2,4 @@
2
2
  @forward "core/mediaqueries";
3
3
  @forward "core/layout";
4
4
  @forward "core/hamburger";
5
+ @forward "core/capsize";
@@ -1,5 +1,5 @@
1
1
  import { fromFile } from '@capsizecss/unpack';
2
- import { createStyleObject } from '@capsizecss/core';
2
+ import { createStyleObject, getCapHeight } from '@capsizecss/core';
3
3
  import * as sass from 'sass';
4
4
  import { OrderedMap } from 'immutable';
5
5
  import path from 'path';
@@ -58,6 +58,22 @@ export async function createCapsizeFunctions(fontFiles) {
58
58
  }
59
59
  }
60
60
  return new sass.SassMap(OrderedMap(entries));
61
+ },
62
+
63
+ 'capsize-cap-height($name, $fontSize)': (args) => {
64
+ const name = args[0].assertString('name').text;
65
+ const fontSize = args[1].assertNumber('fontSize').value;
66
+
67
+ const fontMetrics = metrics[name];
68
+ if (!fontMetrics) {
69
+ throw new Error(
70
+ `capsize-cap-height: Keine Metriken für Font "${name}" geladen. ` +
71
+ `Verfügbar: ${Object.keys(metrics).join(', ') || '(keine)'}.`
72
+ );
73
+ }
74
+
75
+ const capHeight = getCapHeight({ fontSize, fontMetrics });
76
+ return new sass.SassNumber(capHeight);
61
77
  }
62
78
  };
63
79
  }