@grantcodes/ui 2.12.1 → 2.15.2

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 (69) hide show
  1. package/CHANGELOG.md +54 -0
  2. package/README.md +5 -1
  3. package/custom-elements.json +295 -176
  4. package/package.json +11 -3
  5. package/src/components/accordion/accordion-item.css +14 -14
  6. package/src/components/accordion/accordion.css +1 -1
  7. package/src/components/app-bar/app-bar.css +22 -22
  8. package/src/components/app-bar/nav-link.css +10 -11
  9. package/src/components/avatar/avatar.css +5 -6
  10. package/src/components/badge/badge.css +16 -15
  11. package/src/components/breadcrumb/breadcrumb.css +10 -11
  12. package/src/components/button/button.css +112 -24
  13. package/src/components/button/button.stories.js +37 -0
  14. package/src/components/button-group/button-group.css +4 -4
  15. package/src/components/card/card.css +25 -25
  16. package/src/components/code-preview/code-preview.css +6 -6
  17. package/src/components/container/container.css +2 -1
  18. package/src/components/container/container.stories.js +1 -1
  19. package/src/components/countdown/countdown.css +13 -13
  20. package/src/components/cta/cta.component.js +3 -3
  21. package/src/components/cta/cta.css +16 -18
  22. package/src/components/dialog/dialog.css +14 -14
  23. package/src/components/dropdown/dropdown.css +14 -14
  24. package/src/components/dropzone/dropzone.css +11 -12
  25. package/src/components/feature-list/feature-list.css +15 -15
  26. package/src/components/footer/footer-column.css +9 -10
  27. package/src/components/footer/footer.css +13 -13
  28. package/src/components/form-field/form-field.css +6 -6
  29. package/src/components/hero/hero.css +9 -9
  30. package/src/components/loading/loading.css +3 -3
  31. package/src/components/logo-cloud/logo-cloud.css +9 -11
  32. package/src/components/map/map.css +8 -8
  33. package/src/components/media-text/media-text.css +9 -9
  34. package/src/components/newsletter/newsletter.css +21 -21
  35. package/src/components/notice/notice.css +17 -17
  36. package/src/components/person/index.js +1 -0
  37. package/src/components/person/person.component.js +51 -0
  38. package/src/components/person/person.css +39 -0
  39. package/src/components/person/person.js +8 -0
  40. package/src/components/person/person.react.js +9 -0
  41. package/src/components/person/person.stories.js +59 -0
  42. package/src/components/person/person.test.js +69 -0
  43. package/src/components/pricing/pricing.css +34 -36
  44. package/src/components/sidebar/sidebar.css +21 -21
  45. package/src/components/stats/stats.css +14 -16
  46. package/src/components/tabs/internal/tabs-item.component.js +5 -0
  47. package/src/components/tabs/tabs.component.js +4 -2
  48. package/src/components/tabs/tabs.css +15 -15
  49. package/src/components/testimonials/testimonials.component.js +8 -22
  50. package/src/components/testimonials/testimonials.css +12 -31
  51. package/src/components/toast/toast.css +23 -24
  52. package/src/components/tooltip/tooltip.css +6 -6
  53. package/src/css/colors.stories.js +6 -6
  54. package/src/css/elements/a.css +4 -4
  55. package/src/css/elements/forms/input.css +27 -27
  56. package/src/css/elements/forms/label.css +1 -1
  57. package/src/css/elements/media/image.css +1 -0
  58. package/src/css/layers.stories.js +3 -3
  59. package/src/css/reset.css +3 -3
  60. package/src/css/themes/todomap.css +1 -1
  61. package/src/css/tokens.stories.js +16 -16
  62. package/src/css/typography.css +4 -4
  63. package/src/css/util/focus-ring.css +9 -9
  64. package/src/lib/styles/focus-ring.css +9 -9
  65. package/src/main.js +1 -0
  66. package/src/pages/agency.stories.js +5 -4
  67. package/src/pages/blog-post.stories.js +33 -50
  68. package/src/pages/saas-landing.stories.js +8 -7
  69. package/src/react.js +1 -0
@@ -20,12 +20,12 @@
20
20
  flex-direction: column;
21
21
  justify-content: flex-start;
22
22
  overflow: hidden;
23
- background: var(--g-theme-color-background-default);
23
+ background: var(--g-color-background-default);
24
24
  border-style: solid;
25
- border-width: var(--g-theme-border-width-sm);
26
- border-color: var(--g-theme-color-border-default);
27
- border-radius: var(--g-theme-border-radius-md);
28
- box-shadow: var(--g-theme-box-shadow-md);
25
+ border-width: var(--g-border-width-sm);
26
+ border-color: var(--g-color-border-default);
27
+ border-radius: var(--g-border-radius-md);
28
+ box-shadow: var(--g-box-shadow-md);
29
29
  transition:
30
30
  box-shadow 0.2s ease,
31
31
  transform 0.2s ease,
@@ -43,9 +43,9 @@
43
43
  }
44
44
 
45
45
  .card__header {
46
- padding-inline: var(--g-theme-spacing-md);
47
- padding-block: var(--g-spacing-12);
48
- border-block-end: 1px solid var(--g-theme-color-border-default);
46
+ padding-inline: var(--g-spacing-md);
47
+ padding-block: var(--g-spacing-sm);
48
+ border-block-end: 1px solid var(--g-color-border-default);
49
49
  }
50
50
 
51
51
  .card__header:not([data-has-content]) {
@@ -61,9 +61,9 @@
61
61
  display: flex;
62
62
  flex-direction: column;
63
63
  justify-content: flex-start;
64
- gap: var(--g-theme-spacing-md);
65
- padding-block: var(--g-theme-spacing-md);
66
- padding-inline: var(--g-theme-spacing-md);
64
+ gap: var(--g-spacing-md);
65
+ padding-block: var(--g-spacing-md);
66
+ padding-inline: var(--g-spacing-md);
67
67
  }
68
68
 
69
69
  .card__content:has(::slotted(:empty)) {
@@ -80,11 +80,11 @@
80
80
  flex-wrap: wrap;
81
81
  justify-content: flex-start;
82
82
  align-items: center;
83
- gap: var(--g-theme-spacing-sm);
84
- padding-inline: var(--g-theme-spacing-md);
85
- padding-block: var(--g-spacing-12);
86
- border-block-start: 1px solid var(--g-theme-color-border-default);
87
- background: var(--g-theme-color-background-default);
83
+ gap: var(--g-spacing-sm);
84
+ padding-inline: var(--g-spacing-md);
85
+ padding-block: var(--g-spacing-sm);
86
+ border-block-start: 1px solid var(--g-color-border-default);
87
+ background: var(--g-color-background-default);
88
88
  }
89
89
 
90
90
  .card__footer:not([data-has-content]) {
@@ -101,18 +101,18 @@
101
101
  flex-direction: row;
102
102
  align-items: center;
103
103
  flex-wrap: wrap;
104
- gap: var(--g-theme-spacing-md);
104
+ gap: var(--g-spacing-md);
105
105
  margin: 0;
106
- padding-inline: var(--g-theme-spacing-md);
106
+ padding-inline: var(--g-spacing-md);
107
107
  padding-block: 1em;
108
- font-size: var(--g-theme-typography-meta-sm-font-size);
108
+ font-size: var(--g-typography-font-size-xs);
109
109
  /* Use color-mix() for modern color manipulation */
110
110
  background-color: color-mix(
111
111
  in srgb,
112
- var(--g-theme-color-background-default) 90%,
113
- var(--g-theme-color-primary-500) 10%
112
+ var(--g-color-background-default) 90%,
113
+ var(--g-color-primary-500) 10%
114
114
  );
115
- color: var(--g-theme-color-content-default);
115
+ color: var(--g-color-content-default);
116
116
  }
117
117
 
118
118
  .card__meta__item {
@@ -140,11 +140,11 @@
140
140
 
141
141
  :host(.is-clickable:hover) .card {
142
142
  transform: translateY(-2px);
143
- box-shadow: var(--g-theme-box-shadow-lg);
144
- border-color: var(--g-theme-color-border-default);
143
+ box-shadow: var(--g-box-shadow-lg);
144
+ border-color: var(--g-color-border-default);
145
145
  }
146
146
 
147
147
  :host(.is-clickable:active) .card {
148
148
  transform: translateY(-1px);
149
- border-color: var(--g-theme-color-border-active);
149
+ border-color: var(--g-color-border-primary);
150
150
  }
@@ -6,13 +6,13 @@
6
6
 
7
7
  .code-preview > pre {
8
8
  display: block;
9
- font-family: var(--g-typography-font-family-system);
9
+ font-family: var(--g-typography-font-family-code);
10
10
  line-height: 1.2;
11
11
  width: 100%;
12
12
  overflow: auto;
13
- border-radius: var(--g-theme-border-radius-md);
14
- box-shadow: var(--g-theme-box-shadow-sm);
15
- font-size: var(--g-typography-font-size-14);
16
- font-weight: var(--g-typography-font-weight-400);
17
- padding: var(--g-theme-spacing-md);
13
+ border-radius: var(--g-border-radius-md);
14
+ box-shadow: var(--g-box-shadow-sm);
15
+ font-size: var(--g-typography-body-sm-font-size);
16
+ font-weight: var(--g-typography-body-lg-font-weight);
17
+ padding: var(--g-spacing-md);
18
18
  }
@@ -11,12 +11,13 @@
11
11
  align-items: stretch;
12
12
  inline-size: 1200px;
13
13
  max-inline-size: 100%;
14
- padding-inline: var(--g-theme-spacing-md);
14
+ padding-inline: var(--g-spacing-md);
15
15
  margin-inline: auto;
16
16
  background-color: inherit;
17
17
  }
18
18
 
19
19
  .container--prose {
20
+ inline-size: 100%;
20
21
  max-inline-size: 65ch;
21
22
  }
22
23
 
@@ -26,7 +26,7 @@ const meta = {
26
26
  template(
27
27
  args,
28
28
  html`<div
29
- style="background-color: var(--g-theme-color-background-subtle)"
29
+ style="background-color: var(--g-color-background-subtle)"
30
30
  >
31
31
  ${args.content}
32
32
  </div>`,
@@ -11,8 +11,8 @@
11
11
  .countdown {
12
12
  display: flex;
13
13
  justify-content: center;
14
- gap: var(--g-theme-spacing-lg, 2rem);
15
- padding: var(--g-theme-spacing-lg, 2rem) var(--g-theme-spacing-md, 1rem);
14
+ gap: var(--g-spacing-lg, 2rem);
15
+ padding: var(--g-spacing-lg, 2rem) var(--g-spacing-md, 1rem);
16
16
  text-align: center;
17
17
  }
18
18
 
@@ -20,14 +20,14 @@
20
20
  display: flex;
21
21
  flex-direction: column;
22
22
  align-items: center;
23
- gap: var(--g-theme-spacing-xs, 0.25rem);
23
+ gap: var(--g-spacing-xs, 0.25rem);
24
24
  }
25
25
 
26
26
  .countdown__value {
27
- font-size: var(--g-theme-typography-h1-font-size, 6.25rem);
28
- font-weight: var(--g-theme-typography-h1-font-weight, 900);
29
- line-height: var(--g-theme-typography-h1-line-height, 1.1);
30
- color: var(--g-theme-color-content-default);
27
+ font-size: var(--g-typography-h1-font-size, 6.25rem);
28
+ font-weight: var(--g-typography-h1-font-weight, 900);
29
+ line-height: var(--g-typography-h1-line-height, 1.1);
30
+ color: var(--g-color-content-default);
31
31
  font-variant-numeric: tabular-nums;
32
32
  }
33
33
 
@@ -36,18 +36,18 @@
36
36
  }
37
37
 
38
38
  .countdown__label {
39
- font-size: var(--g-theme-typography-body-sm-font-size, 0.875rem);
40
- color: var(--g-theme-color-content-subtle);
39
+ font-size: var(--g-typography-body-sm-font-size, 0.875rem);
40
+ color: var(--g-color-content-subtle);
41
41
  text-transform: uppercase;
42
42
  letter-spacing: 0.05em;
43
43
  }
44
44
 
45
45
  .countdown__past {
46
- font-size: var(--g-theme-typography-h2-font-size, 3rem);
47
- font-weight: var(--g-theme-typography-h2-font-weight, 900);
48
- color: var(--g-theme-color-content-default);
46
+ font-size: var(--g-typography-h2-font-size, 3rem);
47
+ font-weight: var(--g-typography-h2-font-weight, 900);
48
+ color: var(--g-color-content-default);
49
49
  text-align: center;
50
- padding: var(--g-theme-spacing-lg, 2rem) var(--g-theme-spacing-md, 1rem);
50
+ padding: var(--g-spacing-lg, 2rem) var(--g-spacing-md, 1rem);
51
51
  }
52
52
 
53
53
  @keyframes countdown-flip {
@@ -90,10 +90,10 @@ export class GrantCodesCta extends LitElement {
90
90
  }
91
91
  ${
92
92
  secondary
93
- ? html`<a
93
+ ? html`<grantcodes-button
94
+ variant="ghost"
94
95
  href=${secondary.href}
95
- class="cta__secondary-link"
96
- >${secondary.label}</a
96
+ >${secondary.label}</grantcodes-button
97
97
  >`
98
98
  : null
99
99
  }
@@ -9,9 +9,9 @@
9
9
  }
10
10
 
11
11
  .cta {
12
- padding-block: var(--g-theme-spacing-3xl);
13
- padding-inline: var(--g-theme-spacing-md);
14
- background: var(--g-theme-color-background-subtle);
12
+ padding-block: var(--g-spacing-3xl);
13
+ padding-inline: var(--g-spacing-md);
14
+ background: var(--g-color-background-subtle);
15
15
  }
16
16
 
17
17
  .cta__container {
@@ -28,39 +28,37 @@
28
28
  }
29
29
 
30
30
  .cta__eyebrow {
31
- margin: 0 0 var(--g-theme-spacing-sm);
32
- font-size: var(--g-theme-typography-meta-default-font-size);
33
- font-weight: var(--g-theme-typography-meta-default-font-weight);
34
- letter-spacing: var(--g-theme-typography-meta-default-letter-spacing);
31
+ margin: 0 0 var(--g-spacing-sm);
32
+ font: var(--g-typography-body-sm-font);
35
33
  text-transform: uppercase;
36
- color: var(--g-theme-color-content-primary, #7c3aed);
34
+ color: var(--g-color-content-primary);
37
35
  }
38
36
 
39
37
  .cta__title {
40
- margin: 0 0 var(--g-theme-spacing-md);
38
+ margin: 0 0 var(--g-spacing-md);
41
39
  font: var(--g-typography-h2-font);
42
- color: var(--g-theme-color-content-default);
40
+ color: var(--g-color-content-default);
43
41
  }
44
42
 
45
43
  .cta__text {
46
- margin: 0 0 var(--g-theme-spacing-xl);
47
- font: var(--g-theme-typography-body-lg);
48
- color: var(--g-theme-color-content-subtle);
44
+ margin: 0 0 var(--g-spacing-xl);
45
+ font: var(--g-typography-body-lg);
46
+ color: var(--g-color-content-subtle);
49
47
  }
50
48
 
51
49
  .cta__actions {
52
50
  display: flex;
53
51
  flex-wrap: wrap;
54
- gap: var(--g-theme-spacing-md);
52
+ gap: var(--g-spacing-md);
55
53
  align-items: center;
56
54
  }
57
55
 
58
56
  .cta__secondary-link {
59
- font-size: var(--g-theme-typography-body-default-font-size);
60
- font-weight: var(--g-typography-font-weight-500);
61
- color: var(--g-theme-color-content-default);
57
+ font-size: var(--g-typography-body-default-font-size);
58
+ font-weight: var(--g-typography-body-font-weight);
59
+ color: var(--g-color-content-default);
62
60
  }
63
61
 
64
62
  .cta__secondary-link:hover {
65
- color: var(--g-theme-color-content-primary, #7c3aed);
63
+ color: var(--g-color-content-primary);
66
64
  }
@@ -8,11 +8,11 @@
8
8
  width: 100%;
9
9
  padding: 0;
10
10
  max-width: 1200px;
11
- background: var(--g-theme-color-background-default);
11
+ background: var(--g-color-background-default);
12
12
  border-style: solid;
13
- border-width: var(--g-theme-border-width-sm);
14
- border-color: var(--g-theme-color-border-default);
15
- border-radius: var(--g-theme-border-radius-md);
13
+ border-width: var(--g-border-width-sm);
14
+ border-color: var(--g-color-border-default);
15
+ border-radius: var(--g-border-radius-md);
16
16
  overflow: hidden;
17
17
  }
18
18
 
@@ -28,17 +28,17 @@
28
28
  position: absolute;
29
29
  border: none;
30
30
  line-height: 1;
31
- font-size: var(--g-theme-typography-h4-font-size);
31
+ font-size: var(--g-typography-h4-font-size);
32
32
  cursor: pointer;
33
33
  background: transparent;
34
- inset-block-start: var(--g-theme-spacing-md);
35
- inset-inline-end: var(--g-theme-spacing-md);
34
+ inset-block-start: var(--g-spacing-md);
35
+ inset-inline-end: var(--g-spacing-md);
36
36
  margin-block-start: -0.25rem;
37
37
  margin-inline-end: -0.25rem;
38
38
  border-radius: 50%;
39
39
  width: 2rem;
40
40
  height: 2rem;
41
- padding: var(--g-theme-spacing-xs);
41
+ padding: var(--g-spacing-xs);
42
42
  justify-content: center;
43
43
  align-items: center;
44
44
  }
@@ -47,8 +47,8 @@
47
47
  display: flex;
48
48
  flex-direction: column;
49
49
  justify-content: flex-start;
50
- gap: var(--g-theme-spacing-md);
51
- padding: var(--g-theme-spacing-md);
50
+ gap: var(--g-spacing-md);
51
+ padding: var(--g-spacing-md);
52
52
  }
53
53
 
54
54
  .dialog__header,
@@ -64,11 +64,11 @@
64
64
  flex-direction: row;
65
65
  justify-content: space-between;
66
66
  align-items: center;
67
- padding: var(--g-theme-spacing-md);
68
- border-bottom: var(--g-theme-border-width-sm) solid
69
- var(--g-theme-color-border-default);
67
+ padding: var(--g-spacing-md);
68
+ border-bottom: var(--g-border-width-sm) solid
69
+ var(--g-color-border-default);
70
70
  }
71
71
 
72
72
  .dialog__footer ::slotted(grantcodes-button-group) {
73
- --g-theme-border-radius-md: 0;
73
+ --g-border-radius-md: 0;
74
74
  }
@@ -20,11 +20,11 @@
20
20
  anchor-name: --dropdown-trigger;
21
21
  z-index: 1000;
22
22
  min-inline-size: 12rem;
23
- margin-block: var(--g-theme-spacing-xs);
24
- padding-block: var(--g-theme-spacing-sm);
25
- background-color: var(--g-theme-color-background-default);
26
- border: 1px solid var(--g-theme-color-border-default);
27
- border-radius: var(--g-theme-border-radius-md);
23
+ margin-block: var(--g-spacing-xs);
24
+ padding-block: var(--g-spacing-sm);
25
+ background-color: var(--g-color-background-default);
26
+ border: 1px solid var(--g-color-border-default);
27
+ border-radius: var(--g-border-radius-md);
28
28
  animation: dropdown-fade-in 0.15s ease-out;
29
29
  }
30
30
 
@@ -52,31 +52,31 @@
52
52
  display: flex;
53
53
  width: 100%;
54
54
  align-items: center;
55
- gap: var(--g-theme-spacing-sm);
56
- padding-block: var(--g-theme-spacing-sm);
57
- padding-inline: var(--g-theme-spacing-md);
58
- font-size: var(--g-typography-font-size-16);
59
- color: var(--g-theme-color-content-default);
55
+ gap: var(--g-spacing-sm);
56
+ padding-block: var(--g-spacing-sm);
57
+ padding-inline: var(--g-spacing-md);
58
+ font-size: var(--g-typography-body-font-size);
59
+ color: var(--g-color-content-default);
60
60
  cursor: pointer;
61
61
  transition: background-color 0.15s ease;
62
62
  user-select: none;
63
63
  }
64
64
 
65
65
  .dropdown-item:hover {
66
- background-color: var(--g-theme-color-background-subtle-hover);
66
+ background-color: var(--g-color-background-subtle-hover);
67
67
  }
68
68
 
69
69
  .dropdown-item:focus {
70
70
  outline: none;
71
- background-color: var(--g-theme-color-background-subtle-hover);
71
+ background-color: var(--g-color-background-subtle-hover);
72
72
  }
73
73
 
74
74
  .dropdown-item:active {
75
- background-color: var(--g-theme-color-background-subtle);
75
+ background-color: var(--g-color-background-subtle);
76
76
  }
77
77
 
78
78
  .dropdown-item--disabled {
79
- color: var(--g-theme-color-content-disabled);
79
+ color: var(--g-color-content-disabled);
80
80
  cursor: not-allowed;
81
81
  opacity: 0.6;
82
82
  }
@@ -14,33 +14,32 @@
14
14
  flex-direction: column;
15
15
  align-items: center;
16
16
  justify-content: center;
17
- padding: var(--g-theme-spacing-xl);
18
- border: max(var(--g-theme-border-width-md), 0.2rem) dashed
19
- var(--g-theme-color-border-default);
20
- border-radius: var(--g-theme-border-radius-md);
21
- background-color: var(--g-theme-color-background-subtle);
17
+ padding: var(--g-spacing-xl);
18
+ border: max(var(--g-border-width-md), 0.2rem) dashed
19
+ var(--g-color-border-default);
20
+ border-radius: var(--g-border-radius-md);
21
+ background-color: var(--g-color-background-subtle);
22
22
  }
23
23
 
24
24
  .dropzone--fullscreen {
25
25
  position: fixed;
26
26
  inset: 0;
27
27
  z-index: 10;
28
- background-color: var(--g-theme-color-background-default);
28
+ background-color: var(--g-color-background-default);
29
29
  }
30
30
 
31
31
  .dropzone--fullscreen::after {
32
32
  content: "";
33
33
  display: flex;
34
34
  position: fixed;
35
- inset: var(--g-theme-spacing-xl);
35
+ inset: var(--g-spacing-xl);
36
36
  justify-content: center;
37
37
  align-items: center;
38
- padding: var(--g-theme-spacing-xl);
39
- border: max(calc(var(--g-theme-border-width-md) * 2), 0.4rem) dashed
40
- var(--g-theme-color-border-default);
41
- border-radius: calc(var(--g-theme-border-radius-md) * 2);
38
+ padding: var(--g-spacing-xl);
39
+ border: max(calc(var(--g-border-width-md) * 2), 0.4rem) dashed
40
+ var(--g-color-border-default);
41
+ border-radius: calc(var(--g-border-radius-md) * 2);
42
42
  z-index: 11;
43
- font-weight: var(--g-typography-font-weight-700);
44
43
  color: inherit;
45
44
  }
46
45
 
@@ -9,8 +9,8 @@
9
9
  }
10
10
 
11
11
  .feature-list {
12
- padding-block: var(--g-theme-spacing-3xl);
13
- padding-inline: var(--g-theme-spacing-md);
12
+ padding-block: var(--g-spacing-3xl);
13
+ padding-inline: var(--g-spacing-md);
14
14
  }
15
15
 
16
16
  .feature-list__container {
@@ -19,24 +19,24 @@
19
19
  }
20
20
 
21
21
  .feature-list__title {
22
- margin: 0 0 var(--g-theme-spacing-sm);
23
- font: var(--g-typography-h4-font);
22
+ margin: 0 0 var(--g-spacing-sm);
23
+ font: var(--g-typography-h3-font);
24
24
  text-align: center;
25
- color: var(--g-theme-color-content-default);
25
+ color: var(--g-color-content-default);
26
26
  }
27
27
 
28
28
  .feature-list__subtitle {
29
- margin: 0 auto var(--g-theme-spacing-2xl);
30
- font-size: var(--g-theme-typography-body-lg-font-size);
29
+ margin: 0 auto var(--g-spacing-2xl);
30
+ font: var(--g-typography-body-lg-font);
31
31
  text-align: center;
32
- color: var(--g-theme-color-content-subtle);
32
+ color: var(--g-color-content-subtle);
33
33
  max-width: 55ch;
34
34
  }
35
35
 
36
36
  .feature-list__grid {
37
37
  display: grid;
38
38
  grid-template-columns: repeat(var(--columns, 3), 1fr);
39
- gap: var(--g-theme-spacing-xl);
39
+ gap: var(--g-spacing-xl);
40
40
  padding: 0;
41
41
  margin: 0;
42
42
  list-style: none;
@@ -62,17 +62,17 @@
62
62
  }
63
63
 
64
64
  .feature-list__link:hover .feature-list__item-title {
65
- color: var(--g-theme-color-content-primary, #7c3aed);
65
+ color: var(--g-color-content-primary, #7c3aed);
66
66
  }
67
67
 
68
68
  .feature-list__icon {
69
69
  display: block;
70
- padding: var(--g-theme-spacing-md);
70
+ padding: var(--g-spacing-md);
71
71
  border-radius: 50%;
72
72
  inline-size: fit-content;
73
- margin-block-end: var(--g-theme-spacing-md);
74
- color: var(--g-theme-color-content-primary, currentColor);
75
- background-color: var(--g-theme-color-background-primary);
73
+ margin-block-end: var(--g-spacing-md);
74
+ color: var(--g-color-content-primary, currentColor);
75
+ background-color: var(--g-color-background-primary);
76
76
  }
77
77
 
78
78
  .feature-list__item-title {
@@ -80,5 +80,5 @@
80
80
  }
81
81
 
82
82
  .feature-list__item-desc {
83
- color: var(--g-theme-color-content-subtle);
83
+ color: var(--g-color-content-subtle);
84
84
  }
@@ -5,14 +5,13 @@
5
5
  .footer-column {
6
6
  display: flex;
7
7
  flex-direction: column;
8
- gap: var(--g-spacing-12);
8
+ gap: var(--g-spacing-sm);
9
9
  }
10
10
 
11
11
  ::slotted(h3) {
12
- font-size: var(--g-typography-font-size-16);
13
- color: var(--g-theme-color-content-default);
14
- margin: 0 0 var(--g-theme-spacing-sm) 0;
15
- font-weight: var(--g-typography-font-weight-600);
12
+ font: var(--g-typography-h6-font);
13
+ color: var(--g-color-content-default);
14
+ margin: 0 0 var(--g-spacing-sm) 0;
16
15
  }
17
16
 
18
17
  ::slotted(ul) {
@@ -21,7 +20,7 @@
21
20
  margin: 0;
22
21
  display: flex;
23
22
  flex-direction: column;
24
- gap: var(--g-theme-spacing-sm);
23
+ gap: var(--g-spacing-sm);
25
24
  }
26
25
 
27
26
  ::slotted(li) {
@@ -29,18 +28,18 @@
29
28
  }
30
29
 
31
30
  ::slotted(a) {
32
- color: var(--g-theme-color-content-subtle);
31
+ color: var(--g-color-content-subtle);
33
32
  text-decoration: none;
34
33
  transition: color 0.2s ease;
35
34
  }
36
35
 
37
36
  ::slotted(a:hover) {
38
- color: var(--g-theme-color-content-default);
37
+ color: var(--g-color-content-default);
39
38
  text-decoration: underline;
40
39
  }
41
40
 
42
41
  ::slotted(p) {
43
42
  margin: 0;
44
- color: var(--g-theme-color-content-subtle);
45
- font: var(--g-typography-body-sm);
43
+ color: var(--g-color-content-subtle);
44
+ font: var(--g-typography-body-sm-font);
46
45
  }
@@ -12,13 +12,13 @@
12
12
 
13
13
  .footer {
14
14
  margin-block-start: auto;
15
- border-block-start: 1px solid var(--g-theme-color-border-subtle);
16
- background-color: var(--g-theme-color-background-subtle);
15
+ border-block-start: 1px solid var(--g-color-border-subtle);
16
+ background-color: var(--g-color-background-subtle);
17
17
  }
18
18
 
19
19
  .footer__container {
20
- padding-block: var(--g-theme-spacing-2xl) var(--g-theme-spacing-xl);
21
- padding-inline: var(--g-theme-spacing-md);
20
+ padding-block: var(--g-spacing-2xl) var(--g-spacing-xl);
21
+ padding-inline: var(--g-spacing-md);
22
22
  max-inline-size: 1400px;
23
23
  margin-inline: auto;
24
24
  }
@@ -26,7 +26,7 @@
26
26
  .footer__columns {
27
27
  display: grid;
28
28
  grid-template-columns: repeat(var(--footer-columns, 3), 1fr);
29
- gap: var(--g-theme-spacing-xl);
29
+ gap: var(--g-spacing-xl);
30
30
  }
31
31
 
32
32
  /* Responsive grid using container queries */
@@ -44,14 +44,14 @@
44
44
 
45
45
  /* Bottom section (copyright, social links, etc.) */
46
46
  .footer__bottom {
47
- margin-block-start: var(--g-theme-spacing-xl);
48
- padding-block-start: var(--g-theme-spacing-xl);
49
- border-block-start: 1px solid var(--g-theme-color-border-default);
47
+ margin-block-start: var(--g-spacing-xl);
48
+ padding-block-start: var(--g-spacing-xl);
49
+ border-block-start: 1px solid var(--g-color-border-default);
50
50
  display: flex;
51
51
  flex-wrap: wrap;
52
52
  justify-content: space-between;
53
53
  align-items: center;
54
- gap: var(--g-theme-spacing-md);
54
+ gap: var(--g-spacing-md);
55
55
  }
56
56
 
57
57
  @container footer (max-width: 640px) {
@@ -63,8 +63,8 @@
63
63
 
64
64
  /* Slotted content styling */
65
65
  ::slotted(*) {
66
- font: var(--g-typography-font-body-sm);
67
- color: var(--g-theme-color-content-subtle);
66
+ font: var(--g-typography-body-sm-font);
67
+ color: var(--g-color-content-subtle);
68
68
  }
69
69
 
70
70
  ::slotted(p) {
@@ -73,12 +73,12 @@
73
73
  }
74
74
 
75
75
  ::slotted(a) {
76
- color: var(--g-theme-color-content-subtle);
76
+ color: var(--g-color-content-subtle);
77
77
  text-decoration: none;
78
78
  transition: color 0.2s ease;
79
79
  }
80
80
 
81
81
  ::slotted(a:hover) {
82
- color: var(--g-theme-color-content-default);
82
+ color: var(--g-color-content-default);
83
83
  text-decoration: underline;
84
84
  }
@@ -7,7 +7,7 @@
7
7
  .form-field {
8
8
  display: flex;
9
9
  flex-direction: column;
10
- gap: var(--g-theme-spacing-xs);
10
+ gap: var(--g-spacing-xs);
11
11
  padding: 0;
12
12
  margin: 0;
13
13
  border: none;
@@ -24,7 +24,7 @@
24
24
  flex-direction: row-reverse;
25
25
  align-items: center;
26
26
  justify-content: flex-end;
27
- gap: var(--g-theme-spacing-sm);
27
+ gap: var(--g-spacing-sm);
28
28
  }
29
29
 
30
30
  .form-field__label {
@@ -32,17 +32,17 @@
32
32
  padding: 0;
33
33
 
34
34
  &:where(legend) {
35
- margin-bottom: var(--g-theme-spacing-xs);
35
+ margin-bottom: var(--g-spacing-xs);
36
36
  }
37
37
  }
38
38
 
39
39
  .form-field__help {
40
- font-size: var(--g-theme-typography-body-sm-font-size);
40
+ font-size: var(--g-typography-body-sm-font-size);
41
41
  opacity: 0.7;
42
42
  }
43
43
 
44
44
  .form-field__error {
45
45
  margin: 0;
46
- font-size: var(--g-theme-typography-body-sm-font-size);
47
- color: var(--g-color-utility-red-700);
46
+ font-size: var(--g-typography-body-sm-font-size);
47
+ color: var(--g-color-content-utility-error);
48
48
  }