@fkui/design 5.36.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.
Files changed (133) hide show
  1. package/LICENSE.md +7 -0
  2. package/README.md +3 -0
  3. package/lib/fkui-exp.css +7818 -0
  4. package/lib/fkui-exp.min.css +1 -0
  5. package/lib/fkui-int.css +7818 -0
  6. package/lib/fkui-int.min.css +1 -0
  7. package/lib/fonts.css +3 -0
  8. package/lib/fonts.min.css +1 -0
  9. package/package.json +70 -0
  10. package/src/_core.scss +1 -0
  11. package/src/assets/images/fk-logo-default.svg +22 -0
  12. package/src/assets/images/fk-logo-primary-large.svg +161 -0
  13. package/src/assets/images/fk-logo-primary-small.svg +1 -0
  14. package/src/assets/images/fk-logo-primary.svg +23 -0
  15. package/src/assets/images/fk-logo-small.svg +5 -0
  16. package/src/components/_all.scss +60 -0
  17. package/src/components/_z-index.scss +6 -0
  18. package/src/components/anchor/_anchor.scss +27 -0
  19. package/src/components/badge/_badge.scss +72 -0
  20. package/src/components/button/_button.scss +497 -0
  21. package/src/components/calendar-day/_calendar-day.scss +86 -0
  22. package/src/components/calendar-deprecated/_calendar-deprecated.scss +628 -0
  23. package/src/components/card/_card.scss +51 -0
  24. package/src/components/checkbox/_all.scss +2 -0
  25. package/src/components/checkbox/_checkbox-group.scss +18 -0
  26. package/src/components/checkbox/_checkbox.scss +111 -0
  27. package/src/components/chip/_chip.scss +91 -0
  28. package/src/components/close-button/_close-button.scss +16 -0
  29. package/src/components/contextmenu/_contextmenu.scss +54 -0
  30. package/src/components/crud-dataset/_crud-dataset.scss +18 -0
  31. package/src/components/datepicker-field/_datepicker-field.scss +76 -0
  32. package/src/components/dialogue-tree/_dialogue-tree.scss +54 -0
  33. package/src/components/entrypoint/_entrypoint.scss +40 -0
  34. package/src/components/error-list/_error-list.scss +54 -0
  35. package/src/components/expandable-panel/_expandable-panel.scss +113 -0
  36. package/src/components/expandable-paragraph/_expandable-paragraph.scss +97 -0
  37. package/src/components/fieldset/_fieldset.scss +22 -0
  38. package/src/components/file-item/_file-item.scss +80 -0
  39. package/src/components/file-selector/_file-selector.scss +28 -0
  40. package/src/components/file-uploader/_file-uploader.scss +7 -0
  41. package/src/components/form/_all.scss +2 -0
  42. package/src/components/form/_form-step.scss +91 -0
  43. package/src/components/form/_form.scss +8 -0
  44. package/src/components/group/_group.scss +8 -0
  45. package/src/components/icon/_icon.scss +175 -0
  46. package/src/components/indent/_indent.scss +11 -0
  47. package/src/components/label/_label.scss +47 -0
  48. package/src/components/layout-application-template/_layout-application-template.scss +75 -0
  49. package/src/components/layout-navigation/_layout-navigation.scss +124 -0
  50. package/src/components/layout-secondary/_layout-secondary.scss +129 -0
  51. package/src/components/list/_list.scss +117 -0
  52. package/src/components/loader/_loader.scss +179 -0
  53. package/src/components/message-box/_message-box.scss +121 -0
  54. package/src/components/modal/_modal.scss +190 -0
  55. package/src/components/navbar/_navbar-header.scss +77 -0
  56. package/src/components/navbar/_navbar-nav.scss +30 -0
  57. package/src/components/navbar/_navbar.scss +71 -0
  58. package/src/components/offline/_offline.scss +40 -0
  59. package/src/components/output-field/_output-field.scss +23 -0
  60. package/src/components/page-header/_page-header.scss +96 -0
  61. package/src/components/progressbar/_progressbar.scss +34 -0
  62. package/src/components/radio-button/_all.scss +2 -0
  63. package/src/components/radio-button/_item.scss +54 -0
  64. package/src/components/radio-button/_radio-button-group.scss +38 -0
  65. package/src/components/radio-button/_radio-button.scss +106 -0
  66. package/src/components/select-field/_select-field.scss +88 -0
  67. package/src/components/sort-filter-dataset/_sort-filter-dataset.scss +70 -0
  68. package/src/components/static-panel/_static-panel.scss +31 -0
  69. package/src/components/table/_table.scss +415 -0
  70. package/src/components/text-field/_text-field.scss +127 -0
  71. package/src/components/textarea-field/_textarea-field.scss +55 -0
  72. package/src/components/tooltip/_tooltip.scss +87 -0
  73. package/src/components/wizard/_all.scss +2 -0
  74. package/src/components/wizard/_wizard-step.scss +318 -0
  75. package/src/components/wizard/_wizard.scss +5 -0
  76. package/src/core/_all.scss +6 -0
  77. package/src/core/_config-variables.scss +23 -0
  78. package/src/core/_density.scss +11 -0
  79. package/src/core/_global.scss +47 -0
  80. package/src/core/_mixins.scss +8 -0
  81. package/src/core/_reset.scss +60 -0
  82. package/src/core/_size.scss +23 -0
  83. package/src/core/helpers/_all.scss +2 -0
  84. package/src/core/helpers/_helpers.scss +19 -0
  85. package/src/core/helpers/accessibility/_all.scss +2 -0
  86. package/src/core/helpers/accessibility/_focus.scss +24 -0
  87. package/src/core/helpers/accessibility/_screenreader.scss +11 -0
  88. package/src/core/layout/_all.scss +2 -0
  89. package/src/core/layout/grid/_all.scss +1 -0
  90. package/src/core/layout/grid/_grid.scss +135 -0
  91. package/src/core/layout/positioning/_all.scss +1 -0
  92. package/src/core/layout/positioning/_positioning.scss +16 -0
  93. package/src/core/mixins/_all.scss +9 -0
  94. package/src/core/mixins/_anchor.scss +17 -0
  95. package/src/core/mixins/_arrow-creator.scss +51 -0
  96. package/src/core/mixins/_breakpoints.scss +42 -0
  97. package/src/core/mixins/_button.scss +78 -0
  98. package/src/core/mixins/_button_icon.scss +51 -0
  99. package/src/core/mixins/_circle.scss +21 -0
  100. package/src/core/mixins/_focus.scss +4 -0
  101. package/src/core/mixins/_label-inline.scss +19 -0
  102. package/src/core/mixins/_sr-only.scss +11 -0
  103. package/src/core/typography/_all.scss +1 -0
  104. package/src/core/typography/_headings.scss +88 -0
  105. package/src/core/utils/_all.scss +1 -0
  106. package/src/core/utils/_functions.scss +41 -0
  107. package/src/fkui-exp.scss +1 -0
  108. package/src/fkui-int.scss +1 -0
  109. package/src/fkui.scss +3 -0
  110. package/src/fonts.scss +3 -0
  111. package/src/internal-components/IFlex/_iflex.scss +98 -0
  112. package/src/internal-components/IMenu/_imenu.scss +106 -0
  113. package/src/internal-components/IPopupMenu/_ipopupmenu.scss +50 -0
  114. package/src/internal-components/ISkipLink/_iskiplink.scss +16 -0
  115. package/src/internal-components/_all.scss +11 -0
  116. package/src/internal-components/animate-expand/_animate-expand.scss +17 -0
  117. package/src/internal-components/calendar/_calendar.scss +7 -0
  118. package/src/internal-components/calendar-month/_month.scss +74 -0
  119. package/src/internal-components/calendar-navbar/_navbar.scss +55 -0
  120. package/src/internal-components/popup/_popup.scss +35 -0
  121. package/src/internal-components/popupError/_popuperror.scss +116 -0
  122. package/src/internal-components/popupError/arrows/_bottom-before.scss +22 -0
  123. package/src/internal-components/popupError/arrows/_bottom.scss +19 -0
  124. package/src/internal-components/popupError/arrows/_left-before.scss +22 -0
  125. package/src/internal-components/popupError/arrows/_left.scss +19 -0
  126. package/src/internal-components/popupError/arrows/_right-before.scss +22 -0
  127. package/src/internal-components/popupError/arrows/_right.scss +19 -0
  128. package/src/internal-components/popupError/arrows/_top-before.scss +22 -0
  129. package/src/internal-components/popupError/arrows/_top.scss +19 -0
  130. package/stylelint/index.js +3 -0
  131. package/stylelint/recommended.js +6 -0
  132. package/stylelint/rules/deprecatedVariable/index.js +93 -0
  133. package/stylelint/rules/index.js +3 -0
@@ -0,0 +1,60 @@
1
+ *,
2
+ *::before,
3
+ *::after {
4
+ box-sizing: border-box;
5
+ }
6
+
7
+ p,
8
+ h1,
9
+ h2,
10
+ h3,
11
+ h4,
12
+ h5,
13
+ h6 {
14
+ margin-top: 0;
15
+ }
16
+
17
+ article,
18
+ aside,
19
+ dialog,
20
+ figcaption,
21
+ figure,
22
+ footer,
23
+ header,
24
+ hgroup,
25
+ main,
26
+ nav,
27
+ section {
28
+ display: block;
29
+ }
30
+
31
+ select::-ms-expand {
32
+ display: none;
33
+ }
34
+
35
+ select:focus::-ms-value {
36
+ background: none;
37
+ color: #000;
38
+ outline: 1px dotted #000;
39
+ }
40
+
41
+ ul,
42
+ ol {
43
+ padding-left: 1rem;
44
+ margin-top: 0;
45
+ margin-bottom: 1rem;
46
+ }
47
+
48
+ a {
49
+ text-decoration: none;
50
+ }
51
+
52
+ button,
53
+ input,
54
+ optgroup,
55
+ select,
56
+ textarea {
57
+ color: inherit;
58
+ font: inherit;
59
+ margin: 0;
60
+ }
@@ -0,0 +1,23 @@
1
+ // Variables that should be used for padding & margins.
2
+ // If no suitable size is found, try to use a factor of the base size.
3
+ $base-025: 0.25rem;
4
+
5
+ // padding
6
+ $padding-025: $base-025;
7
+ $padding-050: calc(2 * $base-025);
8
+ $padding-075: calc(3 * $base-025);
9
+ $padding-100: calc(4 * $base-025);
10
+ $padding-125: calc(5 * $base-025);
11
+ $padding-150: calc(6 * $base-025);
12
+ $padding-175: calc(7 * $base-025);
13
+ $padding-200: calc(8 * $base-025);
14
+
15
+ // margin
16
+ $margin-025: $base-025 !default;
17
+ $margin-050: calc(2 * $base-025);
18
+ $margin-075: calc(3 * $base-025);
19
+ $margin-100: calc(4 * $base-025);
20
+ $margin-125: calc(5 * $base-025);
21
+ $margin-150: calc(6 * $base-025);
22
+ $margin-175: calc(7 * $base-025);
23
+ $margin-200: calc(8 * $base-025);
@@ -0,0 +1,2 @@
1
+ @forward "accessibility/all";
2
+ @forward "helpers";
@@ -0,0 +1,19 @@
1
+ /*
2
+ For help-classes, it is alright to use `!important` when the intent is to
3
+ overwrite standard behaviour for components.
4
+
5
+ All help-classes shall be prefixed with `h-`.
6
+ */
7
+ .h {
8
+ &-no-margin {
9
+ margin: 0 !important;
10
+ }
11
+
12
+ &-root-size {
13
+ font-size: 1rem !important;
14
+ }
15
+
16
+ &-display-flex {
17
+ display: flex;
18
+ }
19
+ }
@@ -0,0 +1,2 @@
1
+ @forward "screenreader";
2
+ @forward "focus";
@@ -0,0 +1,24 @@
1
+ @use "../../mixins/focus";
2
+
3
+ button:focus,
4
+ a:focus,
5
+ a.button:focus,
6
+ img:focus,
7
+ select:focus,
8
+ textarea:focus,
9
+ input[type="submit"]:focus,
10
+ input[type="text"]:focus,
11
+ input[type="email"]:focus,
12
+ input[type="tel"]:focus,
13
+ input[type="image"]:focus,
14
+ input[type="search"]:focus,
15
+ [tabindex]:focus {
16
+ @include focus.focus-indicator;
17
+
18
+ outline: none;
19
+ }
20
+
21
+ [tabindex="-1"]:focus {
22
+ box-shadow: none;
23
+ outline: none;
24
+ }
@@ -0,0 +1,11 @@
1
+ @use "../../mixins/sr-only";
2
+
3
+ .sr {
4
+ &-only {
5
+ @include sr-only.sr-only;
6
+ }
7
+
8
+ &-separator {
9
+ display: block !important;
10
+ }
11
+ }
@@ -0,0 +1,2 @@
1
+ @forward "grid/all";
2
+ @forward "positioning/all";
@@ -0,0 +1 @@
1
+ @forward "grid";
@@ -0,0 +1,135 @@
1
+ @use "sass:map";
2
+ @use "sass:math";
3
+ @use "../../mixins/breakpoints";
4
+ @use "../../config-variables";
5
+
6
+ @mixin grid-column-factory($name) {
7
+ @for $size from 1 through config-variables.$f-grid-columns {
8
+ &.col--#{$name}-#{$size} {
9
+ width: 100%;
10
+ }
11
+ }
12
+
13
+ @include breakpoints.breakpoint-up($name) {
14
+ @for $size from 1 through config-variables.$f-grid-columns {
15
+ &.col--#{$name}-#{$size} {
16
+ flex: 0 0 math.percentage(math.div($size, config-variables.$f-grid-columns));
17
+ max-width: math.percentage(math.div($size, config-variables.$f-grid-columns));
18
+ }
19
+
20
+ &.col--#{$name}-order-#{$size} {
21
+ order: $size;
22
+ }
23
+ }
24
+ }
25
+ }
26
+
27
+ @mixin internal-width-factory($name) {
28
+ @include breakpoints.breakpoint-up($name) {
29
+ @for $size from 1 through config-variables.$f-grid-columns {
30
+ .i-width-#{$name}-#{$size} {
31
+ width: math.percentage(math.div($size, config-variables.$f-grid-columns));
32
+ }
33
+ }
34
+ }
35
+ }
36
+
37
+ @mixin container-max-width-factory() {
38
+ @each $breakpoint, $container-max-width in config-variables.$f-container-max-widths {
39
+ @include breakpoints.breakpoint-up($breakpoint) {
40
+ max-width: $container-max-width;
41
+ }
42
+ }
43
+ }
44
+
45
+ .container-fluid {
46
+ width: 100%;
47
+ padding-right: config-variables.$f-container-spacing;
48
+ padding-left: config-variables.$f-container-spacing;
49
+ margin-right: auto;
50
+ margin-left: auto;
51
+ }
52
+
53
+ .container {
54
+ width: 100%;
55
+ padding-right: config-variables.$f-container-spacing;
56
+ padding-left: config-variables.$f-container-spacing;
57
+ margin-right: auto;
58
+ margin-left: auto;
59
+ @include container-max-width-factory;
60
+ }
61
+
62
+ .row {
63
+ display: flex;
64
+ flex-wrap: wrap;
65
+ margin-right: -(math.div(config-variables.$f-gutter-width, 2));
66
+ margin-left: -(math.div(config-variables.$f-gutter-width, 2));
67
+
68
+ &--align-end {
69
+ justify-content: flex-end;
70
+ }
71
+
72
+ &--align-center {
73
+ justify-content: center;
74
+ }
75
+
76
+ &--align-justify {
77
+ justify-content: space-between;
78
+ }
79
+
80
+ &--align-spaced {
81
+ justify-content: space-around;
82
+ }
83
+
84
+ &--align-middle {
85
+ align-items: center;
86
+ }
87
+
88
+ &--align-bottom {
89
+ align-items: flex-end;
90
+ }
91
+
92
+ &--align-top {
93
+ align-items: flex-start;
94
+ }
95
+ }
96
+
97
+ .col {
98
+ position: relative;
99
+ min-height: 1px;
100
+ box-sizing: border-box;
101
+ padding-right: math.div(config-variables.$f-gutter-width, 2);
102
+ padding-left: math.div(config-variables.$f-gutter-width, 2);
103
+ width: auto;
104
+ max-width: none;
105
+
106
+ &--align-bottom {
107
+ align-self: flex-end;
108
+ }
109
+
110
+ &--align-middle {
111
+ align-self: center;
112
+ }
113
+
114
+ &--align-stretch {
115
+ align-self: stretch;
116
+ }
117
+
118
+ &--align-top {
119
+ align-self: flex-start;
120
+ }
121
+
122
+ @for $size from 1 through config-variables.$f-grid-columns {
123
+ &.col--order-#{$size} {
124
+ order: $size;
125
+ }
126
+ }
127
+
128
+ @each $breakpoint in map.keys(config-variables.$f-breakpoints) {
129
+ @include grid-column-factory($breakpoint);
130
+ }
131
+ }
132
+
133
+ @each $breakpoint in map.keys(config-variables.$f-breakpoints) {
134
+ @include internal-width-factory($breakpoint);
135
+ }
@@ -0,0 +1 @@
1
+ @import "positioning";
@@ -0,0 +1,16 @@
1
+ .sticky {
2
+ /* Double position is specified due to E11-compability.
3
+ `fixed` is used by IE11.
4
+ `sticky` is used by other web browsers. */
5
+
6
+ // sass-lint:disable-block no-duplicate-properties
7
+ position: fixed;
8
+ position: sticky;
9
+ z-index: 9999;
10
+
11
+ &--top {
12
+ right: 0;
13
+ top: 0;
14
+ left: 0;
15
+ }
16
+ }
@@ -0,0 +1,9 @@
1
+ @import "anchor";
2
+ @import "arrow-creator";
3
+ @import "breakpoints";
4
+ @import "button";
5
+ @import "button_icon";
6
+ @import "circle";
7
+ @import "sr-only";
8
+ @import "focus";
9
+ @import "label-inline";
@@ -0,0 +1,17 @@
1
+ $anchor-underline-width: 2px !default;
2
+
3
+ @mixin anchor() {
4
+ $anchor-underline-offset: 0.25rem;
5
+
6
+ color: var(--f-text-color-link);
7
+ text-decoration: underline;
8
+ text-decoration-thickness: $anchor-underline-width;
9
+ text-underline-offset: $anchor-underline-offset;
10
+ text-decoration-color: var(--f-text-color-link);
11
+ font-weight: var(--f-font-weight-medium);
12
+
13
+ &:hover {
14
+ color: var(--f-text-color-link-hover);
15
+ text-decoration-color: var(--f-border-color-link-hover);
16
+ }
17
+ }
@@ -0,0 +1,51 @@
1
+ // **
2
+ // * Adds an arrow (downpointing triangle) to an element.
3
+ // *
4
+ // * @param $size Diagonal size of the arrow (in px only).
5
+ // * @param $position Vertical position.
6
+ // * @param $width Border width (in px only).
7
+ // * @param $background Triangle background color.
8
+ // * @param $border Triangle border color.
9
+ // * @param $up If arrow should be faced up.
10
+ // *
11
+ @mixin arrow-creator($size, $position, $width: 2px, $background: #fff, $border: #000, $up: false) {
12
+ $inner-size: calc(#{$size} - #{$width} * 1.4142);
13
+ $negative-inner-size: calc(-1 * (#{$size} - #{$width} * 1.4142));
14
+ $outer-size: $size;
15
+ $negative-outer-size: calc(-1 * #{$size});
16
+
17
+ position: absolute;
18
+ left: $position;
19
+
20
+ @if $up {
21
+ top: 0;
22
+ transform: rotate(180deg);
23
+ } @else {
24
+ top: 100%;
25
+ }
26
+
27
+ &::before,
28
+ &::after {
29
+ border: solid transparent;
30
+ content: " ";
31
+ height: 0;
32
+ width: 0;
33
+ pointer-events: none;
34
+ z-index: 1;
35
+ position: absolute;
36
+ }
37
+
38
+ &::after {
39
+ border-color: none;
40
+ border-top-color: $background;
41
+ border-width: $inner-size;
42
+ margin-left: $negative-inner-size;
43
+ }
44
+
45
+ &::before {
46
+ border-color: none;
47
+ border-top-color: $border;
48
+ border-width: $outer-size;
49
+ margin-left: $negative-outer-size;
50
+ }
51
+ }
@@ -0,0 +1,42 @@
1
+ @use "../../core/utils/functions";
2
+
3
+ @mixin breakpoint-only($key) {
4
+ $min-value: functions.get-min-for($key);
5
+ $max-value: functions.get-max-for($key);
6
+
7
+ @if $min-value != null and $max-value != null {
8
+ @media (min-width: $min-value) and (max-width: $max-value) {
9
+ @content;
10
+ }
11
+ } @else if $max-value == null {
12
+ @include breakpoint-up($key) {
13
+ @content;
14
+ }
15
+ } @else if $min-value == null {
16
+ @include breakpoint-down($key) {
17
+ @content;
18
+ }
19
+ }
20
+ }
21
+
22
+ @mixin breakpoint-down($key) {
23
+ $value: functions.get-max-for($key);
24
+ @if $value {
25
+ @media (max-width: $value) {
26
+ @content;
27
+ }
28
+ } @else {
29
+ @content;
30
+ }
31
+ }
32
+
33
+ @mixin breakpoint-up($key) {
34
+ $value: functions.get-min-for($key);
35
+ @if $value {
36
+ @media (min-width: $value) {
37
+ @content;
38
+ }
39
+ } @else {
40
+ @content;
41
+ }
42
+ }
@@ -0,0 +1,78 @@
1
+ @use "focus";
2
+
3
+ @mixin make-button-variant(
4
+ $name,
5
+ $shadow,
6
+ $shadow-hover,
7
+ $background-color,
8
+ $color,
9
+ $color--hover: $color,
10
+ $color--focus: $color--hover,
11
+ $color--disabled: var(--f-text-color-button-disabled),
12
+ $icon-color: $color,
13
+ $icon-color--hover: $color--hover,
14
+ $icon-color--focus: $color--focus,
15
+ $icon-color--disabled: $color--disabled,
16
+ $background-color--hover: $background-color,
17
+ $background-color--focus: $background-color--hover,
18
+ $background-color--disabled: var(--f-background-button-disabled),
19
+ $border-color: transparent,
20
+ $border-color--hover: $border-color,
21
+ $border-color--focus: $border-color--hover,
22
+ $border-color--disabled: var(--f-border-color-button-disabled),
23
+ $border-width: var(--f-border-width-medium),
24
+ $padding-top,
25
+ $padding-right,
26
+ $padding-bottom,
27
+ $padding-left
28
+ ) {
29
+ background-color: $background-color;
30
+ border-color: $border-color;
31
+ border-width: $border-width;
32
+ box-shadow: $shadow;
33
+ color: $color;
34
+ padding: $padding-top $padding-right $padding-bottom $padding-left;
35
+
36
+ & > .button__icon {
37
+ color: $icon-color;
38
+ }
39
+
40
+ &:hover {
41
+ background-color: $background-color--hover;
42
+ border-color: $border-color--hover;
43
+ color: $color--hover;
44
+ box-shadow: $shadow-hover;
45
+
46
+ & > .button__icon {
47
+ color: $icon-color--hover;
48
+ }
49
+ }
50
+
51
+ &:active,
52
+ &:focus {
53
+ @include focus.focus-indicator;
54
+
55
+ background-color: $background-color--focus;
56
+ border-color: $border-color--focus;
57
+ color: $color--focus;
58
+
59
+ & > .button__icon {
60
+ color: $icon-color--focus;
61
+ }
62
+ }
63
+
64
+ &.disabled,
65
+ &.disabled:hover,
66
+ &:disabled,
67
+ &:disabled:hover,
68
+ &#{$name}--disabled,
69
+ &#{$name}--disabled:hover {
70
+ background-color: $background-color--disabled;
71
+ border-color: $border-color--disabled;
72
+ color: $color--disabled;
73
+
74
+ & > .button__icon {
75
+ color: $icon-color--disabled;
76
+ }
77
+ }
78
+ }
@@ -0,0 +1,51 @@
1
+ @use "sass:math";
2
+
3
+ $ikon-width-default: 40px;
4
+
5
+ // Mixin for positioning, padding and sizing an icon. To set an
6
+ // icon based on width, both image size ratio and width needs to be supplied. The
7
+ // ratio should be supplied as width divided by height. It will set icon height to
8
+ // 40px by default (which would generate a 40x40 px icon, assuming the
9
+ // ratio is 1).
10
+ @mixin text-with-icon(
11
+ $padding-right: false,
12
+ $padding-left: false,
13
+ $icon-height: $ikon-width-default,
14
+ $icon-width: false,
15
+ $icon-size-ratio: false,
16
+ $top: auto,
17
+ $right: auto,
18
+ $bottom: auto,
19
+ $left: auto
20
+ ) {
21
+ position: relative;
22
+
23
+ .ikon,
24
+ .icon {
25
+ @if $icon-width and $icon-size-ratio {
26
+ font-size: math.div($icon-width, $icon-size-ratio);
27
+ } @else {
28
+ font-size: $icon-height;
29
+ }
30
+
31
+ &[class^="ikon-"],
32
+ &[class^="icon-"],
33
+ &[class*=" icon-"],
34
+ &[class*=" ikon-"] {
35
+ inset: $top $right $bottom $left;
36
+ position: absolute;
37
+ }
38
+
39
+ &::before {
40
+ vertical-align: top;
41
+ }
42
+ }
43
+
44
+ @if $padding-left {
45
+ padding-left: $padding-left;
46
+ }
47
+
48
+ @if $padding-right {
49
+ padding-right: $padding-right;
50
+ }
51
+ }
@@ -0,0 +1,21 @@
1
+ /// Style element as a circle with optional background and border.
2
+ ///
3
+ /// @param {color} $background - If given it will be set as the background color.
4
+ /// @param {border} $border - If given it will be set as the border.
5
+ /// @param {length} $size - If given it will set width/height (diagonal, not radius).
6
+ @mixin circle($background: false, $border: false, $size: false) {
7
+ border-radius: 50%;
8
+
9
+ @if $background {
10
+ background-color: $background;
11
+ }
12
+
13
+ @if $border {
14
+ border: $border;
15
+ }
16
+
17
+ @if $size {
18
+ width: $size;
19
+ height: $size;
20
+ }
21
+ }
@@ -0,0 +1,4 @@
1
+ @mixin focus-indicator() {
2
+ border-radius: 0;
3
+ box-shadow: var(--f-focus-box-shadow);
4
+ }
@@ -0,0 +1,19 @@
1
+ @use "../size";
2
+ @use "../mixins/breakpoints";
3
+ @use "../../core/utils/functions" as *;
4
+
5
+ $LABEL_SELECTOR: ".label" !default;
6
+
7
+ @mixin label-inline() {
8
+ @include breakpoints.breakpoint-up(md) {
9
+ margin-bottom: densify(size.$margin-075);
10
+ flex-direction: row;
11
+ justify-content: flex-start;
12
+ width: auto;
13
+ #{$LABEL_SELECTOR} {
14
+ width: auto;
15
+ margin-right: size.$margin-100;
16
+ padding-top: densify(size.$padding-050);
17
+ }
18
+ }
19
+ }
@@ -0,0 +1,11 @@
1
+ // Screen reader only, text will be readable but not visible.
2
+ @mixin sr-only() {
3
+ position: absolute;
4
+ width: 1px;
5
+ height: 1px;
6
+ margin: -1px;
7
+ padding: 0;
8
+ overflow: hidden;
9
+ clip: rect(0, 0, 0, 0);
10
+ border: 0;
11
+ }
@@ -0,0 +1 @@
1
+ @use "headings";