fokus-styles 2.0.0 → 2.4.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/CHANGELOG.md +19 -0
- package/README.md +4 -3
- package/dist/css/components.css +532 -2
- package/dist/css/components.css.map +1 -1
- package/dist/css/components.min.css +1 -1
- package/dist/css/components.min.css.map +1 -1
- package/dist/css/fokus-components.css +4072 -0
- package/dist/css/fokus-components.css.map +1 -0
- package/dist/css/fokus-components.min.css +2 -0
- package/dist/css/fokus-components.min.css.map +1 -0
- package/dist/css/fokus-core.css +1585 -0
- package/dist/css/fokus-core.css.map +1 -0
- package/dist/css/fokus-core.min.css +2 -0
- package/dist/css/fokus-core.min.css.map +1 -0
- package/dist/css/fokus-dark.css +314 -0
- package/dist/css/fokus-dark.css.map +1 -0
- package/dist/css/fokus-dark.min.css +2 -0
- package/dist/css/fokus-dark.min.css.map +1 -0
- package/dist/css/fokus-rtl.css +8552 -0
- package/dist/css/fokus-rtl.css.map +1 -0
- package/dist/css/fokus-rtl.min.css +2 -0
- package/dist/css/fokus-rtl.min.css.map +1 -0
- package/dist/css/fokus-utilities.css +4198 -0
- package/dist/css/fokus-utilities.css.map +1 -0
- package/dist/css/fokus-utilities.min.css +2 -0
- package/dist/css/fokus-utilities.min.css.map +1 -0
- package/dist/css/fokus.css +1361 -53
- package/dist/css/fokus.css.map +1 -1
- package/dist/css/fokus.min.css +1 -1
- package/dist/css/fokus.min.css.map +1 -1
- package/dist/css/forms.css +137 -2
- package/dist/css/forms.css.map +1 -1
- package/dist/css/forms.min.css +1 -1
- package/dist/css/forms.min.css.map +1 -1
- package/dist/css/helpers.css +398 -2
- package/dist/css/helpers.css.map +1 -1
- package/dist/css/helpers.min.css +1 -1
- package/dist/css/helpers.min.css.map +1 -1
- package/dist/css/layout.css +582 -2
- package/dist/css/layout.css.map +1 -1
- package/dist/css/layout.min.css +1 -1
- package/dist/css/layout.min.css.map +1 -1
- package/dist/js/fokus.js +347 -12
- package/dist/js/fokus.js.map +4 -4
- package/dist/js/fokus.min.js +17 -17
- package/dist/js/fokus.min.js.map +4 -4
- package/docs/components/accordion.md +3 -0
- package/docs/components/avatar.md +13 -0
- package/docs/components/button-group.md +13 -0
- package/docs/components/close-button.md +13 -0
- package/docs/components/code.md +13 -0
- package/docs/components/icon-link.md +13 -0
- package/docs/components/list-group.md +13 -0
- package/docs/components/modal.md +3 -0
- package/docs/components/navbar.md +3 -0
- package/docs/components/pagination.md +3 -0
- package/docs/components/placeholder.md +13 -0
- package/docs/components/ratio.md +13 -0
- package/docs/components/scrollspy.md +13 -0
- package/docs/components/skeleton.md +3 -0
- package/docs/components/table.md +3 -0
- package/docs/guides/javascript-api.md +9 -0
- package/docs/guides/rtl-and-system-preferences.md +28 -0
- package/docs/guides/utility-api.md +9 -0
- package/docs/reference/size-baseline.json +13 -13
- package/mockup/assets/example-theme.css +3 -1
- package/mockup/assets/example-theme.js +2 -0
- package/mockup/assets/showcase-contracts.js +2 -2
- package/mockup/assets/showcase.css +4 -2
- package/mockup/assets/showcase.js +2 -0
- package/mockup/examples/js-foundation.html +25 -0
- package/mockup/examples/tables-navbar.html +12 -8
- package/mockup/examples/theming.html +2 -1
- package/mockup/foundations.html +2 -2
- package/package.json +15 -1
- package/packages/fokus-cli/bin/fokus.mjs +18 -1
- package/packages/fokus-cli/lib/build.mjs +12 -2
- package/packages/fokus-components/scss/components/_accordion.scss +19 -0
- package/packages/fokus-components/scss/components/_avatar.scss +22 -0
- package/packages/fokus-components/scss/components/_button-group.scss +14 -0
- package/packages/fokus-components/scss/components/_close-button.scss +22 -0
- package/packages/fokus-components/scss/components/_code.scss +19 -0
- package/packages/fokus-components/scss/components/_icon-link.scss +8 -0
- package/packages/fokus-components/scss/components/_index.scss +10 -0
- package/packages/fokus-components/scss/components/_list-group.scss +26 -0
- package/packages/fokus-components/scss/components/_modal.scss +36 -0
- package/packages/fokus-components/scss/components/_navbar.scss +48 -0
- package/packages/fokus-components/scss/components/_offcanvas.scss +19 -0
- package/packages/fokus-components/scss/components/_pagination.scss +10 -0
- package/packages/fokus-components/scss/components/_placeholder.scss +13 -0
- package/packages/fokus-components/scss/components/_progress.scss +8 -0
- package/packages/fokus-components/scss/components/_ratio.scss +10 -0
- package/packages/fokus-components/scss/components/_scrollspy.scss +5 -0
- package/packages/fokus-components/scss/components/_skeleton.scss +19 -0
- package/packages/fokus-components/scss/components/_spinner.scss +9 -53
- package/packages/fokus-components/scss/components/_tables.scss +20 -0
- package/packages/fokus-components/scss/forms/_forms.scss +29 -0
- package/packages/fokus-core/scss/base/_accessibility.scss +59 -0
- package/packages/fokus-core/scss/base/_index.scss +1 -0
- package/packages/fokus-core/scss/layout/_grid.scss +18 -0
- package/packages/fokus-core/scss/settings/_config.scss +43 -0
- package/packages/fokus-core/scss/settings/_index.scss +1 -0
- package/packages/fokus-core/scss/themes/_dark.scss +38 -2
- package/packages/fokus-core/scss/tokens/_root.scss +25 -0
- package/packages/fokus-core/scss/tools/_mixins.scss +8 -0
- package/packages/fokus-js/js/accordion.js +7 -1
- package/packages/fokus-js/js/core/focus.js +20 -0
- package/packages/fokus-js/js/core/overlay.d.ts +2 -0
- package/packages/fokus-js/js/core/overlay.js +10 -0
- package/packages/fokus-js/js/core/register.js +4 -2
- package/packages/fokus-js/js/focus-trap.d.ts +3 -0
- package/packages/fokus-js/js/focus-trap.js +1 -0
- package/packages/fokus-js/js/fokus.d.ts +7 -0
- package/packages/fokus-js/js/fokus.js +7 -0
- package/packages/fokus-js/js/form-validation.d.ts +7 -0
- package/packages/fokus-js/js/form-validation.js +20 -0
- package/packages/fokus-js/js/modal.js +16 -2
- package/packages/fokus-js/js/navbar.d.ts +10 -0
- package/packages/fokus-js/js/navbar.js +27 -0
- package/packages/fokus-js/js/offcanvas.d.ts +4 -0
- package/packages/fokus-js/js/offcanvas.js +16 -2
- package/packages/fokus-js/js/pagination.d.ts +7 -0
- package/packages/fokus-js/js/pagination.js +38 -0
- package/packages/fokus-js/js/scrollspy.d.ts +7 -0
- package/packages/fokus-js/js/scrollspy.js +26 -0
- package/packages/fokus-js/js/spinner.d.ts +9 -0
- package/packages/fokus-js/js/spinner.js +18 -0
- package/packages/fokus-js/js/theme.d.ts +9 -0
- package/packages/fokus-js/js/theme.js +19 -0
- package/packages/fokus-js/js/toast.js +4 -0
- package/packages/fokus-utilities/scss/utilities/_api.scss +48 -0
- package/packages/fokus-utilities/scss/utilities/_index.scss +2 -0
- package/packages/fokus-utilities/scss/utilities/_states.scss +19 -0
- package/packages/fokus-utilities/scss/utilities/_visibility.scss +24 -0
- package/scss/entries/core-entry.scss +5 -0
- package/scss/entries/dark-entry.scss +3 -0
- package/scss/entries/rtl-entry.scss +11 -0
package/dist/css/forms.css
CHANGED
|
@@ -47,12 +47,28 @@
|
|
|
47
47
|
--fs-control-padding-x-lg: 16px;
|
|
48
48
|
--fs-focus-width: 2px;
|
|
49
49
|
--fs-focus-offset: 2px;
|
|
50
|
+
--fs-focus-color: var(--fs-color-primary);
|
|
51
|
+
--fs-focus-ring-size: 3px;
|
|
52
|
+
--fs-focus-ring-color: color-mix(in srgb, var(--fs-focus-color) 22%, transparent);
|
|
50
53
|
--fs-focus-ring-alpha: 22%;
|
|
51
54
|
--fs-transition-fast: 150ms;
|
|
52
55
|
--fs-transition-normal: 220ms;
|
|
56
|
+
--fs-motion-duration-fast: var(--fs-transition-fast);
|
|
57
|
+
--fs-motion-duration-normal: var(--fs-transition-normal);
|
|
58
|
+
--fs-motion-ease-standard: var(--fs-ease-standard);
|
|
53
59
|
--fs-ease-standard: cubic-bezier(0.2, 0, 0, 1);
|
|
54
60
|
--fs-border-width: 1px;
|
|
55
61
|
--fs-disabled-opacity: 0.5;
|
|
62
|
+
--fs-safe-area-top: env(safe-area-inset-top, 0px);
|
|
63
|
+
--fs-safe-area-right: env(safe-area-inset-right, 0px);
|
|
64
|
+
--fs-safe-area-bottom: env(safe-area-inset-bottom, 0px);
|
|
65
|
+
--fs-safe-area-left: env(safe-area-inset-left, 0px);
|
|
66
|
+
--fs-component-control-height: var(--fs-control-height);
|
|
67
|
+
--fs-component-overlay-backdrop: rgb(0 0 0 / 55%);
|
|
68
|
+
--fs-component-panel-radius: var(--fs-radius-md);
|
|
69
|
+
--fs-component-panel-shadow: var(--fs-shadow-lg);
|
|
70
|
+
--fs-contrast-border-width: var(--fs-border-width);
|
|
71
|
+
--fs-contrast-focus-width: var(--fs-focus-width);
|
|
56
72
|
--fs-cq-sm: 320px;
|
|
57
73
|
--fs-cq-md: 480px;
|
|
58
74
|
--fs-cq-lg: 640px;
|
|
@@ -131,6 +147,14 @@
|
|
|
131
147
|
--fs-feedback-info-bg: oklch(96.4918490239% 0.0173174767 286.0707018324deg);
|
|
132
148
|
}
|
|
133
149
|
}
|
|
150
|
+
@media (prefers-contrast: more) {
|
|
151
|
+
:root {
|
|
152
|
+
--fs-contrast-border-width: 2px;
|
|
153
|
+
--fs-contrast-focus-width: 3px;
|
|
154
|
+
--fs-focus-width: var(--fs-contrast-focus-width);
|
|
155
|
+
--fs-border-width: var(--fs-contrast-border-width);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
134
158
|
}
|
|
135
159
|
@layer tokens {
|
|
136
160
|
:root {
|
|
@@ -242,6 +266,59 @@
|
|
|
242
266
|
}
|
|
243
267
|
}
|
|
244
268
|
}
|
|
269
|
+
/* stylelint-disable property-no-deprecated, selector-not-notation */
|
|
270
|
+
@layer reset {
|
|
271
|
+
:focus-visible {
|
|
272
|
+
outline: var(--fs-focus-width) solid var(--fs-focus-color);
|
|
273
|
+
outline-offset: var(--fs-focus-offset);
|
|
274
|
+
}
|
|
275
|
+
@media (forced-colors: active) {
|
|
276
|
+
:focus-visible {
|
|
277
|
+
outline: 2px solid CanvasText;
|
|
278
|
+
outline-offset: 2px;
|
|
279
|
+
}
|
|
280
|
+
button,
|
|
281
|
+
[role=button],
|
|
282
|
+
input,
|
|
283
|
+
select,
|
|
284
|
+
textarea,
|
|
285
|
+
.fs-btn {
|
|
286
|
+
border-color: ButtonText;
|
|
287
|
+
forced-color-adjust: auto;
|
|
288
|
+
}
|
|
289
|
+
.fs-u-focus-ring:focus-visible {
|
|
290
|
+
outline: 3px solid Highlight;
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
@layer utilities {
|
|
295
|
+
.fs-u-visually-hidden:not(:focus):not(:focus-within),
|
|
296
|
+
.fs-u-visually-hidden-focusable:not(:focus):not(:focus-within) {
|
|
297
|
+
position: absolute !important;
|
|
298
|
+
width: 1px !important;
|
|
299
|
+
height: 1px !important;
|
|
300
|
+
padding: 0 !important;
|
|
301
|
+
margin: -1px !important;
|
|
302
|
+
overflow: hidden !important;
|
|
303
|
+
clip-path: inset(50%) !important;
|
|
304
|
+
white-space: nowrap !important;
|
|
305
|
+
border: 0 !important;
|
|
306
|
+
}
|
|
307
|
+
.fs-skip-link {
|
|
308
|
+
position: fixed;
|
|
309
|
+
z-index: 1000;
|
|
310
|
+
inset-block-start: var(--fs-space-2);
|
|
311
|
+
inset-inline-start: var(--fs-space-2);
|
|
312
|
+
transform: translateY(-200%);
|
|
313
|
+
padding: var(--fs-space-2) var(--fs-space-3);
|
|
314
|
+
color: var(--fs-color-on-primary);
|
|
315
|
+
background: var(--fs-color-primary);
|
|
316
|
+
border-radius: var(--fs-radius-sm);
|
|
317
|
+
}
|
|
318
|
+
.fs-skip-link:focus {
|
|
319
|
+
transform: translateY(0);
|
|
320
|
+
}
|
|
321
|
+
}
|
|
245
322
|
@layer components {
|
|
246
323
|
.fs-form-row {
|
|
247
324
|
display: flex;
|
|
@@ -335,6 +412,30 @@
|
|
|
335
412
|
background-color: var(--fs-color-subtle);
|
|
336
413
|
cursor: default;
|
|
337
414
|
}
|
|
415
|
+
.fs-floating-label {
|
|
416
|
+
position: relative;
|
|
417
|
+
}
|
|
418
|
+
.fs-floating-label > .fs-form-control {
|
|
419
|
+
height: 56px;
|
|
420
|
+
padding-top: 20px;
|
|
421
|
+
}
|
|
422
|
+
.fs-floating-label > .fs-form-label {
|
|
423
|
+
position: absolute;
|
|
424
|
+
z-index: 1;
|
|
425
|
+
top: 8px;
|
|
426
|
+
left: 8px;
|
|
427
|
+
color: var(--fs-color-muted);
|
|
428
|
+
font-size: 0.6875rem;
|
|
429
|
+
pointer-events: none;
|
|
430
|
+
}
|
|
431
|
+
.fs-form-control[aria-invalid=true],
|
|
432
|
+
.fs-was-validated .fs-form-control:invalid {
|
|
433
|
+
border-color: var(--fs-color-danger);
|
|
434
|
+
}
|
|
435
|
+
.fs-form-control[aria-invalid=false],
|
|
436
|
+
.fs-was-validated .fs-form-control:valid {
|
|
437
|
+
border-color: var(--fs-color-success);
|
|
438
|
+
}
|
|
338
439
|
.fs-form-control-sm {
|
|
339
440
|
height: var(--fs-control-height-sm);
|
|
340
441
|
font-size: 0.6875rem;
|
|
@@ -1072,7 +1173,8 @@
|
|
|
1072
1173
|
}
|
|
1073
1174
|
}
|
|
1074
1175
|
@layer tokens {
|
|
1075
|
-
[data-theme=dark]
|
|
1176
|
+
[data-theme=dark],
|
|
1177
|
+
[data-fs-theme=dark] {
|
|
1076
1178
|
--fs-color-text: #f1f3f4;
|
|
1077
1179
|
--fs-color-muted: #bdc1c6;
|
|
1078
1180
|
--fs-color-border: #3c4043;
|
|
@@ -1119,7 +1221,8 @@
|
|
|
1119
1221
|
--fs-feedback-info-bg: rgb(35.0058091619, 49.6887857769, 78.5757788254);
|
|
1120
1222
|
}
|
|
1121
1223
|
@supports (color: oklch(0% 0 0deg)) {
|
|
1122
|
-
[data-theme=dark]
|
|
1224
|
+
[data-theme=dark],
|
|
1225
|
+
[data-fs-theme=dark] {
|
|
1123
1226
|
--fs-color-text: oklch(96.2913383165% 0.002529697 228.7848682695deg);
|
|
1124
1227
|
--fs-color-muted: oklch(80.9268110646% 0.0083071608 253.8653061211deg);
|
|
1125
1228
|
--fs-color-border: oklch(36.8827622528% 0.0074489239 240.018838067deg);
|
|
@@ -1163,5 +1266,37 @@
|
|
|
1163
1266
|
--fs-feedback-info-bg: oklch(31.7574919059% 0.0556228738 263.0598185246deg);
|
|
1164
1267
|
}
|
|
1165
1268
|
}
|
|
1269
|
+
@media (prefers-color-scheme: dark) {
|
|
1270
|
+
[data-fs-theme=auto] {
|
|
1271
|
+
--fs-color-text: #f1f3f4;
|
|
1272
|
+
--fs-color-muted: #bdc1c6;
|
|
1273
|
+
--fs-color-border: #3c4043;
|
|
1274
|
+
--fs-color-surface: #202124;
|
|
1275
|
+
--fs-color-subtle: #2b2c2f;
|
|
1276
|
+
--fs-color-bg-surface: var(--fs-color-surface);
|
|
1277
|
+
--fs-color-bg-subtle: var(--fs-color-subtle);
|
|
1278
|
+
--fs-color-surface-raised: var(--fs-color-surface);
|
|
1279
|
+
--fs-color-surface-interactive: var(--fs-color-subtle);
|
|
1280
|
+
--fs-color-text-primary: var(--fs-color-text);
|
|
1281
|
+
--fs-color-text-muted: var(--fs-color-muted);
|
|
1282
|
+
--fs-color-border-default: var(--fs-color-border);
|
|
1283
|
+
--fs-color-focus: var(--fs-color-primary);
|
|
1284
|
+
--fs-tooltip-bg: #f8fafc;
|
|
1285
|
+
--fs-tooltip-text: #1e293b;
|
|
1286
|
+
}
|
|
1287
|
+
}
|
|
1288
|
+
@media (forced-colors: active) {
|
|
1289
|
+
:root,
|
|
1290
|
+
[data-theme=dark],
|
|
1291
|
+
[data-fs-theme=light],
|
|
1292
|
+
[data-fs-theme=dark],
|
|
1293
|
+
[data-fs-theme=auto] {
|
|
1294
|
+
--fs-color-border: CanvasText;
|
|
1295
|
+
--fs-color-text: CanvasText;
|
|
1296
|
+
--fs-color-surface: Canvas;
|
|
1297
|
+
--fs-color-subtle: Canvas;
|
|
1298
|
+
--fs-focus-color: Highlight;
|
|
1299
|
+
}
|
|
1300
|
+
}
|
|
1166
1301
|
}
|
|
1167
1302
|
/*# sourceMappingURL=forms.css.map */
|