@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
@@ -9,8 +9,8 @@
9
9
  }
10
10
 
11
11
  .pricing {
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
  .pricing__container {
@@ -19,25 +19,24 @@
19
19
  }
20
20
 
21
21
  .pricing__title {
22
- margin: 0 0 var(--g-theme-spacing-sm);
23
- font-size: var(--g-theme-typography-h4-font-size);
24
- font-weight: var(--g-theme-typography-h4-font-weight);
22
+ margin: 0 0 var(--g-spacing-sm);
23
+ font: var(--g-typography-h3-font);
25
24
  text-align: center;
26
- color: var(--g-theme-color-content-default);
25
+ color: var(--g-color-content-default);
27
26
  }
28
27
 
29
28
  .pricing__subtitle {
30
- margin: 0 auto var(--g-theme-spacing-2xl);
31
- 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);
32
31
  text-align: center;
33
- color: var(--g-theme-color-content-subtle);
32
+ color: var(--g-color-content-subtle);
34
33
  max-width: 55ch;
35
34
  }
36
35
 
37
36
  .pricing__grid {
38
37
  display: grid;
39
38
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
40
- gap: var(--g-theme-spacing-lg);
39
+ gap: var(--g-spacing-lg);
41
40
  align-items: start;
42
41
  padding: 0;
43
42
  margin: 0;
@@ -47,58 +46,57 @@
47
46
  .pricing__tier {
48
47
  display: flex;
49
48
  flex-direction: column;
50
- gap: var(--g-theme-spacing-lg);
51
- padding: var(--g-theme-spacing-xl);
52
- border: 1px solid var(--g-theme-color-border-default);
53
- border-radius: var(--g-theme-border-radius-md, 0.5rem);
54
- background: var(--g-theme-color-background-default);
49
+ gap: var(--g-spacing-lg);
50
+ padding: var(--g-spacing-xl);
51
+ border: 1px solid var(--g-color-border-default);
52
+ border-radius: var(--g-border-radius-md, 0.5rem);
53
+ background: var(--g-color-background-default);
55
54
  }
56
55
 
57
56
  .pricing__tier--highlighted {
58
- border-color: var(--g-theme-color-border-primary, #7c3aed);
59
- background: var(--g-theme-color-background-subtle);
60
- box-shadow: var(--g-theme-shadow-lg);
57
+ border-color: var(--g-color-border-primary);
58
+ background: var(--g-color-background-subtle);
59
+ box-shadow: var(--g-box-shadow-lg);
61
60
  }
62
61
 
63
62
  .pricing__tier-header {
64
63
  display: flex;
65
64
  flex-direction: column;
66
- gap: var(--g-theme-spacing-sm);
65
+ gap: var(--g-spacing-sm);
67
66
  }
68
67
 
69
68
  .pricing__tier-name {
70
69
  margin: 0;
71
- font-size: var(--g-theme-typography-body-lg-font-size);
72
- font-weight: var(--g-theme-typography-label-lg-font-weight);
73
- color: var(--g-theme-color-content-default);
70
+ font: var(--g-typography-body-lg-font);
71
+ color: var(--g-color-content-default);
74
72
  }
75
73
 
76
74
  .pricing__price-wrap {
77
75
  display: flex;
78
76
  align-items: baseline;
79
- gap: var(--g-theme-spacing-xs);
77
+ gap: var(--g-spacing-xs);
80
78
  }
81
79
 
82
80
  .pricing__price {
83
81
  font: var(--g-typography-h2-font);
84
- color: var(--g-theme-color-content-default);
82
+ color: var(--g-color-content-default);
85
83
  }
86
84
 
87
85
  .pricing__period {
88
- font-size: var(--g-theme-typography-body-default-font-size);
89
- color: var(--g-theme-color-content-subtle);
86
+ font-size: var(--g-typography-body-default-font-size);
87
+ color: var(--g-color-content-subtle);
90
88
  }
91
89
 
92
90
  .pricing__tier-desc {
93
91
  margin: 0;
94
- font: var(--g-theme-typography-body-sm);
95
- color: var(--g-theme-color-content-subtle);
92
+ font: var(--g-typography-body-sm);
93
+ color: var(--g-color-content-subtle);
96
94
  }
97
95
 
98
96
  .pricing__features {
99
97
  display: flex;
100
98
  flex-direction: column;
101
- gap: var(--g-theme-spacing-sm);
99
+ gap: var(--g-spacing-sm);
102
100
  padding: 0;
103
101
  margin: 0;
104
102
  list-style: none;
@@ -108,24 +106,24 @@
108
106
  .pricing__feature {
109
107
  display: flex;
110
108
  align-items: center;
111
- gap: var(--g-theme-spacing-sm);
112
- font-size: var(--g-theme-typography-body-default-font-size);
113
- color: var(--g-theme-color-content-default);
109
+ gap: var(--g-spacing-sm);
110
+ font-size: var(--g-typography-body-default-font-size);
111
+ color: var(--g-color-content-default);
114
112
  }
115
113
 
116
114
  .pricing__feature--excluded {
117
- color: var(--g-theme-color-content-subtle);
115
+ color: var(--g-color-content-subtle);
118
116
  text-decoration: line-through;
119
117
  }
120
118
 
121
119
  .pricing__feature-icon {
122
- font: var(--g-theme-typography-body-sm);
123
- color: var(--g-theme-color-content-primary, #7c3aed);
120
+ font: var(--g-typography-body-sm);
121
+ color: var(--g-color-content-primary);
124
122
  flex-shrink: 0;
125
123
  }
126
124
 
127
125
  .pricing__feature--excluded .pricing__feature-icon {
128
- color: var(--g-theme-color-content-subtle);
126
+ color: var(--g-color-content-subtle);
129
127
  }
130
128
 
131
129
  .pricing__cta {
@@ -12,8 +12,8 @@
12
12
  position: relative;
13
13
  inline-size: var(--sidebar-width, 280px);
14
14
  block-size: 100%;
15
- background-color: var(--g-theme-color-background-default);
16
- border-inline-end: 1px solid var(--g-theme-color-border-default);
15
+ background-color: var(--g-color-background-default);
16
+ border-inline-end: 1px solid var(--g-color-border-default);
17
17
  overflow-y: auto;
18
18
  transition: inline-size 0.3s ease;
19
19
  flex-shrink: 0;
@@ -21,7 +21,7 @@
21
21
 
22
22
  .sidebar--right {
23
23
  border-inline-end: none;
24
- border-inline-start: 1px solid var(--g-theme-color-border-default);
24
+ border-inline-start: 1px solid var(--g-color-border-default);
25
25
  }
26
26
 
27
27
  .sidebar--collapsed {
@@ -29,7 +29,7 @@
29
29
  }
30
30
 
31
31
  .sidebar--collapsed .sidebar__content {
32
- padding-inline: var(--g-theme-spacing-sm);
32
+ padding-inline: var(--g-spacing-sm);
33
33
  }
34
34
 
35
35
  .sidebar--collapsed
@@ -48,23 +48,23 @@
48
48
  all: unset;
49
49
  display: none;
50
50
  position: fixed;
51
- inset-block-start: var(--g-theme-spacing-md);
52
- inset-inline-start: var(--g-theme-spacing-md);
51
+ inset-block-start: var(--g-spacing-md);
52
+ inset-inline-start: var(--g-spacing-md);
53
53
  z-index: 1001;
54
54
  inline-size: 2.5rem;
55
55
  block-size: 2.5rem;
56
56
  align-items: center;
57
57
  justify-content: center;
58
- background-color: var(--g-theme-color-background-default);
59
- border: 1px solid var(--g-theme-color-border-default);
60
- border-radius: var(--g-theme-border-radius-md);
58
+ background-color: var(--g-color-background-default);
59
+ border: 1px solid var(--g-color-border-default);
60
+ border-radius: var(--g-border-radius-md);
61
61
  cursor: pointer;
62
- font-size: var(--g-theme-typography-h5-font-size);
62
+ font-size: var(--g-typography-h5-font-size);
63
63
  transition: all 0.2s ease;
64
64
  }
65
65
 
66
66
  .sidebar__mobile-toggle:hover {
67
- background-color: var(--g-theme-color-background-subtle-hover);
67
+ background-color: var(--g-color-background-subtle-hover);
68
68
  }
69
69
 
70
70
  /* Show mobile toggle on small screens */
@@ -127,29 +127,29 @@
127
127
  .sidebar__toggle {
128
128
  all: unset;
129
129
  position: absolute;
130
- inset-block-start: var(--g-theme-spacing-md);
131
- inset-inline-end: var(--g-theme-spacing-sm);
130
+ inset-block-start: var(--g-spacing-md);
131
+ inset-inline-end: var(--g-spacing-sm);
132
132
  inline-size: 1.5rem;
133
133
  block-size: 1.5rem;
134
134
  display: flex;
135
135
  align-items: center;
136
136
  justify-content: center;
137
- background-color: var(--g-theme-color-background-default);
138
- border: 1px solid var(--g-theme-color-border-default);
139
- border-radius: var(--g-theme-border-radius-md);
137
+ background-color: var(--g-color-background-default);
138
+ border: 1px solid var(--g-color-border-default);
139
+ border-radius: var(--g-border-radius-md);
140
140
  cursor: pointer;
141
- font-size: var(--g-typography-font-size-14);
141
+ font-size: var(--g-typography-body-sm-font-size);
142
142
  transition: all 0.2s ease;
143
143
  z-index: 10;
144
144
  }
145
145
 
146
146
  .sidebar__toggle:hover {
147
- background-color: var(--g-theme-color-background-subtle-hover);
147
+ background-color: var(--g-color-background-subtle-hover);
148
148
  }
149
149
 
150
150
  .sidebar--right .sidebar__toggle {
151
151
  inset-inline-end: auto;
152
- inset-inline-start: var(--g-theme-spacing-sm);
152
+ inset-inline-start: var(--g-spacing-sm);
153
153
  }
154
154
 
155
155
  .sidebar--right.sidebar--collapsed .sidebar__toggle {
@@ -166,8 +166,8 @@
166
166
 
167
167
  /* Content */
168
168
  .sidebar__content {
169
- padding-block: var(--g-theme-spacing-md);
170
- padding-inline: var(--g-theme-spacing-md);
169
+ padding-block: var(--g-spacing-md);
170
+ padding-inline: var(--g-spacing-md);
171
171
  }
172
172
 
173
173
  /* View transitions */
@@ -9,9 +9,9 @@
9
9
  }
10
10
 
11
11
  .stats {
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
  .stats__container {
@@ -20,17 +20,16 @@
20
20
  }
21
21
 
22
22
  .stats__title {
23
- margin: 0 0 var(--g-theme-spacing-xl);
24
- font-size: var(--g-theme-typography-h4-font-size);
25
- font-weight: var(--g-theme-typography-h4-font-weight);
23
+ margin: 0 0 var(--g-spacing-xl);
24
+ font: var(--g-typography-h3-font);
26
25
  text-align: center;
27
- color: var(--g-theme-color-content-default);
26
+ color: var(--g-color-content-default);
28
27
  }
29
28
 
30
29
  .stats__grid {
31
30
  display: grid;
32
31
  grid-template-columns: repeat(var(--columns, 4), 1fr);
33
- gap: var(--g-theme-spacing-xl);
32
+ gap: var(--g-spacing-xl);
34
33
  padding: 0;
35
34
  margin: 0;
36
35
  list-style: none;
@@ -46,23 +45,22 @@
46
45
  .stats__item {
47
46
  display: flex;
48
47
  flex-direction: column;
49
- gap: var(--g-theme-spacing-xs);
48
+ gap: var(--g-spacing-xs);
50
49
  }
51
50
 
52
51
  .stats__value {
53
- font: var(--g-theme-typography-h2);
52
+ font: var(--g-typography-h2);
54
53
  white-space: nowrap;
55
54
  line-height: 1;
56
- color: var(--g-theme-color-content-primary, #7c3aed);
55
+ color: var(--g-color-content-primary, #7c3aed);
57
56
  }
58
57
 
59
58
  .stats__label {
60
- font-size: var(--g-theme-typography-label-default-font-size);
61
- font-weight: var(--g-theme-typography-label-default-font-weight);
62
- color: var(--g-theme-color-content-default);
59
+ font: var(--g-typography-h5-font);
60
+ color: var(--g-color-content-default);
63
61
  }
64
62
 
65
63
  .stats__context {
66
- font-size: var(--g-theme-typography-body-sm-font-size);
67
- color: var(--g-theme-color-content-subtle);
64
+ font: var(--g-typography-body-sm-font);
65
+ color: var(--g-color-content-subtle);
68
66
  }
@@ -1,6 +1,11 @@
1
1
  import { LitElement } from "lit";
2
2
  import { html } from "lit/static-html.js";
3
3
 
4
+ /**
5
+ * Internal shared base class for tabs primitives.
6
+ * @internal
7
+ * @tag grantcodes-tabs-item
8
+ */
4
9
  export class GrantCodesTabsItem extends LitElement {
5
10
  static properties = {
6
11
  active: { type: Boolean },
@@ -31,10 +31,10 @@ export class GrantCodesTabs extends LitElement {
31
31
  }
32
32
  }
33
33
 
34
- /** @type {GrantCodesTab[]} */
34
+ /** @type {import("./tab.component.js").GrantCodesTab[]} */
35
35
  tabs = [];
36
36
 
37
- /** @type {GrantCodesTabsButton[]} */
37
+ /** @type {import("./internal/tabs-button.component.js").GrantCodesTabsButton[]} */
38
38
  tabButtons = [];
39
39
 
40
40
  get activeTab() {
@@ -130,3 +130,5 @@ export class GrantCodesTabs extends LitElement {
130
130
  `;
131
131
  }
132
132
  }
133
+
134
+ export { GrantCodesTab, GrantCodesTabsButton };
@@ -22,8 +22,8 @@
22
22
  width: fit-content;
23
23
  min-width: 100%;
24
24
  background-image: linear-gradient(
25
- var(--g-theme-color-border-default, var(--g-theme-color-primary-100)),
26
- var(--g-theme-color-border-default, var(--g-theme-color-primary-100))
25
+ var(--g-color-border-default, var(--g-color-primary-100)),
26
+ var(--g-color-border-default, var(--g-color-primary-100))
27
27
  );
28
28
  background-size: auto var(--border-width);
29
29
  background-position: bottom;
@@ -33,13 +33,13 @@
33
33
  .tabs__tab {
34
34
  padding: 0.6em 1.2em;
35
35
  line-height: 1;
36
- font-size: var(--g-theme-typography-body-default-font-size);
36
+ font-size: var(--g-typography-body-default-font-size);
37
37
  border: none;
38
38
  border-block-start: var(--border-width) solid transparent;
39
39
  border-block-end: var(--border-width) solid
40
- var(--g-theme-color-border-default, var(--g-theme-color-primary-100));
40
+ var(--g-color-border-default, var(--g-color-primary-100));
41
41
  background-color: transparent;
42
- color: var(--g-theme-color-content-default);
42
+ color: var(--g-color-content-default);
43
43
  opacity: 0.7;
44
44
  white-space: nowrap;
45
45
  cursor: pointer;
@@ -51,7 +51,7 @@
51
51
 
52
52
  @media (min-width: 40em) {
53
53
  .tabs__tab {
54
- padding-inline: var(--g-theme-spacing-md);
54
+ padding-inline: var(--g-spacing-md);
55
55
  }
56
56
  }
57
57
 
@@ -59,28 +59,28 @@
59
59
  .tabs__tab:focus-visible {
60
60
  opacity: 1;
61
61
  border-block-end-color: var(
62
- --g-theme-color-border-default,
63
- var(--g-theme-color-primary-200)
62
+ --g-color-border-default,
63
+ var(--g-color-primary-200)
64
64
  );
65
65
  }
66
66
 
67
67
  .tabs__tab.is-active {
68
68
  border-block-end-color: var(
69
- --g-theme-color-border-primary,
70
- var(--g-theme-color-primary-500)
69
+ --g-color-border-primary,
70
+ var(--g-color-primary-500)
71
71
  );
72
- background-color: var(--g-theme-color-background-subtle);
73
- color: var(--g-theme-color-content-default);
72
+ background-color: var(--g-color-background-subtle);
73
+ color: var(--g-color-content-default);
74
74
  z-index: 1;
75
75
  position: relative;
76
76
  opacity: 1;
77
77
  }
78
78
 
79
79
  .tabs__panel {
80
- margin-block-start: var(--g-theme-spacing-md);
80
+ margin-block-start: var(--g-spacing-md);
81
81
  outline-color: var(
82
- --g-theme-color-border-primary,
83
- var(--g-theme-color-primary-500)
82
+ --g-color-border-primary,
83
+ var(--g-color-primary-500)
84
84
  );
85
85
  outline-offset: 1rem;
86
86
  display: none;
@@ -1,7 +1,7 @@
1
1
  import { LitElement, html } from "lit";
2
2
  import testimonialsStyles from "./testimonials.css" with { type: "css" };
3
3
  import "../card/card.js";
4
- import "../avatar/avatar.js";
4
+ import "../person/person.js";
5
5
 
6
6
  export class GrantCodesTestimonials extends LitElement {
7
7
  static styles = [testimonialsStyles];
@@ -63,27 +63,13 @@ export class GrantCodesTestimonials extends LitElement {
63
63
  </p>
64
64
  </blockquote>
65
65
  <footer class="testimonials__attribution" slot="footer">
66
- ${
67
- item.avatar
68
- ? html`<grantcodes-avatar
69
- src=${item.avatar}
70
- name=${item.name}
71
- size="small"
72
- ></grantcodes-avatar>`
73
- : null
74
- }
75
- <div class="testimonials__meta">
76
- <cite class="testimonials__name">${item.name}</cite>
77
- ${
78
- item.role || item.company
79
- ? html`<span class="testimonials__role">
80
- ${[item.role, item.company]
81
- .filter(Boolean)
82
- .join(", ")}
83
- </span>`
84
- : null
85
- }
86
- </div>
66
+ <grantcodes-person
67
+ name=${item.name ?? ""}
68
+ role=${item.role ?? ""}
69
+ company=${item.company ?? ""}
70
+ avatar=${item.avatar ?? ""}
71
+ size="small"
72
+ ></grantcodes-person>
87
73
  </footer>
88
74
  </grantcodes-card>
89
75
  </li>
@@ -9,8 +9,8 @@
9
9
  }
10
10
 
11
11
  .testimonials {
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
  .testimonials__container {
@@ -19,17 +19,16 @@
19
19
  }
20
20
 
21
21
  .testimonials__title {
22
- margin: 0 0 var(--g-theme-spacing-2xl);
23
- font-size: var(--g-theme-typography-h4-font-size);
24
- font-weight: var(--g-theme-typography-h4-font-weight);
22
+ margin: 0 0 var(--g-spacing-2xl);
23
+ font: var(--g-typography-h3-font);
25
24
  text-align: center;
26
- color: var(--g-theme-color-content-default);
25
+ color: var(--g-color-content-default);
27
26
  }
28
27
 
29
28
  .testimonials__grid--cards {
30
29
  display: grid;
31
30
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
32
- gap: var(--g-theme-spacing-lg);
31
+ gap: var(--g-spacing-lg);
33
32
  padding: 0;
34
33
  margin: 0;
35
34
  list-style: none;
@@ -38,7 +37,7 @@
38
37
  .testimonials__grid--list {
39
38
  display: flex;
40
39
  flex-direction: column;
41
- gap: var(--g-theme-spacing-xl);
40
+ gap: var(--g-spacing-xl);
42
41
  max-width: 65ch;
43
42
  margin: 0 auto;
44
43
  padding: 0;
@@ -49,36 +48,18 @@
49
48
  margin: 0;
50
49
  display: flex;
51
50
  flex-direction: column;
52
- gap: var(--g-theme-spacing-lg);
51
+ gap: var(--g-spacing-lg);
53
52
  height: 100%;
54
53
  }
55
54
 
56
55
  .testimonials__text {
57
56
  margin: 0;
58
- font: var(--g-theme-typography-body-default);
59
- color: var(--g-theme-color-content-default);
57
+ font: var(--g-typography-body-default);
58
+ font-style: italic;
59
+ color: var(--g-color-content-default);
60
60
  flex: 1;
61
61
  }
62
62
 
63
63
  .testimonials__attribution {
64
- display: flex;
65
- align-items: center;
66
- gap: var(--g-theme-spacing-sm);
67
- }
68
-
69
- .testimonials__meta {
70
- display: flex;
71
- flex-direction: column;
72
- gap: var(--g-theme-spacing-xs);
73
- }
74
-
75
- .testimonials__name {
76
- font: var(--g-theme-typography-label-default);
77
- font-style: normal;
78
- color: var(--g-theme-color-content-default);
79
- }
80
-
81
- .testimonials__role {
82
- font-size: var(--g-theme-typography-body-sm-font-size);
83
- color: var(--g-theme-color-content-subtle);
64
+ margin-top: auto;
84
65
  }
@@ -15,8 +15,8 @@
15
15
  z-index: 9999;
16
16
  display: flex;
17
17
  flex-direction: column;
18
- gap: var(--g-theme-spacing-sm);
19
- padding: var(--g-theme-spacing-md);
18
+ gap: var(--g-spacing-sm);
19
+ padding: var(--g-spacing-md);
20
20
  pointer-events: none;
21
21
  max-inline-size: 100vw;
22
22
  max-block-size: 100vh;
@@ -60,13 +60,13 @@
60
60
  .toast {
61
61
  display: flex;
62
62
  align-items: flex-start;
63
- gap: var(--g-theme-spacing-sm);
63
+ gap: var(--g-spacing-sm);
64
64
  min-inline-size: 300px;
65
65
  max-inline-size: 500px;
66
- padding-block: var(--g-theme-spacing-md);
67
- padding-inline: var(--g-theme-spacing-md);
68
- border-radius: var(--g-theme-border-radius-md);
69
- background-color: var(--g-theme-color-background-default);
66
+ padding-block: var(--g-spacing-md);
67
+ padding-inline: var(--g-spacing-md);
68
+ border-radius: var(--g-border-radius-md);
69
+ background-color: var(--g-color-background-default);
70
70
  border-inline-start-width: 4px;
71
71
  border-inline-start-style: solid;
72
72
  pointer-events: auto;
@@ -84,19 +84,19 @@
84
84
 
85
85
  /* Variant colors */
86
86
  .toast--info {
87
- border-inline-start-color: var(--g-theme-color-background-utility-info);
87
+ border-inline-start-color: var(--g-color-background-utility-info);
88
88
  }
89
89
 
90
90
  .toast--success {
91
- border-inline-start-color: var(--g-theme-color-background-utility-success);
91
+ border-inline-start-color: var(--g-color-background-utility-success);
92
92
  }
93
93
 
94
94
  .toast--warning {
95
- border-inline-start-color: var(--g-theme-color-background-utility-warning);
95
+ border-inline-start-color: var(--g-color-background-utility-warning);
96
96
  }
97
97
 
98
98
  .toast--error {
99
- border-inline-start-color: var(--g-theme-color-background-utility-error);
99
+ border-inline-start-color: var(--g-color-background-utility-error);
100
100
  }
101
101
 
102
102
  /* Toast icon */
@@ -107,19 +107,19 @@
107
107
  }
108
108
 
109
109
  .toast--info .toast__icon {
110
- color: var(--g-theme-color-background-utility-info);
110
+ color: var(--g-color-background-utility-info);
111
111
  }
112
112
 
113
113
  .toast--success .toast__icon {
114
- color: var(--g-theme-color-background-utility-success);
114
+ color: var(--g-color-background-utility-success);
115
115
  }
116
116
 
117
117
  .toast--warning .toast__icon {
118
- color: var(--g-theme-color-background-utility-warning);
118
+ color: var(--g-color-background-utility-warning);
119
119
  }
120
120
 
121
121
  .toast--error .toast__icon {
122
- color: var(--g-theme-color-background-utility-error);
122
+ color: var(--g-color-background-utility-error);
123
123
  }
124
124
 
125
125
  /* Toast content */
@@ -129,15 +129,14 @@
129
129
  }
130
130
 
131
131
  .toast__title {
132
- font-weight: var(--g-typography-font-weight-600);
133
- font-size: var(--g-typography-font-size-16);
132
+ font: var(--g-typography-h6-font);
134
133
  margin-block-end: 0.25rem;
135
- color: var(--g-theme-color-content-default);
134
+ color: var(--g-color-content-default);
136
135
  }
137
136
 
138
137
  .toast__message {
139
- font-size: var(--g-typography-font-size-14);
140
- color: var(--g-theme-color-content-subtle);
138
+ font: var(--g-typography-body-sm-font);
139
+ color: var(--g-color-content-subtle);
141
140
  line-height: 1.5;
142
141
  }
143
142
 
@@ -150,16 +149,16 @@
150
149
  display: inline-flex;
151
150
  align-items: center;
152
151
  justify-content: center;
153
- border-radius: var(--g-theme-border-radius-md);
154
- color: var(--g-theme-color-content-subtle);
152
+ border-radius: var(--g-border-radius-md);
153
+ color: var(--g-color-content-subtle);
155
154
  cursor: pointer;
156
155
  transition: all 0.2s ease;
157
156
  margin-inline-start: 0.5rem;
158
157
  }
159
158
 
160
159
  .toast__close:hover {
161
- color: var(--g-theme-color-content-default);
162
- background-color: var(--g-theme-color-background-subtle-hover);
160
+ color: var(--g-color-content-default);
161
+ background-color: var(--g-color-background-subtle-hover);
163
162
  }
164
163
 
165
164
  /* Bottom position toasts slide up instead of down */