baseline-foundry 0.1.3 → 0.1.4

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 (43) hide show
  1. package/README.md +568 -552
  2. package/config/experiments/ibm-plex-engine-smoke.json +115 -115
  3. package/config/experiments/ubuntu-engine-smoke.json +115 -115
  4. package/config/foundation-theme.json +110 -110
  5. package/config/tiers/app.json +116 -116
  6. package/config/tiers/documentation.json +116 -116
  7. package/config/tiers/editorial.json +116 -116
  8. package/config/tiers/os.json +116 -116
  9. package/dist/baseline-grid-overlay.js +43 -43
  10. package/dist/css-app-tier.js +73 -73
  11. package/dist/css-components/article-pagination.js +140 -140
  12. package/dist/css-components/button-actions.js +161 -161
  13. package/dist/css-components/cards-options.js +176 -176
  14. package/dist/css-components/chip-badge-status.js +158 -158
  15. package/dist/css-components/content-card.js +490 -490
  16. package/dist/css-components/control-row.js +14 -14
  17. package/dist/css-components/cta-figure-aspect.js +120 -120
  18. package/dist/css-components/document-navigation.js +390 -390
  19. package/dist/css-components/editorial-content.js +42 -42
  20. package/dist/css-components/icon.js +72 -72
  21. package/dist/css-components/interactive-feedback.js +217 -217
  22. package/dist/css-components/interactive-tables.js +155 -155
  23. package/dist/css-components/legacy-navigation.d.ts +9 -0
  24. package/dist/css-components/legacy-navigation.js +763 -0
  25. package/dist/css-components/linked-logo-site-layout.js +177 -177
  26. package/dist/css-components/list-tree.js +94 -94
  27. package/dist/css-components/logo-media.js +201 -201
  28. package/dist/css-components/navigation-layout.js +144 -144
  29. package/dist/css-components/panel.js +144 -144
  30. package/dist/css-components/search-box-and-filter.js +263 -263
  31. package/dist/css-components/sites-editorial-ports.js +243 -243
  32. package/dist/css-components/sites-foundation.js +146 -146
  33. package/dist/css-components/sites-rich-lists.js +344 -344
  34. package/dist/css-components/static-content-ports.js +182 -182
  35. package/dist/css-components/tab-section.js +82 -82
  36. package/dist/css-components/table.js +75 -75
  37. package/dist/css-components/tabs-choice-breadcrumbs.js +303 -303
  38. package/dist/css-components/tiered-list-equal-height-row.js +271 -271
  39. package/dist/css-components.js +1791 -2542
  40. package/dist/css-grid.js +172 -172
  41. package/dist/css.js +240 -240
  42. package/docs/publishing.md +30 -13
  43. package/package.json +119 -108
@@ -1,180 +1,180 @@
1
1
  export function cardsOptionsCss(options) {
2
2
  const { bodyStrongTypeStyles, bodyTypeStyles } = options;
3
- return `:where(.bf-theme) :where(.bf-card, .bf-card.is-highlighted, .bf-card.is-overlay, .bf-card.is-muted) {
4
- --bf-card-background: var(--bf-color-background-default);
5
- --bf-card-border: var(--bf-color-border-default);
6
- --bf-card-shadow: none;
7
- background: var(--bf-card-background);
8
- border: var(--bf-border-width) solid var(--bf-card-border);
9
- box-shadow: var(--bf-card-shadow);
10
- color: var(--bf-color-text-default);
11
- display: flex;
12
- flex-direction: column;
13
- gap: var(--bf-field-gap);
14
- max-inline-size: 100%;
15
- overflow: auto;
16
- padding-block-end: calc(var(--bf-panel-padding-block) - var(--bf-border-width));
17
- padding-block-start: calc(var(--bf-panel-padding-block) - var(--bf-border-width));
18
- padding-inline: var(--bf-panel-padding-inline);
19
- }
20
-
21
- :where(.bf-theme) :where(.bf-card.is-highlighted) {
22
- --bf-card-background: color-mix(in srgb, var(--bf-color-background-default) 82%, white 18%);
23
- --bf-card-shadow: 0 calc(var(--bf-control-visual-size) * 0.25) calc(var(--bf-control-visual-size) * 0.75) rgba(0, 0, 0, 0.16);
24
- }
25
-
26
- :where(.bf-theme) :where(.bf-card.is-overlay) {
27
- --bf-card-background: var(--bf-color-background-alt);
28
- }
29
-
30
- :where(.bf-theme) :where(.bf-card.is-muted) {
31
- --bf-card-background: color-mix(in srgb, var(--bf-color-background-default) 88%, black 12%);
32
- }
33
-
34
- :where(.bf-theme) :where(a.bf-card, a.bf-card.is-highlighted, a.bf-card.is-overlay, a.bf-card.is-muted) {
35
- color: inherit;
36
- cursor: pointer;
37
- text-decoration: none;
38
- transition: border-color 140ms ease, background-color 140ms ease, transform 140ms ease;
39
- }
40
-
41
- :where(.bf-theme) :where(a.bf-card:hover, a.bf-card.is-highlighted:hover, a.bf-card.is-overlay:hover, a.bf-card.is-muted:hover) {
42
- border-color: var(--bf-color-focus);
43
- transform: translateY(-1px);
44
- }
45
-
46
- :where(.bf-theme) :where(a.bf-card:focus:not(:focus-visible), a.bf-card.is-highlighted:focus:not(:focus-visible), a.bf-card.is-overlay:focus:not(:focus-visible), a.bf-card.is-muted:focus:not(:focus-visible)) {
47
- outline: none;
48
- }
49
-
50
- :where(.bf-theme) :where(a.bf-card:focus-visible, a.bf-card.is-highlighted:focus-visible, a.bf-card.is-overlay:focus-visible, a.bf-card.is-muted:focus-visible) {
51
- outline: 2px solid var(--bf-color-focus);
52
- outline-offset: -2px;
53
- }
54
-
55
- :where(.bf-theme) :where(.bf-card.is-preview) {
56
- align-content: start;
57
- min-inline-size: 0;
58
- }
59
-
60
- :where(.bf-theme) :where(.bf-card-preview) {
61
- aspect-ratio: 3 / 2;
62
- background:
63
- linear-gradient(180deg, color-mix(in srgb, var(--bf-color-background-default) 78%, var(--bf-color-background-alt) 22%), var(--bf-color-background-alt)),
64
- var(--bf-color-background-alt);
65
- border: var(--bf-border-width) solid var(--bf-color-border-low-contrast);
66
- display: grid;
67
- min-inline-size: 0;
68
- overflow: hidden;
69
- place-items: center;
70
- position: relative;
71
- }
72
-
73
- :where(.bf-theme) :where(.bf-card-preview.is-missing)::after {
74
- color: var(--bf-color-text-inactive);
75
- content: "Capture missing";
76
- font-size: 0.75rem;
77
- letter-spacing: 0.04em;
78
- text-transform: uppercase;
79
- }
80
-
81
- :where(.bf-theme) :where(.bf-card-preview-image) {
82
- block-size: 100%;
83
- display: block;
84
- inline-size: 100%;
85
- object-fit: contain;
86
- object-position: center;
87
- }
88
-
89
- :where(.bf-theme) :where(.bf-card-image) {
90
- display: block;
91
- inline-size: 100%;
92
- margin: 0;
93
- }
94
-
95
- :where(.bf-theme) :where(.bf-card-header) {
96
- border-bottom: var(--bf-border-width) solid var(--bf-color-border-low-contrast);
97
- display: grid;
98
- gap: var(--bf-field-gap);
99
- padding-block-end: calc(var(--bf-panel-padding-block) - var(--bf-border-width));
100
- }
101
-
102
- :where(.bf-theme) :where(.bf-card-inner) {
103
- display: grid;
104
- gap: var(--bf-field-gap);
105
- }
106
-
107
- :where(.bf-theme) :where(.bf-card-content) {
108
- min-inline-size: 0;
109
- }
110
-
111
- :where(.bf-theme) :where(.bf-card-thumbnail) {
112
- block-size: auto;
113
- max-block-size: calc(var(--bf-control-visual-size) * 2);
114
- }
115
-
116
- :where(.bf-theme) :where(.bf-option-grid) {
117
- display: grid;
118
- gap: calc(var(--bf-baseline) * 2.5);
119
- grid-template-columns: repeat(auto-fit, minmax(min(100%, 10rem), 1fr));
120
- }
121
-
122
- :where(.bf-theme) :where(.bf-option-card) {
123
- align-content: start;
124
- align-items: start;
125
- background: color-mix(in srgb, var(--bf-color-background-default) 88%, black 12%);
126
- border: var(--bf-border-width) solid var(--bf-color-border-default);
127
- color: var(--bf-color-text-default);
128
- display: grid;
129
- gap: var(--bf-field-gap);
130
- margin: 0;
131
- min-block-size: calc((var(--bf-control-box-size) * 2) + var(--bf-baseline));
132
- min-inline-size: 0;
133
- padding-block-end: calc(var(--bf-panel-padding-block) - var(--bf-border-width));
134
- padding-block-start: calc(var(--bf-panel-padding-block) - var(--bf-border-width));
135
- padding-inline: var(--bf-panel-padding-inline);
136
- text-align: left;
137
- }
138
-
139
- :where(.bf-theme) :where(button.bf-option-card) {
140
- appearance: none;
141
- cursor: pointer;
142
- transition: border-color 140ms ease, background-color 140ms ease, transform 140ms ease;
143
- }
144
-
145
- :where(.bf-theme) :where(button.bf-option-card:hover:not(:disabled)) {
146
- background: var(--bf-color-background-hover);
147
- border-color: var(--bf-color-focus);
148
- transform: translateY(-1px);
149
- }
150
-
151
- :where(.bf-theme) :where(.bf-option-card.is-active),
152
- :where(.bf-theme) :where(button.bf-option-card:disabled) {
153
- background: color-mix(in srgb, var(--bf-color-background-active) 82%, var(--bf-color-focus) 18%);
154
- border-color: var(--bf-color-focus);
155
- color: var(--bf-color-text-default);
156
- }
157
-
158
- :where(.bf-theme) :where(button.bf-option-card:focus-visible) {
159
- outline: 2px solid var(--bf-color-focus);
160
- outline-offset: -2px;
161
- }
162
-
163
- :where(.bf-theme) :where(.bf-option-card-label) {
164
- ${bodyStrongTypeStyles} display: block;
165
- margin: 0;
166
- min-inline-size: 0;
167
- }
168
-
169
- :where(.bf-theme) :where(.bf-option-card-meta) {
170
- ${bodyTypeStyles} color: var(--bf-color-text-muted);
171
- display: block;
172
- margin: 0;
173
- min-inline-size: 0;
174
- }
175
-
176
- :where(.bf-theme) :where(.bf-option-card-meta.is-quiet) {
177
- color: var(--bf-color-text-inactive);
178
- }
3
+ return `:where(.bf-theme) :where(.bf-card, .bf-card.is-highlighted, .bf-card.is-overlay, .bf-card.is-muted) {
4
+ --bf-card-background: var(--bf-color-background-default);
5
+ --bf-card-border: var(--bf-color-border-default);
6
+ --bf-card-shadow: none;
7
+ background: var(--bf-card-background);
8
+ border: var(--bf-border-width) solid var(--bf-card-border);
9
+ box-shadow: var(--bf-card-shadow);
10
+ color: var(--bf-color-text-default);
11
+ display: flex;
12
+ flex-direction: column;
13
+ gap: var(--bf-field-gap);
14
+ max-inline-size: 100%;
15
+ overflow: auto;
16
+ padding-block-end: calc(var(--bf-panel-padding-block) - var(--bf-border-width));
17
+ padding-block-start: calc(var(--bf-panel-padding-block) - var(--bf-border-width));
18
+ padding-inline: var(--bf-panel-padding-inline);
19
+ }
20
+
21
+ :where(.bf-theme) :where(.bf-card.is-highlighted) {
22
+ --bf-card-background: color-mix(in srgb, var(--bf-color-background-default) 82%, white 18%);
23
+ --bf-card-shadow: 0 calc(var(--bf-control-visual-size) * 0.25) calc(var(--bf-control-visual-size) * 0.75) rgba(0, 0, 0, 0.16);
24
+ }
25
+
26
+ :where(.bf-theme) :where(.bf-card.is-overlay) {
27
+ --bf-card-background: var(--bf-color-background-alt);
28
+ }
29
+
30
+ :where(.bf-theme) :where(.bf-card.is-muted) {
31
+ --bf-card-background: color-mix(in srgb, var(--bf-color-background-default) 88%, black 12%);
32
+ }
33
+
34
+ :where(.bf-theme) :where(a.bf-card, a.bf-card.is-highlighted, a.bf-card.is-overlay, a.bf-card.is-muted) {
35
+ color: inherit;
36
+ cursor: pointer;
37
+ text-decoration: none;
38
+ transition: border-color 140ms ease, background-color 140ms ease, transform 140ms ease;
39
+ }
40
+
41
+ :where(.bf-theme) :where(a.bf-card:hover, a.bf-card.is-highlighted:hover, a.bf-card.is-overlay:hover, a.bf-card.is-muted:hover) {
42
+ border-color: var(--bf-color-focus);
43
+ transform: translateY(-1px);
44
+ }
45
+
46
+ :where(.bf-theme) :where(a.bf-card:focus:not(:focus-visible), a.bf-card.is-highlighted:focus:not(:focus-visible), a.bf-card.is-overlay:focus:not(:focus-visible), a.bf-card.is-muted:focus:not(:focus-visible)) {
47
+ outline: none;
48
+ }
49
+
50
+ :where(.bf-theme) :where(a.bf-card:focus-visible, a.bf-card.is-highlighted:focus-visible, a.bf-card.is-overlay:focus-visible, a.bf-card.is-muted:focus-visible) {
51
+ outline: 2px solid var(--bf-color-focus);
52
+ outline-offset: -2px;
53
+ }
54
+
55
+ :where(.bf-theme) :where(.bf-card.is-preview) {
56
+ align-content: start;
57
+ min-inline-size: 0;
58
+ }
59
+
60
+ :where(.bf-theme) :where(.bf-card-preview) {
61
+ aspect-ratio: 3 / 2;
62
+ background:
63
+ linear-gradient(180deg, color-mix(in srgb, var(--bf-color-background-default) 78%, var(--bf-color-background-alt) 22%), var(--bf-color-background-alt)),
64
+ var(--bf-color-background-alt);
65
+ border: var(--bf-border-width) solid var(--bf-color-border-low-contrast);
66
+ display: grid;
67
+ min-inline-size: 0;
68
+ overflow: hidden;
69
+ place-items: center;
70
+ position: relative;
71
+ }
72
+
73
+ :where(.bf-theme) :where(.bf-card-preview.is-missing)::after {
74
+ color: var(--bf-color-text-inactive);
75
+ content: "Capture missing";
76
+ font-size: 0.75rem;
77
+ letter-spacing: 0.04em;
78
+ text-transform: uppercase;
79
+ }
80
+
81
+ :where(.bf-theme) :where(.bf-card-preview-image) {
82
+ block-size: 100%;
83
+ display: block;
84
+ inline-size: 100%;
85
+ object-fit: contain;
86
+ object-position: center;
87
+ }
88
+
89
+ :where(.bf-theme) :where(.bf-card-image) {
90
+ display: block;
91
+ inline-size: 100%;
92
+ margin: 0;
93
+ }
94
+
95
+ :where(.bf-theme) :where(.bf-card-header) {
96
+ border-bottom: var(--bf-border-width) solid var(--bf-color-border-low-contrast);
97
+ display: grid;
98
+ gap: var(--bf-field-gap);
99
+ padding-block-end: calc(var(--bf-panel-padding-block) - var(--bf-border-width));
100
+ }
101
+
102
+ :where(.bf-theme) :where(.bf-card-inner) {
103
+ display: grid;
104
+ gap: var(--bf-field-gap);
105
+ }
106
+
107
+ :where(.bf-theme) :where(.bf-card-content) {
108
+ min-inline-size: 0;
109
+ }
110
+
111
+ :where(.bf-theme) :where(.bf-card-thumbnail) {
112
+ block-size: auto;
113
+ max-block-size: calc(var(--bf-control-visual-size) * 2);
114
+ }
115
+
116
+ :where(.bf-theme) :where(.bf-option-grid) {
117
+ display: grid;
118
+ gap: calc(var(--bf-baseline) * 2.5);
119
+ grid-template-columns: repeat(auto-fit, minmax(min(100%, 10rem), 1fr));
120
+ }
121
+
122
+ :where(.bf-theme) :where(.bf-option-card) {
123
+ align-content: start;
124
+ align-items: start;
125
+ background: color-mix(in srgb, var(--bf-color-background-default) 88%, black 12%);
126
+ border: var(--bf-border-width) solid var(--bf-color-border-default);
127
+ color: var(--bf-color-text-default);
128
+ display: grid;
129
+ gap: var(--bf-field-gap);
130
+ margin: 0;
131
+ min-block-size: calc((var(--bf-control-box-size) * 2) + var(--bf-baseline));
132
+ min-inline-size: 0;
133
+ padding-block-end: calc(var(--bf-panel-padding-block) - var(--bf-border-width));
134
+ padding-block-start: calc(var(--bf-panel-padding-block) - var(--bf-border-width));
135
+ padding-inline: var(--bf-panel-padding-inline);
136
+ text-align: left;
137
+ }
138
+
139
+ :where(.bf-theme) :where(button.bf-option-card) {
140
+ appearance: none;
141
+ cursor: pointer;
142
+ transition: border-color 140ms ease, background-color 140ms ease, transform 140ms ease;
143
+ }
144
+
145
+ :where(.bf-theme) :where(button.bf-option-card:hover:not(:disabled)) {
146
+ background: var(--bf-color-background-hover);
147
+ border-color: var(--bf-color-focus);
148
+ transform: translateY(-1px);
149
+ }
150
+
151
+ :where(.bf-theme) :where(.bf-option-card.is-active),
152
+ :where(.bf-theme) :where(button.bf-option-card:disabled) {
153
+ background: color-mix(in srgb, var(--bf-color-background-active) 82%, var(--bf-color-focus) 18%);
154
+ border-color: var(--bf-color-focus);
155
+ color: var(--bf-color-text-default);
156
+ }
157
+
158
+ :where(.bf-theme) :where(button.bf-option-card:focus-visible) {
159
+ outline: 2px solid var(--bf-color-focus);
160
+ outline-offset: -2px;
161
+ }
162
+
163
+ :where(.bf-theme) :where(.bf-option-card-label) {
164
+ ${bodyStrongTypeStyles} display: block;
165
+ margin: 0;
166
+ min-inline-size: 0;
167
+ }
168
+
169
+ :where(.bf-theme) :where(.bf-option-card-meta) {
170
+ ${bodyTypeStyles} color: var(--bf-color-text-muted);
171
+ display: block;
172
+ margin: 0;
173
+ min-inline-size: 0;
174
+ }
175
+
176
+ :where(.bf-theme) :where(.bf-option-card-meta.is-quiet) {
177
+ color: var(--bf-color-text-inactive);
178
+ }
179
179
  `;
180
180
  }