@graphprotocol/gds-css 0.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 (136) hide show
  1. package/README.md +80 -0
  2. package/dist/component-registry.d.ts +90 -0
  3. package/dist/component-registry.d.ts.map +1 -0
  4. package/dist/component-registry.js +93 -0
  5. package/dist/component-registry.js.map +1 -0
  6. package/dist/css-props/getCSSPropRawValue.d.ts +4 -0
  7. package/dist/css-props/getCSSPropRawValue.d.ts.map +1 -0
  8. package/dist/css-props/getCSSPropRawValue.js +41 -0
  9. package/dist/css-props/getCSSPropRawValue.js.map +1 -0
  10. package/dist/css-props/index.d.ts +5 -0
  11. package/dist/css-props/index.d.ts.map +1 -0
  12. package/dist/css-props/index.js +5 -0
  13. package/dist/css-props/index.js.map +1 -0
  14. package/dist/css-props/parseCSSPropValue.d.ts +7 -0
  15. package/dist/css-props/parseCSSPropValue.d.ts.map +1 -0
  16. package/dist/css-props/parseCSSPropValue.js +70 -0
  17. package/dist/css-props/parseCSSPropValue.js.map +1 -0
  18. package/dist/css-props/registerCSSProps.d.ts +7 -0
  19. package/dist/css-props/registerCSSProps.d.ts.map +1 -0
  20. package/dist/css-props/registerCSSProps.js +231 -0
  21. package/dist/css-props/registerCSSProps.js.map +1 -0
  22. package/dist/css-props/types.d.ts +29 -0
  23. package/dist/css-props/types.d.ts.map +1 -0
  24. package/dist/css-props/types.js +2 -0
  25. package/dist/css-props/types.js.map +1 -0
  26. package/dist/css-states/index.d.ts +3 -0
  27. package/dist/css-states/index.d.ts.map +1 -0
  28. package/dist/css-states/index.js +3 -0
  29. package/dist/css-states/index.js.map +1 -0
  30. package/dist/css-states/registerCSSStates.d.ts +23 -0
  31. package/dist/css-states/registerCSSStates.d.ts.map +1 -0
  32. package/dist/css-states/registerCSSStates.js +119 -0
  33. package/dist/css-states/registerCSSStates.js.map +1 -0
  34. package/dist/css-states/states.d.ts +71 -0
  35. package/dist/css-states/states.d.ts.map +1 -0
  36. package/dist/css-states/states.js +140 -0
  37. package/dist/css-states/states.js.map +1 -0
  38. package/dist/design-tokens.generated.d.ts +1167 -0
  39. package/dist/design-tokens.generated.d.ts.map +1 -0
  40. package/dist/design-tokens.generated.js +2675 -0
  41. package/dist/design-tokens.generated.js.map +1 -0
  42. package/dist/index.d.ts +7 -0
  43. package/dist/index.d.ts.map +1 -0
  44. package/dist/index.js +7 -0
  45. package/dist/index.js.map +1 -0
  46. package/dist/tailwind-customizations/index.d.ts +3 -0
  47. package/dist/tailwind-customizations/index.d.ts.map +1 -0
  48. package/dist/tailwind-customizations/index.js +3 -0
  49. package/dist/tailwind-customizations/index.js.map +1 -0
  50. package/dist/tailwind-customizations/registerUtilities.d.ts +9 -0
  51. package/dist/tailwind-customizations/registerUtilities.d.ts.map +1 -0
  52. package/dist/tailwind-customizations/registerUtilities.js +59 -0
  53. package/dist/tailwind-customizations/registerUtilities.js.map +1 -0
  54. package/dist/tailwind-customizations/registerVariants.d.ts +8 -0
  55. package/dist/tailwind-customizations/registerVariants.d.ts.map +1 -0
  56. package/dist/tailwind-customizations/registerVariants.js +197 -0
  57. package/dist/tailwind-customizations/registerVariants.js.map +1 -0
  58. package/dist/tailwind-customizations/variants.d.ts +72 -0
  59. package/dist/tailwind-customizations/variants.d.ts.map +1 -0
  60. package/dist/tailwind-customizations/variants.js +153 -0
  61. package/dist/tailwind-customizations/variants.js.map +1 -0
  62. package/dist/tailwind-plugin.d.ts +4 -0
  63. package/dist/tailwind-plugin.d.ts.map +1 -0
  64. package/dist/tailwind-plugin.js +12 -0
  65. package/dist/tailwind-plugin.js.map +1 -0
  66. package/dist/types.d.ts +4 -0
  67. package/dist/types.d.ts.map +1 -0
  68. package/dist/types.js +2 -0
  69. package/dist/types.js.map +1 -0
  70. package/dist/utils/cssUnescape.d.ts +20 -0
  71. package/dist/utils/cssUnescape.d.ts.map +1 -0
  72. package/dist/utils/cssUnescape.js +44 -0
  73. package/dist/utils/cssUnescape.js.map +1 -0
  74. package/dist/utils/index.d.ts +6 -0
  75. package/dist/utils/index.d.ts.map +1 -0
  76. package/dist/utils/index.js +6 -0
  77. package/dist/utils/index.js.map +1 -0
  78. package/dist/utils/pxToTw.d.ts +3 -0
  79. package/dist/utils/pxToTw.d.ts.map +1 -0
  80. package/dist/utils/pxToTw.js +5 -0
  81. package/dist/utils/pxToTw.js.map +1 -0
  82. package/dist/utils/twToPx.d.ts +3 -0
  83. package/dist/utils/twToPx.d.ts.map +1 -0
  84. package/dist/utils/twToPx.js +5 -0
  85. package/dist/utils/twToPx.js.map +1 -0
  86. package/dist/utils/twToRem.d.ts +3 -0
  87. package/dist/utils/twToRem.d.ts.map +1 -0
  88. package/dist/utils/twToRem.js +5 -0
  89. package/dist/utils/twToRem.js.map +1 -0
  90. package/dist/utils/wrapSelector.d.ts +10 -0
  91. package/dist/utils/wrapSelector.d.ts.map +1 -0
  92. package/dist/utils/wrapSelector.js +57 -0
  93. package/dist/utils/wrapSelector.js.map +1 -0
  94. package/package.json +65 -0
  95. package/src/component-registry.ts +213 -0
  96. package/src/css-props/getCSSPropRawValue.ts +52 -0
  97. package/src/css-props/index.ts +4 -0
  98. package/src/css-props/parseCSSPropValue.ts +81 -0
  99. package/src/css-props/registerCSSProps.ts +274 -0
  100. package/src/css-props/types.ts +35 -0
  101. package/src/css-states/index.ts +2 -0
  102. package/src/css-states/registerCSSStates.ts +136 -0
  103. package/src/css-states/states.ts +160 -0
  104. package/src/design-tokens.generated.ts +2799 -0
  105. package/src/index.ts +6 -0
  106. package/src/tailwind-customizations/index.ts +2 -0
  107. package/src/tailwind-customizations/registerUtilities.ts +65 -0
  108. package/src/tailwind-customizations/registerVariants.ts +296 -0
  109. package/src/tailwind-customizations/variants.ts +190 -0
  110. package/src/tailwind-plugin.ts +14 -0
  111. package/src/types.ts +4 -0
  112. package/src/utils/cssUnescape.ts +49 -0
  113. package/src/utils/index.ts +5 -0
  114. package/src/utils/pxToTw.ts +4 -0
  115. package/src/utils/twToPx.ts +4 -0
  116. package/src/utils/twToRem.ts +4 -0
  117. package/src/utils/wrapSelector.ts +60 -0
  118. package/styles/fonts/EuclidCircularA-Bold.woff2 +0 -0
  119. package/styles/fonts/EuclidCircularA-BoldItalic.woff2 +0 -0
  120. package/styles/fonts/EuclidCircularA-Light.woff2 +0 -0
  121. package/styles/fonts/EuclidCircularA-LightItalic.woff2 +0 -0
  122. package/styles/fonts/EuclidCircularA-Medium.woff2 +0 -0
  123. package/styles/fonts/EuclidCircularA-MediumItalic.woff2 +0 -0
  124. package/styles/fonts/EuclidCircularA-Regular.woff2 +0 -0
  125. package/styles/fonts/EuclidCircularA-RegularItalic.woff2 +0 -0
  126. package/styles/fonts/EuclidCircularA-Semibold.woff2 +0 -0
  127. package/styles/fonts/EuclidCircularA-SemiboldItalic.woff2 +0 -0
  128. package/styles/fonts.css +83 -0
  129. package/styles/global.css +203 -0
  130. package/styles/layers.css +8 -0
  131. package/styles/tailwind.css +13 -0
  132. package/styles/tailwind.vscode.css +11 -0
  133. package/styles/theme.css +420 -0
  134. package/styles/typography.css +198 -0
  135. package/styles/utilities.css +305 -0
  136. package/styles/variants.css +34 -0
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Wraps a CSS selector with a pseudo-class function like :is() or :not(). Returns the simplest
3
+ * equivalent selector by applying logical simplifications.
4
+ *
5
+ * @param pseudo - The pseudo-class to use (':is' or ':not').
6
+ * @param selector - The CSS selector to wrap.
7
+ * @returns The wrapped or simplified selector.
8
+ */
9
+ export function wrapSelector(pseudo: ':is' | ':not', selector: string): string {
10
+ // Trim whitespace
11
+ selector = selector.trim()
12
+
13
+ // If there's nothing to wrap, return an empty string
14
+ if (!selector) {
15
+ return ''
16
+ }
17
+
18
+ // Check if the selector matches the pattern :something(...)
19
+ const pseudoMatch = selector.match(/^:(\w+)\(/)
20
+ if (pseudoMatch) {
21
+ const existingPseudo = `:${pseudoMatch[1]}`
22
+ const startIndex = existingPseudo.length + 1 // Length of ':something('
23
+
24
+ // Find the matching closing parenthesis for the opening one
25
+ let depth = 0
26
+
27
+ for (let i = startIndex; i < selector.length; i++) {
28
+ if (selector[i] === '(') depth++
29
+ else if (selector[i] === ')') {
30
+ if (depth === 0) {
31
+ // Found the matching closing parenthesis
32
+ if (i === selector.length - 1) {
33
+ // The entire selector is wrapped in a single pseudo-class function
34
+ if (pseudo === ':is') {
35
+ // Wrapping anything in :is() doesn't change its behavior
36
+ // :is(:not(...)) is equivalent to :not(...)
37
+ // :is(:is(...)) is equivalent to :is(...)
38
+ // :is(:where(...)) is equivalent to :where(...)
39
+ return selector
40
+ }
41
+ if (pseudo === ':not' && existingPseudo === ':not') {
42
+ // Double negation: :not(:not(...)) is equivalent to :is(...)
43
+ return `:is(${selector.slice(startIndex, -1)})`
44
+ }
45
+ if (pseudo === ':not' && existingPseudo === ':is') {
46
+ // :not(:is(...)) is equivalent to :not(...)
47
+ return `:not(${selector.slice(startIndex, -1)})`
48
+ }
49
+ // Otherwise wrap normally
50
+ }
51
+ break
52
+ }
53
+ depth--
54
+ }
55
+ }
56
+ }
57
+
58
+ // Otherwise, wrap the selector
59
+ return `${pseudo}(${selector})`
60
+ }
@@ -0,0 +1,83 @@
1
+ /* ================================================================= *
2
+ * EuclidCircular (font-sans) *
3
+ * ================================================================= */
4
+
5
+ /* 300 (font-light) */
6
+ @font-face {
7
+ src: url('./fonts/EuclidCircularA-Light.woff2') format('woff2');
8
+ font-family: 'EuclidCircular';
9
+ font-weight: 300;
10
+ font-style: normal;
11
+ font-display: swap;
12
+ }
13
+ @font-face {
14
+ src: url('./fonts/EuclidCircularA-LightItalic.woff2') format('woff2');
15
+ font-family: 'EuclidCircular';
16
+ font-weight: 300;
17
+ font-style: italic;
18
+ font-display: swap;
19
+ }
20
+
21
+ /* 400 (font-regular) */
22
+ @font-face {
23
+ src: url('./fonts/EuclidCircularA-Regular.woff2') format('woff2');
24
+ font-family: 'EuclidCircular';
25
+ font-weight: 400;
26
+ font-style: normal;
27
+ font-display: swap;
28
+ }
29
+ @font-face {
30
+ src: url('./fonts/EuclidCircularA-RegularItalic.woff2') format('woff2');
31
+ font-family: 'EuclidCircular';
32
+ font-weight: 400;
33
+ font-style: italic;
34
+ font-display: swap;
35
+ }
36
+
37
+ /* 500 (font-medium) */
38
+ @font-face {
39
+ src: url('./fonts/EuclidCircularA-Medium.woff2') format('woff2');
40
+ font-family: 'EuclidCircular';
41
+ font-weight: 500;
42
+ font-style: normal;
43
+ font-display: swap;
44
+ }
45
+ @font-face {
46
+ src: url('./fonts/EuclidCircularA-MediumItalic.woff2') format('woff2');
47
+ font-family: 'EuclidCircular';
48
+ font-weight: 500;
49
+ font-style: italic;
50
+ font-display: swap;
51
+ }
52
+
53
+ /* 600 (font-semibold) */
54
+ @font-face {
55
+ src: url('./fonts/EuclidCircularA-Semibold.woff2') format('woff2');
56
+ font-family: 'EuclidCircular';
57
+ font-weight: 600;
58
+ font-style: normal;
59
+ font-display: swap;
60
+ }
61
+ @font-face {
62
+ src: url('./fonts/EuclidCircularA-SemiboldItalic.woff2') format('woff2');
63
+ font-family: 'EuclidCircular';
64
+ font-weight: 600;
65
+ font-style: italic;
66
+ font-display: swap;
67
+ }
68
+
69
+ /* 700 (font-bold) */
70
+ @font-face {
71
+ src: url('./fonts/EuclidCircularA-Bold.woff2') format('woff2');
72
+ font-family: 'EuclidCircular';
73
+ font-weight: 700;
74
+ font-style: normal;
75
+ font-display: swap;
76
+ }
77
+ @font-face {
78
+ src: url('./fonts/EuclidCircularA-BoldItalic.woff2') format('woff2');
79
+ font-family: 'EuclidCircular';
80
+ font-weight: 700;
81
+ font-style: italic;
82
+ font-display: swap;
83
+ }
@@ -0,0 +1,203 @@
1
+ @layer base.resets {
2
+ /* Root and body styles */
3
+ :root {
4
+ @apply scroll-smooth bg-canvas text-default scheme-only-dark tab-4;
5
+ interpolate-size: allow-keywords;
6
+ }
7
+ body {
8
+ @apply text-start font-sans text-16 font-regular antialiased;
9
+ text-size-adjust: none; /* Fix weird font issues on mobile */
10
+ font-synthesis: none; /* Prevent accidental faux bold, italic, etc. */
11
+ }
12
+
13
+ /**
14
+ * Prevent horizontal scrolling when elements accidentally (or intentionally) overflow the page.
15
+ * It needs to be applied to both `:root` and `body` to work properly across all browsers.
16
+ */
17
+ :root,
18
+ body {
19
+ @apply overflow-x-clip;
20
+ }
21
+
22
+ /* Test if style queries are supported. */
23
+ :root {
24
+ --gds-style-queries-test: testing;
25
+ }
26
+ body {
27
+ @apply @style-[--gds-style-queries-test=testing]:[--gds-style-queries-test:success];
28
+ }
29
+
30
+ /**
31
+ * Provide a custom property that can be used to invert some values in RTL
32
+ * (e.g. `translate-x-[calc(100%*var(--gds-rtl-factor))]`).
33
+ */
34
+ :root,
35
+ [dir='ltr'] {
36
+ --gds-rtl-factor: 1;
37
+ }
38
+ [dir='rtl'] {
39
+ --gds-rtl-factor: -1;
40
+ }
41
+
42
+ /**
43
+ * Core resets not covered by Tailwind's Preflight.
44
+ * These are critical GDS-specific resets that enable our design patterns.
45
+ */
46
+ *,
47
+ ::after,
48
+ ::before,
49
+ ::backdrop,
50
+ ::file-selector-button {
51
+ /* Make absolutely-positioned elements relative to their parent by default */
52
+ @apply relative;
53
+ /* Prevent flex items from overflowing */
54
+ @apply min-h-0 min-w-0;
55
+ /* Better defaults for background images and masks */
56
+ @apply bg-center bg-no-repeat mask-center mask-no-repeat;
57
+ /**
58
+ * Better defaults for outlines.
59
+ * - `outline-0` makes them work like borders, which are reset similarly in Preflight
60
+ * (https://github.com/tailwindlabs/tailwindcss/blob/main/packages/tailwindcss/preflight.css#L15)
61
+ * - `outline-offset-1` and `outline-(--border-color-focus)` are in case a `transition` is used on an element with a focus indicator.
62
+ * Because `transition` includes `outline-color`, only applying `outline-(--border-color-focus)` on focus-visible would result in
63
+ * an unexpected color transition (from `auto` to `focus`) when the indicator appears. And if a consumer actually wants to transition
64
+ * the focus indicator's color (with e.g. `outline transition not-focus-visible:outline-transparent`), only applying `outline-offset-1`
65
+ * on `:focus-visible` would make the outline "jump" when it appears or disappears, since the default offset is 0.
66
+ */
67
+ @apply outline-0 outline-offset-1 outline-(--border-color-focus);
68
+ /**
69
+ * Default focus indicator.
70
+ * Technically, we shouldn't have to repeat the `outline-offset-1 outline-(--border-color-focus)` from above, but Firefox has a bug
71
+ * where resetting the `outline-style` and/or `outline-width` (maybe just when done in a state like `:focus-visible`) also resets
72
+ * the `outline-color`, so better be safe than sorry. TODO: Investigate more and report the bug.
73
+ */
74
+ &:focus-visible {
75
+ @apply outline outline-offset-1 outline-(--border-color-focus);
76
+ }
77
+ /* Prevent accidental animations (e.g. `text-20 sm:text-24 duration-200`) */
78
+ @apply transition-none;
79
+ }
80
+
81
+ /* Default clickable styles */
82
+ * {
83
+ /* Turn the cursor into a pointer when hovering clickable elements (except checked radio buttons) */
84
+ @apply clickable:[:where(:not(.gds-checkable-label:has(input[type=radio]:checked)))]:cursor-pointer;
85
+ /* Remove the text cursor of disabled links */
86
+ @apply clickable-disabled:cursor-default;
87
+ /* Set some custom properties to detect the state of the nearest clickable */
88
+ @apply any-clickable:[--gds-clickable-pointer:idle];
89
+ @apply clickable:[--gds-clickable-pointer:var(--gds-state-pointer,idle)];
90
+ @apply clickable-hover:[--gds-clickable-pointer:var(--gds-state-pointer,hover)];
91
+ @apply clickable-active:[--gds-clickable-pointer:var(--gds-state-pointer,active)];
92
+ @apply any-clickable:[--gds-clickable-focus:false];
93
+ @apply clickable:[--gds-clickable-focus:var(--gds-state-focus,false)];
94
+ @apply clickable-focus-visible:[--gds-clickable-focus:var(--gds-state-focus,true)];
95
+ @apply any-clickable:[--gds-clickable-checked:var(--gds-state-checked,false)];
96
+ @apply any-clickable-indeterminate:[--gds-clickable-checked:var(--gds-state-checked,indeterminate)];
97
+ @apply any-clickable-checked:[--gds-clickable-checked:var(--gds-state-checked,true)];
98
+ @apply clickable:[--gds-clickable-disabled:var(--gds-state-disabled,false)];
99
+ @apply clickable-disabled:[--gds-clickable-disabled:var(--gds-state-disabled,true)];
100
+ @apply any-clickable:[--gds-clickable-open:var(--gds-state-open,false)];
101
+ @apply any-clickable-open:[--gds-clickable-open:var(--gds-state-open,true)];
102
+ @apply any-clickable:[--gds-clickable-current:var(--gds-state-current,false)];
103
+ @apply any-clickable-current:[--gds-clickable-current:var(--gds-state-current,true)];
104
+ }
105
+
106
+ /* Remove the opinionated text styles that browsers apply to some elements, like Preflight does with headings */
107
+ th {
108
+ font-weight: inherit; /* Default is `bold` */
109
+ }
110
+ th:not([align]),
111
+ caption:not([align]) {
112
+ text-align: inherit; /* Default is `center` */
113
+ }
114
+ address,
115
+ cite,
116
+ dfn,
117
+ var {
118
+ font-style: inherit; /* Default is `italic` */
119
+ }
120
+ mark {
121
+ color: inherit; /* Default is `black` */
122
+ }
123
+ abbr {
124
+ text-decoration: none; /* Chrome and Firefox set `text-decoration: underline dotted` on `abbr[title]` by default */
125
+ }
126
+
127
+ /* Apply our own opionated text styles to some elements */
128
+ b,
129
+ strong,
130
+ :where(select:is([multiple], [size])) optgroup {
131
+ @apply font-bolder;
132
+ }
133
+
134
+ /**
135
+ * Undo Preflight's `max-width: 100%` on images and videos, since it can be unexpected. For example, without this,
136
+ * using a class like `w-[120%]` or `w-[calc(100%+--spacing(4))]`) doesn't work as expected because the width is
137
+ * capped at 100%, unless you also add `max-w-none`, which is easy to forget.
138
+ */
139
+ img,
140
+ svg,
141
+ video {
142
+ @apply max-w-none;
143
+ }
144
+
145
+ /**
146
+ * On the other hand, the `height: auto` that Preflight applies to images and videos is useful even without the
147
+ * `max-width: 100%`, since it allows resizing images/videos that have `width` and `height` HTML attributes just by
148
+ * changing their width in CSS without distorting their aspect ratio. For some reason however, Preflight doesn't apply
149
+ * the same to SVGs even though they also accept `width` and `height` attributes and have an intrinsic aspect ratio.
150
+ * So we add it here. TODO: Remove if this PR gets merged and released: https://github.com/tailwindlabs/tailwindcss/pull/19368
151
+ */
152
+ svg {
153
+ @apply h-auto;
154
+ }
155
+
156
+ /* Undo Preflight's `border-top` on horizontal rules */
157
+ hr {
158
+ @apply border-0;
159
+ }
160
+
161
+ /* Reset more things than Preflight does on form elements */
162
+ button,
163
+ select,
164
+ input,
165
+ optgroup,
166
+ textarea,
167
+ ::file-selector-button,
168
+ label {
169
+ @apply block; /* We almost never want inline form elements, including labels */
170
+ /* TODO: Remove if this PR gets merged and released: https://github.com/tailwindlabs/tailwindcss/pull/19369 */
171
+ text-align: inherit;
172
+ text-transform: inherit;
173
+ }
174
+
175
+ /* Set our own default placeholder color, and fix Safari's wrong cursor in readonly inputs and textareas */
176
+ input,
177
+ textarea {
178
+ @apply placeholder:text-form-placeholder read-only:cursor-text;
179
+ }
180
+
181
+ /* Remove the default search input "clear" button in Chrome and Safari */
182
+ input[type='search']::-webkit-search-decoration,
183
+ input[type='search']::-webkit-search-cancel-button,
184
+ input[type='search']::-webkit-search-results-button,
185
+ input[type='search']::-webkit-search-results-decoration {
186
+ @apply hidden;
187
+ }
188
+ }
189
+
190
+ /**
191
+ * Register animatable custom properties so we can use them in transitions or animations and their values are properly
192
+ * interpolated.
193
+ */
194
+ @property --gds-animatable-number {
195
+ syntax: '<number>';
196
+ inherits: false;
197
+ initial-value: 0;
198
+ }
199
+ @property --gds-animatable-length {
200
+ syntax: '<length>';
201
+ inherits: false;
202
+ initial-value: 0;
203
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Customize Tailwind's cascade layers to introduce sub-layers for unimportant utilities,
3
+ * as well as a `base.components` layer since JS plugins cannot add styles to the `components`
4
+ * layer anymore since Tailwind 4 (see https://github.com/tailwindlabs/tailwindcss/issues/15045).
5
+ * And because `base` (unlayered) styles would always override `base.components` (layered) styles
6
+ * (see https://github.com/w3c/csswg-drafts/issues/6323), we add a `base.resets` layer as well.
7
+ */
8
+ @layer theme, base.resets, base.components, utilities.uuu, utilities.uu, utilities.u;
@@ -0,0 +1,13 @@
1
+ @import './layers.css';
2
+
3
+ @import 'tailwindcss/theme.css' layer(theme);
4
+ @import 'tailwindcss/preflight.css' layer(base.resets);
5
+ @import 'tailwindcss/utilities.css' layer(utilities) source(none);
6
+ @import '@graphprotocol/tailwindcss-animate';
7
+
8
+ @import './theme.css';
9
+ @import './typography.css';
10
+ @import './utilities.css';
11
+ @import './variants.css';
12
+ @import './fonts.css';
13
+ @import './global.css';
@@ -0,0 +1,11 @@
1
+ /**
2
+ * This file is necessary for the Tailwind IntelliSense extension to be aware of utilities and variants added by
3
+ * our custom plugin while working in the `css` package (i.e. when using `@apply` in the CSS files), because the
4
+ * plugin is not actually registered in this package (it's only exported so that consuming packages, like `react`,
5
+ * can register it with some options, like the available components and their CSS props). If we were to register
6
+ * the plugin in `tailwind.css` instead of here, the CSS of utilities we use in `react` would be generated twice.
7
+ */
8
+
9
+ @import './tailwind.css';
10
+
11
+ @plugin '@graphprotocol/gds-css/tailwind-plugin';