@utahdts/utah-design-system 0.0.1

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 (134) hide show
  1. package/README.md +54 -0
  2. package/css/1-settings/_class-vars.scss +11 -0
  3. package/css/1-settings/_color-swatches.scss +422 -0
  4. package/css/1-settings/_font-stuff.scss +48 -0
  5. package/css/1-settings/_grid.scss +39 -0
  6. package/css/1-settings/_icons.scss +6 -0
  7. package/css/1-settings/_settings-index.scss +116 -0
  8. package/css/1-settings/_spacing.scss +70 -0
  9. package/css/2-tools/_tools-index.scss +47 -0
  10. package/css/3-generic/_generic-index.scss +4 -0
  11. package/css/3-generic/normalize.css +349 -0
  12. package/css/4-elements/_elements-index.scss +89 -0
  13. package/css/5-objects/_objects-index.scss +9 -0
  14. package/css/6-components/_components-index.scss +31 -0
  15. package/css/6-components/base-components/buttons/_button.scss +401 -0
  16. package/css/6-components/base-components/buttons/_icon-button.scss +54 -0
  17. package/css/6-components/base-components/containers/_accordion.scss +31 -0
  18. package/css/6-components/base-components/containers/_tab-group.scss +57 -0
  19. package/css/6-components/base-components/forms/_checkbox.scss +67 -0
  20. package/css/6-components/base-components/forms/_info-box.scss +23 -0
  21. package/css/6-components/base-components/forms/_input-wrapper.scss +9 -0
  22. package/css/6-components/base-components/forms/_input.scss +10 -0
  23. package/css/6-components/base-components/forms/_radio-button.scss +60 -0
  24. package/css/6-components/base-components/forms/_select-input.scss +18 -0
  25. package/css/6-components/base-components/forms/_switch.scss +191 -0
  26. package/css/6-components/base-components/forms/_text-input.scss +15 -0
  27. package/css/6-components/base-components/navigation/_main-menu.scss +69 -0
  28. package/css/6-components/base-components/navigation/_menu-item.scss +44 -0
  29. package/css/6-components/base-components/navigation/_side-panel-navigation.scss +83 -0
  30. package/css/6-components/base-components/tablesAndLists/_table.scss +52 -0
  31. package/css/6-components/base-components/templates/_documenation-template.scss +50 -0
  32. package/css/6-components/base-components/templates/_landing-page-template.scss +8 -0
  33. package/css/6-components/base-components/templates/_on-this-page.scss +33 -0
  34. package/css/6-components/base-components/widgetsInicators/_spinner.scss +38 -0
  35. package/css/6-components/project-components/_popup.scss +22 -0
  36. package/css/6-components/project-components/_swatch-list.scss +41 -0
  37. package/css/7-utilities/_animation.scss +41 -0
  38. package/css/7-utilities/_utilities-index.scss +119 -0
  39. package/css/8-super/_print.scss +38 -0
  40. package/css/8-super/_super-index.scss +6 -0
  41. package/css/9-tip/_tip-index.scss +6 -0
  42. package/css/build/utah-design-system.css +2374 -0
  43. package/css/index.scss +52 -0
  44. package/index.js +117 -0
  45. package/package.json +55 -0
  46. package/react/components/buttons/Button.jsx +103 -0
  47. package/react/components/buttons/IconButton.jsx +36 -0
  48. package/react/components/buttons/SegmentedButton.jsx +1 -0
  49. package/react/components/containers/accordion/Accordion.jsx +67 -0
  50. package/react/components/containers/tabs/Tab.jsx +53 -0
  51. package/react/components/containers/tabs/TabGroup.jsx +66 -0
  52. package/react/components/containers/tabs/TabGroupContext.jsx +3 -0
  53. package/react/components/containers/tabs/TabGroupTitle.jsx +28 -0
  54. package/react/components/containers/tabs/TabList.jsx +31 -0
  55. package/react/components/containers/tabs/TabPanel.jsx +41 -0
  56. package/react/components/containers/tabs/TabPanels.jsx +20 -0
  57. package/react/components/forms/CheckBox.jsx +79 -0
  58. package/react/components/forms/ErrorMessage.jsx +25 -0
  59. package/react/components/forms/Form.jsx +68 -0
  60. package/react/components/forms/FormContext.jsx +3 -0
  61. package/react/components/forms/FormContextProvider.jsx +87 -0
  62. package/react/components/forms/PLACEHOLDER.md +1 -0
  63. package/react/components/forms/Select.jsx +85 -0
  64. package/react/components/forms/SelectOption.jsx +42 -0
  65. package/react/components/forms/Switch.jsx +122 -0
  66. package/react/components/forms/TextInput.jsx +80 -0
  67. package/react/components/icons/Icons.jsx +7 -0
  68. package/react/components/lists/PLACEHOLDER.md +1 -0
  69. package/react/components/map/PLACEHOLDER.md +1 -0
  70. package/react/components/navigation/HorizontalMenu.jsx +46 -0
  71. package/react/components/navigation/MainMenu.jsx +28 -0
  72. package/react/components/navigation/MenuItem.jsx +116 -0
  73. package/react/components/navigation/OnThisPage.jsx +34 -0
  74. package/react/components/navigation/OnThisPageHeadersLevel.jsx +35 -0
  75. package/react/components/navigation/SidePanelNavigation.jsx +41 -0
  76. package/react/components/navigation/util/findElementsByTagNameMatch.js +11 -0
  77. package/react/components/navigation/util/groupElementsByHeaderLevel.js +41 -0
  78. package/react/components/popups/PLACEHOLDER.md +1 -0
  79. package/react/components/table/Table.jsx +34 -0
  80. package/react/components/table/TableBody.jsx +35 -0
  81. package/react/components/table/TableBodyData.jsx +91 -0
  82. package/react/components/table/TableBodyDataCellTemplate.jsx +73 -0
  83. package/react/components/table/TableBodyDataRowContext.jsx +3 -0
  84. package/react/components/table/TableBodyDataRowTemplate.jsx +56 -0
  85. package/react/components/table/TableCell.jsx +50 -0
  86. package/react/components/table/TableContext.jsx +3 -0
  87. package/react/components/table/TableFilterCustom.jsx +34 -0
  88. package/react/components/table/TableFilterNone.jsx +34 -0
  89. package/react/components/table/TableFilterSelect.jsx +34 -0
  90. package/react/components/table/TableFilterSelectOption.jsx +34 -0
  91. package/react/components/table/TableFilterTextInput.jsx +64 -0
  92. package/react/components/table/TableFilters.jsx +88 -0
  93. package/react/components/table/TableFoot.jsx +34 -0
  94. package/react/components/table/TableFootCell.jsx +34 -0
  95. package/react/components/table/TableFootRow.jsx +34 -0
  96. package/react/components/table/TableHead.jsx +39 -0
  97. package/react/components/table/TableHeadCell.jsx +79 -0
  98. package/react/components/table/TableHeadRow.jsx +34 -0
  99. package/react/components/table/TableRow.jsx +49 -0
  100. package/react/components/table/TableSortingRule.jsx +55 -0
  101. package/react/components/table/TableSortingRules.jsx +64 -0
  102. package/react/components/table/TableWrapper.jsx +128 -0
  103. package/react/components/table/useCurrentValuesFromStateContext.js +73 -0
  104. package/react/components/templates/DocumentationTemplate.jsx +52 -0
  105. package/react/components/templates/LandingTemplate.jsx +29 -0
  106. package/react/components/utahHeader/UtahHeader.jsx +25 -0
  107. package/react/components/utahHeader/UtahUnbrand.jsx +50 -0
  108. package/react/components/widgetsIndicators/Spinner.jsx +71 -0
  109. package/react/enums/formElementSizesEnum.js +9 -0
  110. package/react/enums/tableSortingRuleFieldType.js +9 -0
  111. package/react/hooks/forms/useCurrentValuesFromForm.js +44 -0
  112. package/react/hooks/useBanner.js +6 -0
  113. package/react/hooks/useCurrentMenuItem.js +29 -0
  114. package/react/hooks/usePrepMenuItems.js +24 -0
  115. package/react/hooks/useRefAlways.js +8 -0
  116. package/react/hooks/useRefLazy.js +11 -0
  117. package/react/hooks/useScrollPosition.js +18 -0
  118. package/react/hooks/useStateEffect.js +43 -0
  119. package/react/propTypesShapes/MenuItemShape.js +20 -0
  120. package/react/propTypesShapes/MenuItemsShape.js +4 -0
  121. package/react/propTypesShapes/MenuShape.js +10 -0
  122. package/react/propTypesShapes/RefShape.js +9 -0
  123. package/react/util/arrayMatchRecursive.js +21 -0
  124. package/react/util/chainSorters.js +19 -0
  125. package/react/util/handleEvent.js +25 -0
  126. package/react/util/handleKeyPress.js +1 -0
  127. package/react/util/joinClassNames.js +23 -0
  128. package/react/util/menuItems/calculateMenuItemsParents.js +54 -0
  129. package/react/util/menuItems/findMenuItemInMenusByPathname.js +25 -0
  130. package/react/util/onKeyPress.js +12 -0
  131. package/react/util/rectContainsPoint.js +7 -0
  132. package/react/util/state/setValueAtPath.js +80 -0
  133. package/react/util/state/valueAtPath.js +5 -0
  134. package/react/util/stringToId.js +11 -0
@@ -0,0 +1,18 @@
1
+ @use "../../../2-tools/tools-index";
2
+
3
+ select {
4
+ color: var(--gray-color);
5
+ min-height: var(--form-ele-medium);
6
+ border-radius: var(--radius-small);
7
+ box-sizing: border-box;
8
+ border: 1px solid var(--gray-color);
9
+ width: 100%;
10
+ padding: 0 var(--spacing-xs);
11
+ box-sizing: border-box;
12
+ appearance: none;
13
+ background: white var(--icon-chevron-dark) no-repeat right 5px center;
14
+ background-size: 16px;
15
+
16
+ @include tools-index.form-ele-hover-medium;
17
+ @include tools-index.form-ele-focus;
18
+ }
@@ -0,0 +1,191 @@
1
+ @use "../../../1-settings/color-swatches";
2
+ @use "../../../2-tools/tools-index";
3
+
4
+ input[type=checkbox].switch {
5
+ border: 0;
6
+ clip: rect(0 0 0 0);
7
+ height: 1px;
8
+ margin: -1px;
9
+ overflow: hidden;
10
+ padding: 0;
11
+ position: absolute;
12
+ width: 1px;
13
+ }
14
+
15
+ .switch {
16
+ &__label {
17
+ position: absolute;
18
+ right: 0;
19
+ transform: translateX(calc(100% + var(--spacing-2xs)));
20
+ color: var(--gray-color);
21
+ min-width: max-content;
22
+ }
23
+ &__wrapper {
24
+ min-width: 20px;
25
+ background: color-swatches.$neutral-gray-08;
26
+ color: white;
27
+ border-radius: var(--radius-circle);
28
+ min-height: var(--form-ele-small3x);
29
+ padding: var(--spacing-3xs);
30
+ position: relative;
31
+ display: inline-flex;
32
+ align-items: center;
33
+ &--on {
34
+ background: var(--form-ele-color);
35
+ }
36
+
37
+ @include tools-index.form-ele-hover-medium;
38
+ &:has(input:focus) {
39
+ @include tools-index.form-ele-focus-appearance;
40
+ }
41
+ }
42
+ &--small {
43
+ &.switch__wrapper {
44
+ min-height: var(--form-ele-small4x);
45
+ }
46
+
47
+ .switch__slider {
48
+ height: var(--form-ele-small4x);
49
+ width: var(--form-ele-small4x);
50
+ }
51
+
52
+ .switch__inner-label {
53
+ font-size: var(--font-size-xs);
54
+ height: var(--form-ele-small4x);
55
+ line-height: var(--form-ele-small4x);
56
+ }
57
+ }
58
+ &--large {
59
+ &.switch__wrapper {
60
+ min-height: var(--form-ele-small1x);
61
+ }
62
+
63
+ .switch__slider {
64
+ height: var(--form-ele-small1x);
65
+ width: var(--form-ele-small1x);
66
+ }
67
+ }
68
+ &__slider {
69
+ height: var(--form-ele-small3x);
70
+ width: var(--form-ele-small3x);
71
+ border-radius: var(--radius-circle);
72
+ background: white;
73
+ position: absolute;
74
+ left: 2px;
75
+ transition: all var(--timing-quick);
76
+ display: flex;
77
+ align-items: center;
78
+ justify-content: center;
79
+ &--on {
80
+ left: 100%;
81
+ transform: translateX(calc(-100% - 2px));
82
+ background: white;
83
+ }
84
+ svg {
85
+ fill: var(--gray-color);
86
+ width: .65rem;
87
+ height: .65rem;
88
+ }
89
+ }
90
+ &__inner-label {
91
+ position: relative;
92
+ width: 100%;
93
+ height: var(--form-ele-small3x);
94
+ font-size: var(--font-size-s);
95
+ line-height: var(--font-size-s);
96
+ &-on, &-off {
97
+ // display: none;
98
+ // width: 25px;
99
+ width: calc(100% - var(--form-ele-2small1x));
100
+ position: absolute;
101
+ right: 2px;
102
+ opacity: 0;
103
+ transition: opacity var(--timing-quick);
104
+ text-align: center;
105
+ display: inline-block;
106
+ &.show {
107
+ // display: block;
108
+ opacity: 1;
109
+ }
110
+ }
111
+ &-on {
112
+ color: white;
113
+ right: unset;
114
+ left: 2px;
115
+ }
116
+ }
117
+ &--disabled {
118
+ background: var(--form-ele-disabled-color);
119
+ cursor: not-allowed;
120
+ &.switch__wrapper--on {
121
+ background: var(--form-ele-color-light);
122
+ }
123
+ }
124
+ }
125
+
126
+ .input-wrapper {
127
+ &--switch {
128
+ label {
129
+ // padding: var(--spacing-3xs) var(--spacing) var(--spacing-3xs) var(--spacing-xl);
130
+ padding: var(--spacing-3xs) var(--spacing-xs);
131
+ }
132
+ }
133
+ }
134
+
135
+ .switch-old {
136
+ display: block;
137
+ box-sizing: border-box;
138
+ border: none;
139
+ background: none;
140
+ padding: 0;
141
+ position: relative;
142
+ min-height: 20px;
143
+ }
144
+
145
+ .switch-old:focus,
146
+ .switch-old:hover {
147
+ outline: none;
148
+ }
149
+
150
+ .switch-old:focus::before,
151
+ .switch-old:hover::before {
152
+ box-shadow: 0 0 0.5em color-swatches.$warm-gray-02;
153
+ }
154
+
155
+ .switch-old::before,
156
+ .switch-old::after {
157
+ content: "";
158
+ position: absolute;
159
+ height: 16px;
160
+ transition: all 0.25s ease;
161
+ }
162
+
163
+ .switch-old::before {
164
+ left: 0;
165
+ top: 0.2em;
166
+ width: 32px;
167
+ border: 1px solid color-swatches.$warm-gray-08;
168
+ background: color-swatches.$warm-gray-08;
169
+ border-radius: 16px;
170
+ }
171
+
172
+ .switch-old::after {
173
+ left: 1px;
174
+ top: 4px;
175
+ background-color: #fff;
176
+ border-radius: 50%;
177
+ width: 14px;
178
+ height: 14px;
179
+ border: 1px solid color-swatches.$warm-gray-08;
180
+ }
181
+
182
+ .switch-old::after {
183
+ left: 16px;
184
+ border-color: color-swatches.$aspen-green-08;
185
+ color: color-swatches.$aspen-green-08;
186
+ }
187
+
188
+ .switch-old::before {
189
+ background-color: color-swatches.$aspen-green-08;
190
+ border-color: color-swatches.$aspen-green-08;
191
+ }
@@ -0,0 +1,15 @@
1
+ @use "../../../2-tools/tools-index";
2
+
3
+ input[type="text"] {
4
+ color: var(--gray-color);
5
+ min-height: var(--form-ele-medium);
6
+ border-radius: var(--radius-small);
7
+ box-sizing: border-box;
8
+ border: 1px solid var(--gray-color);
9
+ width: 100%;
10
+ padding: 0 var(--spacing-xs);
11
+ box-sizing: border-box;
12
+
13
+ @include tools-index.form-ele-hover-medium;
14
+ @include tools-index.form-ele-focus;
15
+ }
@@ -0,0 +1,69 @@
1
+ @use "../../../1-settings/class-vars";
2
+ @use "../../../1-settings/color-swatches";
3
+
4
+ #{class-vars.$base-class} {
5
+ .menu-bar {
6
+ background-color: var(--gray-light-color);
7
+
8
+ ul {
9
+ list-style-type: none;
10
+ display: flex;
11
+ margin: 0 var(--spacing-xs) 0 var(--spacing-xs);
12
+ padding: 0;
13
+ li {
14
+
15
+ &.menu-item__search {
16
+ margin-left: auto;
17
+ }
18
+
19
+ a {
20
+ display: flex;
21
+ align-items: center;
22
+ text-decoration: none;
23
+ color: var(--gray-color);
24
+ padding: var(--spacing-3xs) var(--spacing);
25
+ margin: var(--spacing-xs) 0;
26
+ border-radius: 999px;
27
+ transition: all var(--timing-quick) ease-in-out;
28
+ position: relative;
29
+ box-sizing: border-box;
30
+ font-size: var(--font-size);
31
+ font-weight: var(--font-weight-semi-bold);
32
+
33
+ &::after {
34
+ content: "";
35
+ width: 100%;
36
+ height: var(--spacing-2xs);
37
+ background: transparent;
38
+ display: block;
39
+ position: absolute;
40
+ top: -9px;
41
+ left: 0;
42
+ border-bottom-left-radius: var(--spacing-2xs);
43
+ border-bottom-right-radius: var(--spacing-2xs);
44
+ }
45
+
46
+ .icon-chevron-down {
47
+ font-size: 1rem;
48
+ margin-right: -2px;
49
+ }
50
+
51
+ &:hover {
52
+ color: black;
53
+ box-shadow: inset 0 0 0 1000px var(--hover-gray-color);
54
+ }
55
+ &.menu-item--selected {
56
+ &::after {
57
+ background: var(--primary-color);
58
+ }
59
+ }
60
+
61
+ .menu-item__search-icon {
62
+ font-size: var(--font-size-l);
63
+ line-height: 1rem;
64
+ }
65
+ }
66
+ }
67
+ }
68
+ }
69
+ }
@@ -0,0 +1,44 @@
1
+ @use "../../../1-settings/class-vars";
2
+
3
+ #{class-vars.$base-class} {
4
+ .menu-item {
5
+
6
+ &__title {
7
+ display: flex;
8
+ flex-direction: row;
9
+ align-items: center;
10
+ }
11
+ &__button-title {
12
+ border: none;
13
+ padding: 0;
14
+ background: none;
15
+ &:hover {
16
+ background: none;
17
+ color: var(--primary-color);
18
+ }
19
+ }
20
+ a {
21
+ text-decoration: none;
22
+ color: var(--gray-color);
23
+ &.menu-item--selected {
24
+ color: var(--primary-color);
25
+ }
26
+ }
27
+ &__chevron {
28
+ transform: rotate(-90deg);
29
+ svg {
30
+ width: 10px;
31
+ height: 10px;
32
+ }
33
+ &--open {
34
+ transform: rotate(0deg);
35
+ }
36
+ }
37
+ &__sub-menu {
38
+ display: none;
39
+ &--open {
40
+ display: block;
41
+ }
42
+ }
43
+ }
44
+ }
@@ -0,0 +1,83 @@
1
+ @use "../../../1-settings/class-vars";
2
+
3
+ #{class-vars.$base-class} {
4
+ .menu-side-panel {
5
+ margin: var(--spacing) 0 0 0;
6
+ font-size: var(--font-size-xs);
7
+
8
+ &:first-child {
9
+ margin: 0;
10
+ }
11
+ &__header {
12
+ font-size: var(--font-size);
13
+ }
14
+ &>ul {
15
+ margin-left: calc(0px - var(--spacing));
16
+ }
17
+ ul {
18
+ list-style-type: none;
19
+ padding: 0;
20
+
21
+ ul:first-of-type {
22
+ border-left: 1px solid #DBDBDB;
23
+ margin-left: var(--spacing)
24
+ }
25
+ }
26
+ .menu-item {
27
+ &__title {
28
+ a {
29
+ flex: 1 0 auto;
30
+ padding: var(--spacing-2xs) var(--spacing);
31
+ display: block;
32
+ border-radius: var(--radius-circle);
33
+ position: relative;
34
+ transition: all var(--timing-quick) ease-in-out;
35
+
36
+ &:hover {
37
+ box-shadow: inset 0 0 0 1000px var(--hover-gray-color);
38
+ color: var(--primary-color);
39
+ }
40
+ &.menu-item--selected {
41
+ font-weight: bold;
42
+ border-top-left-radius: 0;
43
+ border-bottom-left-radius: 0;
44
+ box-shadow: inset 0 0 0 1000px var(--hover-gray-color);
45
+ //a chiclet
46
+ &::after {
47
+ content: '';
48
+ position: absolute;
49
+ left: -3px;
50
+ top: 0;
51
+ width: 5px;
52
+ height: 100%;
53
+ background: var(--primary-color);
54
+ border-radius: var(--radius-circle);
55
+ }
56
+ }
57
+ }
58
+ }
59
+
60
+ button {
61
+ min-height: unset;
62
+ min-width: unset;
63
+ }
64
+ &__button-title {
65
+ flex: 1 0 auto;
66
+ justify-content: flex-start;
67
+ font-size: var(--font-size-xs);
68
+ padding: var(--spacing-2xs) var(--spacing);
69
+ line-height: 1.7;
70
+
71
+ &:hover {
72
+ box-shadow: inset 0 0 0 1000px var(--hover-gray-color);
73
+ }
74
+ }
75
+ &__chevron {
76
+ padding: var(--spacing-xs);
77
+ svg {
78
+ transition: transform var(--timing-quick) ease;
79
+ }
80
+ }
81
+ }
82
+ }
83
+ }
@@ -0,0 +1,52 @@
1
+ table {
2
+ border-collapse: collapse;
3
+ thead {
4
+ border-bottom: 1px solid var(--gray-color);
5
+ tr {
6
+ th {
7
+ text-align: center;
8
+ font-weight: bold;
9
+ padding: var(--spacing-s);
10
+ &.text-left {
11
+ text-align: left;
12
+ }
13
+ &.text-right {
14
+ text-align: right;
15
+ }
16
+ }
17
+ }
18
+ }
19
+ tbody {
20
+ tr {
21
+ td {
22
+ vertical-align: top;
23
+ padding: var(--spacing-s);
24
+ }
25
+ }
26
+ }
27
+ &.table {
28
+ &--alt {
29
+ tbody {
30
+ tr:nth-child(2n) {
31
+ td {
32
+ background-color: #F5F5F5;
33
+ }
34
+ }
35
+ }
36
+ }
37
+ &--lines-x {
38
+ tbody {
39
+ tr {
40
+ td {
41
+ border-bottom: 1px solid var(--gray-medium-light-color)
42
+ }
43
+ }
44
+ tr:last-child {
45
+ td {
46
+ border-bottom: 1px solid var(--gray-color)
47
+ }
48
+ }
49
+ }
50
+ }
51
+ };
52
+ }
@@ -0,0 +1,50 @@
1
+ .documentation-template {
2
+ display: flex;
3
+ flex-direction: row;
4
+ width: 100%;
5
+ max-width: var(--content-width-wide);
6
+ justify-content: space-around;
7
+ align-items: flex-start;
8
+
9
+ &__wrapper {
10
+ display: flex;
11
+ justify-content: center;
12
+ }
13
+
14
+ &__side-panel-left {
15
+ border-right: 1px solid var(--gray-border);
16
+ padding: var(--documentation-padding);
17
+ width: var(--documentation-left-width);
18
+ }
19
+ &__content {
20
+ flex: 1 1 auto;
21
+ max-width: var(--documentation-width);
22
+ padding: var(--documentation-padding);
23
+
24
+ h1 {
25
+ margin: calc(-1 * var(--spacing-xs)) 0 0 0;
26
+ }
27
+ code {
28
+ svg {
29
+ height: 10px;
30
+ }
31
+ }
32
+ table {
33
+ .props-code-wrapper {
34
+ display: flex;
35
+ flex-direction: row;
36
+ gap: var(--spacing-xs);
37
+ flex-wrap: wrap;
38
+ }
39
+ }
40
+ }
41
+ &__side-panel-right{
42
+ position: sticky;
43
+ top: 0;
44
+ border-left: 1px solid var(--gray-border);
45
+ padding: var(--documentation-padding);
46
+ width: var(--documentation-right-width);
47
+ }
48
+
49
+
50
+ }
@@ -0,0 +1,8 @@
1
+ .landing-page-template {
2
+ display: flex;
3
+ justify-content: center;
4
+
5
+ .content-width {
6
+ max-width: var(--content-width-narrow);
7
+ }
8
+ }
@@ -0,0 +1,33 @@
1
+ @use "../../../1-settings/class-vars";
2
+
3
+ #{class-vars.$base-class} {
4
+ .on-this-page {
5
+ font-size: var(--font-size-xs);
6
+ &__header {
7
+ font-size: var(--font-size);
8
+ font-weight: bold;
9
+ }
10
+ &__list {
11
+ list-style-type: none;
12
+ padding: 0;
13
+ margin-left: calc(0px - var(--spacing));
14
+
15
+ ul {
16
+ margin-left: var(--spacing);
17
+ }
18
+ a {
19
+ text-decoration: none;
20
+ color: var(--gray-color);
21
+ padding: var(--spacing-2xs) var(--spacing);
22
+ display: block;
23
+ margin-right: calc(0px - var(--spacing));
24
+ border-radius: var(--radius-circle);
25
+ transition: all var(--timing-quick) ease-in-out;
26
+ &:hover {
27
+ box-shadow: inset 0 0 0 1000px var(--hover-gray-color);
28
+ color: var(--primary-color);
29
+ }
30
+ }
31
+ }
32
+ }
33
+ }
@@ -0,0 +1,38 @@
1
+ @use "../../../1-settings/color-swatches";
2
+ .spinner {
3
+ display: flex;
4
+ align-items: center;
5
+ justify-content: center;
6
+ overflow: visible;
7
+ vertical-align: middle;
8
+ svg {
9
+ display: block;
10
+ path {
11
+ fill: none;
12
+ }
13
+ }
14
+ &__animation {
15
+ animation: spinner-animation .5s linear infinite;
16
+
17
+ }
18
+ &__track {
19
+ stroke: color-swatches.$neutral-gray-12;
20
+ }
21
+ &__value {
22
+ stroke: var(--form-ele-color);
23
+ stroke-linecap: round;
24
+ transform-origin: center;
25
+ transition: stroke-dashoffset .2s cubic-bezier(.4,1,.75,.9);
26
+ }
27
+ }
28
+
29
+ @keyframes spinner-animation {
30
+
31
+ 0% {
32
+ transform: rotate(0deg);
33
+ }
34
+
35
+ 100% {
36
+ transform: rotate(1turn);
37
+ }
38
+ }
@@ -0,0 +1,22 @@
1
+ /*
2
+ ############ _popup.scss ############
3
+ */
4
+
5
+ .popup {
6
+ position: fixed;
7
+ top: 25%;
8
+ left: 2%;
9
+ background-color: white;
10
+ border-radius: 10px;
11
+ box-shadow: 10px 10px 20px rgba($color: #000000, $alpha: 0.4);
12
+ z-index: 1000;
13
+
14
+ &__title-bar {
15
+ display: flex;
16
+ justify-content: space-between;
17
+ align-items: center;
18
+ }
19
+ &__title {
20
+ padding: var(--spacing);
21
+ }
22
+ }
@@ -0,0 +1,41 @@
1
+ @use "../../1-settings/class-vars";
2
+
3
+ /*
4
+ ############ _popup.scss ############
5
+ */
6
+ #{class-vars.$base-class} {
7
+ .color-family {
8
+ display: flex;
9
+ margin: 0 0 var(--spacing-2xs) 0;
10
+
11
+ &__title {
12
+ margin: 0 var(--spacing-s) 0 0;
13
+ padding: 0 var(--spacing-s);
14
+ color: white;
15
+ border-radius: 999px;
16
+ min-height: unset;
17
+ border: none;
18
+ &#{class-vars.$color-is-light} {
19
+ color: var(--gray-color);
20
+ }
21
+ }
22
+ &__swatches {
23
+ list-style-type: none;
24
+ margin: 0 0 0 auto;
25
+ padding: 0;
26
+ display: flex;
27
+ gap: 2px;
28
+ li {
29
+ padding: 0;
30
+ }
31
+ }
32
+ &__swatch {
33
+ width: 20px;
34
+ height: 20px;
35
+ border: none;
36
+ border-radius: 0;
37
+ min-height: auto;
38
+ padding: 0;
39
+ }
40
+ }
41
+ }
@@ -0,0 +1,41 @@
1
+ @keyframes fade-in {
2
+ 0% {
3
+ opacity: 0;
4
+ }
5
+ 100% {
6
+ opacity: 1;
7
+ }
8
+ }
9
+
10
+ @keyframes drop-in {
11
+ 0% {
12
+ opacity: 0;
13
+ transform: translate(-50%, -100px);
14
+ }
15
+ 100% {
16
+ opacity: 1;
17
+ transform: translate(-50%, 0);
18
+ }
19
+ }
20
+
21
+ @keyframes pop-in {
22
+ 0% {
23
+ opacity: 0;
24
+ transform: scale(0.7);
25
+ }
26
+ 100% {
27
+ opacity: 1;
28
+ transform: scale(1);
29
+ }
30
+ }
31
+
32
+ @keyframes pop-in-center {
33
+ 0% {
34
+ opacity: 0;
35
+ transform: scale(0.7) translateX(-50%);
36
+ }
37
+ 100% {
38
+ opacity: 1;
39
+ transform: scale(1) translateX(-50%);
40
+ }
41
+ }