claritas-web-framework 5.0.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 (162) hide show
  1. package/dist/index.css +7 -0
  2. package/images/block.svg +3 -0
  3. package/images/check.svg +3 -0
  4. package/images/chevron-down.svg +1 -0
  5. package/images/menu.svg +3 -0
  6. package/images/remove.svg +3 -0
  7. package/images/subdirectory.svg +3 -0
  8. package/images/upload.svg +3 -0
  9. package/index.js +2 -0
  10. package/js/defaults/getPage.js +4 -0
  11. package/js/defaults/getSiblings.js +3 -0
  12. package/js/polyfills/customevent.js +16 -0
  13. package/js/utilities/debounce.js +27 -0
  14. package/js/utilities/isElement.js +11 -0
  15. package/js/utilities/removehash.js +8 -0
  16. package/package.json +33 -0
  17. package/postcss.config.js +45 -0
  18. package/scss/_base.scss +3 -0
  19. package/scss/_functions.scss +302 -0
  20. package/scss/_helpers.scss +7 -0
  21. package/scss/_mixins.scss +12 -0
  22. package/scss/_modules.scss +17 -0
  23. package/scss/_reboot.scss +403 -0
  24. package/scss/_root.scss +30 -0
  25. package/scss/_utilities.scss +17 -0
  26. package/scss/_variables.scss +500 -0
  27. package/scss/helpers/_container.scss +8 -0
  28. package/scss/helpers/_embed.scss +41 -0
  29. package/scss/helpers/_grid.scss +39 -0
  30. package/scss/helpers/_image.scss +5 -0
  31. package/scss/helpers/_link.scss +18 -0
  32. package/scss/helpers/_screenReaders.scss +22 -0
  33. package/scss/helpers/_wrap.scss +3 -0
  34. package/scss/index.scss +7 -0
  35. package/scss/mixins/_breakpoints.scss +123 -0
  36. package/scss/mixins/_button.scss +92 -0
  37. package/scss/mixins/_card.scss +31 -0
  38. package/scss/mixins/_caret.scss +33 -0
  39. package/scss/mixins/_clearfix.scss +7 -0
  40. package/scss/mixins/_close.scss +40 -0
  41. package/scss/mixins/_container.scss +20 -0
  42. package/scss/mixins/_grid.scss +20 -0
  43. package/scss/mixins/_group.scss +78 -0
  44. package/scss/mixins/_list.scss +22 -0
  45. package/scss/mixins/_pill.scss +44 -0
  46. package/scss/mixins/_table.scss +93 -0
  47. package/scss/mixins/_wrap.scss +7 -0
  48. package/scss/modules/_alert.scss +47 -0
  49. package/scss/modules/_button.scss +260 -0
  50. package/scss/modules/_card.scss +71 -0
  51. package/scss/modules/_close.scss +3 -0
  52. package/scss/modules/_details.scss +61 -0
  53. package/scss/modules/_dialog.scss +82 -0
  54. package/scss/modules/_dropdown.scss +74 -0
  55. package/scss/modules/_form.scss +191 -0
  56. package/scss/modules/_list.scss +88 -0
  57. package/scss/modules/_loader.scss +226 -0
  58. package/scss/modules/_nav.scss +92 -0
  59. package/scss/modules/_pill.scss +37 -0
  60. package/scss/modules/_table.scss +19 -0
  61. package/scss/modules/_tabs.scss +99 -0
  62. package/scss/modules/_tag.scss +82 -0
  63. package/scss/modules/_tile.scss +82 -0
  64. package/scss/modules/_tooltip.scss +127 -0
  65. package/scss/modules/form/_checkbox.scss +99 -0
  66. package/scss/modules/form/_file.scss +109 -0
  67. package/scss/modules/form/_formFieldGroup.scss +74 -0
  68. package/scss/modules/form/_output.scss +5 -0
  69. package/scss/modules/form/_progress.scss +57 -0
  70. package/scss/modules/form/_radio.scss +49 -0
  71. package/scss/modules/form/_range.scss +104 -0
  72. package/scss/modules/form/_select.scss +22 -0
  73. package/scss/modules/form/_text.scss +19 -0
  74. package/scss/utilities/_align.scss +21 -0
  75. package/scss/utilities/_border.scss +63 -0
  76. package/scss/utilities/_colors.scss +68 -0
  77. package/scss/utilities/_display.scss +21 -0
  78. package/scss/utilities/_flex.scss +55 -0
  79. package/scss/utilities/_float.scss +13 -0
  80. package/scss/utilities/_order.scss +19 -0
  81. package/scss/utilities/_overflow.scss +21 -0
  82. package/scss/utilities/_pointerEvents.scss +13 -0
  83. package/scss/utilities/_position.scss +43 -0
  84. package/scss/utilities/_shadow.scss +5 -0
  85. package/scss/utilities/_size.scss +63 -0
  86. package/scss/utilities/_spacing.scss +79 -0
  87. package/scss/utilities/_translate.scss +15 -0
  88. package/scss/utilities/_typography.scss +58 -0
  89. package/scss/utilities/_visibility.scss +13 -0
  90. package/scss/utilities/_zIndex.scss +11 -0
  91. package/styles/helpers/container.css +21 -0
  92. package/styles/helpers/embed.css +70 -0
  93. package/styles/helpers/grid.css +64 -0
  94. package/styles/helpers/image.css +5 -0
  95. package/styles/helpers/link.css +20 -0
  96. package/styles/helpers/screen-readers.css +22 -0
  97. package/styles/helpers/wrap.css +5 -0
  98. package/styles/helpers.css +7 -0
  99. package/styles/index.css +6 -0
  100. package/styles/mixins/caret.css +32 -0
  101. package/styles/mixins/clearfix.css +7 -0
  102. package/styles/mixins/group.css +78 -0
  103. package/styles/mixins/helpers/container.css +12 -0
  104. package/styles/mixins/helpers/grid.css +20 -0
  105. package/styles/mixins/helpers/link.css +18 -0
  106. package/styles/mixins/helpers/wrap.css +7 -0
  107. package/styles/mixins/modules/button.css +92 -0
  108. package/styles/mixins/modules/card.css +29 -0
  109. package/styles/mixins/modules/close.css +42 -0
  110. package/styles/mixins/modules/list.css +24 -0
  111. package/styles/mixins/modules/pill.css +44 -0
  112. package/styles/mixins/modules/table.css +75 -0
  113. package/styles/mixins.css +13 -0
  114. package/styles/modules/alert.css +85 -0
  115. package/styles/modules/breadcrumbs.css +41 -0
  116. package/styles/modules/button.css +151 -0
  117. package/styles/modules/card.css +80 -0
  118. package/styles/modules/close.css +5 -0
  119. package/styles/modules/details.css +61 -0
  120. package/styles/modules/dialog.css +82 -0
  121. package/styles/modules/dropdown.css +126 -0
  122. package/styles/modules/form/checkbox.css +99 -0
  123. package/styles/modules/form/file.css +117 -0
  124. package/styles/modules/form/form-field-group.css +74 -0
  125. package/styles/modules/form/output.css +5 -0
  126. package/styles/modules/form/progress.css +57 -0
  127. package/styles/modules/form/radio.css +49 -0
  128. package/styles/modules/form/range.css +104 -0
  129. package/styles/modules/form/select.css +24 -0
  130. package/styles/modules/form/text.css +19 -0
  131. package/styles/modules/form.css +191 -0
  132. package/styles/modules/list.css +98 -0
  133. package/styles/modules/loader.css +229 -0
  134. package/styles/modules/nav.css +99 -0
  135. package/styles/modules/pill.css +72 -0
  136. package/styles/modules/table.css +21 -0
  137. package/styles/modules/tabs.css +101 -0
  138. package/styles/modules/tag.css +117 -0
  139. package/styles/modules/tile.css +114 -0
  140. package/styles/modules.css +17 -0
  141. package/styles/reboot.css +403 -0
  142. package/styles/utilities/align.css +5 -0
  143. package/styles/utilities/border.css +55 -0
  144. package/styles/utilities/colors.css +65 -0
  145. package/styles/utilities/display.css +45 -0
  146. package/styles/utilities/flex.css +131 -0
  147. package/styles/utilities/float.css +15 -0
  148. package/styles/utilities/order.css +33 -0
  149. package/styles/utilities/overflow.css +31 -0
  150. package/styles/utilities/pointer-events.css +5 -0
  151. package/styles/utilities/position.css +79 -0
  152. package/styles/utilities/shadow.css +5 -0
  153. package/styles/utilities/size.css +123 -0
  154. package/styles/utilities/spacing.css +866 -0
  155. package/styles/utilities/tooltip.css +127 -0
  156. package/styles/utilities/translate.css +15 -0
  157. package/styles/utilities/typography.css +74 -0
  158. package/styles/utilities/visibility.css +14 -0
  159. package/styles/utilities/zindex.css +7 -0
  160. package/styles/utilities.css +18 -0
  161. package/styles/vars.css +158 -0
  162. package/webpack.config.js +25 -0
@@ -0,0 +1,99 @@
1
+ .tabs--wrapper {
2
+ margin-bottom: $spacer;
3
+
4
+ & .nav--tabs {
5
+ margin-bottom: 0;
6
+ z-index: 1;
7
+ position: relative;
8
+ overflow: unset;
9
+ flex-wrap: nowrap;
10
+
11
+ &:not(:empty) {
12
+ border-bottom: 1px solid rgba($black, 0.12);
13
+ }
14
+
15
+ & a,
16
+ & button {
17
+ border: 1px solid rgba($black, 0.12);
18
+ border-bottom-color: rgba($black, 0);
19
+ border-radius: $border-radius-medium $border-radius-medium 0 0;
20
+ margin-bottom: -1px;
21
+
22
+ &:not(:last-child) {
23
+ margin-right: calc($spacer * 0.125);
24
+ }
25
+
26
+ &[data-active="true"],
27
+ &.active {
28
+ background-color: $white;
29
+ border-color: rgba($black, 0.17);
30
+ border-bottom-color: rgba($black, 0);
31
+ }
32
+ }
33
+ }
34
+
35
+ & .tab--content {
36
+ @include make-card();
37
+
38
+ --#{$variable-prefix}border-radius: 0 0 #{$border-radius-medium} #{$border-radius-medium};
39
+
40
+ border-top-color: rgba($black, 0);
41
+ display: none !important;
42
+ padding: $spacer;
43
+
44
+ & > *:last-child {
45
+ margin-bottom: 0;
46
+ }
47
+
48
+ &[data-active="true"],
49
+ &.active {
50
+ display: flex !important;
51
+ }
52
+ }
53
+
54
+ &.card {
55
+ & .nav--tabs {
56
+ & a,
57
+ & button {
58
+ margin-right: 0;
59
+ border-width: 0 1px 0 0;
60
+ border-radius: 0;
61
+ margin-bottom: 0;
62
+
63
+ &:first-child {
64
+ border-top-left-radius: calc($border-radius-medium - 1px);
65
+ }
66
+
67
+ &:last-child {
68
+ border-top-right-radius: calc($border-radius-medium - 1px);
69
+ }
70
+
71
+ &::after {
72
+ content: "";
73
+ left: -1px;
74
+ bottom: 0;
75
+ right: -1px;
76
+ height: 2px;
77
+ background-color: $primary;
78
+ position: absolute;
79
+ display: none;
80
+ }
81
+
82
+ &[data-active="true"],
83
+ &.active {
84
+ border-color: rgba($black, 0.12);
85
+
86
+ &::after {
87
+ display: block;
88
+ }
89
+ }
90
+ }
91
+ }
92
+
93
+ & .tab--content {
94
+ border: 0 none;
95
+ padding: $spacer;
96
+ margin-bottom: 0;
97
+ }
98
+ }
99
+ }
@@ -0,0 +1,82 @@
1
+ .tag {
2
+ --#{$variable-prefix}border-color: #{rgba($black, 0.2)};
3
+ --#{$variable-prefix}border-color-hover: #{rgba($black, 0.3)};
4
+ --#{$variable-prefix}border: 1px solid var(--#{$variable-prefix}border-color);
5
+ --#{$variable-prefix}border-radius: #{$border-radius-medium};
6
+ --#{$variable-prefix}color: #{$body-color};
7
+ --#{$variable-prefix}background-color: #{$light};
8
+ --#{$variable-prefix}background-color-hover: #{shade-color($light, 10%)};
9
+ --#{$variable-prefix}padding: calc((#{$spacer} * 0.25) - 1px) calc((#{$spacer} * 0.5) - 1px);
10
+
11
+ border: var(--#{$variable-prefix}border);
12
+ color: var(--#{$variable-prefix}color);
13
+ background-color: var(--#{$variable-prefix}background-color);
14
+ padding: var(--#{$variable-prefix}padding);
15
+ border-radius: var(--#{$variable-prefix}border-radius);
16
+ align-items: center;
17
+ display: inline-flex;
18
+ vertical-align: top;
19
+ justify-content: center;
20
+ text-align: center;
21
+ white-space: nowrap;
22
+ height: auto;
23
+ outline: 0;
24
+ text-decoration: none;
25
+ font-size: $font-size-small;
26
+
27
+ &.tag--rounded {
28
+ --#{$variable-prefix}border-radius: #{$border-radius-round};
29
+ }
30
+
31
+ &.tag--square {
32
+ --#{$variable-prefix}border-radius: 0;
33
+ }
34
+
35
+ &.tag--button {
36
+ cursor: pointer;
37
+
38
+ &:not(:disabled):not(.disabled):focus,
39
+ &:not(:disabled):not(.disabled):hover {
40
+ background-color: var(--#{$variable-prefix}background-color-hover);
41
+ border-color: var(--#{$variable-prefix}border-color-hover);
42
+ }
43
+ }
44
+
45
+ & > .close {
46
+ --padding: calc(#{$spacer} * 0.5);
47
+ }
48
+ }
49
+
50
+ .tags {
51
+ @include make-group-row();
52
+
53
+ & .tag {
54
+ &:empty {
55
+ align-self: stretch;
56
+ }
57
+ }
58
+
59
+ & .tags {
60
+ margin-bottom: 0;
61
+ }
62
+
63
+ &.tags--grouped {
64
+ @include make-grouped-row();
65
+ }
66
+ }
67
+
68
+ @each $key, $value in $colors {
69
+ .tag--#{$key} {
70
+ --#{$variable-prefix}color: #{tint-color($value, 85%)};
71
+ --#{$variable-prefix}background-color: #{$value};
72
+ --#{$variable-prefix}background-color-hover: #{shade-color($value, 10%)};
73
+ }
74
+ }
75
+
76
+ @each $key, $value in $theme-colors {
77
+ .tag--#{$key} {
78
+ --#{$variable-prefix}color: #{tint-color($value, 85%)};
79
+ --#{$variable-prefix}background-color: #{$value};
80
+ --#{$variable-prefix}background-color-hover: #{shade-color($value, 10%)};
81
+ }
82
+ }
@@ -0,0 +1,82 @@
1
+ .tile {
2
+ --#{$variable-prefix}background-color: #{$white};
3
+ --#{$variable-prefix}border-color: #{rgba($black, 0.12)};
4
+ --#{$variable-prefix}border-left-color: var(--#{$variable-prefix}border-color);
5
+ --#{$variable-prefix}border: 1px solid var(--#{$variable-prefix}border-color);
6
+ --#{$variable-prefix}padding: calc(#{$spacer} * 0.5) #{$spacer};
7
+
8
+ margin-bottom: $spacer;
9
+ background-color: var(--#{$variable-prefix}background-color);
10
+ display: flex;
11
+ flex-direction: column;
12
+ border: var(--#{$variable-prefix}border);
13
+ border-left-width: 4px;
14
+ border-left-color: var(--#{$variable-prefix}border-left-color);
15
+ min-width: 0;
16
+ word-wrap: break-word;
17
+ width: 100%;
18
+ position: relative;
19
+
20
+ & .tile--header,
21
+ & .tile--footer {
22
+ display: flex;
23
+ flex-direction: row;
24
+ flex-wrap: wrap;
25
+ padding: var(--#{$variable-prefix}padding);
26
+
27
+ & > * {
28
+ margin-bottom: 0;
29
+ }
30
+ }
31
+
32
+ & .tile--header {
33
+ flex: 0 1 auto;
34
+ border-bottom: 1px solid var(--#{$variable-prefix}border-color);
35
+ }
36
+
37
+ & .tile--footer {
38
+ margin-top: auto;
39
+ flex: 0 0 auto;
40
+ border-top: 1px solid var(--#{$variable-prefix}border-color);
41
+ }
42
+
43
+ & .tile--body {
44
+ flex: 0 0 auto;
45
+ width: 100%;
46
+ padding: var(--#{$variable-prefix}padding);
47
+
48
+ & > *:last-child:not(.grid--form) {
49
+ margin-bottom: 0;
50
+ }
51
+ }
52
+
53
+ & .tile--image {
54
+ flex: 1 0 100%;
55
+ overflow: hidden;
56
+
57
+ & img {
58
+ width: 100%;
59
+ height: auto;
60
+ }
61
+ }
62
+ }
63
+
64
+ .tiles {
65
+ @include make-group-column();
66
+
67
+ &.tiles--grouped {
68
+ @include make-grouped-column();
69
+ }
70
+ }
71
+
72
+ @each $key, $value in $colors {
73
+ .tile--#{$key} {
74
+ --#{$variable-prefix}border-left-color: #{$value};
75
+ }
76
+ }
77
+
78
+ @each $key, $value in $theme-colors {
79
+ .tile--#{$key} {
80
+ --#{$variable-prefix}border-left-color: #{$value};
81
+ }
82
+ }
@@ -0,0 +1,127 @@
1
+ [data-tooltip] {
2
+ position: relative;
3
+ cursor: help;
4
+
5
+ &::after,
6
+ &::before {
7
+ transition: opacity 0.2s ease-in-out, visibility 0.2s ease-in-out;
8
+ transform: translate3d(0, 0, 0);
9
+ position: absolute;
10
+ visibility: hidden;
11
+ opacity: 0;
12
+ pointer-events: none;
13
+ z-index: $zindex-tooltip;
14
+ color: $white;
15
+ text-align: center;
16
+ font-size: $font-size-small;
17
+ line-height: normal;
18
+ font-weight: 400;
19
+ }
20
+
21
+ &::before {
22
+ content: "";
23
+ border-top: 6px solid rgba($black, 0.75);
24
+ border-right: 6px solid rgba($black, 0);
25
+ border-bottom: 0 none;
26
+ border-left: 6px solid rgba($black, 0);
27
+ top: -6px;
28
+ right: auto;
29
+ bottom: auto;
30
+ left: 50%;
31
+ margin: 0 0 0 -6px;
32
+ }
33
+
34
+ &::after {
35
+ background-color: rgba($black, 0.75);
36
+ content: attr(data-tooltip);
37
+ width: auto;
38
+ min-width: calc($spacer * 6);
39
+ padding: 4px 8px;
40
+ border-radius: 3px;
41
+ top: auto;
42
+ right: auto;
43
+ bottom: 100%;
44
+ left: 50%;
45
+ transform: translateY(-6px) translateX(-50%);
46
+ }
47
+
48
+ &.tooltip--large {
49
+ &::after {
50
+ min-width: calc($spacer * 16);
51
+ }
52
+ }
53
+
54
+ &[data-placement="left"] {
55
+ &::before {
56
+ border-top: 6px solid rgba($black, 0);
57
+ border-right: 0 none;
58
+ border-bottom: 6px solid rgba($black, 0);
59
+ border-left: 6px solid rgba($black, 0.75);
60
+ top: 50%;
61
+ right: auto;
62
+ bottom: auto;
63
+ left: -6px;
64
+ margin: -6px 0 0;
65
+ }
66
+
67
+ &::after {
68
+ top: 50%;
69
+ right: 100%;
70
+ bottom: auto;
71
+ left: auto;
72
+ transform: translateY(-50%) translateX(-6px);
73
+ }
74
+ }
75
+
76
+ &[data-placement="right"] {
77
+ &::before {
78
+ border-top: 6px solid rgba($black, 0);
79
+ border-right: 6px solid rgba($black, 0.75);
80
+ border-bottom: 6px solid rgba($black, 0);
81
+ border-left: 0 none;
82
+ top: 50%;
83
+ right: -6px;
84
+ bottom: auto;
85
+ left: auto;
86
+ margin: -6px 0 0;
87
+ }
88
+
89
+ &::after {
90
+ top: 50%;
91
+ right: auto;
92
+ bottom: auto;
93
+ left: 100%;
94
+ transform: translateY(-50%) translateX(6px);
95
+ }
96
+ }
97
+
98
+ &[data-placement="bottom"] {
99
+ &::before {
100
+ border-top: 0 none;
101
+ border-right: 6px solid rgba($black, 0);
102
+ border-bottom: 6px solid rgba($black, 0.75);
103
+ border-left: 6px solid rgba($black, 0);
104
+ top: auto;
105
+ right: auto;
106
+ bottom: -6px;
107
+ left: 50%;
108
+ margin: 0 0 0 -6px;
109
+ }
110
+
111
+ &::after {
112
+ top: 100%;
113
+ right: auto;
114
+ bottom: auto;
115
+ left: 50%;
116
+ transform: translateY(6px) translateX(-50%);
117
+ }
118
+ }
119
+
120
+ &:hover {
121
+ &::after,
122
+ &::before {
123
+ visibility: visible;
124
+ opacity: 1;
125
+ }
126
+ }
127
+ }
@@ -0,0 +1,99 @@
1
+ input[type="checkbox"] {
2
+ --#{$variable-prefix}height: calc(#{$spacer}* 1.5);
3
+ --#{$variable-prefix}width: calc(#{$spacer} * 1.5);
4
+
5
+ appearance: none;
6
+ font-size: $spacer;
7
+ height: var(--#{$variable-prefix}height);
8
+ width: var(--#{$variable-prefix}width);
9
+ min-width: var(--#{$variable-prefix}width);
10
+ display: inline-block;
11
+ vertical-align: text-bottom;
12
+ position: relative;
13
+ margin-right: calc($spacer * 0.5);
14
+
15
+ &::before {
16
+ content: "";
17
+ position: absolute;
18
+ margin: auto;
19
+ left: 0;
20
+ right: 0;
21
+ bottom: 0;
22
+ top: 0;
23
+ overflow: hidden;
24
+ }
25
+
26
+ &:checked {
27
+ --#{$variable-prefix}background-color: #{$primary};
28
+ --#{$variable-prefix}border-color: #{$primary};
29
+
30
+ &::before {
31
+ border-right: 2px solid $white;
32
+ border-bottom: 2px solid $white;
33
+ height: 65%;
34
+ width: 32.5%;
35
+ transform: rotate(45deg) translateY(-15%) translateX(-15%);
36
+ }
37
+
38
+ &:disabled,
39
+ &.disabled,
40
+ &[aria-disabled="true"] {
41
+ --#{$variable-prefix}background-color: #{rgba($primary, 0.4)};
42
+ --#{$variable-prefix}border-color: #{rgba($primary, 0.8)};
43
+ }
44
+ }
45
+
46
+ &:indeterminate,
47
+ &[aria-checked="mixed"] {
48
+ &::before {
49
+ border: 2px solid $white;
50
+ height: 0;
51
+ width: 65%;
52
+ }
53
+ }
54
+
55
+ &.input--toggle {
56
+ --#{$variable-prefix}width: calc(#{$spacer} * 3);
57
+
58
+ border-radius: $border-radius-round;
59
+
60
+ &::before {
61
+ height: 0;
62
+ width: 0;
63
+ left: 0.25em;
64
+ right: auto;
65
+ border: 0.5em solid rgba($black, 0);
66
+ border-radius: $border-radius-round;
67
+ background: var(--#{$variable-prefix}border-color);
68
+ transition: transform 0.2s;
69
+ }
70
+
71
+ &:checked {
72
+ &::before {
73
+ transform: translateX(1.5em);
74
+ height: 0;
75
+ width: 0;
76
+ background: $white;
77
+ }
78
+ }
79
+ }
80
+
81
+ &.input--large {
82
+ --#{$variable-prefix}height: calc(#{$spacer} * 2);
83
+ --#{$variable-prefix}width: calc(#{$spacer} * 2);
84
+
85
+ &.input--toggle {
86
+ --#{$variable-prefix}width: calc(#{$spacer} * 4);
87
+
88
+ &::before {
89
+ border-width: 0.75em;
90
+ }
91
+
92
+ &:checked {
93
+ &::before {
94
+ transform: translateX(2em);
95
+ }
96
+ }
97
+ }
98
+ }
99
+ }
@@ -0,0 +1,109 @@
1
+
2
+ .form--control-file {
3
+ --#{$variable-prefix}display: flex;
4
+
5
+ flex: 0 0 auto;
6
+ width: 100%;
7
+ }
8
+
9
+ input[type="file"] {
10
+ order: 1;
11
+ position: absolute;
12
+ width: 100%;
13
+ height: 100%;
14
+ top: 0;
15
+ left: 0;
16
+ right: 0;
17
+ bottom: 0;
18
+ opacity: 0;
19
+
20
+ & ~ .file--name {
21
+ order: 999;
22
+
23
+ &:not(:empty) {
24
+ --#{$variable-prefix}border-color: #{$gray-3};
25
+ --#{$variable-prefix}border-color-hover: #{shade-color($gray-3, 25%)};
26
+
27
+ border-right: 1px solid var(--#{$variable-prefix}border-color);
28
+ border-bottom: 1px solid var(--#{$variable-prefix}border-color);
29
+ border-left: 1px solid var(--#{$variable-prefix}border-color);
30
+ border-bottom-right-radius: $border-radius-medium;
31
+ border-bottom-left-radius: $border-radius-medium;
32
+ padding: var(--padding);
33
+ white-space: nowrap;
34
+ overflow: hidden;
35
+ text-overflow: ellipsis;
36
+ text-align: center;
37
+ }
38
+
39
+ &:empty {
40
+ & ~ .form--label {
41
+ border-bottom-right-radius: $border-radius-medium;
42
+ border-bottom-left-radius: $border-radius-medium;
43
+ }
44
+ }
45
+ }
46
+
47
+ & ~ .form--label {
48
+ --#{$variable-prefix}border-color: #{$gray-3};
49
+ --#{$variable-prefix}border-color-hover: #{shade-color($gray-3, 25%)};
50
+
51
+ order: 2;
52
+ cursor: pointer;
53
+ width: 100%;
54
+ display: block;
55
+ position: relative;
56
+ margin-bottom: 0;
57
+ text-align: center;
58
+ padding: $spacer $spacer calc($spacer * 3);
59
+ border: 1px solid var(--#{$variable-prefix}border-color);
60
+ border-top-left-radius: $border-radius-medium;
61
+ border-top-right-radius: $border-radius-medium;
62
+ background-color: rgba($black, 0.05);
63
+
64
+ &::after {
65
+ content: "";
66
+ position: absolute;
67
+ width: calc($spacer * 2);
68
+ height: calc($spacer * 2);
69
+ top: auto;
70
+ left: 50%;
71
+ bottom: calc($spacer * 0.5);
72
+ transform: translateX(-50%);
73
+ margin: 0;
74
+ background-size: calc($spacer * 2) auto;
75
+ background-image: escape-svg($form-file-indicator);
76
+ }
77
+ }
78
+
79
+ &:hover {
80
+ & ~ .form--label {
81
+ border-color: var(--#{$variable-prefix}border-color-hover);
82
+
83
+ &::after {
84
+ background-image: escape-svg($form-file-indicator-hover);
85
+ }
86
+ }
87
+
88
+ & ~ .file--name {
89
+ &:not(:empty) {
90
+ border-color: var(--#{$variable-prefix}border-color-hover);
91
+ }
92
+ }
93
+ }
94
+
95
+ @each $key, $value in $theme-colors {
96
+ &.input--#{$key} {
97
+ & ~ .form--label {
98
+ --#{$variable-prefix}border-color: #{$value};
99
+ --#{$variable-prefix}border-color-hover: #{shade-color($value, 25%)};
100
+ }
101
+ & ~ .file--name {
102
+ &:not(:empty) {
103
+ --#{$variable-prefix}border-color: #{$value};
104
+ --#{$variable-prefix}border-color-hover: #{shade-color($value, 25%)};
105
+ }
106
+ }
107
+ }
108
+ }
109
+ }
@@ -0,0 +1,74 @@
1
+ .form--field-group {
2
+ display: flex;
3
+ justify-content: flex-start;
4
+ align-items: stretch;
5
+
6
+ & .form--control {
7
+ --#{$variable-prefix}display: flex;
8
+ --#{$variable-prefix}flex-direction: row;
9
+
10
+ &:not(:last-child) {
11
+ margin-right: -1px;
12
+ }
13
+
14
+ & button,
15
+ & input,
16
+ & textarea,
17
+ & range,
18
+ & output,
19
+ & select,
20
+ & progress,
21
+ & .form--span,
22
+ & .input--div {
23
+ border-radius: 0;
24
+ }
25
+
26
+ &:first-child {
27
+ & button,
28
+ & input,
29
+ & textarea,
30
+ & range,
31
+ & output,
32
+ & select,
33
+ & progress,
34
+ & .form--span,
35
+ & .form--div {
36
+ &:not(.button--square),
37
+ &:not(.input--square) {
38
+ border-bottom-left-radius: $input-border-radius;
39
+ border-top-left-radius: $input-border-radius;
40
+
41
+ &.button--rounded,
42
+ &.input--rounded {
43
+ border-bottom-left-radius: $border-radius-round;
44
+ border-top-left-radius: $border-radius-round;
45
+ }
46
+ }
47
+ }
48
+ }
49
+
50
+ &:last-child {
51
+ & button,
52
+ & input,
53
+ & textarea,
54
+ & range,
55
+ & output,
56
+ & select,
57
+ & progress,
58
+ & .form--span,
59
+ & .form--div {
60
+ &:not(.button--square),
61
+ &:not(.input--square) {
62
+ border-bottom-right-radius: $input-border-radius;
63
+ border-top-right-radius: $input-border-radius;
64
+
65
+ &.button--rounded,
66
+ &.input--rounded {
67
+ border-bottom-right-radius: $border-radius-round;
68
+ border-top-right-radius: $border-radius-round;
69
+ }
70
+ }
71
+ }
72
+ }
73
+ }
74
+ }
@@ -0,0 +1,5 @@
1
+ output {
2
+ --#{$variable-prefix}background-color: #{rgba($black, 0.05)};
3
+
4
+ pointer-events: none;
5
+ }