renusify 2.5.2 → 3.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 (212) hide show
  1. package/components/app/index.vue +74 -22
  2. package/components/app/toast/index.vue +76 -71
  3. package/components/app/toast/toast.vue +62 -44
  4. package/components/avatar/index.vue +208 -84
  5. package/components/button/buttonConfirm.vue +53 -26
  6. package/components/button/buttonGroup.js +0 -2
  7. package/components/button/buttonGroup.vue +310 -62
  8. package/components/button/index.vue +584 -100
  9. package/components/calendar/index.js +0 -2
  10. package/components/calendar/index.vue +326 -262
  11. package/components/calendar/month.vue +64 -55
  12. package/components/calendar/year.vue +30 -25
  13. package/components/card/index.vue +139 -59
  14. package/components/codeEditor/highlightCss.vue +38 -39
  15. package/components/codeEditor/highlightHtml.vue +64 -64
  16. package/components/codeEditor/highlightJs.vue +37 -38
  17. package/components/codeEditor/index.vue +129 -79
  18. package/components/codeEditor/run.vue +225 -39
  19. package/components/codeEditor/useCodeFormatter.js +150 -0
  20. package/components/confirm/index.vue +139 -80
  21. package/components/container/col.vue +5 -4
  22. package/components/container/divider.vue +28 -19
  23. package/components/container/index.vue +34 -15
  24. package/components/container/row.vue +26 -9
  25. package/components/container/spacer.vue +2 -4
  26. package/components/container/style.scss +3 -0
  27. package/components/content/index.vue +49 -32
  28. package/components/cropper/index.vue +401 -244
  29. package/components/float/index.vue +542 -415
  30. package/components/form/addressInput/index.vue +184 -109
  31. package/components/form/camInput/index.vue +370 -244
  32. package/components/form/checkInput/index.vue +138 -71
  33. package/components/form/checkboxInput/index.vue +87 -47
  34. package/components/form/colorInput/Alpha.vue +81 -83
  35. package/components/form/colorInput/Hue.vue +91 -68
  36. package/components/form/colorInput/Preview.vue +43 -47
  37. package/components/form/colorInput/Saturation.vue +101 -86
  38. package/components/form/colorInput/index.vue +71 -39
  39. package/components/form/colorInput/picker.vue +111 -106
  40. package/components/form/colorInput/useColor.js +153 -0
  41. package/components/form/dateInput/index.vue +691 -356
  42. package/components/form/dateInput/month.vue +63 -54
  43. package/components/form/dateInput/year.vue +35 -25
  44. package/components/form/fileInput/index.js +0 -1
  45. package/components/form/fileInput/index.vue +263 -106
  46. package/components/form/fileInput/single.vue +323 -164
  47. package/components/form/groupInput/index.vue +199 -101
  48. package/components/form/index.vue +189 -83
  49. package/components/form/input/index.vue +416 -377
  50. package/components/form/jsonInput/JsonView.vue +54 -56
  51. package/components/form/jsonInput/index.vue +247 -165
  52. package/components/form/maskInput/index.vue +252 -132
  53. package/components/form/numberInput/index.js +0 -1
  54. package/components/form/numberInput/index.vue +226 -117
  55. package/components/form/passwordInput/index.js +2 -1
  56. package/components/form/passwordInput/index.vue +269 -102
  57. package/components/form/radioInput/index.vue +143 -72
  58. package/components/form/rangeInput/index.vue +280 -167
  59. package/components/form/ratingInput/index.vue +57 -57
  60. package/components/form/selectInput/index.js +1 -3
  61. package/components/form/selectInput/index.vue +584 -296
  62. package/components/form/switchInput/index.vue +73 -59
  63. package/components/form/telInput/index.js +0 -1
  64. package/components/form/telInput/index.vue +238 -135
  65. package/components/form/textArea/index.vue +72 -35
  66. package/components/form/textEditor/index.vue +739 -0
  67. package/components/form/{text-editor → textEditor}/style.scss +8 -16
  68. package/components/form/textInput/index.vue +54 -32
  69. package/components/form/timeInput/index.vue +82 -55
  70. package/components/form/timeInput/range.vue +115 -94
  71. package/components/form/timeInput/timepicker.vue +382 -449
  72. package/components/form/uniqueInput/index.vue +105 -48
  73. package/components/form/unitInput/index.vue +139 -84
  74. package/components/formCreator/index.js +0 -1
  75. package/components/formCreator/index.vue +314 -148
  76. package/components/highlight/index.vue +41 -25
  77. package/components/highlight/style.scss +2 -2
  78. package/components/highlight/{mixin.js → useHighlight.js} +181 -160
  79. package/components/icon/index.vue +79 -33
  80. package/components/img/index.vue +249 -147
  81. package/components/img/preview.vue +180 -198
  82. package/components/img/svgImg.vue +42 -39
  83. package/components/index.js +5 -20
  84. package/components/infinite/index.js +1 -2
  85. package/components/infinite/index.vue +248 -66
  86. package/components/map/index.vue +428 -261
  87. package/components/map/route.vue +794 -487
  88. package/components/map/select.vue +118 -58
  89. package/components/menu/index.vue +201 -91
  90. package/components/meta/meta.js +26 -3
  91. package/components/modal/index.vue +382 -156
  92. package/components/notify/index.vue +204 -86
  93. package/components/notify/notification.vue +38 -55
  94. package/components/progress/circle.vue +189 -70
  95. package/components/progress/line.vue +266 -46
  96. package/components/searchBox/index.js +1 -3
  97. package/components/searchBox/index.vue +194 -101
  98. package/components/skeleton/index.vue +45 -20
  99. package/components/slider/index.vue +318 -156
  100. package/components/swiper/index.vue +254 -106
  101. package/components/table/crud/footer.vue +77 -53
  102. package/components/table/crud/header.vue +71 -72
  103. package/components/table/crud/index.vue +629 -399
  104. package/components/table/index.vue +721 -278
  105. package/components/timeAgo/index.vue +145 -96
  106. package/components/tour/index.vue +338 -235
  107. package/components/tree/index.vue +235 -89
  108. package/components/tree/tree-element.vue +106 -106
  109. package/directive/animate/index.js +77 -0
  110. package/directive/clickOutSide/index.js +98 -0
  111. package/directive/drag/index.js +153 -0
  112. package/directive/index.js +11 -13
  113. package/directive/intersect/index.js +263 -0
  114. package/directive/mask/index.js +67 -0
  115. package/directive/parallax/index.js +78 -0
  116. package/directive/ripple/index.js +14 -0
  117. package/directive/scroll/index.js +244 -0
  118. package/directive/sortable/index.js +274 -0
  119. package/directive/title/index.js +75 -0
  120. package/directive/touch/index.js +268 -0
  121. package/index.js +10 -8
  122. package/package.json +5 -2
  123. package/plugins/validation/Validate.js +88 -79
  124. package/scripts/generate-docs.mjs +226 -0
  125. package/scripts/menu.mjs +240 -0
  126. package/scripts/parser.mjs +1086 -0
  127. package/style/_index.scss +7 -0
  128. package/style/app.scss +13 -65
  129. package/style/colors.scss +5 -22
  130. package/style/functions/index.scss +8 -0
  131. package/style/mixins/index.scss +17 -5
  132. package/style/variables/base.scss +154 -175
  133. package/style/variables/color.scss +0 -12
  134. package/style/variables/utilities.scss +0 -180
  135. package/tools/helper.js +0 -8
  136. package/tools/icons.js +6 -1
  137. package/tools/root.js +71 -0
  138. package/components/app/style.scss +0 -41
  139. package/components/app/toast/style.scss +0 -20
  140. package/components/avatar/style.scss +0 -32
  141. package/components/bar/bottomNav.js +0 -1
  142. package/components/bar/bottomNav.vue +0 -28
  143. package/components/bar/bottomNavigationCircle.js +0 -2
  144. package/components/bar/bottomNavigationCircle.vue +0 -99
  145. package/components/bar/scss/bottomNav.scss +0 -67
  146. package/components/bar/scss/toolbar.scss +0 -174
  147. package/components/bar/toolbar/index.js +0 -8
  148. package/components/bar/toolbar/index.vue +0 -35
  149. package/components/bar/toolbar/laptop.vue +0 -33
  150. package/components/bar/toolbar/menuChilds.vue +0 -41
  151. package/components/bar/toolbar/menuLaptop.vue +0 -41
  152. package/components/bar/toolbar/menuMob.vue +0 -39
  153. package/components/bar/toolbar/mixin.js +0 -43
  154. package/components/bar/toolbar/mobile.vue +0 -34
  155. package/components/breadcrumb/bredcrumbItem.vue +0 -39
  156. package/components/breadcrumb/index.js +0 -3
  157. package/components/breadcrumb/index.vue +0 -71
  158. package/components/breadcrumb/style.scss +0 -51
  159. package/components/button/style.scss +0 -411
  160. package/components/card/style.scss +0 -86
  161. package/components/chart/chart.js +0 -1
  162. package/components/chart/chart.vue +0 -69
  163. package/components/chart/worldMap.js +0 -2
  164. package/components/chart/worldMap.vue +0 -1112
  165. package/components/chat/MessageList.vue +0 -163
  166. package/components/chat/chatInput.vue +0 -150
  167. package/components/chat/chatMsg.vue +0 -276
  168. package/components/chat/index.js +0 -11
  169. package/components/chat/index.vue +0 -113
  170. package/components/chip/index.js +0 -3
  171. package/components/chip/index.vue +0 -77
  172. package/components/chip/style.scss +0 -199
  173. package/components/codeEditor/mixin.js +0 -145
  174. package/components/countdown/index.js +0 -1
  175. package/components/countdown/index.vue +0 -105
  176. package/components/form/colorInput/mixin.js +0 -132
  177. package/components/form/fileInput/file.js +0 -148
  178. package/components/form/telInput/assets/flags.png +0 -0
  179. package/components/form/telInput/assets/flags@2x.png +0 -0
  180. package/components/form/text-editor/index.vue +0 -705
  181. package/components/icon/style.scss +0 -17
  182. package/components/infinite/div.js +0 -6
  183. package/components/infinite/div.vue +0 -193
  184. package/components/infinite/page.js +0 -3
  185. package/components/infinite/page.vue +0 -105
  186. package/components/list/index.js +0 -3
  187. package/components/list/index.vue +0 -122
  188. package/components/list/style.scss +0 -66
  189. package/components/message/index.js +0 -4
  190. package/components/message/index.vue +0 -40
  191. package/components/modal/style.scss +0 -146
  192. package/components/nestable/NestableItem.vue +0 -307
  193. package/components/nestable/editable.js +0 -44
  194. package/components/nestable/index.js +0 -1
  195. package/components/nestable/index.vue +0 -226
  196. package/components/nestable/methods.js +0 -416
  197. package/components/progress/style.scss +0 -229
  198. package/components/table/style.scss +0 -338
  199. package/components/tabs/index.js +0 -3
  200. package/components/tabs/index.vue +0 -151
  201. package/components/timeline/index.js +0 -6
  202. package/components/timeline/index.vue +0 -76
  203. package/directive/resize/index.js +0 -30
  204. package/directive/skeleton/index.js +0 -27
  205. package/directive/skeleton/style.scss +0 -37
  206. package/plugins/request/Request.js +0 -68
  207. package/style/animation.scss +0 -94
  208. package/style/style.scss +0 -8
  209. package/tools/rootable.js +0 -75
  210. /package/components/form/{text-editor → textEditor}/index.js +0 -0
  211. /package/components/form/{text-editor → textEditor}/preview.js +0 -0
  212. /package/components/form/{text-editor → textEditor}/preview.vue +0 -0
@@ -0,0 +1,7 @@
1
+ @forward 'variables/base.scss';
2
+ @forward 'variables/color.scss';
3
+ @forward 'variables/utilities.scss';
4
+ @forward 'mixins/index.scss';
5
+ @forward 'mixins/utilities.scss';
6
+ @forward 'mixins/container.scss';
7
+ @forward 'functions/index.scss';
package/style/app.scss CHANGED
@@ -9,23 +9,15 @@
9
9
 
10
10
 
11
11
  html {
12
- font-size: base.$font-size-root;
13
- @include container.media-breakpoint-down('md') {
14
- font-size: base.$font-size-root-mobile;
15
- }
16
-
17
- & {
18
- text-rendering: optimizeLegibility;
19
- -webkit-font-smoothing: antialiased;
20
- -moz-osx-font-smoothing: grayscale;
21
- -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
22
- box-sizing: border-box;
23
- overflow-y: scroll;
24
- overflow-x: hidden;
25
- -webkit-text-size-adjust: 100%;
26
- scroll-behavior: smooth;
27
- }
28
- ;
12
+ text-rendering: optimizeLegibility;
13
+ -webkit-font-smoothing: antialiased;
14
+ -moz-osx-font-smoothing: grayscale;
15
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
16
+ box-sizing: border-box;
17
+ overflow-y: scroll;
18
+ overflow-x: hidden;
19
+ -webkit-text-size-adjust: 100%;
20
+ scroll-behavior: smooth;
29
21
  }
30
22
 
31
23
  body {
@@ -106,19 +98,6 @@ $color-text: var(--color-on-one);
106
98
  }
107
99
  }
108
100
 
109
- //display
110
- .#{base.$prefix}app {
111
- @each $size, $media_query in base.$display-breakpoints {
112
- .hidden {
113
- &-#{$size} {
114
- @media #{$media_query}{
115
- display: none !important
116
- }
117
- }
118
- }
119
- }
120
- }
121
-
122
101
  //text
123
102
  .#{base.$prefix}app {
124
103
  @each $name, $weight in base.$font-weights {
@@ -136,7 +115,7 @@ $color-text: var(--color-on-one);
136
115
 
137
116
  //typography
138
117
  .#{base.$prefix}app {
139
- @include mixins.typography(base.$headings, 'body-2');
118
+ @include mixins.typography(base.$headings, 'body-1');
140
119
 
141
120
  .display-1 {
142
121
  @include mixins.typography(base.$headings, 'display-1')
@@ -205,29 +184,6 @@ $color-text: var(--color-on-one);
205
184
 
206
185
  }
207
186
 
208
- //width
209
- .#{base.$prefix}app {
210
- @each $name, $value in base.$widths {
211
- .w-#{$name} {
212
- width: $value !important
213
- }
214
- }
215
- @each $name, $value in base.$heights {
216
- .h-#{$name} {
217
- height: $value !important
218
- }
219
- }
220
- }
221
-
222
- //transition
223
- .#{base.$prefix}app {
224
- @each $name, $bezier in base.$transition {
225
- .timing-#{$name} {
226
- transition-timing-function: $bezier !important
227
- }
228
- }
229
- }
230
-
231
187
  //z-index
232
188
  .#{base.$prefix}app {
233
189
  @each $name, $value in base.$z-index {
@@ -237,18 +193,10 @@ $color-text: var(--color-on-one);
237
193
  }
238
194
  }
239
195
 
240
- // Utilities
241
- @each $breakpoint in map.keys(base.$grid-breakpoints) {
242
- @include container.media-breakpoint-up($breakpoint) {
243
- $infix: functions.breakpoint-min-name($breakpoint, base.$grid-breakpoints);
244
- @each $key, $utility in utilities.$utilities {
245
- @if meta.type-of($utility) == "map" and (map.get($utility, responsive) or $infix == "") {
246
- @include utilities2.build-utility($utility, $infix)
247
- }
248
- }
196
+ @each $key, $utility in utilities.$utilities {
197
+ @if meta.type-of($utility) == "map" {
198
+ @include utilities2.build-utility($utility, "")
249
199
  }
250
-
251
-
252
200
  }
253
201
 
254
202
  // Print utilities
package/style/colors.scss CHANGED
@@ -41,6 +41,7 @@ $colorsList: (
41
41
  "sheet-dark": #D9D9E0,
42
42
  "sheet-light": #F9F9FF,
43
43
  "on-sheet": #191C20,
44
+ "on-sheet-2": #343a42,
44
45
  "sheet-low": #E0E2EC,
45
46
  "on-sheet-low": #44474E,
46
47
  "sheet-container-lowest": #FFFFFF,
@@ -84,16 +85,6 @@ $colorsList: (
84
85
  }
85
86
  }
86
87
 
87
- @each $color_name, $color_value in color.$grey {
88
- .#{base.$prefix}app .color-grey-#{$color_name} {
89
- @include mixins.background-color($color_value, true);
90
- }
91
-
92
- .#{base.$prefix}app .color-grey-#{$color_name}-text {
93
- @include mixins.text-color($color_value, true);
94
- }
95
- }
96
-
97
88
  @each $color_name, $color_value in color.$colorMain {
98
89
  .color-#{$color_name} {
99
90
  @include mixins.background-color(var(--color-#{$color_name}), true);
@@ -104,20 +95,12 @@ $colorsList: (
104
95
  }
105
96
  }
106
97
 
107
- .shadow-info {
108
- --box-shadow: rgba(10, 150, 250, 0.2)
109
- }
110
-
111
- .shadow-success {
112
- --box-shadow: rgba(50, 250, 10, 0.2)
113
- }
114
-
115
- .shadow-error {
116
- --box-shadow: rgba(255, 10, 30, 0.2)
98
+ .color-text-primary {
99
+ color: var(--color-on-sheet);
117
100
  }
118
101
 
119
- .shadow-warning {
120
- --box-shadow: rgba(250, 150, 10, 0.2)
102
+ .color-text-secondary {
103
+ color: var(--color-on-sheet-2);
121
104
  }
122
105
 
123
106
 
@@ -1,6 +1,7 @@
1
1
  @use "../variables/base";
2
2
 
3
3
  @use "sass:map";
4
+ @use "sass:math";
4
5
 
5
6
 
6
7
  @function breakpoint-min-width($name, $breakpoints: base.$grid-breakpoints) {
@@ -17,4 +18,11 @@
17
18
  $map: map.get($map, $key);
18
19
  }
19
20
  @return $map
21
+ }
22
+
23
+ @function fluid-font-size($min-size, $max-size, $min-vw: base.$min-viewport-width, $max-vw: base.$max-viewport-width) {
24
+ $slope: math.div($max-size - $min-size, $max-vw - $min-vw);
25
+ $slope-vw: $slope * 100;
26
+ $intercept: $min-size - $slope * $min-vw;
27
+ @return clamp(#{$min-size}, #{$intercept} + #{$slope-vw}vw, #{$max-size});
20
28
  }
@@ -27,11 +27,23 @@
27
27
  caret-color: $color_value if($important, !important, null);
28
28
  }
29
29
 
30
- @mixin typography($headings,$key) {
31
- font-size: functions.map-metro-get($headings, $key, 'size');
32
- font-weight: functions.map-metro-get($headings, $key, 'weight');
33
- line-height: functions.map-metro-get($headings, $key, 'line-height');
34
- letter-spacing: functions.map-metro-get($headings, $key, 'letter-spacing');
30
+
31
+ @mixin typography($styles-map, $key) {
32
+ $style: map.get($styles-map, $key);
33
+
34
+ font-weight: map.get($style, 'weight');
35
+ line-height: map.get($style, 'line-height');
36
+ letter-spacing: map.get($style, 'letter-spacing');
37
+ text-transform: map.get($style, 'text-transform');
38
+
39
+ @if map.get($style, 'fluid') {
40
+ font-size: functions.fluid-font-size(
41
+ map.get($style, 'min-size'),
42
+ map.get($style, 'max-size')
43
+ );
44
+ } @else {
45
+ font-size: map.get($style, 'size');
46
+ }
35
47
  }
36
48
 
37
49
  @mixin elevation($name, $important: false) {
@@ -1,20 +1,14 @@
1
1
  @use "sass:map";
2
2
  @use "sass:math";
3
+
3
4
  $prefix: 'r-' !default;
4
- $body-font-family: IRANSans, 'Roboto', sans-serif !default;
5
- $font-size-root: 16px !default;
6
- $font-size-root-mobile: 13px !default;
5
+ $body-font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif !default;
7
6
  $line-height-root: 1.5rem !default;
8
7
 
9
8
  $spacer: 4px !default;
10
9
  $spacers: ();
11
10
  @for $i from 0 through 24 {
12
- $spacers: map.merge($spacers, ($i: $spacer * $i))
13
- }
14
-
15
- $negative-spacers: ();
16
- @for $i from 1 through 24 {
17
- $negative-spacers: map.merge($negative-spacers, ("n" + $i: -$spacer * $i))
11
+ $spacers: map.merge($spacers, ($i: $spacer * $i))
18
12
  }
19
13
 
20
14
  $borders: (
@@ -30,59 +24,14 @@ $borders: (
30
24
 
31
25
  $cursor: ('pointer', 'auto', 'grab', 'grabbing') !default;
32
26
 
33
- $widths: (
34
- 'full': 100%,
35
- '95': 95%,
36
- '90': 90%,
37
- '85': 85%,
38
- '80': 80%,
39
- '75': 75%,
40
- '70': 70%,
41
- '65': 65%,
42
- '60': 60%,
43
- '55': 55%,
44
- '50': 50%,
45
- '45': 45%,
46
- '40': 40%,
47
- '35': 35%,
48
- '30': 30%,
49
- '25': 25%,
50
- '20': 20%,
51
- '15': 15%,
52
- '10': 10%,
53
- '5': 5%
54
- ) !default;
55
- $heights: (
56
- 'full': 100%,
57
- '95': 95%,
58
- '90': 90%,
59
- '85': 85%,
60
- '80': 80%,
61
- '75': 75%,
62
- '70': 70%,
63
- '65': 65%,
64
- '60': 60%,
65
- '55': 55%,
66
- '50': 50%,
67
- '45': 45%,
68
- '40': 40%,
69
- '35': 35%,
70
- '30': 30%,
71
- '25': 25%,
72
- '20': 20%,
73
- '15': 15%,
74
- '10': 10%,
75
- '5': 5%
76
- ) !default;
77
-
78
27
  $grid-breakpoints: (
79
28
  'xs': 0,
80
- 'sm': 600px,
81
- 'md': 960px,
82
- 'lg': 1280px,
83
- 'xl': 1620px
29
+ 'sm': 36rem, // Small devices (landscape phones, 576px)
30
+ 'md': 48rem, // Medium devices (tablets, 768px)
31
+ 'lg': 64rem, // Large devices (desktops, 1024px)
84
32
  ) !default;
85
33
 
34
+ $base-font-size: 1rem;
86
35
  $grid-gutter: $spacer * 6 !default;
87
36
  $form-grid-gutter: $spacer * 2 !default;
88
37
  $grid-columns: 12 !default;
@@ -93,8 +42,7 @@ $grid-gutters: (
93
42
  'xs': math.div($grid-gutter, 12),
94
43
  'sm': math.div($grid-gutter, 6),
95
44
  'md': math.div($grid-gutter, 3),
96
- 'lg': math.div($grid-gutter * 2, 3),
97
- 'xl': $grid-gutter
45
+ 'lg':$grid-gutter
98
46
  ) !default;
99
47
 
100
48
  $box-shadows: (
@@ -104,146 +52,194 @@ $box-shadows: (
104
52
  'md': var(--box-shadow, rgb(0 0 0 / 0.1)) 0 .25rem .5rem,
105
53
  'lg': var(--box-shadow, rgb(0 0 0 / 0.1)) 0 .5rem 1rem,
106
54
  'xl': var(--box-shadow, rgb(0 0 0 / 0.1)) 0 .75rem 2rem,
107
- '2xl': var(--box-shadow, rgb(0 0 0 / 0.2)) 0 1.5rem 4rem,
55
+ 'xxl': var(--box-shadow, rgb(0 0 0 / 0.2)) 0 1.5rem 4rem,
108
56
  ) !default;
109
57
 
110
58
  $container-max-widths: (
111
- 'md': map.get($grid-breakpoints, 'md')-60,
112
- 'lg': map.get($grid-breakpoints, 'lg')-80,
113
- 'xl': map.get($grid-breakpoints, 'xl')-120
114
- ) !default;
115
-
116
- $display-breakpoints: (
117
- 'print-only': 'only print',
118
- 'screen-only': 'only screen',
119
- 'xs-only': 'only screen and (max-width: #{map.get($grid-breakpoints, 'sm') - 1})',
120
- 'sm-only': 'only screen and (min-width: #{map.get($grid-breakpoints, 'sm')}) and (max-width: #{map.get($grid-breakpoints, 'md') - 1})',
121
- 'sm-and-down': 'only screen and (max-width: #{map.get($grid-breakpoints, 'md') - 1})',
122
- 'sm-and-up': 'only screen and (min-width: #{map.get($grid-breakpoints, 'sm')})',
123
- 'md-only': 'only screen and (min-width: #{map.get($grid-breakpoints, 'md')}) and (max-width: #{map.get($grid-breakpoints, 'lg') - 1})',
124
- 'md-and-down': 'only screen and (max-width: #{map.get($grid-breakpoints, 'lg') - 1})',
125
- 'md-and-up': 'only screen and (min-width: #{map.get($grid-breakpoints, 'md')})',
126
- 'lg-only': 'only screen and (min-width: #{map.get($grid-breakpoints, 'lg')}) and (max-width: #{map.get($grid-breakpoints, 'xl') - 1})',
127
- 'lg-and-down': 'only screen and (max-width: #{map.get($grid-breakpoints, 'xl') - 1})',
128
- 'lg-and-up': 'only screen and (min-width: #{map.get($grid-breakpoints, 'lg')})',
129
- 'xl-only': 'only screen and (min-width: #{map.get($grid-breakpoints, 'xl')})'
59
+ 'md': map.get($grid-breakpoints, 'md')- 3rem,
60
+ 'lg': map.get($grid-breakpoints, 'lg')- 4rem
130
61
  ) !default;
131
62
 
132
63
  $font-weights: (
133
- 'thin': 100,
134
64
  'light': 300,
135
65
  'regular': 400,
136
66
  'medium': 500,
137
- 'bold': 700,
138
- 'black': 900
67
+ 'bold': 700
68
+ ) !default;
69
+
70
+ $typography-ratio: 1.25;
71
+ $min-viewport-width: 20rem;
72
+ $max-viewport-width: 90rem;
73
+
74
+ $line-heights: (
75
+ "tight": 1.15,
76
+ "normal": 1.5,
77
+ "relaxed": 1.6
78
+ ) !default;
79
+
80
+ $letter-spacings: (
81
+ "tight": -0.025em,
82
+ "normal": 0,
83
+ "wide": 0.025em
84
+ ) !default;
85
+
86
+ $line-heights: (
87
+ "tight": 1.15,
88
+ "normal": 1.5,
89
+ "relaxed": 1.6
90
+ ) !default;
91
+
92
+ $letter-spacings: (
93
+ "tight": -0.025em,
94
+ "normal": 0,
95
+ "wide": 0.025em
139
96
  ) !default;
140
97
 
141
98
 
142
99
  $headings: (
100
+ //display-1/2/3 Massive, attention-grabbing heroes Page title, full-width banner text
101
+ //The largest possible text. Reserved for the most important headline on a marketing site.
143
102
  'display-1': (
144
- 'size': 4.75rem,
145
- 'weight': 400,
146
- 'line-height': 6rem,
147
- 'letter-spacing': -0.02rem,
148
- 'text-transform': false
103
+ 'min-size': 2.5rem,
104
+ 'max-size': 3.75rem,
105
+ 'weight': map.get($font-weights, "light"),
106
+ 'line-height': map.get($line-heights, "tight"),
107
+ 'letter-spacing': map.get($letter-spacings, "tight"),
108
+ 'text-transform': none,
109
+ 'fluid': true
149
110
  ),
111
+ //A slightly smaller massive headline. Often used as the main title on a landing page.
150
112
  'display-2': (
151
- 'size': 3.75rem,
152
- 'weight': 400,
153
- 'line-height': 5.3rem,
154
- 'letter-spacing': 0,
155
- 'text-transform': false
113
+ 'min-size': 2rem,
114
+ 'max-size': 3rem,
115
+ 'weight': map.get($font-weights, "light"),
116
+ 'line-height': map.get($line-heights, "tight"),
117
+ 'letter-spacing': map.get($letter-spacings, "normal"),
118
+ 'text-transform': none,
119
+ 'fluid': true
156
120
  ),
121
+ //A large, but more manageable, display style. Can be used for a major section title or a premium product name.
157
122
  'display-3': (
158
- 'size': 3rem,
159
- 'weight': 400,
160
- 'line-height': 4.3rem,
161
- 'letter-spacing': 0,
162
- 'text-transform': false
123
+ 'min-size': 1.75rem,
124
+ 'max-size': 2.5rem,
125
+ 'weight': map.get($font-weights, "regular"),
126
+ 'line-height': map.get($line-heights, "tight"),
127
+ 'letter-spacing': map.get($letter-spacings, "normal"),
128
+ 'text-transform': none,
129
+ 'fluid': true
163
130
  ),
131
+ //headline-1/2/3 Major section titles H1, H2, H3 headings
132
+ //The primary title of the page. There should only be one H1 per page.
164
133
  'headline-1': (
165
- 'size': 2.66rem,
166
- 'weight': 400,
167
- 'line-height': 3.6rem,
168
- 'letter-spacing': 0,
169
- 'text-transform': false
134
+ 'min-size': 1.75rem,
135
+ 'max-size': 2.25rem,
136
+ 'weight': map.get($font-weights, "bold"),
137
+ 'line-height': map.get($line-heights, "normal"),
138
+ 'letter-spacing': map.get($letter-spacings, "normal"),
139
+ 'text-transform': none,
140
+ 'fluid': true
170
141
  ),
142
+ //Major section headings. They break the page into main topics.
171
143
  'headline-2': (
172
- 'size': 2.33rem,
173
- 'weight': 400,
174
- 'line-height': 3.2rem,
175
- 'letter-spacing': 0,
176
- 'text-transform': false
144
+ 'min-size': 1.5rem,
145
+ 'max-size': 2rem,
146
+ 'weight': map.get($font-weights, "regular"),
147
+ 'line-height': map.get($line-heights, "normal"),
148
+ 'letter-spacing': map.get($letter-spacings, "normal"),
149
+ 'text-transform': none,
150
+ 'fluid': true
177
151
  ),
152
+ //Sub-section headings. These nest under headline-2 sections.
178
153
  'headline-3': (
179
- 'size': 2rem,
180
- 'weight': 400,
181
- 'line-height': 2.66rem,
182
- 'letter-spacing': 0,
183
- 'text-transform': false
154
+ 'size': 1.5rem,
155
+ 'weight': map.get($font-weights, "regular"),
156
+ 'line-height': map.get($line-heights, "normal"),
157
+ 'letter-spacing': map.get($letter-spacings, "normal"),
158
+ 'text-transform': none,
159
+ 'fluid': false
184
160
  ),
161
+ //title-1/2/3 Smaller titles, emphasized text H4, H5, card titles, product names
162
+ //Perfect for card titles, feature names, or large data points (e.g., total price).
185
163
  'title-1': (
186
- 'size': 1.66rem,
187
- 'weight': 400,
188
- 'line-height': 2.33rem,
189
- 'letter-spacing': 0,
190
- 'text-transform': false
164
+ 'size': 1.25rem,
165
+ 'weight': map.get($font-weights, "medium"),
166
+ 'line-height': map.get($line-heights, "normal"),
167
+ 'letter-spacing': map.get($letter-spacings, "normal"),
168
+ 'text-transform': none,
169
+ 'fluid': false
191
170
  ),
171
+ //A title that is the same size as body text but uses a medium weight (500) to create emphasis. Good for interactive element labels.
192
172
  'title-2': (
193
- 'size': 1.33rem,
194
- 'weight': 500,
195
- 'line-height': 1.9rem,
196
- 'letter-spacing': 0.0125rem,
197
- 'text-transform': false
173
+ 'size': 1.125rem,
174
+ 'weight': map.get($font-weights, "medium"),
175
+ 'line-height': map.get($line-heights, "normal"),
176
+ 'letter-spacing': map.get($letter-spacings, "wide"),
177
+ 'text-transform': none,
178
+ 'fluid': false
198
179
  ),
180
+ //A small, emphasized title. Useful in dense interfaces like dashboards or tables.
199
181
  'title-3': (
200
- 'size': 1.15rem,
201
- 'weight': 500,
202
- 'line-height': 1.66rem,
203
- 'letter-spacing': 0.008rem,
204
- 'text-transform': false
182
+ 'size': 1rem,
183
+ 'weight': map.get($font-weights, "medium"),
184
+ 'line-height': map.get($line-heights, "normal"),
185
+ 'letter-spacing': map.get($letter-spacings, "wide"),
186
+ 'text-transform': none,
187
+ 'fluid': false
205
188
  ),
189
+ //THE STANDARD. Default paragraph text, product descriptions, article content—anything users read in large quantities.
206
190
  'body-1': (
207
- 'size': 1.33rem,
208
- 'weight': 400,
209
- 'line-height': 1.8rem,
210
- 'letter-spacing': 0.042rem,
211
- 'text-transform': false
191
+ 'size': $base-font-size,
192
+ 'weight': map.get($font-weights, "regular"),
193
+ 'line-height': map.get($line-heights, "relaxed"),
194
+ 'letter-spacing': map.get($letter-spacings, "normal"),
195
+ 'text-transform': none,
196
+ 'fluid': false
212
197
  ),
198
+ //Secondary, supporting text. Less important than body-1. Good for comments, minor details, or captions under images.
213
199
  'body-2': (
214
- 'size': 1.15rem,
215
- 'weight': 400,
216
- 'line-height': 1.66rem,
217
- 'letter-spacing': 0.02rem,
218
- 'text-transform': false
200
+ 'size': 0.875rem,
201
+ 'weight': map.get($font-weights, "regular"),
202
+ 'line-height': map.get($line-heights, "relaxed"),
203
+ 'letter-spacing': map.get($letter-spacings, "normal"),
204
+ 'text-transform': none,
205
+ 'fluid': false
219
206
  ),
207
+ //The absolute smallest text should be used for legal disclaimers, copyright info, or dense, non-essential data.
220
208
  'body-3': (
221
- 'size': 1rem,
222
- 'weight': 400,
223
- 'line-height': 1.33rem,
224
- 'letter-spacing': 0.033rem,
225
- 'text-transform': false
209
+ 'size': 0.8125rem,
210
+ 'weight': map.get($font-weights, "medium"),
211
+ 'line-height': map.get($line-heights, "relaxed"),
212
+ 'letter-spacing': map.get($letter-spacings, "wide"),
213
+ 'text-transform': none,
214
+ 'fluid': false
226
215
  ),
216
+ //label-1/2/3 UI controls, tags, buttons Form labels, buttons, badges, chips
217
+ //Labels for form fields, buttons, or navigation items. The most common label size.
227
218
  'label-1': (
228
- 'size': 1.15rem,
229
- 'weight': 500,
230
- 'line-height': 1.5rem,
231
- 'letter-spacing': 0.008rem,
232
- 'text-transform': uppercase
219
+ 'size': 0.875rem,
220
+ 'weight': map.get($font-weights, "medium"),
221
+ 'line-height': map.get($line-heights, "normal"),
222
+ 'letter-spacing': map.get($letter-spacings, "wide"),
223
+ 'text-transform': uppercase,
224
+ 'fluid': false
233
225
  ),
226
+ //Smaller labels for tags, badges, or status indicators (e.g., "NEW", "SOLD OUT").
234
227
  'label-2': (
235
- 'size':1rem,
236
- 'weight': 500,
237
- 'line-height': 1.2rem,
238
- 'letter-spacing': 0.042rem,
239
- 'text-transform': uppercase
228
+ 'size': 0.8125rem,
229
+ 'weight': map.get($font-weights, "medium"),
230
+ 'line-height': map.get($line-heights, "normal"),
231
+ 'letter-spacing': map.get($letter-spacings, "wide"),
232
+ 'text-transform': uppercase,
233
+ 'fluid': false
240
234
  ),
235
+ //Highly specific and minimal. Only for extreme cases where space is incredibly limited.
241
236
  'label-3': (
242
- 'size': 0.85rem,
243
- 'weight': 500,
244
- 'line-height': 1.1rem,
245
- 'letter-spacing': 0.042rem,
246
- 'text-transform': uppercase
237
+ 'size': 0.75rem,
238
+ 'weight': map.get($font-weights, "bold"),
239
+ 'line-height': map.get($line-heights, "normal"),
240
+ 'letter-spacing': map.get($letter-spacings, "wide"),
241
+ 'text-transform': uppercase,
242
+ 'fluid': false
247
243
  )
248
244
  ) !default;
249
245
 
@@ -268,23 +264,6 @@ $z-index: (
268
264
  'veryImportant':100,
269
265
  ) !default;
270
266
 
271
- //bar
272
- //toolbar
273
- $toolbar-content-padding-y: 4px !default;
274
- $toolbar-content-padding-x: 16px !default;
275
- $toolbar-height: 80px !default;
276
-
277
- //modal
278
- $border-modal: map.get($borders, 'md') !default;
279
-
280
- //bottom navigation
281
- $bottom-nav-btn-min-width: 56px !default;
282
- $bottom-nav-btn-max-width: 168px !default;
283
- $bottom-nav-height: 56px !default;
284
-
285
- //navbar
286
- $navbar-width: 300px !default;
287
-
288
267
  $states: (
289
268
  'hover':('state':('opacity':0.08)),
290
269
  'focus': ('state':('opacity':0.1)),
@@ -19,15 +19,3 @@ $shades: (
19
19
  'white': #fff,
20
20
  'transparent': transparent
21
21
  );
22
- $grey: (
23
- 'base': #9e9e9e,
24
- 'lighten-4': #fafafa,
25
- 'lighten-3': #e6e6e6,
26
- 'lighten-2': #d2d2d2,
27
- 'lighten-1': #bebebe,
28
- 'darken-4': #1e1e1e,
29
- 'darken-3': #3c3c3c,
30
- 'darken-2': #5a5a5a,
31
- 'darken-1': #787878
32
- );
33
- //end color