@oxide/design-system 6.2.1 → 6.3.0-canary.97d1d97

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oxide/design-system",
3
- "version": "6.2.1",
3
+ "version": "6.3.0-canary.97d1d97",
4
4
  "description": "Home of reusable design assets and token for oxide internal sites",
5
5
  "type": "module",
6
6
  "sideEffects": false,
package/styles/main.css CHANGED
@@ -406,61 +406,181 @@
406
406
  'ss08' on,
407
407
  'calt' off;
408
408
  }
409
- /* @figma sans/regular/sm */
410
- @utility text-sans-sm {
409
+ /* Sans primitives
410
+ *
411
+ * Letter-spacing follows an optical curve: tracking ∝ 1/size, expressed in em
412
+ * so it scales with the type. Formula: letter-spacing = 0.981 / size − 0.0401 (em),
413
+ * fitted to +0.030em at 14px and −0.025em at 65px. Small text opens up for
414
+ * legibility; display sizes tighten. Zero crossing sits around 24px.
415
+ */
416
+ @utility text-sans-11 {
417
+ font-family: var(--font-sans);
418
+ font-weight: 400;
419
+ line-height: 135%;
420
+ font-size: 0.6875rem;
421
+ letter-spacing: 0.049em;
422
+ }
423
+ @utility text-sans-12 {
411
424
  font-family: var(--font-sans);
412
425
  font-weight: 400;
413
426
  line-height: 1rem;
414
427
  font-size: 0.75rem;
415
- letter-spacing: 0.04rem;
428
+ letter-spacing: 0.042em;
416
429
  }
417
- /* @figma sans/regular/md */
418
- @utility text-sans-md {
430
+ @utility text-sans-14 {
419
431
  font-family: var(--font-sans);
420
432
  font-weight: 400;
421
433
  line-height: 1.125rem;
422
434
  font-size: 0.875rem;
423
- letter-spacing: 0.03rem;
435
+ letter-spacing: 0.030em;
424
436
  }
425
- /* @figma sans/regular/lg */
426
- @utility text-sans-lg {
437
+ @utility text-sans-16 {
427
438
  font-family: var(--font-sans);
428
439
  font-weight: 400;
429
440
  line-height: 1.375rem;
430
441
  font-size: 1rem;
431
- letter-spacing: 0.0175rem;
442
+ letter-spacing: 0.021em;
432
443
  }
433
- /* @figma sans/regular/xl */
434
- @utility text-sans-xl {
444
+ @utility text-sans-18 {
435
445
  font-family: var(--font-sans);
436
446
  font-weight: 400;
437
447
  line-height: 1.5rem;
438
448
  font-size: 1.125rem;
439
- letter-spacing: 0.0125rem;
449
+ letter-spacing: 0.014em;
440
450
  }
441
- /* @figma sans/regular/2xl */
442
- @utility text-sans-2xl {
451
+ @utility text-sans-20 {
452
+ font-family: var(--font-sans);
453
+ font-weight: 400;
454
+ line-height: 130%;
455
+ font-size: 1.25rem;
456
+ letter-spacing: 0.009em;
457
+ }
458
+ @utility text-sans-22 {
459
+ font-family: var(--font-sans);
460
+ font-weight: 400;
461
+ line-height: 130%;
462
+ font-size: 1.375rem;
463
+ letter-spacing: 0.004em;
464
+ }
465
+ @utility text-sans-25 {
443
466
  font-family: var(--font-sans);
444
467
  font-weight: 400;
445
468
  line-height: 2rem;
446
469
  font-size: 1.5625rem;
447
- letter-spacing: 0.015rem;
470
+ letter-spacing: 0em;
448
471
  }
449
- /* @figma sans/regular/3xl */
450
- @utility text-sans-3xl {
472
+ @utility text-sans-28 {
473
+ font-family: var(--font-sans);
474
+ font-weight: 400;
475
+ line-height: 120%;
476
+ font-size: 1.75rem;
477
+ letter-spacing: -0.005em;
478
+ }
479
+ @utility text-sans-36 {
451
480
  font-family: var(--font-sans);
452
481
  font-weight: 400;
453
482
  line-height: 2.625rem;
454
483
  font-size: 2.25rem;
455
- letter-spacing: 0.005rem;
484
+ letter-spacing: -0.013em;
456
485
  }
457
- /* @figma sans/regular/4xl */
458
- @utility text-sans-4xl {
486
+ @utility text-sans-50 {
487
+ font-family: var(--font-sans);
488
+ font-weight: 400;
489
+ line-height: 110%;
490
+ font-size: 3.125rem;
491
+ letter-spacing: -0.020em;
492
+ }
493
+ @utility text-sans-52 {
459
494
  font-family: var(--font-sans);
460
495
  font-weight: 400;
461
496
  line-height: 3.625rem;
462
497
  font-size: 3.25rem;
463
- letter-spacing: -0.01rem;
498
+ letter-spacing: -0.021em;
499
+ }
500
+ @utility text-sans-65 {
501
+ font-family: var(--font-sans);
502
+ font-weight: 400;
503
+ line-height: 3.65625rem;
504
+ font-size: 4.0625rem;
505
+ letter-spacing: -0.025em;
506
+ }
507
+
508
+ /* Sans semantic tokens */
509
+ /* @figma sans/regular/sm */
510
+ @utility text-sans-sm {
511
+ @apply text-sans-12;
512
+ }
513
+ /* @figma sans/regular/md */
514
+ @utility text-sans-md {
515
+ @apply text-sans-14;
516
+ }
517
+ /* @figma sans/regular/lg */
518
+ @utility text-sans-lg {
519
+ @apply text-sans-16;
520
+ }
521
+ /* @figma sans/regular/xl */
522
+ @utility text-sans-xl {
523
+ @apply text-sans-18;
524
+ }
525
+ /* @figma sans/regular/2xl */
526
+ @utility text-sans-2xl {
527
+ @apply text-sans-25;
528
+ }
529
+ /* @figma sans/regular/3xl */
530
+ @utility text-sans-3xl {
531
+ @apply text-sans-36;
532
+ }
533
+ /* @figma sans/regular/4xl */
534
+ @utility text-sans-4xl {
535
+ @apply text-sans-52;
536
+ }
537
+ /* @figma sans/regular/5xl */
538
+ @utility text-sans-5xl {
539
+ @apply text-sans-65;
540
+ }
541
+
542
+ /* Responsive heading semantic tokens
543
+ *
544
+ * heading-display 36 → 52@800 → 65@1000 hero / banner titles
545
+ * heading-xl 25 → 36@600 → 52@1000 primary section h2s
546
+ * heading-lg 18 → 25@600 → 36@1000 secondary headings (h3)
547
+ * heading-md 16 → 18@600 → 25@1000 subsection headings (h4)
548
+ */
549
+ @utility heading-display {
550
+ @apply text-sans-36;
551
+ @media (min-width: 800px) {
552
+ @apply text-sans-52;
553
+ }
554
+ @media (min-width: 1000px) {
555
+ @apply text-sans-65;
556
+ }
557
+ }
558
+ @utility heading-xl {
559
+ @apply text-sans-25;
560
+ @media (min-width: 600px) {
561
+ @apply text-sans-36;
562
+ }
563
+ @media (min-width: 1000px) {
564
+ @apply text-sans-52;
565
+ }
566
+ }
567
+ @utility heading-lg {
568
+ @apply text-sans-18;
569
+ @media (min-width: 600px) {
570
+ @apply text-sans-25;
571
+ }
572
+ @media (min-width: 1000px) {
573
+ @apply text-sans-36;
574
+ }
575
+ }
576
+ @utility heading-md {
577
+ @apply text-sans-16;
578
+ @media (min-width: 600px) {
579
+ @apply text-sans-18;
580
+ }
581
+ @media (min-width: 1000px) {
582
+ @apply text-sans-25;
583
+ }
464
584
  }
465
585
  /* @figma sans/semi/sm */
466
586
  @utility text-sans-semi-sm {
@@ -173,3 +173,14 @@ Make sure disabled buttons don't get the pointer cursor.
173
173
  background-color: color-mix(in srgb, currentColor 8%, transparent);
174
174
  border-color: color-mix(in srgb, currentColor 10%, transparent);
175
175
  }
176
+
177
+ /* Expands an element's hit area by N pixels on all sides via a transparent ::after overlay, without affecting layout. Usage: `target-8` adds 8px of clickable padding around the element. */
178
+ @utility target-* {
179
+ position: relative;
180
+
181
+ &::after {
182
+ content: '';
183
+ position: absolute;
184
+ inset: calc(--value(integer) * -1px);
185
+ }
186
+ }