@gemeentenijmegen/components-css 0.0.1-alpha.9 → 0.0.1-alpha.91

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.
Files changed (44) hide show
  1. package/accordion/index.scss +9 -0
  2. package/action-card/index.scss +37 -0
  3. package/breadcrumb/index.scss +130 -0
  4. package/card/index.scss +152 -0
  5. package/dist/header.css +174 -0
  6. package/dist/index.min.css +148 -2
  7. package/footer/index.scss +116 -0
  8. package/header/_mixin.scss +31 -0
  9. package/header/index.scss +169 -0
  10. package/hero/index.scss +108 -0
  11. package/image/index.scss +17 -0
  12. package/image-text-block/index.scss +48 -0
  13. package/index.scss +23 -0
  14. package/link/index.scss +10 -9
  15. package/link-list/_mixin.scss +8 -1
  16. package/link-list/index.scss +17 -4
  17. package/listbox/index.scss +81 -0
  18. package/mega-menu/index.scss +62 -0
  19. package/menu.scss +5 -0
  20. package/metadata/index.scss +31 -0
  21. package/mobile-menu/_mixin.scss +11 -0
  22. package/mobile-menu/index.scss +177 -0
  23. package/package.json +9 -4
  24. package/pagination/_mixin.scss +41 -0
  25. package/pagination/index.scss +191 -0
  26. package/rollup.config.mjs +26 -0
  27. package/search/index.scss +141 -0
  28. package/search-results/index.scss +56 -0
  29. package/skip-link/index.scss +41 -0
  30. package/spacing/getSpacing.mjs +116 -0
  31. package/spacing/semantic-spacing-matrix.json +156 -0
  32. package/spacing/spacing-matrix.json +1056 -0
  33. package/spacing/src/_mixin.scss +1968 -0
  34. package/spacing/src/_nested.scss +47 -0
  35. package/spacing/src/index.scss +36 -0
  36. package/spacing/src/semantic/_mixin.scss +311 -0
  37. package/spacing/src/semantic/index.scss +17 -0
  38. package/steplist/index.scss +114 -0
  39. package/table/_mixin.scss +97 -0
  40. package/table/index.scss +33 -0
  41. package/table-of-contents/index.scss +21 -0
  42. package/toolbar-button/_mixin.scss +21 -0
  43. package/toolbar-button/index.js +29 -0
  44. package/toolbar-button/index.scss +51 -0
@@ -0,0 +1,141 @@
1
+ @import "~@utrecht/focus-ring-css/src/mixin";
2
+ @import "~@utrecht/textbox-css/src/mixin";
3
+
4
+ .nijmegen-search {
5
+ inline-size: var(--nijmegen-search-input-max-inline-size);
6
+ max-inline-size: 100%;
7
+ position: relative;
8
+
9
+ &.nijmegen-search--full-width {
10
+ inline-size: 100%;
11
+ }
12
+ }
13
+
14
+ .nijmegen-search__container {
15
+ display: flex;
16
+ gap: var(--nijmegen-search-input-column-gap);
17
+
18
+ .utrecht-button {
19
+ max-block-size: 51px;
20
+ min-block-size: 51px;
21
+ }
22
+ }
23
+
24
+ .nijmegen-search__input-holder {
25
+ flex: 1;
26
+ position: relative;
27
+ }
28
+
29
+ .nijmegen-search__search-button {
30
+ &.nijmegen-search__search-button--dark {
31
+ border-color: var(--nijmegen-search-input-button-border-color) !important;
32
+ }
33
+
34
+ @media (width <576px) {
35
+ svg {
36
+ display: none;
37
+ }
38
+ }
39
+ }
40
+
41
+ .nijmegen-search__clear-button {
42
+ align-items: center;
43
+ aspect-ratio: 1/1;
44
+ background-color: transparent;
45
+ border: 0;
46
+ cursor: pointer;
47
+ display: flex;
48
+ height: 100%; /* stylelint-disable-line property-disallowed-list */
49
+ justify-content: center;
50
+ position: absolute;
51
+ right: 0; /* stylelint-disable-line property-disallowed-list */
52
+ top: 0; /* stylelint-disable-line property-disallowed-list */
53
+
54
+ &.nijmegen-search__clear-button--hide {
55
+ display: none;
56
+ }
57
+
58
+ svg {
59
+ stroke: var(--nijmegen-interaction-color);
60
+ }
61
+ }
62
+
63
+ .nijmegen-search__input {
64
+ background-color: var(--nijmegen-search-input-background-color);
65
+ border-color: var(--nijmegen-search-input-border-color);
66
+ border-radius: var(--nijmegen-search-input-border-radius);
67
+ border-style: solid;
68
+ border-width: var(--nijmegen-search-input-border-width);
69
+ box-sizing: border-box;
70
+ color: var(--nijmegen-search-input-color);
71
+ font-family: var(--nijmegen-search-input-font-family);
72
+ font-size: var(--nijmegen-search-input-font-size);
73
+ font-weight: var(--nijmegen-search-input-font-weight);
74
+ line-height: var(--nijmegen-search-input-line-height);
75
+ min-block-size: var(--nijmegen-search-input-min-block-size);
76
+ padding-block-end: var(--nijmegen-search-input-padding-block-end);
77
+ padding-block-start: var(--nijmegen-search-input-padding-block-start);
78
+ padding-inline-end: var(--nijmegen-search-input-padding-inline-end);
79
+ padding-inline-start: var(--nijmegen-search-input-padding-inline-start);
80
+ width: 100%; /* stylelint-disable-line property-disallowed-list */
81
+
82
+ &:hover,
83
+ &.nijmegen-search__input--hover {
84
+ background-color: var(--nijmegen-search-input-hover-background-color);
85
+ border-color: var(--nijmegen-search-input-hover-border-color);
86
+ color: var(--nijmegen-search-input-hover-color);
87
+ }
88
+
89
+ &:focus,
90
+ &.nijmegen-search__input--focus {
91
+ @include utrecht-focus;
92
+
93
+ background-color: var(--nijmegen-search-input-focus-background-color);
94
+ border-color: var(--nijmegen-search-input-focus-border-color);
95
+ color: var(--nijmegen-search-input-focus-color);
96
+ }
97
+
98
+ &:focus-visible,
99
+ &.nijmegen-search__input--focus {
100
+ @include utrecht-focus;
101
+ @include utrecht-focus-ring;
102
+
103
+ background-color: var(--nijmegen-search-input-focus-background-color);
104
+ border-color: var(--nijmegen-search-input-focus-border-color);
105
+ color: var(--nijmegen-search-input-focus-color);
106
+ }
107
+
108
+ &:read-only,
109
+ &.nijmegen-search__input-read-only {
110
+ background-color: var(--nijmegen-search-input-read-only-background-color);
111
+ border-color: var(--nijmegen-search-input-read-only-border-color);
112
+ color: var(--nijmegen-search-input-read-only-color);
113
+ }
114
+
115
+ &.nijmegen-search__input--disabled {
116
+ background-color: var(--nijmegen-search-input-disabled-background-color);
117
+ border-color: var(--nijmegen-search-input-disabled-border-color);
118
+ color: var(--nijmegen-search-input-disabled-color);
119
+ cursor: var(--utrecht-action-disabled-cursor, not-allowed);
120
+ }
121
+
122
+ &::placeholder {
123
+ color: var(--nijmegen-search-input-placeholder-color);
124
+ }
125
+ }
126
+
127
+ .nijmegen-search__autocomplete-results {
128
+ display: none;
129
+ margin-block-start: var(--nijmegen-search-input-autocomplete-offset, 8px);
130
+ position: absolute;
131
+ top: var(--nijmegen-search-input-min-block-size); /* stylelint-disable-line property-disallowed-list */
132
+ width: 100%; /* stylelint-disable-line property-disallowed-list */
133
+
134
+ &--show-results {
135
+ display: block;
136
+ }
137
+
138
+ &--static {
139
+ position: static;
140
+ }
141
+ }
@@ -0,0 +1,56 @@
1
+ @import "~@utrecht/link-css/src/mixin";
2
+ @import "~@utrecht/focus-ring-css/src/mixin";
3
+
4
+ .nijmegen-search-results {
5
+ border-block-color: var(--nijmegen-search-result-border-color);
6
+ border-block-end-style: solid;
7
+ border-block-end-width: var(--nijmegen-search-result-border-block-end-width, 1px);
8
+ display: flex;
9
+ flex-direction: column;
10
+ gap: var(--nijmegen-search-result-row-gap);
11
+ padding-block-end: var(--nijmegen-search-result-padding-block-end);
12
+ padding-block-start: var(--nijmegen-search-result-padding-block-start);
13
+ padding-inline-end: var(--nijmegen-search-result-padding-inline-end);
14
+ padding-inline-start: var(--nijmegen-search-result-padding-inline-start);
15
+ }
16
+
17
+ .nijmegen-search-results__content {
18
+ align-items: flex-start;
19
+ display: flex;
20
+ flex-direction: column;
21
+ gap: var(--nijmegen-search-result-content-row-gap);
22
+
23
+ @media (width < 576px) {
24
+ .nijmegen-metadata {
25
+ flex-direction: column;
26
+ }
27
+ }
28
+ }
29
+
30
+ .nijmegen-search-results__summary {
31
+ display: flex;
32
+ flex-direction: column;
33
+ gap: var(--nijmegen-search-result-content-row-gap);
34
+ }
35
+
36
+ .nijmegen-search-results__heading {
37
+ color: inherit;
38
+ text-decoration: var(--nijmegen-search-result-heading-text-decoration, none);
39
+
40
+ &:hover {
41
+ color: var(--nijmegen-search-result-heading-hover-color);
42
+ text-decoration: var(--nijmegen-search-result-heading-hover-text-decoration, underline);
43
+ }
44
+
45
+ &:focus,
46
+ &.nijmegen-search-results__heading--focus {
47
+ @include utrecht-link--focus;
48
+ @include utrecht-link--focus-visible;
49
+ }
50
+
51
+ &:focus-visible,
52
+ &.nijmegen-search-results__heading--focus-visible {
53
+ @include utrecht-link--focus;
54
+ @include utrecht-link--focus-visible;
55
+ }
56
+ }
@@ -0,0 +1,41 @@
1
+ @import "~@utrecht/link-css/src/mixin";
2
+ @import "~@utrecht/focus-ring-css/src/mixin";
3
+
4
+ .nijmegen-skip-link {
5
+ @include utrecht-link;
6
+
7
+ background-color: var(--nijmegen-focus-background-color);
8
+ box-sizing: border-box;
9
+ color: var(--nijmegen-focus-color);
10
+ display: inline-block;
11
+ font-size: var(--utrecht-document-font-size);
12
+ line-height: var(--utrecht-document-line-height);
13
+ margin-block-end: var(--nijmegen-skip-link-margin-block-end);
14
+ min-block-size: var(--utrecht-pointer-target-min-size);
15
+ min-inline-size: var(--utrecht-pointer-target-min-size);
16
+ padding-block: var(--nijmegen-space-75);
17
+ padding-inline: var(--nijmegen-space-100);
18
+ text-align: center;
19
+
20
+ &:not(:active, :focus, .nijmegen-skip-link--focus) {
21
+ block-size: 1px;
22
+ clip: rect(0 0 0 0);
23
+ clip-path: inset(50%);
24
+ inline-size: 1px;
25
+ overflow: hidden;
26
+ position: absolute;
27
+ white-space: nowrap;
28
+ }
29
+
30
+ &:focus,
31
+ &.nijmegen-skip-link--focus {
32
+ @include utrecht-link--focus;
33
+ @include utrecht-link--focus-visible;
34
+ }
35
+
36
+ &:focus-visible,
37
+ &.nijmegen-skip-link--focus-visible {
38
+ @include utrecht-link--focus;
39
+ @include utrecht-link--focus-visible;
40
+ }
41
+ }
@@ -0,0 +1,116 @@
1
+ import fs from "fs";
2
+ import path from "path";
3
+ import spacingMatrix from "./spacing-matrix.json" assert { type: "json" };
4
+ import semanticSpacingMatrix from "./semantic-spacing-matrix.json" assert { type: "json" };
5
+
6
+ const spaceMap = {
7
+ NVT: undefined,
8
+ Onbekenden: "stranger",
9
+ Kennissen: "acquaintance",
10
+ Vrienden: "friend",
11
+ Besties: "best-friend",
12
+ Kind: "confidant",
13
+ };
14
+
15
+ const getSpacings = (spacingMatrix) => {
16
+ return spacingMatrix
17
+ .map((spacing) => {
18
+ const entries = Object.entries(spacing);
19
+ const [, component] = entries.shift();
20
+ return entries
21
+ .map(([sibling, space]) => {
22
+ const spacing = spaceMap[space];
23
+ return spacing && { component, sibling, spacing };
24
+ })
25
+ .filter(Boolean);
26
+ })
27
+ .filter((arr) => arr.length);
28
+ };
29
+
30
+ const getSpacingMixins = (components) =>
31
+ components.map((mixinGroup) => {
32
+ const componentName = mixinGroup[0].component;
33
+
34
+ const mixins = mixinGroup.map(
35
+ ({ component, sibling, spacing }) =>
36
+ `.${component}:has(+ .${sibling}) {
37
+ --${component}-margin-block-end: var(--utrecht-rich-text-${spacing}-margin-block-end);
38
+ }`,
39
+ );
40
+ return `@mixin spacing-${componentName} {
41
+ .${componentName}:first-child {
42
+ --${componentName}-margin-block-start: 0;
43
+ }
44
+ ${mixins.join(";\n")}
45
+ }`;
46
+ });
47
+
48
+ const getSpacingMixinsSemantic = (components) =>
49
+ components.map((mixinGroup) => {
50
+ var componentName = mixinGroup[0].component;
51
+ componentName = componentName.replace(/^\./, "");
52
+
53
+ const mixins = mixinGroup.map(({ component, sibling, spacing }) => {
54
+ let resp = `${component}:has(+ ${sibling}) {
55
+ margin-block-end: var(--utrecht-rich-text-${spacing}-margin-block-end);`;
56
+ if (component == "button" && component == sibling) {
57
+ resp += `
58
+ margin-inline-end: var(--utrecht-rich-text-${spacing}-margin-block-end);
59
+ }`;
60
+ } else {
61
+ resp += `
62
+ }`;
63
+ }
64
+ return resp;
65
+ });
66
+ return `@mixin spacing-${componentName} {
67
+ ${componentName}:first-child {
68
+ --${componentName}-margin-block-start: 0;
69
+ }
70
+ ${mixins.join(";\n")}
71
+ }`;
72
+ });
73
+
74
+ const getRichTextStyles = (components, parentclass = "nijmegen-spacing") => `
75
+ @import "./mixin";
76
+
77
+ .${parentclass} .utrecht-page-body__content {
78
+ --utrecht-space-around: 1;
79
+ ${components.map((mixinGroup) => `@include spacing-${mixinGroup[0].component}`).join(";\n")}
80
+ }
81
+ @import "./nested";`;
82
+
83
+ const spacings = getSpacings(spacingMatrix);
84
+ const semanticSpacings = getSpacings(semanticSpacingMatrix);
85
+
86
+ fs.writeFileSync(
87
+ path.resolve("./spacing/src/_mixin.scss"),
88
+ getSpacingMixins(spacings).join("\n"),
89
+ {
90
+ override: true,
91
+ },
92
+ );
93
+
94
+ fs.writeFileSync(
95
+ path.resolve("./spacing/src/semantic/_mixin.scss"),
96
+ getSpacingMixinsSemantic(semanticSpacings).join("\n"),
97
+ {
98
+ override: true,
99
+ },
100
+ );
101
+
102
+ fs.writeFileSync(
103
+ path.resolve("./spacing/src/index.scss"),
104
+ getRichTextStyles(spacings),
105
+ {
106
+ override: true,
107
+ },
108
+ );
109
+
110
+ fs.writeFileSync(
111
+ path.resolve("./spacing/src/semantic/index.scss"),
112
+ getRichTextStyles(semanticSpacings, "nijmegen-html"),
113
+ {
114
+ override: true,
115
+ },
116
+ );
@@ -0,0 +1,156 @@
1
+ [
2
+ {
3
+ "component": "h1",
4
+ "h1": "NVT",
5
+ "h2": "Kennissen",
6
+ "h3": "NVT",
7
+ "h4": "NVT",
8
+ "h5": "NVT",
9
+ "h6": "NVT",
10
+ "button": "Kennissen",
11
+ "p": "Kennissen",
12
+ "ul": "Kennissen",
13
+ ".nijmegen-html-linklist": "Kennissen",
14
+ "a": "Kennissen"
15
+ },
16
+ {
17
+ "component": "h2",
18
+ "h1": "NVT",
19
+ "h2": "NVT",
20
+ "h3": "Kennissen",
21
+ "h4": "NVT",
22
+ "h5": "NVT",
23
+ "h6": "NVT",
24
+ "button": "Vrienden",
25
+ "p": "Vrienden",
26
+ "ul": "Vrienden",
27
+ ".nijmegen-html-linklist": "Vrienden",
28
+ "a": "Vrienden"
29
+ },
30
+ {
31
+ "component": "h3",
32
+ "h1": "NVT",
33
+ "h2": "NVT",
34
+ "h3": "NVT",
35
+ "h4": "Kennissen",
36
+ "h5": "NVT",
37
+ "h6": "NVT",
38
+ "button": "Vrienden",
39
+ "p": "Vrienden",
40
+ "ul": "Vrienden",
41
+ ".nijmegen-html-linklist": "Vrienden",
42
+ "a": "Vrienden"
43
+ },
44
+ {
45
+ "component": "h4",
46
+ "h1": "NVT",
47
+ "h2": "NVT",
48
+ "h3": "NVT",
49
+ "h4": "NVT",
50
+ "h5": "Kennissen",
51
+ "h6": "NVT",
52
+ "button": "Vrienden",
53
+ "p": "Vrienden",
54
+ "ul": "Vrienden",
55
+ ".nijmegen-html-linklist": "Vrienden",
56
+ "a": "Vrienden"
57
+ },
58
+ {
59
+ "component": "h5",
60
+ "h1": "NVT",
61
+ "h2": "NVT",
62
+ "h3": "NVT",
63
+ "h4": "NVT",
64
+ "h5": "NVT",
65
+ "h6": "Kennissen",
66
+ "button": "Vrienden",
67
+ "p": "Vrienden",
68
+ "ul": "Vrienden",
69
+ ".nijmegen-html-linklist": "Vrienden",
70
+ "a": "Vrienden"
71
+ },
72
+ {
73
+ "component": "h6",
74
+ "h1": "NVT",
75
+ "h2": "NVT",
76
+ "h3": "NVT",
77
+ "h4": "NVT",
78
+ "h5": "NVT",
79
+ "h6": "NVT",
80
+ "button": "Vrienden",
81
+ "p": "Vrienden",
82
+ "ul": "Vrienden",
83
+ ".nijmegen-html-linklist": "Vrienden",
84
+ "a": "Vrienden"
85
+ },
86
+ {
87
+ "component": "button",
88
+ "h1": "NVT",
89
+ "h2": "Onbekenden",
90
+ "h3": "Onbekenden",
91
+ "h4": "Onbekenden",
92
+ "h5": "Onbekenden",
93
+ "h6": "Onbekenden",
94
+ "button": "Vrienden",
95
+ "p": "Vrienden",
96
+ "ul": "Vrienden",
97
+ ".nijmegen-html-linklist": "Vrienden",
98
+ "a": "Vrienden"
99
+ },
100
+ {
101
+ "component": "p",
102
+ "h1": "NVT",
103
+ "h2": "Kennissen",
104
+ "h3": "Kennissen",
105
+ "h4": "Kennissen",
106
+ "h5": "Kennissen",
107
+ "h6": "Kennissen",
108
+ "button": "Vrienden",
109
+ "p": "Vrienden",
110
+ "ul": "Vrienden",
111
+ ".nijmegen-html-linklist": "Vrienden",
112
+ "a": "Vrienden"
113
+ },
114
+ {
115
+ "component": "ul",
116
+ "h1": "NVT",
117
+ "h2": "Kennissen",
118
+ "h3": "Kennissen",
119
+ "h4": "Kennissen",
120
+ "h5": "Kennissen",
121
+ "h6": "Kennissen",
122
+ "button": "Vrienden",
123
+ "p": "Vrienden",
124
+ "ul": "Vrienden",
125
+ ".nijmegen-html-linklist": "Vrienden",
126
+ "a": "Vrienden"
127
+ },
128
+ {
129
+ "component": ".nijmegen-html-linklist",
130
+ "h1": "NVT",
131
+ "h2": "Kennissen",
132
+ "h3": "Kennissen",
133
+ "h4": "Kennissen",
134
+ "h5": "Kennissen",
135
+ "h6": "Kennissen",
136
+ "button": "Vrienden",
137
+ "p": "Vrienden",
138
+ "ul": "Vrienden",
139
+ ".nijmegen-html-linklist": "Vrienden",
140
+ "a": "Vrienden"
141
+ },
142
+ {
143
+ "component": "a",
144
+ "h1": "NVT",
145
+ "h2": "Kennissen",
146
+ "h3": "Kennissen",
147
+ "h4": "Kennissen",
148
+ "h5": "Kennissen",
149
+ "h6": "Kennissen",
150
+ "button": "Vrienden",
151
+ "p": "Kennissen",
152
+ "ul": "Vrienden",
153
+ ".nijmegen-html-linklist": "Vrienden",
154
+ "a": "Vrienden"
155
+ }
156
+ ]