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
@@ -5,160 +5,160 @@
5
5
  * rhythm through its tier tokens. Runtime hooks never participate in styling.
6
6
  */
7
7
  export function interactiveTablesCss() {
8
- return `:where(.bf-theme) :where(.bf-table.is-sortable th[aria-sort]) {
9
- color: var(--bf-color-text-default);
10
- cursor: pointer;
11
- outline-color: var(--bf-color-focus);
12
- white-space: nowrap;
13
- }
14
-
15
- :where(.bf-theme) :where(.bf-table-sort-button) {
16
- appearance: none;
17
- background: transparent;
18
- border: 0;
19
- color: inherit;
20
- cursor: inherit;
21
- display: inline-block;
22
- font: inherit;
23
- margin: -2px calc(var(--bf-space-half) * -1);
24
- max-inline-size: 100%;
25
- overflow: hidden;
26
- padding: 2px var(--bf-space-half);
27
- text-align: inherit;
28
- text-decoration: inherit;
29
- text-overflow: inherit;
30
- vertical-align: inherit;
31
- white-space: inherit;
32
- }
33
-
34
- :where(.bf-theme) :where(.bf-table.is-sortable th[aria-sort]:hover, .bf-table-sort-button:focus-visible) {
35
- color: var(--bf-color-link-default);
36
- text-decoration: underline;
37
- text-decoration-thickness: 1px;
38
- text-underline-offset: 0.075em;
39
- }
40
-
41
- :where(.bf-theme) :where(.bf-table-sort-button:focus:not(:focus-visible)) {
42
- outline: none;
43
- }
44
-
45
- :where(.bf-theme) :where(.bf-table-sort-button:focus-visible) {
46
- outline: 2px solid var(--bf-color-focus);
47
- outline-offset: -2px;
48
- }
49
-
50
- :where(.bf-theme) :where(.bf-table.is-sortable th[aria-sort='ascending'], .bf-table.is-sortable th[aria-sort='descending'])::after {
51
- background-image: var(--bf-ui-icon-chevron-down);
52
- background-position: center;
53
- background-repeat: no-repeat;
54
- background-size: contain;
55
- block-size: var(--bf-icon-size-default);
56
- content: "";
57
- display: inline-block;
58
- inline-size: var(--bf-icon-size-default);
59
- margin-inline-start: var(--bf-space-half);
60
- vertical-align: calc((1cap - var(--bf-icon-size-default)) / 2);
61
- }
62
-
63
- :where(.bf-theme) :where(.bf-table.is-sortable th[aria-sort='ascending'])::after {
64
- transform: rotate(180deg);
65
- }
66
-
67
- :where(.bf-theme) :where(.bf-table.is-expanding .bf-table-expand-toggle) {
68
- margin-block-end: 0;
69
- white-space: nowrap;
70
- }
71
-
72
- :where(.bf-theme) :where(.bf-table-expanding-row[hidden]) {
73
- display: none;
74
- }
75
-
76
- :where(.bf-theme) .bf-table.is-expanding .bf-table-expanding-cell {
77
- overflow: visible;
78
- /* Complete the ordinary start-nudge inset with the paired end nudge while
79
- consuming the row rule inside it, so wrapped detail rows stay on-grid. */
80
- padding-block-end: calc(var(--bf-space-1) + var(--bf-body-nudge-end) - var(--bf-table-row-border-size));
81
- white-space: normal;
82
- }
83
-
84
- :where(.bf-theme) :where(.bf-table-mobile-card-frame) {
85
- container-type: inline-size;
86
- min-inline-size: 0;
87
- }
88
-
89
- :where(.bf-theme) :where(.bf-table-card-label) {
90
- display: none;
91
- }
92
-
93
- @container (width < 64.75rem) {
94
- :where(.bf-theme) :where(.bf-table-mobile-card-frame > .bf-table.is-mobile-card) {
95
- display: block;
96
- }
97
-
98
- :where(.bf-theme) :where(.bf-table-mobile-card-frame > .bf-table.is-mobile-card > thead) {
99
- block-size: 1px;
100
- clip-path: inset(50%);
101
- inline-size: 1px;
102
- overflow: hidden;
103
- position: absolute;
104
- white-space: nowrap;
105
- }
106
-
107
- :where(.bf-theme) :where(.bf-table-mobile-card-frame > .bf-table.is-mobile-card > tbody) {
108
- display: grid;
109
- gap: 0 var(--bf-space-3);
110
- grid-template-columns: repeat(auto-fit, minmax(min(12rem, 100%), 1fr));
111
- inline-size: 100%;
112
- }
113
-
114
- :where(.bf-theme) :where(.bf-table-mobile-card-frame > .bf-table.is-mobile-card > tbody > tr) {
115
- border: var(--bf-border-width) solid var(--bf-color-border-default);
116
- display: block;
117
- margin-block-end: calc(var(--bf-space-3) - (var(--bf-border-width) * 2));
118
- min-inline-size: 0;
119
- padding-inline: var(--bf-space-2);
120
- }
121
-
122
- :where(.bf-theme) :where(.bf-table-mobile-card-frame > .bf-table.is-mobile-card > tbody > tr > :where(th, td)) {
123
- border-block-end-color: transparent;
124
- display: block;
125
- inline-size: 100%;
126
- min-inline-size: 0;
127
- overflow: hidden;
128
- padding-inline: 0;
129
- position: relative;
130
- text-align: start;
131
- text-overflow: ellipsis;
132
- white-space: nowrap;
133
- word-break: break-word;
134
- }
135
-
136
- :where(.bf-theme) :where(.bf-table-mobile-card-frame > .bf-table.is-mobile-card > tbody > tr > :where(th, td):not(:first-child))::before {
137
- background: var(--bf-color-border-low-contrast);
138
- block-size: var(--bf-border-width);
139
- content: "";
140
- inset-block-start: 0;
141
- inset-inline: 0;
142
- position: absolute;
143
- }
144
-
145
- :where(.bf-theme) :where(.bf-table-mobile-card-frame > .bf-table.is-mobile-card .bf-table-card-label) {
146
- color: var(--bf-color-text-default);
147
- display: block;
148
- font-family: var(--bf-body-font-family);
149
- font-size: var(--bf-body-font-size);
150
- font-style: var(--bf-body-font-style);
151
- font-weight: 550;
152
- line-height: var(--bf-body-line-height);
153
- margin-block-end: var(--bf-space-1);
154
- overflow: hidden;
155
- text-overflow: ellipsis;
156
- white-space: nowrap;
157
- }
158
-
159
- :where(.bf-theme) :where(.bf-table-mobile-card-frame > .bf-table.is-mobile-card :where(th, td).is-overflow-visible) {
160
- overflow: visible;
161
- }
162
- }
8
+ return `:where(.bf-theme) :where(.bf-table.is-sortable th[aria-sort]) {
9
+ color: var(--bf-color-text-default);
10
+ cursor: pointer;
11
+ outline-color: var(--bf-color-focus);
12
+ white-space: nowrap;
13
+ }
14
+
15
+ :where(.bf-theme) :where(.bf-table-sort-button) {
16
+ appearance: none;
17
+ background: transparent;
18
+ border: 0;
19
+ color: inherit;
20
+ cursor: inherit;
21
+ display: inline-block;
22
+ font: inherit;
23
+ margin: -2px calc(var(--bf-space-half) * -1);
24
+ max-inline-size: 100%;
25
+ overflow: hidden;
26
+ padding: 2px var(--bf-space-half);
27
+ text-align: inherit;
28
+ text-decoration: inherit;
29
+ text-overflow: inherit;
30
+ vertical-align: inherit;
31
+ white-space: inherit;
32
+ }
33
+
34
+ :where(.bf-theme) :where(.bf-table.is-sortable th[aria-sort]:hover, .bf-table-sort-button:focus-visible) {
35
+ color: var(--bf-color-link-default);
36
+ text-decoration: underline;
37
+ text-decoration-thickness: 1px;
38
+ text-underline-offset: 0.075em;
39
+ }
40
+
41
+ :where(.bf-theme) :where(.bf-table-sort-button:focus:not(:focus-visible)) {
42
+ outline: none;
43
+ }
44
+
45
+ :where(.bf-theme) :where(.bf-table-sort-button:focus-visible) {
46
+ outline: 2px solid var(--bf-color-focus);
47
+ outline-offset: -2px;
48
+ }
49
+
50
+ :where(.bf-theme) :where(.bf-table.is-sortable th[aria-sort='ascending'], .bf-table.is-sortable th[aria-sort='descending'])::after {
51
+ background-image: var(--bf-ui-icon-chevron-down);
52
+ background-position: center;
53
+ background-repeat: no-repeat;
54
+ background-size: contain;
55
+ block-size: var(--bf-icon-size-default);
56
+ content: "";
57
+ display: inline-block;
58
+ inline-size: var(--bf-icon-size-default);
59
+ margin-inline-start: var(--bf-space-half);
60
+ vertical-align: calc((1cap - var(--bf-icon-size-default)) / 2);
61
+ }
62
+
63
+ :where(.bf-theme) :where(.bf-table.is-sortable th[aria-sort='ascending'])::after {
64
+ transform: rotate(180deg);
65
+ }
66
+
67
+ :where(.bf-theme) :where(.bf-table.is-expanding .bf-table-expand-toggle) {
68
+ margin-block-end: 0;
69
+ white-space: nowrap;
70
+ }
71
+
72
+ :where(.bf-theme) :where(.bf-table-expanding-row[hidden]) {
73
+ display: none;
74
+ }
75
+
76
+ :where(.bf-theme) .bf-table.is-expanding .bf-table-expanding-cell {
77
+ overflow: visible;
78
+ /* Complete the ordinary start-nudge inset with the paired end nudge while
79
+ consuming the row rule inside it, so wrapped detail rows stay on-grid. */
80
+ padding-block-end: calc(var(--bf-space-1) + var(--bf-body-nudge-end) - var(--bf-table-row-border-size));
81
+ white-space: normal;
82
+ }
83
+
84
+ :where(.bf-theme) :where(.bf-table-mobile-card-frame) {
85
+ container-type: inline-size;
86
+ min-inline-size: 0;
87
+ }
88
+
89
+ :where(.bf-theme) :where(.bf-table-card-label) {
90
+ display: none;
91
+ }
92
+
93
+ @container (width < 64.75rem) {
94
+ :where(.bf-theme) :where(.bf-table-mobile-card-frame > .bf-table.is-mobile-card) {
95
+ display: block;
96
+ }
97
+
98
+ :where(.bf-theme) :where(.bf-table-mobile-card-frame > .bf-table.is-mobile-card > thead) {
99
+ block-size: 1px;
100
+ clip-path: inset(50%);
101
+ inline-size: 1px;
102
+ overflow: hidden;
103
+ position: absolute;
104
+ white-space: nowrap;
105
+ }
106
+
107
+ :where(.bf-theme) :where(.bf-table-mobile-card-frame > .bf-table.is-mobile-card > tbody) {
108
+ display: grid;
109
+ gap: 0 var(--bf-space-3);
110
+ grid-template-columns: repeat(auto-fit, minmax(min(12rem, 100%), 1fr));
111
+ inline-size: 100%;
112
+ }
113
+
114
+ :where(.bf-theme) :where(.bf-table-mobile-card-frame > .bf-table.is-mobile-card > tbody > tr) {
115
+ border: var(--bf-border-width) solid var(--bf-color-border-default);
116
+ display: block;
117
+ margin-block-end: calc(var(--bf-space-3) - (var(--bf-border-width) * 2));
118
+ min-inline-size: 0;
119
+ padding-inline: var(--bf-space-2);
120
+ }
121
+
122
+ :where(.bf-theme) :where(.bf-table-mobile-card-frame > .bf-table.is-mobile-card > tbody > tr > :where(th, td)) {
123
+ border-block-end-color: transparent;
124
+ display: block;
125
+ inline-size: 100%;
126
+ min-inline-size: 0;
127
+ overflow: hidden;
128
+ padding-inline: 0;
129
+ position: relative;
130
+ text-align: start;
131
+ text-overflow: ellipsis;
132
+ white-space: nowrap;
133
+ word-break: break-word;
134
+ }
135
+
136
+ :where(.bf-theme) :where(.bf-table-mobile-card-frame > .bf-table.is-mobile-card > tbody > tr > :where(th, td):not(:first-child))::before {
137
+ background: var(--bf-color-border-low-contrast);
138
+ block-size: var(--bf-border-width);
139
+ content: "";
140
+ inset-block-start: 0;
141
+ inset-inline: 0;
142
+ position: absolute;
143
+ }
144
+
145
+ :where(.bf-theme) :where(.bf-table-mobile-card-frame > .bf-table.is-mobile-card .bf-table-card-label) {
146
+ color: var(--bf-color-text-default);
147
+ display: block;
148
+ font-family: var(--bf-body-font-family);
149
+ font-size: var(--bf-body-font-size);
150
+ font-style: var(--bf-body-font-style);
151
+ font-weight: 550;
152
+ line-height: var(--bf-body-line-height);
153
+ margin-block-end: var(--bf-space-1);
154
+ overflow: hidden;
155
+ text-overflow: ellipsis;
156
+ white-space: nowrap;
157
+ }
158
+
159
+ :where(.bf-theme) :where(.bf-table-mobile-card-frame > .bf-table.is-mobile-card :where(th, td).is-overflow-visible) {
160
+ overflow: visible;
161
+ }
162
+ }
163
163
  `;
164
164
  }
@@ -0,0 +1,9 @@
1
+ export interface LegacyNavigationCssOptions {
2
+ bodyMediumTypeStyles: string;
3
+ bodySemiboldTypeStyles: string;
4
+ bodyTypeStyles: string;
5
+ buttonMarginBottom: string;
6
+ buttonPadding: string;
7
+ compactButtonPadding: string;
8
+ }
9
+ export declare function legacyNavigationCss(options: LegacyNavigationCssOptions): string;