renusify 2.5.2 → 3.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 (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 +207 -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 +93 -49
  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 +332 -168
  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 +250 -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 +3 -3
  85. package/components/infinite/index.vue +290 -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 +206 -94
  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 +319 -156
  100. package/components/swiper/index.vue +237 -108
  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 +272 -24
  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 +11 -19
  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 +155 -178
  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 +7 -2
  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,13 @@ $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
- 'xs': 0,
80
- 'sm': 600px,
81
- 'md': 960px,
82
- 'lg': 1280px,
83
- 'xl': 1620px
28
+ 'sm': 0,
29
+ 'md': 48rem, // Small devices (tablets, 768px)
30
+ 'lg': 75rem, // Large devices (laptops, 1200px)
84
31
  ) !default;
85
32
 
33
+ $base-font-size: 1rem;
86
34
  $grid-gutter: $spacer * 6 !default;
87
35
  $form-grid-gutter: $spacer * 2 !default;
88
36
  $grid-columns: 12 !default;
@@ -90,11 +38,9 @@ $grid-columns: 12 !default;
90
38
  $container-padding-x: math.div($grid-gutter, 2) !default;
91
39
 
92
40
  $grid-gutters: (
93
- 'xs': math.div($grid-gutter, 12),
94
- 'sm': math.div($grid-gutter, 6),
41
+ 'sm': math.div($grid-gutter, 12),
95
42
  'md': math.div($grid-gutter, 3),
96
- 'lg': math.div($grid-gutter * 2, 3),
97
- 'xl': $grid-gutter
43
+ 'lg':$grid-gutter,
98
44
  ) !default;
99
45
 
100
46
  $box-shadows: (
@@ -104,146 +50,194 @@ $box-shadows: (
104
50
  'md': var(--box-shadow, rgb(0 0 0 / 0.1)) 0 .25rem .5rem,
105
51
  'lg': var(--box-shadow, rgb(0 0 0 / 0.1)) 0 .5rem 1rem,
106
52
  '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,
53
+ 'xxl': var(--box-shadow, rgb(0 0 0 / 0.2)) 0 1.5rem 4rem,
108
54
  ) !default;
109
55
 
110
56
  $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')})'
57
+ 'md': map.get($grid-breakpoints, 'md') - 3rem,
58
+ 'lg': map.get($grid-breakpoints, 'lg') - 4rem
130
59
  ) !default;
131
60
 
132
61
  $font-weights: (
133
- 'thin': 100,
134
62
  'light': 300,
135
63
  'regular': 400,
136
64
  'medium': 500,
137
- 'bold': 700,
138
- 'black': 900
65
+ 'bold': 700
66
+ ) !default;
67
+
68
+ $typography-ratio: 1.25;
69
+ $min-viewport-width: 20rem;
70
+ $max-viewport-width: 90rem;
71
+
72
+ $line-heights: (
73
+ "tight": 1.15,
74
+ "normal": 1.5,
75
+ "relaxed": 1.6
76
+ ) !default;
77
+
78
+ $letter-spacings: (
79
+ "tight": -0.025em,
80
+ "normal": 0,
81
+ "wide": 0.025em
82
+ ) !default;
83
+
84
+ $line-heights: (
85
+ "tight": 1.15,
86
+ "normal": 1.5,
87
+ "relaxed": 1.6
88
+ ) !default;
89
+
90
+ $letter-spacings: (
91
+ "tight": -0.025em,
92
+ "normal": 0,
93
+ "wide": 0.025em
139
94
  ) !default;
140
95
 
141
96
 
142
97
  $headings: (
98
+ //display-1/2/3 Massive, attention-grabbing heroes Page title, full-width banner text
99
+ //The largest possible text. Reserved for the most important headline on a marketing site.
143
100
  'display-1': (
144
- 'size': 4.75rem,
145
- 'weight': 400,
146
- 'line-height': 6rem,
147
- 'letter-spacing': -0.02rem,
148
- 'text-transform': false
101
+ 'min-size': 2.5rem,
102
+ 'max-size': 3.75rem,
103
+ 'weight': map.get($font-weights, "light"),
104
+ 'line-height': map.get($line-heights, "tight"),
105
+ 'letter-spacing': map.get($letter-spacings, "tight"),
106
+ 'text-transform': none,
107
+ 'fluid': true
149
108
  ),
109
+ //A slightly smaller massive headline. Often used as the main title on a landing page.
150
110
  'display-2': (
151
- 'size': 3.75rem,
152
- 'weight': 400,
153
- 'line-height': 5.3rem,
154
- 'letter-spacing': 0,
155
- 'text-transform': false
111
+ 'min-size': 2rem,
112
+ 'max-size': 3rem,
113
+ 'weight': map.get($font-weights, "light"),
114
+ 'line-height': map.get($line-heights, "tight"),
115
+ 'letter-spacing': map.get($letter-spacings, "normal"),
116
+ 'text-transform': none,
117
+ 'fluid': true
156
118
  ),
119
+ //A large, but more manageable, display style. Can be used for a major section title or a premium product name.
157
120
  'display-3': (
158
- 'size': 3rem,
159
- 'weight': 400,
160
- 'line-height': 4.3rem,
161
- 'letter-spacing': 0,
162
- 'text-transform': false
121
+ 'min-size': 1.75rem,
122
+ 'max-size': 2.5rem,
123
+ 'weight': map.get($font-weights, "regular"),
124
+ 'line-height': map.get($line-heights, "tight"),
125
+ 'letter-spacing': map.get($letter-spacings, "normal"),
126
+ 'text-transform': none,
127
+ 'fluid': true
163
128
  ),
129
+ //headline-1/2/3 Major section titles H1, H2, H3 headings
130
+ //The primary title of the page. There should only be one H1 per page.
164
131
  'headline-1': (
165
- 'size': 2.66rem,
166
- 'weight': 400,
167
- 'line-height': 3.6rem,
168
- 'letter-spacing': 0,
169
- 'text-transform': false
132
+ 'min-size': 1.75rem,
133
+ 'max-size': 2.25rem,
134
+ 'weight': map.get($font-weights, "bold"),
135
+ 'line-height': map.get($line-heights, "normal"),
136
+ 'letter-spacing': map.get($letter-spacings, "normal"),
137
+ 'text-transform': none,
138
+ 'fluid': true
170
139
  ),
140
+ //Major section headings. They break the page into main topics.
171
141
  'headline-2': (
172
- 'size': 2.33rem,
173
- 'weight': 400,
174
- 'line-height': 3.2rem,
175
- 'letter-spacing': 0,
176
- 'text-transform': false
142
+ 'min-size': 1.5rem,
143
+ 'max-size': 2rem,
144
+ 'weight': map.get($font-weights, "regular"),
145
+ 'line-height': map.get($line-heights, "normal"),
146
+ 'letter-spacing': map.get($letter-spacings, "normal"),
147
+ 'text-transform': none,
148
+ 'fluid': true
177
149
  ),
150
+ //Sub-section headings. These nest under headline-2 sections.
178
151
  'headline-3': (
179
- 'size': 2rem,
180
- 'weight': 400,
181
- 'line-height': 2.66rem,
182
- 'letter-spacing': 0,
183
- 'text-transform': false
152
+ 'size': 1.5rem,
153
+ 'weight': map.get($font-weights, "regular"),
154
+ 'line-height': map.get($line-heights, "normal"),
155
+ 'letter-spacing': map.get($letter-spacings, "normal"),
156
+ 'text-transform': none,
157
+ 'fluid': false
184
158
  ),
159
+ //title-1/2/3 Smaller titles, emphasized text H4, H5, card titles, product names
160
+ //Perfect for card titles, feature names, or large data points (e.g., total price).
185
161
  'title-1': (
186
- 'size': 1.66rem,
187
- 'weight': 400,
188
- 'line-height': 2.33rem,
189
- 'letter-spacing': 0,
190
- 'text-transform': false
162
+ 'size': 1.25rem,
163
+ 'weight': map.get($font-weights, "medium"),
164
+ 'line-height': map.get($line-heights, "normal"),
165
+ 'letter-spacing': map.get($letter-spacings, "normal"),
166
+ 'text-transform': none,
167
+ 'fluid': false
191
168
  ),
169
+ //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
170
  'title-2': (
193
- 'size': 1.33rem,
194
- 'weight': 500,
195
- 'line-height': 1.9rem,
196
- 'letter-spacing': 0.0125rem,
197
- 'text-transform': false
171
+ 'size': 1.125rem,
172
+ 'weight': map.get($font-weights, "medium"),
173
+ 'line-height': map.get($line-heights, "normal"),
174
+ 'letter-spacing': map.get($letter-spacings, "wide"),
175
+ 'text-transform': none,
176
+ 'fluid': false
198
177
  ),
178
+ //A small, emphasized title. Useful in dense interfaces like dashboards or tables.
199
179
  'title-3': (
200
- 'size': 1.15rem,
201
- 'weight': 500,
202
- 'line-height': 1.66rem,
203
- 'letter-spacing': 0.008rem,
204
- 'text-transform': false
180
+ 'size': 1rem,
181
+ 'weight': map.get($font-weights, "medium"),
182
+ 'line-height': map.get($line-heights, "normal"),
183
+ 'letter-spacing': map.get($letter-spacings, "wide"),
184
+ 'text-transform': none,
185
+ 'fluid': false
205
186
  ),
187
+ //THE STANDARD. Default paragraph text, product descriptions, article content—anything users read in large quantities.
206
188
  'body-1': (
207
- 'size': 1.33rem,
208
- 'weight': 400,
209
- 'line-height': 1.8rem,
210
- 'letter-spacing': 0.042rem,
211
- 'text-transform': false
189
+ 'size': $base-font-size,
190
+ 'weight': map.get($font-weights, "regular"),
191
+ 'line-height': map.get($line-heights, "relaxed"),
192
+ 'letter-spacing': map.get($letter-spacings, "normal"),
193
+ 'text-transform': none,
194
+ 'fluid': false
212
195
  ),
196
+ //Secondary, supporting text. Less important than body-1. Good for comments, minor details, or captions under images.
213
197
  'body-2': (
214
- 'size': 1.15rem,
215
- 'weight': 400,
216
- 'line-height': 1.66rem,
217
- 'letter-spacing': 0.02rem,
218
- 'text-transform': false
198
+ 'size': 0.875rem,
199
+ 'weight': map.get($font-weights, "regular"),
200
+ 'line-height': map.get($line-heights, "relaxed"),
201
+ 'letter-spacing': map.get($letter-spacings, "normal"),
202
+ 'text-transform': none,
203
+ 'fluid': false
219
204
  ),
205
+ //The absolute smallest text should be used for legal disclaimers, copyright info, or dense, non-essential data.
220
206
  'body-3': (
221
- 'size': 1rem,
222
- 'weight': 400,
223
- 'line-height': 1.33rem,
224
- 'letter-spacing': 0.033rem,
225
- 'text-transform': false
207
+ 'size': 0.8125rem,
208
+ 'weight': map.get($font-weights, "medium"),
209
+ 'line-height': map.get($line-heights, "relaxed"),
210
+ 'letter-spacing': map.get($letter-spacings, "wide"),
211
+ 'text-transform': none,
212
+ 'fluid': false
226
213
  ),
214
+ //label-1/2/3 UI controls, tags, buttons Form labels, buttons, badges, chips
215
+ //Labels for form fields, buttons, or navigation items. The most common label size.
227
216
  'label-1': (
228
- 'size': 1.15rem,
229
- 'weight': 500,
230
- 'line-height': 1.5rem,
231
- 'letter-spacing': 0.008rem,
232
- 'text-transform': uppercase
217
+ 'size': 0.875rem,
218
+ 'weight': map.get($font-weights, "medium"),
219
+ 'line-height': map.get($line-heights, "normal"),
220
+ 'letter-spacing': map.get($letter-spacings, "wide"),
221
+ 'text-transform': uppercase,
222
+ 'fluid': false
233
223
  ),
224
+ //Smaller labels for tags, badges, or status indicators (e.g., "NEW", "SOLD OUT").
234
225
  'label-2': (
235
- 'size':1rem,
236
- 'weight': 500,
237
- 'line-height': 1.2rem,
238
- 'letter-spacing': 0.042rem,
239
- 'text-transform': uppercase
226
+ 'size': 0.8125rem,
227
+ 'weight': map.get($font-weights, "medium"),
228
+ 'line-height': map.get($line-heights, "normal"),
229
+ 'letter-spacing': map.get($letter-spacings, "wide"),
230
+ 'text-transform': uppercase,
231
+ 'fluid': false
240
232
  ),
233
+ //Highly specific and minimal. Only for extreme cases where space is incredibly limited.
241
234
  'label-3': (
242
- 'size': 0.85rem,
243
- 'weight': 500,
244
- 'line-height': 1.1rem,
245
- 'letter-spacing': 0.042rem,
246
- 'text-transform': uppercase
235
+ 'size': 0.75rem,
236
+ 'weight': map.get($font-weights, "bold"),
237
+ 'line-height': map.get($line-heights, "normal"),
238
+ 'letter-spacing': map.get($letter-spacings, "wide"),
239
+ 'text-transform': uppercase,
240
+ 'fluid': false
247
241
  )
248
242
  ) !default;
249
243
 
@@ -268,23 +262,6 @@ $z-index: (
268
262
  'veryImportant':100,
269
263
  ) !default;
270
264
 
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
265
  $states: (
289
266
  'hover':('state':('opacity':0.08)),
290
267
  '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