fokus-styles 2.0.0 → 2.3.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 +13 -0
- package/README.md +4 -3
- package/dist/css/components.css +510 -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 +4050 -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 +1563 -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 +304 -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-utilities.css +4176 -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 +1339 -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 +115 -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 +376 -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 +560 -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/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 +14 -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 +45 -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 +14 -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/dist/css/forms.css
CHANGED
|
@@ -47,12 +47,26 @@
|
|
|
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);
|
|
56
70
|
--fs-cq-sm: 320px;
|
|
57
71
|
--fs-cq-md: 480px;
|
|
58
72
|
--fs-cq-lg: 640px;
|
|
@@ -242,6 +256,47 @@
|
|
|
242
256
|
}
|
|
243
257
|
}
|
|
244
258
|
}
|
|
259
|
+
/* stylelint-disable property-no-deprecated, selector-not-notation */
|
|
260
|
+
@layer reset {
|
|
261
|
+
:focus-visible {
|
|
262
|
+
outline: var(--fs-focus-width) solid var(--fs-focus-color);
|
|
263
|
+
outline-offset: var(--fs-focus-offset);
|
|
264
|
+
}
|
|
265
|
+
@media (forced-colors: active) {
|
|
266
|
+
:focus-visible {
|
|
267
|
+
outline: 2px solid CanvasText;
|
|
268
|
+
outline-offset: 2px;
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
@layer utilities {
|
|
273
|
+
.fs-u-visually-hidden:not(:focus):not(:focus-within),
|
|
274
|
+
.fs-u-visually-hidden-focusable:not(:focus):not(:focus-within) {
|
|
275
|
+
position: absolute !important;
|
|
276
|
+
width: 1px !important;
|
|
277
|
+
height: 1px !important;
|
|
278
|
+
padding: 0 !important;
|
|
279
|
+
margin: -1px !important;
|
|
280
|
+
overflow: hidden !important;
|
|
281
|
+
clip-path: inset(50%) !important;
|
|
282
|
+
white-space: nowrap !important;
|
|
283
|
+
border: 0 !important;
|
|
284
|
+
}
|
|
285
|
+
.fs-skip-link {
|
|
286
|
+
position: fixed;
|
|
287
|
+
z-index: 1000;
|
|
288
|
+
inset-block-start: var(--fs-space-2);
|
|
289
|
+
inset-inline-start: var(--fs-space-2);
|
|
290
|
+
transform: translateY(-200%);
|
|
291
|
+
padding: var(--fs-space-2) var(--fs-space-3);
|
|
292
|
+
color: var(--fs-color-on-primary);
|
|
293
|
+
background: var(--fs-color-primary);
|
|
294
|
+
border-radius: var(--fs-radius-sm);
|
|
295
|
+
}
|
|
296
|
+
.fs-skip-link:focus {
|
|
297
|
+
transform: translateY(0);
|
|
298
|
+
}
|
|
299
|
+
}
|
|
245
300
|
@layer components {
|
|
246
301
|
.fs-form-row {
|
|
247
302
|
display: flex;
|
|
@@ -335,6 +390,30 @@
|
|
|
335
390
|
background-color: var(--fs-color-subtle);
|
|
336
391
|
cursor: default;
|
|
337
392
|
}
|
|
393
|
+
.fs-floating-label {
|
|
394
|
+
position: relative;
|
|
395
|
+
}
|
|
396
|
+
.fs-floating-label > .fs-form-control {
|
|
397
|
+
height: 56px;
|
|
398
|
+
padding-top: 20px;
|
|
399
|
+
}
|
|
400
|
+
.fs-floating-label > .fs-form-label {
|
|
401
|
+
position: absolute;
|
|
402
|
+
z-index: 1;
|
|
403
|
+
top: 8px;
|
|
404
|
+
left: 8px;
|
|
405
|
+
color: var(--fs-color-muted);
|
|
406
|
+
font-size: 0.6875rem;
|
|
407
|
+
pointer-events: none;
|
|
408
|
+
}
|
|
409
|
+
.fs-form-control[aria-invalid=true],
|
|
410
|
+
.fs-was-validated .fs-form-control:invalid {
|
|
411
|
+
border-color: var(--fs-color-danger);
|
|
412
|
+
}
|
|
413
|
+
.fs-form-control[aria-invalid=false],
|
|
414
|
+
.fs-was-validated .fs-form-control:valid {
|
|
415
|
+
border-color: var(--fs-color-success);
|
|
416
|
+
}
|
|
338
417
|
.fs-form-control-sm {
|
|
339
418
|
height: var(--fs-control-height-sm);
|
|
340
419
|
font-size: 0.6875rem;
|
|
@@ -1072,7 +1151,8 @@
|
|
|
1072
1151
|
}
|
|
1073
1152
|
}
|
|
1074
1153
|
@layer tokens {
|
|
1075
|
-
[data-theme=dark]
|
|
1154
|
+
[data-theme=dark],
|
|
1155
|
+
[data-fs-theme=dark] {
|
|
1076
1156
|
--fs-color-text: #f1f3f4;
|
|
1077
1157
|
--fs-color-muted: #bdc1c6;
|
|
1078
1158
|
--fs-color-border: #3c4043;
|
|
@@ -1119,7 +1199,8 @@
|
|
|
1119
1199
|
--fs-feedback-info-bg: rgb(35.0058091619, 49.6887857769, 78.5757788254);
|
|
1120
1200
|
}
|
|
1121
1201
|
@supports (color: oklch(0% 0 0deg)) {
|
|
1122
|
-
[data-theme=dark]
|
|
1202
|
+
[data-theme=dark],
|
|
1203
|
+
[data-fs-theme=dark] {
|
|
1123
1204
|
--fs-color-text: oklch(96.2913383165% 0.002529697 228.7848682695deg);
|
|
1124
1205
|
--fs-color-muted: oklch(80.9268110646% 0.0083071608 253.8653061211deg);
|
|
1125
1206
|
--fs-color-border: oklch(36.8827622528% 0.0074489239 240.018838067deg);
|
|
@@ -1163,5 +1244,37 @@
|
|
|
1163
1244
|
--fs-feedback-info-bg: oklch(31.7574919059% 0.0556228738 263.0598185246deg);
|
|
1164
1245
|
}
|
|
1165
1246
|
}
|
|
1247
|
+
@media (prefers-color-scheme: dark) {
|
|
1248
|
+
[data-fs-theme=auto] {
|
|
1249
|
+
--fs-color-text: #f1f3f4;
|
|
1250
|
+
--fs-color-muted: #bdc1c6;
|
|
1251
|
+
--fs-color-border: #3c4043;
|
|
1252
|
+
--fs-color-surface: #202124;
|
|
1253
|
+
--fs-color-subtle: #2b2c2f;
|
|
1254
|
+
--fs-color-bg-surface: var(--fs-color-surface);
|
|
1255
|
+
--fs-color-bg-subtle: var(--fs-color-subtle);
|
|
1256
|
+
--fs-color-surface-raised: var(--fs-color-surface);
|
|
1257
|
+
--fs-color-surface-interactive: var(--fs-color-subtle);
|
|
1258
|
+
--fs-color-text-primary: var(--fs-color-text);
|
|
1259
|
+
--fs-color-text-muted: var(--fs-color-muted);
|
|
1260
|
+
--fs-color-border-default: var(--fs-color-border);
|
|
1261
|
+
--fs-color-focus: var(--fs-color-primary);
|
|
1262
|
+
--fs-tooltip-bg: #f8fafc;
|
|
1263
|
+
--fs-tooltip-text: #1e293b;
|
|
1264
|
+
}
|
|
1265
|
+
}
|
|
1266
|
+
@media (forced-colors: active) {
|
|
1267
|
+
:root,
|
|
1268
|
+
[data-theme=dark],
|
|
1269
|
+
[data-fs-theme=light],
|
|
1270
|
+
[data-fs-theme=dark],
|
|
1271
|
+
[data-fs-theme=auto] {
|
|
1272
|
+
--fs-color-border: CanvasText;
|
|
1273
|
+
--fs-color-text: CanvasText;
|
|
1274
|
+
--fs-color-surface: Canvas;
|
|
1275
|
+
--fs-color-subtle: Canvas;
|
|
1276
|
+
--fs-focus-color: Highlight;
|
|
1277
|
+
}
|
|
1278
|
+
}
|
|
1166
1279
|
}
|
|
1167
1280
|
/*# sourceMappingURL=forms.css.map */
|