responsive-scale-mixins 2.0.3 → 2.0.5

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 (3) hide show
  1. package/README.md +161 -69
  2. package/package.json +2 -1
  3. package/scss/_mixins.scss +16 -12
package/README.md CHANGED
@@ -1,12 +1,55 @@
1
- # 🎨 Responsive Scale Mixins
1
+ # 🚀 Responsive Scale Mixins
2
2
 
3
- A powerful SCSS mixin system for creating perfectly responsive designs that maintain Figma proportions across all screen sizes.
3
+ ## **The Future of Responsive Design is Here**
4
+
5
+ **Stop wrestling with breakpoints. Start designing once, deploy everywhere.**
6
+
7
+ Imagine building a beautiful UI in Figma, then seeing it perfectly scale on **every screen size** - from tiny phones (320px) to ultra-wide monitors (9999px) - without writing a single media query. That's the power of Responsive Scale Mixins.
4
8
 
5
9
  [![npm version](https://badge.fury.io/js/responsive-scale-mixins.svg)](https://www.npmjs.com/package/responsive-scale-mixins)
6
10
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
7
11
  [![npm](https://img.shields.io/npm/v/responsive-scale-mixins)](https://www.npmjs.com/package/responsive-scale-mixins)
8
12
  [![npm](https://img.shields.io/npm/dm/responsive-scale-mixins)](https://www.npmjs.com/package/responsive-scale-mixins)
9
13
 
14
+ ## 🔥 **Why Developers Love It**
15
+
16
+ ### **🎯 Pixel-Perfect Figma Translation**
17
+
18
+ - Your Figma designs become reality, not approximations
19
+ - Zero guessing, zero manual calculations
20
+ - What you see in design tools is what users see on any device
21
+
22
+ ### **⚡ Revolutionary Simplicity**
23
+
24
+ ```scss
25
+ // Before: 50+ lines of media queries
26
+ .hero-title {
27
+ font-size: 48px;
28
+ @media (max-width: 768px) {
29
+ font-size: 32px;
30
+ }
31
+ @media (max-width: 480px) {
32
+ font-size: 24px;
33
+ }
34
+ // ... and so on for every element
35
+ }
36
+
37
+ // After: 1 line that works everywhere
38
+ .hero-title {
39
+ @include rsm.responsive-scale(font-size, 48, 24);
40
+ }
41
+ ```
42
+
43
+ ### **🎨 Universal Unit Support**
44
+
45
+ - **px, rem, em, vw, vh, %, cm, mm, in, pt, pc** - you name it, we scale it
46
+ - Intelligent interpolation between desktop and mobile values
47
+ - Perfect scaling from 320px phones to 8K displays
48
+
49
+ ### **🚀 Framework Agnostic**
50
+
51
+ Works with React, Vue, Angular, Svelte, Next.js, Nuxt, Astro, and vanilla CSS. Your favorite framework + perfect responsive design = ❤️
52
+
10
53
  ## ⚠️ Breaking Changes in v2.0.0
11
54
 
12
55
  **Pure CSS implementations are affected by this breaking change.**
@@ -48,8 +91,7 @@ A powerful SCSS mixin system for creating perfectly responsive designs that main
48
91
  /* OLD (v1.x) */
49
92
  font-size: calc(var(--computed-scale-factor-px) * 40);
50
93
 
51
- /* NEW (v2.0) */
52
- font-size: calc(var(--computed-scale-factor) * 40px);
94
+ @include rsm.responsive-scale(font-size, 24, 16);
53
95
  ```
54
96
 
55
97
  ## ✨ Features
@@ -62,6 +104,37 @@ font-size: calc(var(--computed-scale-factor) * 40px);
62
104
  - **TypeScript Ready**: Compatible with CSS Modules and CSS-in-JS solutions
63
105
  - **Universal Unit Support**: Handles all CSS units including absolute (px, pt, cm, mm, in, pc) and relative (%, em, rem, vw, vh, vmin, vmax) units
64
106
 
107
+ ## 🔧 Dart Sass Compatibility
108
+
109
+ **Starting with v2.0.4**, this package is fully compatible with Dart Sass. The `index.scss` file now uses relative `@forward` statements (`./scss/variables` and `./scss/mixins`) to ensure proper resolution in Dart Sass environments like Next.js, Vite, and other modern build tools.
110
+
111
+ ### Recommended Import Pattern
112
+
113
+ ```scss
114
+ // Modern @use syntax (preferred)
115
+ @use "responsive-scale-mixins" as rsm;
116
+
117
+ :root {
118
+ @include rsm.responsive-scale-variables();
119
+ }
120
+
121
+ .my-element {
122
+ @include rsm.responsive-scale(font-size, 24, 16);
123
+ }
124
+ ```
125
+
126
+ ### Troubleshooting Import Errors
127
+
128
+ If you encounter "Can't find stylesheet to import" errors with Dart Sass:
129
+
130
+ 1. **Update the package**: Ensure you're using v2.0.4 or later
131
+ 2. **Use relative imports as workaround**: Import the partials directly:
132
+ ```scss
133
+ @import "responsive-scale-mixins/scss/variables";
134
+ @import "responsive-scale-mixins/scss/mixins";
135
+ ```
136
+ 3. **Check your build tool**: Some tools may need configuration updates for SCSS module resolution
137
+
65
138
  ## 🚀 Quick Start
66
139
 
67
140
  ### Installation
@@ -89,26 +162,26 @@ pnpm add responsive-scale-mixins
89
162
  #### Next.js (App Router)
90
163
 
91
164
  ```scss
92
- // app/globals.css or app/styles/globals.scss
93
- @import "~responsive-scale-mixins";
165
+ // app/globals.scss or app/styles/globals.scss
166
+ @use "responsive-scale-mixins" as rsm;
94
167
 
95
168
  :root {
96
169
  // Replace 1440 with your design width or leave default (desktop)
97
170
  // Replace 768 with your design width or leave default (tablet)
98
171
  // Replace 375 with your design width or leave default (mobile)
99
172
  // Define CSS variables globally (required)
100
- @include responsive-scale-variables(1440px, 768px, 375px);
101
- // Or use defaults: @include responsive-scale-variables();
173
+ @include rsm.responsive-scale-variables(1440px, 768px, 375px);
174
+ // Or use defaults: @include rsm.responsive-scale-variables();
102
175
  }
103
176
 
104
- // Import in app/layout.tsx: import './globals.css'
177
+ // Import in app/layout.tsx: import './globals.scss'
105
178
  ```
106
179
 
107
180
  #### Next.js (Pages Router)
108
181
 
109
182
  ```scss
110
183
  // styles/globals.scss
111
- @import "~responsive-scale-mixins";
184
+ @use "responsive-scale-mixins" as rsm;
112
185
 
113
186
  :root {
114
187
  // Define CSS variables globally (required)
@@ -116,8 +189,8 @@ pnpm add responsive-scale-mixins
116
189
  // Replace 1440 with your design width or leave default (desktop)
117
190
  // Replace 768 with your design width or leave default (tablet)
118
191
  // Replace 375 with your design width or leave default (mobile)
119
- @include responsive-scale-variables(1440px, 768px, 375px);
120
- // Or use defaults: @include responsive-scale-variables();
192
+ @include rsm.responsive-scale-variables(1440px, 768px, 375px);
193
+ // Or use defaults: @include rsm.responsive-scale-variables();
121
194
  }
122
195
 
123
196
  // Import in pages/_app.js: import '../styles/globals.scss'
@@ -133,7 +206,7 @@ pnpm add responsive-scale-mixins
133
206
 
134
207
  ```scss
135
208
  // src/index.scss or src/styles/main.scss
136
- @import "~responsive-scale-mixins";
209
+ @use "responsive-scale-mixins" as rsm;
137
210
 
138
211
  :root {
139
212
  // Define CSS variables globally (required)
@@ -141,8 +214,8 @@ pnpm add responsive-scale-mixins
141
214
  // Replace 1440 with your design width or leave default (desktop)
142
215
  // Replace 768 with your design width or leave default (tablet)
143
216
  // Replace 375 with your design width or leave default (mobile)
144
- @include responsive-scale-variables(1440px, 768px, 375px);
145
- // Or use defaults: @include responsive-scale-variables();
217
+ @include rsm.responsive-scale-variables(1440px, 768px, 375px);
218
+ // Or use defaults: @include rsm.responsive-scale-variables();
146
219
  }
147
220
 
148
221
  // Import in src/index.js: import './index.scss'
@@ -158,7 +231,7 @@ pnpm add responsive-scale-mixins
158
231
 
159
232
  ```scss
160
233
  // src/assets/styles/main.scss
161
- @import "~responsive-scale-mixins";
234
+ @use "responsive-scale-mixins" as rsm;
162
235
 
163
236
  :root {
164
237
  // Define CSS variables globally (required)
@@ -166,8 +239,8 @@ pnpm add responsive-scale-mixins
166
239
  // Replace 1440 with your design width or leave default (desktop)
167
240
  // Replace 768 with your design width or leave default (tablet)
168
241
  // Replace 375 with your design width or leave default (mobile)
169
- @include responsive-scale-variables(1440px, 768px, 375px);
170
- // Or use defaults: @include responsive-scale-variables();
242
+ @include rsm.responsive-scale-variables(1440px, 768px, 375px);
243
+ // Or use defaults: @include rsm.responsive-scale-variables();
171
244
  }
172
245
 
173
246
  // Import in src/main.js: import './assets/styles/main.scss'
@@ -183,7 +256,7 @@ pnpm add responsive-scale-mixins
183
256
 
184
257
  ```scss
185
258
  // src/styles.scss (global styles)
186
- @import "~responsive-scale-mixins";
259
+ @use "responsive-scale-mixins" as rsm;
187
260
 
188
261
  :root {
189
262
  // Define CSS variables globally (required)
@@ -191,8 +264,8 @@ pnpm add responsive-scale-mixins
191
264
  // Replace 1440 with your design width or leave default (desktop)
192
265
  // Replace 768 with your design width or leave default (tablet)
193
266
  // Replace 375 with your design width or leave default (mobile)
194
- @include responsive-scale-variables(1440px, 768px, 375px);
195
- // Or use defaults: @include responsive-scale-variables();
267
+ @include rsm.responsive-scale-variables(1440px, 768px, 375px);
268
+ // Or use defaults: @include rsm.responsive-scale-variables();
196
269
  }
197
270
 
198
271
  // This file is automatically included by Angular CLI
@@ -208,7 +281,7 @@ pnpm add responsive-scale-mixins
208
281
 
209
282
  ```scss
210
283
  // src/styles/main.scss
211
- @import "responsive-scale-mixins";
284
+ @use "responsive-scale-mixins" as rsm;
212
285
 
213
286
  :root {
214
287
  // Customize for your design system (optional)
@@ -216,8 +289,8 @@ pnpm add responsive-scale-mixins
216
289
  // Replace 1440 with your design width or leave default (desktop)
217
290
  // Replace 768 with your design width or leave default (tablet)
218
291
  // Replace 375 with your design width or leave default (mobile)
219
- @include responsive-scale-variables(1440px, 768px, 375px);
220
- // Or use defaults: @include responsive-scale-variables();
292
+ @include rsm.responsive-scale-variables(1440px, 768px, 375px);
293
+ // Or use defaults: @include rsm.responsive-scale-variables();
221
294
  }
222
295
  ```
223
296
 
@@ -225,7 +298,7 @@ pnpm add responsive-scale-mixins
225
298
 
226
299
  ```scss
227
300
  // src/styles/global.scss
228
- @import "~responsive-scale-mixins";
301
+ @use "responsive-scale-mixins" as rsm;
229
302
 
230
303
  :root {
231
304
  // Customize for your design system (optional)
@@ -233,8 +306,8 @@ pnpm add responsive-scale-mixins
233
306
  // Replace 1440 with your design width or leave default (desktop)
234
307
  // Replace 768 with your design width or leave default (tablet)
235
308
  // Replace 375 with your design width or leave default (mobile)
236
- @include responsive-scale-variables(1440px, 768px, 375px);
237
- // Or use defaults: @include responsive-scale-variables();
309
+ @include rsm.responsive-scale-variables(1440px, 768px, 375px);
310
+ // Or use defaults: @include rsm.responsive-scale-variables();
238
311
  }
239
312
  ```
240
313
 
@@ -242,7 +315,7 @@ pnpm add responsive-scale-mixins
242
315
 
243
316
  ```scss
244
317
  // assets/styles/main.scss
245
- @import "~responsive-scale-mixins";
318
+ @use "responsive-scale-mixins" as rsm;
246
319
 
247
320
  :root {
248
321
  // Customize for your design system (optional)
@@ -250,8 +323,8 @@ pnpm add responsive-scale-mixins
250
323
  // Replace 1440 with your design width or leave default (desktop)
251
324
  // Replace 768 with your design width or leave default (tablet)
252
325
  // Replace 375 with your design width or leave default (mobile)
253
- @include responsive-scale-variables(1440px, 768px, 375px);
254
- // Or use defaults: @include responsive-scale-variables();
326
+ @include rsm.responsive-scale-variables(1440px, 768px, 375px);
327
+ // Or use defaults: @include rsm.responsive-scale-variables();
255
328
  }
256
329
  ```
257
330
 
@@ -259,7 +332,7 @@ pnpm add responsive-scale-mixins
259
332
 
260
333
  ```scss
261
334
  // src/app.scss
262
- @import "responsive-scale-mixins";
335
+ @use "responsive-scale-mixins" as rsm;
263
336
 
264
337
  :root {
265
338
  // Customize for your design system (optional)
@@ -267,8 +340,8 @@ pnpm add responsive-scale-mixins
267
340
  // Replace 1440 with your design width or leave default (desktop)
268
341
  // Replace 768 with your design width or leave default (tablet)
269
342
  // Replace 375 with your design width or leave default (mobile)
270
- @include responsive-scale-variables(1440px, 768px, 375px);
271
- // Or use defaults: @include responsive-scale-variables();
343
+ @include rsm.responsive-scale-variables(1440px, 768px, 375px);
344
+ // Or use defaults: @include rsm.responsive-scale-variables();
272
345
  }
273
346
  ```
274
347
 
@@ -276,7 +349,7 @@ pnpm add responsive-scale-mixins
276
349
 
277
350
  ```scss
278
351
  // src/styles/global.scss
279
- @import "responsive-scale-mixins";
352
+ @use "responsive-scale-mixins" as rsm;
280
353
 
281
354
  :root {
282
355
  // Customize for your design system (optional)
@@ -284,8 +357,8 @@ pnpm add responsive-scale-mixins
284
357
  // Replace 1440 with your design width or leave default (desktop)
285
358
  // Replace 768 with your design width or leave default (tablet)
286
359
  // Replace 375 with your design width or leave default (mobile)
287
- @include responsive-scale-variables(1440px, 768px, 375px);
288
- // Or use defaults: @include responsive-scale-variables();
360
+ @include rsm.responsive-scale-variables(1440px, 768px, 375px);
361
+ // Or use defaults: @include rsm.responsive-scale-variables();
289
362
  }
290
363
  ```
291
364
 
@@ -293,7 +366,7 @@ pnpm add responsive-scale-mixins
293
366
 
294
367
  ```scss
295
368
  // styles.module.scss
296
- @import "~responsive-scale-mixins";
369
+ @use "responsive-scale-mixins" as rsm;
297
370
 
298
371
  // Variables must be in global scope
299
372
  // In your main CSS file:
@@ -309,7 +382,7 @@ pnpm add responsive-scale-mixins
309
382
 
310
383
  // Then in your module
311
384
  .myClass {
312
- @include responsive-scale(font-size, 24, 16);
385
+ @include rsm.responsive-scale(font-size, 24, 16);
313
386
  }
314
387
  ```
315
388
 
@@ -317,15 +390,15 @@ pnpm add responsive-scale-mixins
317
390
 
318
391
  ```scss
319
392
  // styles/main.scss
320
- @import "~responsive-scale-mixins";
393
+ @use "responsive-scale-mixins" as rsm;
321
394
 
322
395
  :root {
323
- @include responsive-scale-variables();
396
+ @include rsm.responsive-scale-variables();
324
397
  }
325
398
 
326
399
  // Use alongside Tailwind
327
400
  .custom-element {
328
- @include responsive-scale(padding, 20 40, 10 20);
401
+ @include rsm.responsive-scale(padding, 20 40, 10 20);
329
402
  @apply bg-blue-500 text-white; // Tailwind classes still work
330
403
  }
331
404
  ```
@@ -344,6 +417,26 @@ const StyledComponent = styled.div`
344
417
 
345
418
  ### Basic Usage
346
419
 
420
+ #### Modern @use Syntax (Recommended)
421
+
422
+ ```scss
423
+ // In your main SCSS file
424
+ @use "responsive-scale-mixins" as rsm;
425
+
426
+ // Include variables in your root element (required)
427
+ :root {
428
+ @include rsm.responsive-scale-variables();
429
+ }
430
+
431
+ // Use the mixin anywhere
432
+ .my-element {
433
+ @include rsm.responsive-scale(font-size, 24, 16);
434
+ @include rsm.responsive-scale(padding, 20 40, 10 20);
435
+ }
436
+ ```
437
+
438
+ #### Legacy @import Syntax (for older setups)
439
+
347
440
  ```scss
348
441
  // In your main SCSS file
349
442
  @import "~responsive-scale-mixins";
@@ -393,9 +486,9 @@ The main responsive scaling mixin.
393
486
 
394
487
  ```scss
395
488
  .hero-title {
396
- @include responsive-scale(font-size, 48, 32);
397
- @include responsive-scale(line-height, 1.2, 1.3);
398
- @include responsive-scale(letter-spacing, -1, -0.5);
489
+ @include rsm.responsive-scale(font-size, 48, 32);
490
+ @include rsm.responsive-scale(line-height, 1.2, 1.3);
491
+ @include rsm.responsive-scale(letter-spacing, -1, -0.5);
399
492
  }
400
493
  ```
401
494
 
@@ -403,8 +496,8 @@ The main responsive scaling mixin.
403
496
 
404
497
  ```scss
405
498
  .card {
406
- @include responsive-scale(padding, 32 48, 16 24);
407
- @include responsive-scale(margin-bottom, 24, 16);
499
+ @include rsm.responsive-scale(padding, 32 48, 16 24);
500
+ @include rsm.responsive-scale(margin-bottom, 24, 16);
408
501
  }
409
502
  ```
410
503
 
@@ -412,9 +505,9 @@ The main responsive scaling mixin.
412
505
 
413
506
  ```scss
414
507
  .button {
415
- @include responsive-scale(width, 200, 150);
416
- @include responsive-scale(height, 56, 44);
417
- @include responsive-scale(border-radius, 8, 6);
508
+ @include rsm.responsive-scale(width, 200, 150);
509
+ @include rsm.responsive-scale(height, 56, 44);
510
+ @include rsm.responsive-scale(border-radius, 8, 6);
418
511
  }
419
512
  ```
420
513
 
@@ -423,7 +516,7 @@ The main responsive scaling mixin.
423
516
  ```scss
424
517
  .text {
425
518
  // Letter-spacing as 1% of font-size
426
- @include responsive-scale(letter-spacing, 1, 1, px, true, 48, 32);
519
+ @include rsm.responsive-scale(letter-spacing, 1, 1, px, true, 48, 32);
427
520
  }
428
521
  ```
429
522
 
@@ -431,7 +524,7 @@ The main responsive scaling mixin.
431
524
 
432
525
  ```scss
433
526
  .override-bootstrap {
434
- @include responsive-scale(
527
+ @include rsm.responsive-scale(
435
528
  font-size,
436
529
  24,
437
530
  16,
@@ -441,7 +534,7 @@ The main responsive scaling mixin.
441
534
  null,
442
535
  " !important"
443
536
  );
444
- @include responsive-scale(
537
+ @include rsm.responsive-scale(
445
538
  padding,
446
539
  16 32,
447
540
  8 16,
@@ -467,8 +560,8 @@ Easily customize the design widths to match your project's breakpoints:
467
560
  // Replace 375 with your design width or leave default (mobile)
468
561
 
469
562
  // Custom design widths (desktop, tablet, mobile)
470
- @include responsive-scale-variables(1440px, 768px, 375px);
471
- // Or use defaults: @include responsive-scale-variables();
563
+ @include rsm.responsive-scale-variables(1440px, 768px, 375px);
564
+ // Or use defaults: @include rsm.responsive-scale-variables();
472
565
  }
473
566
  ```
474
567
 
@@ -482,13 +575,13 @@ Easily customize the design widths to match your project's breakpoints:
482
575
 
483
576
  ```scss
484
577
  .element {
485
- @include responsive-scale(
578
+ @include rsm.responsive-scale(
486
579
  font-size,
487
580
  3,
488
581
  2,
489
582
  rem
490
583
  ); // 3rem / 2rem - uses rem scale factor
491
- @include responsive-scale(
584
+ @include rsm.responsive-scale(
492
585
  font-size,
493
586
  2,
494
587
  1.5,
@@ -524,10 +617,10 @@ The mixin supports **all CSS units** with a single generic scale factor:
524
617
 
525
618
  ```scss
526
619
  .element {
527
- @include responsive-scale(margin, 2, 1, cm); // centimeters
528
- @include responsive-scale(width, 50, 30, vw); // viewport width
529
- @include responsive-scale(height, 80, 60, vh); // viewport height
530
- @include responsive-scale(font-size, 1.5, 1, em); // em units
620
+ @include rsm.responsive-scale(margin, 2, 1, cm); // centimeters
621
+ @include rsm.responsive-scale(width, 50, 30, vw); // viewport width
622
+ @include rsm.responsive-scale(height, 80, 60, vh); // viewport height
623
+ @include rsm.responsive-scale(font-size, 1.5, 1, em); // em units
531
624
  }
532
625
  ```
533
626
 
@@ -570,9 +663,9 @@ The `@include responsive-scale-variables()` mixin may fail in certain SCSS compi
570
663
  }
571
664
 
572
665
  // In component files
573
- @import "responsive-scale-mixins";
666
+ @use "responsive-scale-mixins" as rsm;
574
667
  .my-element {
575
- @include responsive-scale(font-size, 24, 16);
668
+ @include rsm.responsive-scale(font-size, 24, 16);
576
669
  }
577
670
  ```
578
671
 
@@ -753,9 +846,9 @@ The `@include responsive-scale-variables()` mixin may fail in certain SCSS compi
753
846
  }
754
847
 
755
848
  // In your module files
756
- @import "responsive-scale-mixins";
849
+ @use "responsive-scale-mixins" as rsm;
757
850
  .myClass {
758
- @include responsive-scale(font-size, 24, 16);
851
+ @include rsm.responsive-scale(font-size, 24, 16);
759
852
  }
760
853
  ```
761
854
 
@@ -774,9 +867,9 @@ The `@include responsive-scale-variables()` mixin may fail in certain SCSS compi
774
867
  }
775
868
 
776
869
  // In components
777
- @import "responsive-scale-mixins";
870
+ @use "responsive-scale-mixins" as rsm;
778
871
  .custom-element {
779
- @include responsive-scale(padding, 20 40, 10 20);
872
+ @include rsm.responsive-scale(padding, 20 40, 10 20);
780
873
  @apply bg-blue-500 text-white;
781
874
  }
782
875
  ```
@@ -850,9 +943,8 @@ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file
850
943
  The library includes a comprehensive test suite located in the `test/` directory:
851
944
 
852
945
  ```bash
853
- # Run the test suite
854
- cd test && ./test.sh # Unix/Linux/macOS
855
- cd test && test.bat # Windows
946
+ # Run the test suite (cross-platform)
947
+ cd test && ./test.sh
856
948
  ```
857
949
 
858
950
  See [`test/TEST_README.md`](test/TEST_README.md) for detailed testing instructions.
package/package.json CHANGED
@@ -1,9 +1,10 @@
1
1
  {
2
2
  "name": "responsive-scale-mixins",
3
- "version": "2.0.3",
3
+ "version": "2.0.5",
4
4
  "description": "🎨 Revolutionary SCSS mixins for perfect responsive design. Supports ALL CSS units (px, rem, em, vw, vh, %, etc.) with pixel-perfect scaling. Zero manual calculations - just flawless responsive typography, spacing, and dimensions across desktop, tablet, and mobile. Framework-agnostic, modern CSS variables, works everywhere.",
5
5
  "main": "index.scss",
6
6
  "style": "index.scss",
7
+ "sass": "index.scss",
7
8
  "scripts": {
8
9
  "test": "echo \"No tests specified\" && exit 0"
9
10
  },
package/scss/_mixins.scss CHANGED
@@ -1,3 +1,7 @@
1
+ @use "sass:string";
2
+ @use "sass:meta";
3
+ @use "sass:list";
4
+
1
5
  /* // ✅ Figma Proportions: Maintains the same proportions as the Figma design.
2
6
 
3
7
  // // Here's a SCSS mixin that dynamically calculates font-size, line-height, padding, margins, and other scalable properties across desktop, tablet, and mobile screens.
@@ -37,17 +41,17 @@
37
41
 
38
42
  @function get-scale-factor($unit) {
39
43
  // Use generic scale factor - unit is appended in calc expressions
40
- @return unquote("--computed-scale-factor");
44
+ @return string.unquote("--computed-scale-factor");
41
45
  }
42
46
 
43
47
  @function get-tablet-scale-factor($unit) {
44
48
  // Use generic scale factor - unit is appended in calc expressions
45
- @return unquote("--computed-tablet-scale-factor");
49
+ @return string.unquote("--computed-tablet-scale-factor");
46
50
  }
47
51
 
48
52
  @function get-mobile-scale-factor($unit) {
49
53
  // Use generic scale factor - unit is appended in calc expressions
50
- @return unquote("--computed-mobile-scale-factor");
54
+ @return string.unquote("--computed-mobile-scale-factor");
51
55
  }
52
56
 
53
57
  @mixin responsive-scale(
@@ -112,10 +116,10 @@
112
116
  }
113
117
  } @else {
114
118
  // Regular absolute scaling
115
- @if type-of($desktop-value) == list {
119
+ @if meta.type-of($desktop-value) == list {
116
120
  $desktop-scaled: ();
117
121
  @each $val in $desktop-value {
118
- $desktop-scaled: append(
122
+ $desktop-scaled: list.append(
119
123
  $desktop-scaled,
120
124
  scaled-value($val, $scale-factor, $unit)
121
125
  );
@@ -127,12 +131,12 @@
127
131
  }
128
132
 
129
133
  @media screen and (min-width: 768px) and (max-width: 991px) {
130
- @if type-of($desktop-value) == list {
134
+ @if meta.type-of($desktop-value) == list {
131
135
  $tablet-scaled: ();
132
- @for $i from 1 through length($desktop-value) {
133
- $d-val: nth($desktop-value, $i);
134
- $m-val: nth($mobile-value, $i);
135
- $tablet-scaled: append(
136
+ @for $i from 1 through list.length($desktop-value) {
137
+ $d-val: list.nth($desktop-value, $i);
138
+ $m-val: list.nth($mobile-value, $i);
139
+ $tablet-scaled: list.append(
136
140
  $tablet-scaled,
137
141
  calc(
138
142
  100vw /
@@ -166,10 +170,10 @@
166
170
 
167
171
  @media screen and (max-width: 767px) {
168
172
  $mobile-scale-factor: get-mobile-scale-factor($unit);
169
- @if type-of($mobile-value) == list {
173
+ @if meta.type-of($mobile-value) == list {
170
174
  $mobile-scaled: ();
171
175
  @each $val in $mobile-value {
172
- $mobile-scaled: append(
176
+ $mobile-scaled: list.append(
173
177
  $mobile-scaled,
174
178
  scaled-value($val, $mobile-scale-factor, $unit)
175
179
  );