Evrard t'Serstevens commited on
Commit
8efe5b4
1 Parent(s): 3976e9e
.eslintcache ADDED
@@ -0,0 +1 @@
 
 
1
+ [{"/Users/evrardtserstevens/Documents/HuggingFace/datasetcard/src/index.js":"1","/Users/evrardtserstevens/Documents/HuggingFace/datasetcard/src/reportWebVitals.js":"2","/Users/evrardtserstevens/Documents/HuggingFace/datasetcard/src/App.js":"3","/Users/evrardtserstevens/Documents/HuggingFace/datasetcard/src/Instructions.js":"4"},{"size":500,"mtime":1607266233636,"results":"5","hashOfConfig":"6"},{"size":362,"mtime":1607266233637,"results":"7","hashOfConfig":"6"},{"size":21731,"mtime":1607340449312,"results":"8","hashOfConfig":"6"},{"size":12558,"mtime":1607338863269,"results":"9","hashOfConfig":"6"},{"filePath":"10","messages":"11","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"12"},"d40mw9",{"filePath":"13","messages":"14","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"12"},{"filePath":"15","messages":"16","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"17","messages":"18","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},"/Users/evrardtserstevens/Documents/HuggingFace/datasetcard/src/index.js",[],["19","20"],"/Users/evrardtserstevens/Documents/HuggingFace/datasetcard/src/reportWebVitals.js",[],"/Users/evrardtserstevens/Documents/HuggingFace/datasetcard/src/App.js",["21","22"],"/Users/evrardtserstevens/Documents/HuggingFace/datasetcard/src/Instructions.js",["23"],{"ruleId":"24","replacedBy":"25"},{"ruleId":"26","replacedBy":"27"},{"ruleId":"28","severity":1,"message":"29","line":1,"column":27,"nodeType":"30","messageId":"31","endLine":1,"endColumn":36},{"ruleId":"32","severity":1,"message":"33","line":397,"column":75,"nodeType":"34","endLine":397,"endColumn":90},{"ruleId":"35","severity":1,"message":"36","line":3,"column":1,"nodeType":"37","endLine":166,"endColumn":2},"no-native-reassign",["38"],"no-negated-in-lhs",["39"],"no-unused-vars","'useEffect' is defined but never used.","Identifier","unusedVar","react/jsx-no-target-blank","Using target=\"_blank\" without rel=\"noreferrer\" is a security risk: see https://html.spec.whatwg.org/multipage/links.html#link-type-noopener","JSXAttribute","import/no-anonymous-default-export","Assign object to a variable before exporting as module default","ExportDefaultDeclaration","no-global-assign","no-unsafe-negation"]
craco.config.js ADDED
@@ -0,0 +1,11 @@
 
 
 
 
 
 
 
 
 
 
 
 
1
+ // craco.config.js
2
+ module.exports = {
3
+ style: {
4
+ postcss: {
5
+ plugins: [
6
+ require('tailwindcss'),
7
+ require('autoprefixer'),
8
+ ],
9
+ },
10
+ },
11
+ }
package-lock.json CHANGED
The diff for this file is too large to render. See raw diff
 
package.json CHANGED
@@ -3,18 +3,26 @@
3
  "version": "0.1.0",
4
  "private": true,
5
  "dependencies": {
 
6
  "@testing-library/jest-dom": "^5.11.6",
7
  "@testing-library/react": "^11.2.2",
8
  "@testing-library/user-event": "^12.5.0",
 
 
 
9
  "react": "^17.0.1",
10
  "react-dom": "^17.0.1",
 
11
  "react-scripts": "4.0.1",
 
 
 
12
  "web-vitals": "^0.2.4"
13
  },
14
  "scripts": {
15
- "start": "react-scripts start",
16
- "build": "react-scripts build",
17
- "test": "react-scripts test",
18
  "eject": "react-scripts eject"
19
  },
20
  "eslintConfig": {
 
3
  "version": "0.1.0",
4
  "private": true,
5
  "dependencies": {
6
+ "@craco/craco": "^5.9.0",
7
  "@testing-library/jest-dom": "^5.11.6",
8
  "@testing-library/react": "^11.2.2",
9
  "@testing-library/user-event": "^12.5.0",
10
+ "@uiw/react-md-editor": "^1.14.7",
11
+ "autoprefixer": "^9.8.6",
12
+ "postcss": "^7.0.35",
13
  "react": "^17.0.1",
14
  "react-dom": "^17.0.1",
15
+ "react-markdown": "^5.0.3",
16
  "react-scripts": "4.0.1",
17
+ "save-file": "^2.3.1",
18
+ "tailwindcss": "npm:@tailwindcss/postcss7-compat@^2.0.1",
19
+ "tailwindcss-grid": "^1.2.1",
20
  "web-vitals": "^0.2.4"
21
  },
22
  "scripts": {
23
+ "start": "craco start",
24
+ "build": "craco build",
25
+ "test": "craco test",
26
  "eject": "react-scripts eject"
27
  },
28
  "eslintConfig": {
postcss.config.js ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ module.exports = {
2
+ plugins: {
3
+ tailwindcss: {},
4
+ autoprefixer: {},
5
+ },
6
+ }
src/App.css DELETED
@@ -1,38 +0,0 @@
1
- .App {
2
- text-align: center;
3
- }
4
-
5
- .App-logo {
6
- height: 40vmin;
7
- pointer-events: none;
8
- }
9
-
10
- @media (prefers-reduced-motion: no-preference) {
11
- .App-logo {
12
- animation: App-logo-spin infinite 20s linear;
13
- }
14
- }
15
-
16
- .App-header {
17
- background-color: #282c34;
18
- min-height: 100vh;
19
- display: flex;
20
- flex-direction: column;
21
- align-items: center;
22
- justify-content: center;
23
- font-size: calc(10px + 2vmin);
24
- color: white;
25
- }
26
-
27
- .App-link {
28
- color: #61dafb;
29
- }
30
-
31
- @keyframes App-logo-spin {
32
- from {
33
- transform: rotate(0deg);
34
- }
35
- to {
36
- transform: rotate(360deg);
37
- }
38
- }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
src/App.js CHANGED
@@ -1,23 +1,414 @@
1
- import logo from './logo.svg';
2
- import './App.css';
 
 
3
 
4
  function App() {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5
  return (
6
- <div className="App">
7
- <header className="App-header">
8
- <img src={logo} className="App-logo" alt="logo" />
9
- <p>
10
- Edit <code>src/App.js</code> and save to reload.
11
- </p>
12
- <a
13
- className="App-link"
14
- href="https://reactjs.org"
15
- target="_blank"
16
- rel="noopener noreferrer"
17
- >
18
- Learn React
19
- </a>
20
- </header>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
21
  </div>
22
  );
23
  }
 
1
+ import React, { useState, useEffect } from 'react';
2
+ import Instructions from './Instructions'
3
+ import ReactMarkdown from "react-markdown";
4
+ import {save} from 'save-file'
5
 
6
  function App() {
7
+
8
+ const [fieldFocussed, setFieldFocussed] = useState()
9
+ const [card, setCard] = useState({})
10
+
11
+ async function handleClick(e){
12
+ setFieldFocussed(e.target.id)
13
+ }
14
+
15
+ async function handleChange(e){
16
+ setCard({...card, [e.target.id]:e.currentTarget.value})
17
+ }
18
+
19
+ async function exportFile(card){
20
+ var textTest = `
21
+ # Dataset Card for [Dataset Name]
22
+
23
+ ## Table of Contents
24
+ - [Dataset Description](#dataset-description)
25
+ - [Dataset Summary](#dataset-summary)
26
+ - [Supported Tasks](#supported-tasks-and-leaderboards)
27
+ - [Languages](#languages)
28
+ - [Dataset Structure](#dataset-structure)
29
+ - [Data Instances](#data-instances)
30
+ - [Data Fields](#data-instances)
31
+ - [Data Splits](#data-instances)
32
+ - [Dataset Creation](#dataset-creation)
33
+ - [Curation Rationale](#curation-rationale)
34
+ - [Source Data](#source-data)
35
+ - [Annotations](#annotations)
36
+ - [Personal and Sensitive Information](#personal-and-sensitive-information)
37
+ - [Considerations for Using the Data](#considerations-for-using-the-data)
38
+ - [Social Impact of Dataset](#social-impact-of-dataset)
39
+ - [Discussion of Biases](#discussion-of-biases)
40
+ - [Other Known Limitations](#other-known-limitations)
41
+ - [Additional Information](#additional-information)
42
+ - [Dataset Curators](#dataset-curators)
43
+ - [Licensing Information](#licensing-information)
44
+ - [Citation Information](#citation-information)
45
+
46
+ ## Dataset Description
47
+
48
+ - **Homepage:** ${card.homepage}
49
+ - **Repository:** ${card.repository}
50
+ - **Paper:** ${card.paper}
51
+ - **Leaderboard:** ${card.leaderboard}
52
+ - **Point of Contact:** ${card.contact}
53
+
54
+ ### Dataset Summary
55
+
56
+ ${card.datasetSummary}
57
+
58
+ ### Supported Tasks and Leaderboards
59
+
60
+ ${card.supportedTasks}
61
+
62
+ ### Languages
63
+
64
+ ${card.languages}
65
+
66
+ ## Dataset Structure
67
+
68
+ ### Data Instances
69
+
70
+ ${card.dataInstances}
71
+
72
+ ### Data Fields
73
+
74
+ ${card.dataFields}
75
+
76
+ ### Data Splits
77
+
78
+ ${card.dataSplits}
79
+
80
+ ## Dataset Creation
81
+
82
+ ### Curation Rationale
83
+
84
+ ${card.curationRationale}
85
+
86
+ ### Source Data
87
+
88
+ #### Initial Data Collection and Normalization
89
+
90
+ ${card.dataCollection}
91
+
92
+ #### Who are the source language producers?
93
+
94
+ ${card.sourceLanguage}
95
+
96
+ ### Annotations
97
+
98
+ #### Annotation process
99
+
100
+ ${card.annotationProcess}
101
+
102
+ #### Who are the annotators?
103
+
104
+ ${card.annotators}
105
+
106
+ ### Personal and Sensitive Information
107
+
108
+ ${card.personalInformation}
109
+
110
+ ## Considerations for Using the Data
111
+
112
+ ### Social Impact of Dataset
113
+
114
+ ${card.socialImpact}
115
+
116
+ ### Discussion of Biases
117
+
118
+ ${card.biasesDiscussion}
119
+
120
+ ### Other Known Limitations
121
+
122
+ ${card.limitations}
123
+
124
+ ## Additional Information
125
+
126
+ ### Dataset Curators
127
+
128
+ ${card.datasetCurators}
129
+
130
+ ### Licensing Information
131
+
132
+ ${card.licensingInformation}
133
+
134
+ ### Citation Information
135
+
136
+ ${card.citationInformation}
137
+ `
138
+ await save(textTest, "README.md")
139
+ }
140
+
141
+
142
  return (
143
+ <div className="overflow-y-auto min-h-full font-sans">
144
+ <div className="grid grid-cols-12 gap-6">
145
+ <div className="col-span-8">
146
+ <div className="h-screen flex overflow-hidden bg-white">
147
+ <div className="max-w-7xl mx-auto py-16 px-4 sm:py-24 sm:px-6 lg:px-8">
148
+ <div className="text-center">
149
+ <p className="mt-1 text-4xl font-extrabold text-gray-700 sm:tracking-tight">New Dataset Card</p>
150
+ <p className="max-w-xl mt-5 mx-auto text-lg text-gray-500">Fill in the form below</p>
151
+ </div>
152
+
153
+ <div className="shadow p-4 rounded-lg">
154
+ <div className="max-w-7xl overflow-y-auto max-h-lg mx-auto py-12 px-4 divide-y-2 divide-gray-200 sm:px-6 lg:py-16 lg:px-8">
155
+
156
+ <div className="mt-2">
157
+ <dl className="space-y-8 divide-y divide-gray-200">
158
+
159
+ <div className="md:grid md:grid-cols-12 md:gap-8">
160
+ <dt className="text-base font-medium text-gray-700 md:col-span-3">
161
+ Homepage
162
+ </dt>
163
+ <dd className="md:mt-0 md:col-span-9">
164
+ <textarea onClick={(e) => handleClick(e)} onChange={(e) => handleChange(e)} id="homepage" name="about" rows="1" className="font-sans p-2 shadow-sm border border-solid border-gray-300 block w-full text-gray-600 sm:text-sm rounded-md"></textarea>
165
+ </dd>
166
+ </div>
167
+
168
+ <div className="pt-6 md:grid md:grid-cols-12 md:gap-8">
169
+ <dt className="text-base font-medium text-gray-700 md:col-span-3">
170
+ Repository
171
+ </dt>
172
+ <dd className="mt-2 md:mt-0 md:col-span-9">
173
+ <textarea onClick={(e) => handleClick(e)} onChange={(e) => handleChange(e)} id="repository" name="about" rows="1" className="font-sans p-2 shadow-sm border border-solid border-gray-300 block w-full text-gray-600 sm:text-sm rounded-md"></textarea>
174
+ </dd>
175
+ </div>
176
+
177
+ <div className="pt-6 md:grid md:grid-cols-12 md:gap-8">
178
+ <dt className="text-base font-medium text-gray-700 md:col-span-3">
179
+ Paper
180
+ </dt>
181
+ <dd className="mt-2 md:mt-0 md:col-span-9">
182
+ <textarea onClick={(e) => handleClick(e)} onChange={(e) => handleChange(e)} id="paper" name="about" rows="1" className="font-sans p-2 shadow-sm border border-solid border-gray-300 block w-full text-gray-600 sm:text-sm rounded-md"></textarea>
183
+ </dd>
184
+ </div>
185
+
186
+ <div className="pt-6 md:grid md:grid-cols-12 md:gap-8">
187
+ <dt className="text-base font-medium text-gray-700 md:col-span-3">
188
+ Leaderboard
189
+ </dt>
190
+ <dd className="mt-2 md:mt-0 md:col-span-9">
191
+ <textarea onClick={(e) => handleClick(e)} onChange={(e) => handleChange(e)} id="leaderboard" name="about" rows="1" className="font-sans p-2 shadow-sm border border-solid border-gray-300 block w-full text-gray-600 sm:text-sm rounded-md"></textarea>
192
+ </dd>
193
+ </div>
194
+
195
+ <div className="pt-6 md:grid md:grid-cols-12 md:gap-8">
196
+ <dt className="text-base font-medium text-gray-700 md:col-span-3">
197
+ Point of Contact
198
+ </dt>
199
+ <dd className="mt-2 md:mt-0 md:col-span-9">
200
+ <textarea onClick={(e) => handleClick(e)} onChange={(e) => handleChange(e)} id="contact" name="about" rows="1" className="font-sans p-2 shadow-sm border border-solid border-gray-300 block w-full text-gray-600 sm:text-sm rounded-md"></textarea>
201
+ </dd>
202
+ </div>
203
+
204
+ <div className="pt-6 md:grid md:grid-cols-12 md:gap-8">
205
+ <dt className="text-base font-medium text-gray-700 md:col-span-3">
206
+ Dataset Summary
207
+ </dt>
208
+ <dd className="mt-2 md:mt-0 md:col-span-9">
209
+ <textarea onClick={(e) => handleClick(e)} onChange={(e) => handleChange(e)} id="datasetSummary" name="about" rows="4" className="font-sans p-2 shadow-sm border border-solid border-gray-300 block w-full text-gray-600 sm:text-sm rounded-md"></textarea>
210
+ </dd>
211
+ </div>
212
+
213
+ <div className="pt-6 md:grid md:grid-cols-12 md:gap-8">
214
+ <dt className="text-base font-medium text-gray-700 md:col-span-3">
215
+ Supported Tasks and Leaderboards
216
+ </dt>
217
+ <dd className="mt-2 md:mt-0 md:col-span-9">
218
+ <textarea onClick={(e) => handleClick(e)} onChange={(e) => handleChange(e)} id="supportedTasks" name="about" rows="4" className="font-sans p-2 shadow-sm border border-solid border-gray-300 block w-full text-gray-600 sm:text-sm rounded-md"></textarea>
219
+ </dd>
220
+ </div>
221
+
222
+ <div className="pt-6 md:grid md:grid-cols-12 md:gap-8">
223
+ <dt className="text-base font-medium text-gray-700 md:col-span-3">
224
+ Languages
225
+ </dt>
226
+ <dd className="mt-2 md:mt-0 md:col-span-9">
227
+ <textarea onClick={(e) => handleClick(e)} onChange={(e) => handleChange(e)} id="languages" name="about" rows="4" className="font-sans p-2 shadow-sm border border-solid border-gray-300 block w-full text-gray-600 sm:text-sm rounded-md"></textarea>
228
+ </dd>
229
+ </div>
230
+
231
+ <div className="pt-6 md:grid md:grid-cols-12 md:gap-8">
232
+ <dt className="text-base font-medium text-gray-700 md:col-span-3">
233
+ Data Instances
234
+ </dt>
235
+ <dd className="mt-2 md:mt-0 md:col-span-9">
236
+ <textarea onClick={(e) => handleClick(e)} onChange={(e) => handleChange(e)} id="dataInstances" name="about" rows="4" className="font-sans p-2 shadow-sm border border-solid border-gray-300 block w-full text-gray-600 sm:text-sm rounded-md"></textarea>
237
+ </dd>
238
+ </div>
239
+
240
+ <div className="pt-6 md:grid md:grid-cols-12 md:gap-8">
241
+ <dt className="text-base font-medium text-gray-700 md:col-span-3">
242
+ Data Fields
243
+ </dt>
244
+ <dd className="mt-2 md:mt-0 md:col-span-9">
245
+ <textarea onClick={(e) => handleClick(e)} onChange={(e) => handleChange(e)} id="dataFields" name="about" rows="4" className="font-sans p-2 shadow-sm border border-solid border-gray-300 block w-full text-gray-600 sm:text-sm rounded-md"></textarea>
246
+ </dd>
247
+ </div>
248
+
249
+ <div className="pt-6 md:grid md:grid-cols-12 md:gap-8">
250
+ <dt className="text-base font-medium text-gray-700 md:col-span-3">
251
+ Data Splits
252
+ </dt>
253
+ <dd className="mt-2 md:mt-0 md:col-span-9">
254
+ <textarea onClick={(e) => handleClick(e)} onChange={(e) => handleChange(e)} id="dataSplits" name="about" rows="4" className="font-sans p-2 shadow-sm border border-solid border-gray-300 block w-full text-gray-600 sm:text-sm rounded-md"></textarea>
255
+ </dd>
256
+ </div>
257
+
258
+ <div className="pt-6 md:grid md:grid-cols-12 md:gap-8">
259
+ <dt className="text-base font-medium text-gray-700 md:col-span-3">
260
+ Curation Rationale
261
+ </dt>
262
+ <dd className="mt-2 md:mt-0 md:col-span-9">
263
+ <textarea onClick={(e) => handleClick(e)} onChange={(e) => handleChange(e)} id="curationRationale" name="about" rows="4" className="font-sans p-2 shadow-sm border border-solid border-gray-300 block w-full text-gray-600 sm:text-sm rounded-md"></textarea>
264
+ </dd>
265
+ </div>
266
+
267
+ <div className="pt-6 md:grid md:grid-cols-12 md:gap-8">
268
+ <dt className="text-base font-medium text-gray-700 md:col-span-3">
269
+ Initial Data Collection and Normalization
270
+ </dt>
271
+ <dd className="mt-2 md:mt-0 md:col-span-9">
272
+ <textarea onClick={(e) => handleClick(e)} onChange={(e) => handleChange(e)} id="dataCollection" name="about" rows="4" className="font-sans p-2 shadow-sm border border-solid border-gray-300 block w-full text-gray-600 sm:text-sm rounded-md"></textarea>
273
+ </dd>
274
+ </div>
275
+
276
+ <div className="pt-6 md:grid md:grid-cols-12 md:gap-8">
277
+ <dt className="text-base font-medium text-gray-700 md:col-span-3">
278
+ Who are the source language producers?
279
+ </dt>
280
+ <dd className="mt-2 md:mt-0 md:col-span-9">
281
+ <textarea onClick={(e) => handleClick(e)} onChange={(e) => handleChange(e)} id="sourceLanguage" name="about" rows="4" className="font-sans p-2 shadow-sm border border-solid border-gray-300 block w-full text-gray-600 sm:text-sm rounded-md"></textarea>
282
+ </dd>
283
+ </div>
284
+
285
+ <div className="pt-6 md:grid md:grid-cols-12 md:gap-8">
286
+ <dt className="text-base font-medium text-gray-700 md:col-span-3">
287
+ Annotation Process
288
+ </dt>
289
+ <dd className="mt-2 md:mt-0 md:col-span-9">
290
+ <textarea onClick={(e) => handleClick(e)} onChange={(e) => handleChange(e)} id="annotationProcess" name="about" rows="4" className="font-sans p-2 shadow-sm border border-solid border-gray-300 block w-full text-gray-600 sm:text-sm rounded-md"></textarea>
291
+ </dd>
292
+ </div>
293
+
294
+ <div className="pt-6 md:grid md:grid-cols-12 md:gap-8">
295
+ <dt className="text-base font-medium text-gray-700 md:col-span-3">
296
+ Who are the annotators?
297
+ </dt>
298
+ <dd className="mt-2 md:mt-0 md:col-span-9">
299
+ <textarea onClick={(e) => handleClick(e)} onChange={(e) => handleChange(e)} id="annotators" name="about" rows="4" className="font-sans p-2 shadow-sm border border-solid border-gray-300 block w-full text-gray-600 sm:text-sm rounded-md"></textarea>
300
+ </dd>
301
+ </div>
302
+
303
+ <div className="pt-6 md:grid md:grid-cols-12 md:gap-8">
304
+ <dt className="text-base font-medium text-gray-700 md:col-span-3">
305
+ Personal and Sensitive Information
306
+ </dt>
307
+ <dd className="mt-2 md:mt-0 md:col-span-9">
308
+ <textarea onClick={(e) => handleClick(e)} onChange={(e) => handleChange(e)} id="personalInformation" name="about" rows="4" className="font-sans p-2 shadow-sm border border-solid border-gray-300 block w-full text-gray-600 sm:text-sm rounded-md"></textarea>
309
+ </dd>
310
+ </div>
311
+
312
+ <div className="pt-6 md:grid md:grid-cols-12 md:gap-8">
313
+ <dt className="text-base font-medium text-gray-700 md:col-span-3">
314
+ Social Impact of Dataset
315
+ </dt>
316
+ <dd className="mt-2 md:mt-0 md:col-span-9">
317
+ <textarea onClick={(e) => handleClick(e)} onChange={(e) => handleChange(e)} id="socialImpact" name="about" rows="4" className="font-sans p-2 shadow-sm border border-solid border-gray-300 block w-full text-gray-600 sm:text-sm rounded-md"></textarea>
318
+ </dd>
319
+ </div>
320
+
321
+ <div className="pt-6 md:grid md:grid-cols-12 md:gap-8">
322
+ <dt className="text-base font-medium text-gray-700 md:col-span-3">
323
+ Discussion of Biases
324
+ </dt>
325
+ <dd className="mt-2 md:mt-0 md:col-span-9">
326
+ <textarea onClick={(e) => handleClick(e)} onChange={(e) => handleChange(e)} id="biasesDiscussion" name="about" rows="4" className="font-sans p-2 shadow-sm border border-solid border-gray-300 block w-full text-gray-600 sm:text-sm rounded-md"></textarea>
327
+ </dd>
328
+ </div>
329
+
330
+ <div className="pt-6 md:grid md:grid-cols-12 md:gap-8">
331
+ <dt className="text-base font-medium text-gray-700 md:col-span-3">
332
+ Other Known Limitations
333
+ </dt>
334
+ <dd className="mt-2 md:mt-0 md:col-span-9">
335
+ <textarea onClick={(e) => handleClick(e)} onChange={(e) => handleChange(e)} id="limitations" name="about" rows="4" className="font-sans p-2 shadow-sm border border-solid border-gray-300 block w-full text-gray-600 sm:text-sm rounded-md"></textarea>
336
+ </dd>
337
+ </div>
338
+
339
+ <div className="pt-6 md:grid md:grid-cols-12 md:gap-8">
340
+ <dt className="text-base font-medium text-gray-700 md:col-span-3">
341
+ Dataset Curators
342
+ </dt>
343
+ <dd className="mt-2 md:mt-0 md:col-span-9">
344
+ <textarea onClick={(e) => handleClick(e)} onChange={(e) => handleChange(e)} id="datasetCurators" name="about" rows="4" className="font-sans p-2 shadow-sm border border-solid border-gray-300 block w-full text-gray-600 sm:text-sm rounded-md"></textarea>
345
+ </dd>
346
+ </div>
347
+
348
+ <div className="pt-6 md:grid md:grid-cols-12 md:gap-8">
349
+ <dt className="text-base font-medium text-gray-700 md:col-span-3">
350
+ Licensing Information
351
+ </dt>
352
+ <dd className="mt-2 md:mt-0 md:col-span-9">
353
+ <textarea onClick={(e) => handleClick(e)} onChange={(e) => handleChange(e)} id="licensingInformation" name="about" rows="4" className="font-sans p-2 shadow-sm border border-solid border-gray-300 block w-full text-gray-600 sm:text-sm rounded-md"></textarea>
354
+ </dd>
355
+ </div>
356
+
357
+ <div className="pt-6 md:grid md:grid-cols-12 md:gap-8">
358
+ <dt className="text-base font-medium text-gray-700 md:col-span-3">
359
+ Citation Information
360
+ </dt>
361
+ <dd className="mt-2 md:mt-0 md:col-span-9">
362
+ <textarea onClick={(e) => handleClick(e)} onChange={(e) => handleChange(e)} id="citationInformation" name="about" rows="4" className="font-sans p-2 shadow-sm border border-solid border-gray-300 block w-full text-gray-600 sm:text-sm rounded-md"></textarea>
363
+ </dd>
364
+ </div>
365
+
366
+
367
+ </dl>
368
+ </div>
369
+ </div>
370
+ </div>
371
+ <div className="flex justify-center mt-10">
372
+ <button onClick={() => exportFile(card)} type="button" className="cursor-pointer inline-flex items-center px-3 py-2 border border-solid border-gray-300 shadow-sm text-base leading-4 font-medium rounded-md text-gray-700 bg-white hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-gray-500">
373
+ Export
374
+ </button>
375
+ </div>
376
+
377
+ </div>
378
+ </div>
379
+
380
+ </div>
381
+ <div className="col-span-4">
382
+ <div className="h-screen flex overflow-hidden bg-gray-100">
383
+ <div className="max-w-7xl mx-auto py-16 px-4 sm:py-24 sm:px-6 lg:px-8">
384
+ <div className="text-center">
385
+ <p className="mt-1 text-4xl font-extrabold text-gray-700 sm:tracking-tight">Instructions</p>
386
+ {!fieldFocussed &&
387
+ <p className="max-w-xl mt-5 mx-auto text-lg text-gray-500">Click on a field to see instructions</p>
388
+ }
389
+ </div>
390
+ <div className="max-w-7xl mx-auto py-12 px-4 divide-y-2 divide-gray-200 sm:px-6 lg:py-16 lg:px-8">
391
+
392
+ <div className="mt-6">
393
+ <dl className="space-y-8 divide-gray-200 text-gray-500">
394
+ {Instructions.instructions[fieldFocussed] && Instructions.instructions[fieldFocussed].paragraph.map((para) => (
395
+ <div key={para}>
396
+ <ReactMarkdown source={para}
397
+ renderers={{link: props => <a href={props.href} target="_blank">{props.children}</a>}}
398
+ />
399
+
400
+ </div>
401
+
402
+ ))}
403
+ </dl>
404
+ </div>
405
+ </div>
406
+ </div>
407
+ </div>
408
+ </div>
409
+ </div>
410
+
411
+
412
  </div>
413
  );
414
  }
src/App.test.js DELETED
@@ -1,8 +0,0 @@
1
- import { render, screen } from '@testing-library/react';
2
- import App from './App';
3
-
4
- test('renders learn react link', () => {
5
- render(<App />);
6
- const linkElement = screen.getByText(/learn react/i);
7
- expect(linkElement).toBeInTheDocument();
8
- });
 
 
 
 
 
 
 
 
 
src/Instructions.js ADDED
@@ -0,0 +1,166 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ const NAME = 'Instructions'
2
+
3
+ export default {
4
+ name: NAME,
5
+ instructions: {
6
+ homepage: {
7
+ paragraph: [
8
+ "Add homepage URL here if available (unless it's a GitHub repository)"
9
+ ],
10
+ },
11
+ repository: {
12
+ paragraph: [
13
+ "If the dataset is hosted on github or has a github homepage, add URL here"
14
+ ],
15
+ },
16
+ paper: {
17
+ paragraph: [
18
+ "If the dataset was introduced by a paper or there was a paper written describing the dataset, add URL here (landing page for Arxiv paper preferred)"
19
+ ],
20
+ },
21
+ leaderboard: {
22
+ paragraph: [
23
+ "If the dataset supports an active leaderboard, add link here"
24
+ ],
25
+ },
26
+ contact: {
27
+ paragraph: [
28
+ "If known, name and email of at least one person the reader can contact for questions about the dataset."
29
+ ],
30
+ },
31
+ datasetSummary: {
32
+ paragraph: [
33
+ "Briefly summarize the dataset, its intended use and the supported tasks. Give an overview of how and why the dataset was created. The summary should explicitly mention the languages present in the dataset (possibly in broad terms, e.g. translations between several pairs of European languages), and describe the domain, topic, or genre covered."
34
+ ],
35
+ },
36
+ supportedTasks: {
37
+ paragraph: [
38
+ "For each of the tasks tagged for this dataset, give a brief description of the tag, metrics, and suggested models (with a link to their HuggingFace implementation if available). Give a similar description of tasks that were not covered by the structured tag set (repace the `task-category-tag` with an appropriate `other:other-task-name`).",
39
+ "- `task-category-tag`: The dataset can be used to train a model for [TASK NAME], which consists in [TASK DESCRIPTION]. Success on this task is typically measured by achieving a *high/low* [metric name](https://huggingface.co/metrics/metric_name). The ([model name](https://huggingface.co/model_name) or [model class](https://huggingface.co/transformers/model_doc/model_class.html)) model currently achieves the following score. *[IF A LEADERBOARD IS AVAILABLE]:* This task has an active leaderboard which can be found at [leaderboard url]() and ranks models based on [metric name](https://huggingface.co/metrics/metric_name) while also reporting [other metric name](https://huggingface.co/metrics/other_metric_name)."
40
+ ]
41
+ },
42
+ languages: {
43
+ paragraph: [
44
+ "Provide a brief overview of the languages represented in the dataset. Describe relevant details about specifics of the language such as whether it is social media text, African American English,...",
45
+ "When relevant, please provide [BCP-47 codes](https://tools.ietf.org/html/bcp47), which consist of a [primary language subtag](https://tools.ietf.org/html/bcp47#section-2.2.1), with a [script subtag](https://tools.ietf.org/html/bcp47#section-2.2.3) and/or [region subtag](https://tools.ietf.org/html/bcp47#section-2.2.4) if available."
46
+ ]
47
+ },
48
+ dataInstances: {
49
+ paragraph: [
50
+ "Provide an JSON-formatted example and brief description of a typical instance in the dataset. If available, provide a link to further examples.",
51
+ `
52
+ {
53
+ 'example_field': ...,
54
+ ...
55
+ }
56
+ `,
57
+ "Provide any additional information that is not covered in the other sections about the data here. In particular describe any relationships between data points and if these relationships are made explicit.",
58
+ ]
59
+ },
60
+ dataFields: {
61
+ paragraph: [
62
+ "List and describe the fields present in the dataset. Mention their data type, and whether they are used as input or output in any of the tasks the dataset currently supports. If the data has span indices, describe their attributes, such as whether they are at the character level or word level, whether they are contiguous or not, etc. If the datasets contains example IDs, state whether they have an inherent meaning, such as a mapping to other datasets or pointing to relationships between data points.",
63
+ "- `example_field`: description of `example_field`"
64
+ ]
65
+ },
66
+ dataSplits: {
67
+ paragraph: [
68
+ "Describe and name the splits in the dataset if there are more than one.",
69
+ "Describe any criteria for splitting the data, if used. If their are differences between the splits (e.g. if the training annotations are machine-generated and the dev and test ones are created by humans, or if different numbers of annotators contributed to each example), describe them here.",
70
+ "Provide the sizes of each split. As appropriate, provide any descriptive statistics for the features, such as average length. For example:",
71
+ `| | Tain | Valid | Test |
72
+ | ----- | ------ | ----- | ---- |
73
+ | Input Sentences | | | |
74
+ | Average Sentence Length | | | |`
75
+ ]
76
+ },
77
+ curationRationale: {
78
+ paragraph: [
79
+ "What need motivated the creation of this dataset? What are some of the reasons underlying the major choices involved in putting it together?",
80
+ ]
81
+ },
82
+ dataCollection: {
83
+ paragraph: [
84
+ "Describe the data collection process. Describe any criteria for data selection or filtering. List any key words or search terms used. If possible, include runtime information for the collection process.",
85
+ "If data was collected from other pre-existing datasets, link to source here and to their [Hugging Face version](https://huggingface.co/datasets/dataset_name).",
86
+ "If the data was modified or normalized after being collected (e.g. if the data is word-tokenized), describe the process and the tools used."
87
+ ]
88
+ },
89
+ sourceLanguage: {
90
+ paragraph: [
91
+ "State whether the data was produced by humans or machine generated. Describe the people or systems who originally created the data.",
92
+ "If available, include self-reported demographic or identity information for the source data creators, but avoid inferring this information. Instead state that this information is unknown. See [Larson 2017](https://www.aclweb.org/anthology/W17-1601.pdf) for using identity categories as a variables, particularly gender.",
93
+ "Describe the conditions under which the data was created (for example, if the producers were crowdworkers, state what platform was used, or if the data was found, what website the data was found on). If compensation was provided, include that information here.",
94
+ "Describe other people represented or mentioned in the data. Where possible, link to references for the information."
95
+ ]
96
+ },
97
+ annotations: {
98
+ paragraph: [
99
+ "If the dataset contains annotations which are not part of the initial data collection, describe them in the following paragraphs."
100
+ ]
101
+ },
102
+ annotationProcess: {
103
+ paragraph: [
104
+ "If applicable, describe the annotation process and any tools used, or state otherwise. Describe the amount of data annotated, if not all. Describe or reference annotation guidelines provided to the annotators. If available, provide interannotator statistics. Describe any annotation validation processes."
105
+ ]
106
+ },
107
+ annotators: {
108
+ paragraph: [
109
+ "If annotations were collected for the source data (such as class labels or syntactic parses), state whether the annotations were produced by humans or machine generated.",
110
+ "Describe the people or systems who originally created the annotations and their selection criteria if applicable.",
111
+ "If available, include self-reported demographic or identity information for the annotators, but avoid inferring this information. Instead state that this information is unknown. See [Larson 2017](https://www.aclweb.org/anthology/W17-1601.pdf) for using identity categories as a variables, particularly gender.",
112
+ "Describe the conditions under which the data was annotated (for example, if the annotators were crowdworkers, state what platform was used, or if the data was found, what website the data was found on). If compensation was provided, include that information here."
113
+ ]
114
+ },
115
+ personalInformation: {
116
+ paragraph: [
117
+ "State whether the dataset uses identity categories and, if so, how the information is used. Describe where this information comes from (i.e. self-reporting, collecting from profiles, inferring, etc.). See [Larson 2017](https://www.aclweb.org/anthology/W17-1601.pdf) for using identity categories as a variables, particularly gender. State whether the data is linked to individuals and whether those individuals can be identified in the dataset, either directly or indirectly (i.e., in combination with other data).",
118
+ "State whether the dataset contains other data that might be considered sensitive (e.g., data that reveals racial or ethnic origins, sexual orientations, religious beliefs, political opinions or union memberships, or locations; financial or health data; biometric or genetic data; forms of government identification, such as social security numbers; criminal history).",
119
+ "If efforts were made to anonymize the data, describe the anonymization process."
120
+ ]
121
+ },
122
+ socialImpact: {
123
+ paragraph: [
124
+ "Please discuss some of the ways you believe the use of this dataset will impact society.",
125
+ "The statement should include both positive outlooks, such as outlining how technologies developed through its use may improve people's lives, and discuss the accompanying risks. These risks may range from making important decisions more opaque to people who are affected by the technology, to reinforcing existing harmful biases (whose specifics should be discussed in the next section), among other considerations.",
126
+ "Please also mention in this section if the proposed dataset contains a *low-resource* or under-represented language."
127
+ ]
128
+ },
129
+ biasesDiscussion: {
130
+ paragraph: [
131
+ "Provide descriptions of specific biases that are likely to be reflected in the data, and state whether any steps were taken to reduce their impact.",
132
+ "For Wikipedia text, see for example [Dinan et al 2020 on biases in Wikipedia (esp. Table 1)](https://arxiv.org/abs/2005.00614), or [Blodgett et al 2020](https://www.aclweb.org/anthology/2020.acl-main.485/) for a more general discussion of the topic.",
133
+ "If analyses have been run quantifying these biases, please add brief summaries and links to the studies here."
134
+ ]
135
+ },
136
+ limitations: {
137
+ paragraph: [
138
+ "If studies of the datasets have outlined other limitations of the dataset, such as annotation artifacts, please outline and cite them here."
139
+ ]
140
+ },
141
+ datasetCurators: {
142
+ paragraph: [
143
+ "List the people involved in collecting the dataset and their affiliation(s). If funding information is known, include it here."
144
+ ]
145
+ },
146
+ licensingInformation: {
147
+ paragraph: [
148
+ "Provide the license and link to the license webpage if available."
149
+ ]
150
+ },
151
+ citationInformation: {
152
+ paragraph: [
153
+ "Provide the [BibTex](http://www.bibtex.org/)-formatted reference for the dataset. For example:",
154
+ `
155
+ @article{article_id,
156
+ author = {Author List},
157
+ title = {Dataset Paper Title},
158
+ journal = {Publication Venue},
159
+ year = {2525}
160
+ }
161
+ `,
162
+ "If the dataset has a [DOI](https://www.doi.org/), please provide it here."
163
+ ]
164
+ },
165
+ }
166
+ }
src/index.css CHANGED
@@ -1,13 +1,4 @@
1
- body {
2
- margin: 0;
3
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
4
- 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
5
- sans-serif;
6
- -webkit-font-smoothing: antialiased;
7
- -moz-osx-font-smoothing: grayscale;
8
- }
9
-
10
- code {
11
- font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',
12
- monospace;
13
- }
 
1
+ /* ./src/index.css */
2
+ @tailwind base;
3
+ @tailwind components;
4
+ @tailwind utilities;
 
 
 
 
 
 
 
 
 
tailwind.config.js ADDED
@@ -0,0 +1,820 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ module.exports = {
2
+ purge: ['./src/**/*.js', './public/index.html'],
3
+ darkMode: false, // or 'media' or 'class'
4
+ prefix: '',
5
+ important: false,
6
+ separator: ':',
7
+ theme: {
8
+ extend: {
9
+ spacing: {
10
+ '30': '7rem',
11
+ '68': '17rem',
12
+ '70': '17.5rem',
13
+ '72': '18rem',
14
+ '76': '19rem',
15
+ '78': '19.5rem',
16
+ '80': '20rem',
17
+ '84': '21rem',
18
+ '88': '22rem',
19
+ '92': '23rem',
20
+ '96': '24rem',
21
+ '100': '25rem',
22
+ '104': '26rem',
23
+ '108': '27rem',
24
+ '112': '28rem',
25
+ '116': '29rem',
26
+ '120': '30rem',
27
+ '132': '33rem',
28
+ '144': '36rem',
29
+ '148': '37rem',
30
+ '152': '38rem',
31
+ '156': '39rem',
32
+ '168': '42rem',
33
+ '180': '45rem',
34
+ '192': '48rem',
35
+ '196': '49rem',
36
+ '200': '50rem',
37
+ },
38
+ },
39
+ maxWidth: {
40
+ '1/4': '25%',
41
+ '1/2': '50%',
42
+ '3/4': '75%',
43
+ },
44
+ zIndex: {
45
+ '-10': '-10',
46
+ },
47
+ spinner: (theme) => ({
48
+ DEFAULT: {
49
+ color: '#dae1e7', // color you want to make the spinner
50
+ size: '1em', // size of the spinner (used for both width and height)
51
+ border: '2px', // border-width of the spinner (shouldn't be bigger than half the spinner's size)
52
+ speed: '500ms', // the speed at which the spinner should rotate
53
+ },
54
+ // md: {
55
+ // color: theme('colors.red.500', 'red'),
56
+ // size: '2em',
57
+ // border: '2px',
58
+ // speed: '500ms',
59
+ // },
60
+ }),
61
+ height: {
62
+ xxs: '50px',
63
+ xs: '80px',
64
+ sm: '150px',
65
+ smm: '170px',
66
+ md: '500px',
67
+ lg: '600px',
68
+ xl: '700px',
69
+ },
70
+ screens: {
71
+ xs: '500px',
72
+ sm: '640px',
73
+ md: '768px',
74
+ lg: '1024px',
75
+ xl: '1280px',
76
+ xxl: '1650px',
77
+ },
78
+ colors: {
79
+ transparent: 'transparent',
80
+ current: 'currentColor',
81
+
82
+ black: '#000',
83
+ white: '#fff',
84
+
85
+ gray: {
86
+ 100: '#f7fafc',
87
+ 200: '#edf2f7',
88
+ 300: '#e2e8f0',
89
+ 400: '#cbd5e0',
90
+ 500: '#a0aec0',
91
+ 600: '#718096',
92
+ 700: '#4a5568',
93
+ 800: '#2d3748',
94
+ 900: '#1a202c',
95
+ },
96
+ red: {
97
+ 100: '#fff5f5',
98
+ 200: '#fed7d7',
99
+ 300: '#feb2b2',
100
+ 400: '#fc8181',
101
+ 500: '#f56565',
102
+ 600: '#e53e3e',
103
+ 700: '#c53030',
104
+ 800: '#9b2c2c',
105
+ 900: '#742a2a',
106
+ },
107
+ orange: {
108
+ 100: '#fffaf0',
109
+ 200: '#feebc8',
110
+ 300: '#fbd38d',
111
+ 400: '#f6ad55',
112
+ 500: '#ed8936',
113
+ 600: '#dd6b20',
114
+ 700: '#c05621',
115
+ 800: '#9c4221',
116
+ 900: '#7b341e',
117
+ },
118
+ yellow: {
119
+ 100: '#fffff0',
120
+ 200: '#fefcbf',
121
+ 300: '#faf089',
122
+ 400: '#f6e05e',
123
+ 500: '#ecc94b',
124
+ 600: '#d69e2e',
125
+ 700: '#b7791f',
126
+ 800: '#975a16',
127
+ 900: '#744210',
128
+ },
129
+ green: {
130
+ 100: '#f0fff4',
131
+ 200: '#c6f6d5',
132
+ 300: '#9ae6b4',
133
+ 400: '#68d391',
134
+ 500: '#48bb78',
135
+ 600: '#38a169',
136
+ 700: '#2f855a',
137
+ 800: '#276749',
138
+ 900: '#22543d',
139
+ },
140
+ teal: {
141
+ 100: '#e6fffa',
142
+ 200: '#b2f5ea',
143
+ 300: '#81e6d9',
144
+ 400: '#4fd1c5',
145
+ 500: '#38b2ac',
146
+ 600: '#319795',
147
+ 700: '#2c7a7b',
148
+ 800: '#285e61',
149
+ 900: '#234e52',
150
+ },
151
+ blue: {
152
+ 100: '#ebf8ff',
153
+ 200: '#bee3f8',
154
+ 300: '#90cdf4',
155
+ 400: '#63b3ed',
156
+ 500: '#4299e1',
157
+ 600: '#3182ce',
158
+ 700: '#2b6cb0',
159
+ 800: '#2c5282',
160
+ 900: '#2a4365',
161
+ },
162
+ indigo: {
163
+ 100: '#ebf4ff',
164
+ 200: '#c3dafe',
165
+ 300: '#a3bffa',
166
+ 400: '#7f9cf5',
167
+ 500: '#667eea',
168
+ 600: '#5a67d8',
169
+ 700: '#4c51bf',
170
+ 800: '#434190',
171
+ 900: '#3c366b',
172
+ },
173
+ purple: {
174
+ 100: '#faf5ff',
175
+ 200: '#e9d8fd',
176
+ 300: '#d6bcfa',
177
+ 400: '#b794f4',
178
+ 500: '#9f7aea',
179
+ 600: '#805ad5',
180
+ 700: '#6b46c1',
181
+ 800: '#553c9a',
182
+ 900: '#44337a',
183
+ },
184
+ pink: {
185
+ 100: '#fff5f7',
186
+ 200: '#fed7e2',
187
+ 300: '#fbb6ce',
188
+ 400: '#f687b3',
189
+ 500: '#ed64a6',
190
+ 600: '#d53f8c',
191
+ 700: '#b83280',
192
+ 800: '#97266d',
193
+ 900: '#702459',
194
+ },
195
+ },
196
+ spacing: {
197
+ px: '1px',
198
+ '0': '0',
199
+ '1': '0.25rem',
200
+ '2': '0.5rem',
201
+ '3': '0.75rem',
202
+ '4': '1rem',
203
+ '5': '1.25rem',
204
+ '6': '1.5rem',
205
+ '8': '2rem',
206
+ '10': '2.5rem',
207
+ '12': '3rem',
208
+ '14': '3.5rem',
209
+ '16': '4rem',
210
+ '20': '5rem',
211
+ '24': '6rem',
212
+ '32': '8rem',
213
+ '40': '10rem',
214
+ '48': '12rem',
215
+ '56': '14rem',
216
+ '64': '16rem',
217
+ '72': '18rem',
218
+ '84': '21rem',
219
+ '96': '24rem',
220
+ },
221
+ backgroundColor: theme => theme('colors'),
222
+ backgroundPosition: {
223
+ bottom: 'bottom',
224
+ center: 'center',
225
+ left: 'left',
226
+ 'left-bottom': 'left bottom',
227
+ 'left-top': 'left top',
228
+ right: 'right',
229
+ 'right-bottom': 'right bottom',
230
+ 'right-top': 'right top',
231
+ top: 'top',
232
+ },
233
+ backgroundSize: {
234
+ auto: 'auto',
235
+ cover: 'cover',
236
+ contain: 'contain',
237
+ },
238
+ borderColor: theme => ({
239
+ ...theme('colors'),
240
+ DEFAULT: theme('colors.gray.300', 'currentColor'),
241
+ }),
242
+ borderRadius: {
243
+ none: '0',
244
+ sm: '0.125rem',
245
+ DEFAULT: '0.25rem',
246
+ md: '0.375rem',
247
+ lg: '0.5rem',
248
+ xl: '1rem',
249
+ full: '9999px',
250
+ },
251
+ borderWidth: {
252
+ DEFAULT: '1px',
253
+ '0': '0',
254
+ '1': '1px',
255
+ '2': '2px',
256
+ '4': '4px',
257
+ '8': '8px',
258
+ },
259
+ boxShadow: {
260
+ xs: '0 0 0 1px rgba(0, 0, 0, 0.05)',
261
+ sm: '0 1px 2px 0 rgba(0, 0, 0, 0.05)',
262
+ DEFAULT: '0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06)',
263
+ md: '0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)',
264
+ lg: '0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)',
265
+ xl: '0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)',
266
+ '2xl': '0 25px 50px -12px rgba(0, 0, 0, 0.25)',
267
+ '3xl': '0 30px 75px -20px rgba(0, 0, 0, 0.5)',
268
+ inner: 'inset 0 2px 4px 0 rgba(0, 0, 0, 0.06)',
269
+ outline: '0 0 0 3px rgba(66, 153, 225, 0.5)',
270
+ none: 'none',
271
+ },
272
+ container: {
273
+ center: true,
274
+ },
275
+ cursor: {
276
+ auto: 'auto',
277
+ DEFAULT: 'DEFAULT',
278
+ pointer: 'pointer',
279
+ wait: 'wait',
280
+ text: 'text',
281
+ move: 'move',
282
+ 'not-allowed': 'not-allowed',
283
+ },
284
+ fill: {
285
+ current: 'currentColor',
286
+ },
287
+ flex: {
288
+ '1': '1 1 0%',
289
+ auto: '1 1 auto',
290
+ initial: '0 1 auto',
291
+ none: 'none',
292
+ },
293
+ flexGrow: {
294
+ '0': '0',
295
+ DEFAULT: '1',
296
+ },
297
+ flexShrink: {
298
+ '0': '0',
299
+ DEFAULT: '1',
300
+ },
301
+ fontFamily: {
302
+ sans: [
303
+ 'system-ui',
304
+ '-apple-system',
305
+ 'BlinkMacSystemFont',
306
+ '"Segoe UI"',
307
+ 'Roboto',
308
+ '"Helvetica Neue"',
309
+ 'Arial',
310
+ '"Noto Sans"',
311
+ 'sans-serif',
312
+ '"Apple Color Emoji"',
313
+ '"Segoe UI Emoji"',
314
+ '"Segoe UI Symbol"',
315
+ '"Noto Color Emoji"',
316
+ ],
317
+ serif: ['Georgia', 'Cambria', '"Times New Roman"', 'Times', 'serif'],
318
+ mono: ['Menlo', 'Monaco', 'Consolas', '"Liberation Mono"', '"Courier New"', 'monospace'],
319
+ },
320
+ fontSize: {
321
+ xs: '0.75rem',
322
+ sm: '0.875rem',
323
+ md: '0.92rem',
324
+ base: '1rem',
325
+ lg: '1.125rem',
326
+ xl: '1.25rem',
327
+ '2xl': '1.5rem',
328
+ '3xl': '1.875rem',
329
+ '4xl': '2.25rem',
330
+ '5xl': '3rem',
331
+ '6xl': '4rem',
332
+ },
333
+ fontWeight: {
334
+ hairline: '100',
335
+ thin: '200',
336
+ light: '300',
337
+ normal: '400',
338
+ medium: '500',
339
+ semibold: '600',
340
+ bold: '700',
341
+ extrabold: '800',
342
+ black: '900',
343
+ },
344
+ height: theme => ({
345
+ auto: 'auto',
346
+ ...theme('spacing'),
347
+ full: '100%',
348
+ screen: '100vh',
349
+ }),
350
+ inset: {
351
+ '0': '0',
352
+ auto: 'auto',
353
+ },
354
+ letterSpacing: {
355
+ tighter: '-0.05em',
356
+ tight: '-0.025em',
357
+ normal: '0',
358
+ wide: '0.025em',
359
+ wider: '0.05em',
360
+ widest: '0.1em',
361
+ },
362
+ lineHeight: {
363
+ none: '1',
364
+ tight: '1.25',
365
+ snug: '1.375',
366
+ normal: '1.5',
367
+ relaxed: '1.625',
368
+ loose: '2',
369
+ '3': '.75rem',
370
+ '4': '1rem',
371
+ '5': '1.25rem',
372
+ '6': '1.5rem',
373
+ '7': '1.75rem',
374
+ '8': '2rem',
375
+ '9': '2.25rem',
376
+ '10': '2.5rem',
377
+ },
378
+ listStyleType: {
379
+ none: 'none',
380
+ disc: 'disc',
381
+ decimal: 'decimal',
382
+ },
383
+ margin: (theme, { negative }) => ({
384
+ auto: 'auto',
385
+ ...theme('spacing'),
386
+ ...negative(theme('spacing')),
387
+ }),
388
+ maxHeight: {
389
+ none: 'none',
390
+ xxs: '10rem',
391
+ xs: '20rem',
392
+ sm: '24rem',
393
+ md: '28rem',
394
+ lg: '32rem',
395
+ xl: '36rem',
396
+ '2xl': '42rem',
397
+ '3xl': '48rem',
398
+ '4xl': '56rem',
399
+ '5xl': '64rem',
400
+ '55xl': '68rem',
401
+ '6xl': '72rem',
402
+ '65xl': '76rem',
403
+ '7xl': '80rem',
404
+ '75xl': '84rem',
405
+ '8xl': '88rem',
406
+ '9xl': '96rem',
407
+ '10xl': '104rem',
408
+ full: '100%',
409
+ screen: '100vh',
410
+ },
411
+ maxWidth: (theme, { breakpoints }) => ({
412
+ none: 'none',
413
+ xs: '20rem',
414
+ sm: '24rem',
415
+ md: '28rem',
416
+ lg: '32rem',
417
+ xl: '36rem',
418
+ '2xl': '42rem',
419
+ '3xl': '48rem',
420
+ '4xl': '56rem',
421
+ '5xl': '64rem',
422
+ '55xl': '68rem',
423
+ '6xl': '72rem',
424
+ '65xl': '76rem',
425
+ '7xl': '80rem',
426
+ '75xl': '84rem',
427
+ '8xl': '88rem',
428
+ '9xl': '96rem',
429
+ '10xl': '104rem',
430
+ full: '100%',
431
+ ...breakpoints(theme('screens')),
432
+ }),
433
+ minHeight: {
434
+ '0': '0',
435
+ full: '100%',
436
+ screen: '100vh',
437
+ },
438
+ minWidth: {
439
+ '0': '0',
440
+ full: '100%',
441
+ },
442
+ objectPosition: {
443
+ bottom: 'bottom',
444
+ center: 'center',
445
+ left: 'left',
446
+ 'left-bottom': 'left bottom',
447
+ 'left-top': 'left top',
448
+ right: 'right',
449
+ 'right-bottom': 'right bottom',
450
+ 'right-top': 'right top',
451
+ top: 'top',
452
+ },
453
+ opacity: {
454
+ '0': '0',
455
+ '25': '0.25',
456
+ '50': '0.5',
457
+ '75': '0.75',
458
+ '100': '1',
459
+ },
460
+ order: {
461
+ first: '-9999',
462
+ last: '9999',
463
+ none: '0',
464
+ '1': '1',
465
+ '2': '2',
466
+ '3': '3',
467
+ '4': '4',
468
+ '5': '5',
469
+ '6': '6',
470
+ '7': '7',
471
+ '8': '8',
472
+ '9': '9',
473
+ '10': '10',
474
+ '11': '11',
475
+ '12': '12',
476
+ },
477
+ padding: theme => theme('spacing'),
478
+ placeholderColor: theme => theme('colors'),
479
+ stroke: {
480
+ current: 'currentColor',
481
+ },
482
+ strokeWidth: {
483
+ '0': '0',
484
+ '1': '1',
485
+ '2': '2',
486
+ },
487
+ textColor: theme => theme('colors'),
488
+ width: theme => ({
489
+ auto: 'auto',
490
+ ...theme('spacing'),
491
+ '1/2': '50%',
492
+ '1/3': '33.333333%',
493
+ '2/3': '66.666667%',
494
+ '1/4': '25%',
495
+ '2/4': '50%',
496
+ '3/4': '75%',
497
+ '1/5': '20%',
498
+ '2/5': '40%',
499
+ '3/5': '60%',
500
+ '4/5': '80%',
501
+ '1/6': '16.666667%',
502
+ '2/6': '33.333333%',
503
+ '3/6': '50%',
504
+ '4/6': '66.666667%',
505
+ '5/6': '83.333333%',
506
+ '1/12': '8.333333%',
507
+ '2/12': '16.666667%',
508
+ '3/12': '25%',
509
+ '4/12': '33.333333%',
510
+ '5/12': '41.666667%',
511
+ '6/12': '50%',
512
+ '7/12': '58.333333%',
513
+ '8/12': '66.666667%',
514
+ '9/12': '75%',
515
+ '10/12': '83.333333%',
516
+ '11/12': '91.666667%',
517
+ full: '100%',
518
+ screen: '100vw',
519
+ }),
520
+ zIndex: {
521
+ auto: 'auto',
522
+ '0': '0',
523
+ '10': '10',
524
+ '20': '20',
525
+ '30': '30',
526
+ '40': '40',
527
+ '50': '50',
528
+ },
529
+ gap: theme => theme('spacing'),
530
+ gridTemplateColumns: {
531
+ none: 'none',
532
+ '1': 'repeat(1, minmax(0, 1fr))',
533
+ '2': 'repeat(2, minmax(0, 1fr))',
534
+ '3': 'repeat(3, minmax(0, 1fr))',
535
+ '4': 'repeat(4, minmax(0, 1fr))',
536
+ '5': 'repeat(5, minmax(0, 1fr))',
537
+ '6': 'repeat(6, minmax(0, 1fr))',
538
+ '7': 'repeat(7, minmax(0, 1fr))',
539
+ '8': 'repeat(8, minmax(0, 1fr))',
540
+ '9': 'repeat(9, minmax(0, 1fr))',
541
+ '10': 'repeat(10, minmax(0, 1fr))',
542
+ '11': 'repeat(11, minmax(0, 1fr))',
543
+ '12': 'repeat(12, minmax(0, 1fr))',
544
+ },
545
+ gridColumn: {
546
+ auto: 'auto',
547
+ 'span-1': 'span 1 / span 1',
548
+ 'span-2': 'span 2 / span 2',
549
+ 'span-3': 'span 3 / span 3',
550
+ 'span-4': 'span 4 / span 4',
551
+ 'span-5': 'span 5 / span 5',
552
+ 'span-6': 'span 6 / span 6',
553
+ 'span-7': 'span 7 / span 7',
554
+ 'span-8': 'span 8 / span 8',
555
+ 'span-9': 'span 9 / span 9',
556
+ 'span-10': 'span 10 / span 10',
557
+ 'span-11': 'span 11 / span 11',
558
+ 'span-12': 'span 12 / span 12',
559
+ },
560
+ gridColumnStart: {
561
+ auto: 'auto',
562
+ '1': '1',
563
+ '2': '2',
564
+ '3': '3',
565
+ '4': '4',
566
+ '5': '5',
567
+ '6': '6',
568
+ '7': '7',
569
+ '8': '8',
570
+ '9': '9',
571
+ '10': '10',
572
+ '11': '11',
573
+ '12': '12',
574
+ '13': '13',
575
+ },
576
+ gridColumnEnd: {
577
+ auto: 'auto',
578
+ '1': '1',
579
+ '2': '2',
580
+ '3': '3',
581
+ '4': '4',
582
+ '5': '5',
583
+ '6': '6',
584
+ '7': '7',
585
+ '8': '8',
586
+ '9': '9',
587
+ '10': '10',
588
+ '11': '11',
589
+ '12': '12',
590
+ '13': '13',
591
+ },
592
+ gridTemplateRows: {
593
+ none: 'none',
594
+ '1': 'repeat(1, minmax(0, 1fr))',
595
+ '2': 'repeat(2, minmax(0, 1fr))',
596
+ '3': 'repeat(3, minmax(0, 1fr))',
597
+ '4': 'repeat(4, minmax(0, 1fr))',
598
+ '5': 'repeat(5, minmax(0, 1fr))',
599
+ '6': 'repeat(6, minmax(0, 1fr))',
600
+ },
601
+ gridRow: {
602
+ auto: 'auto',
603
+ 'span-1': 'span 1 / span 1',
604
+ 'span-2': 'span 2 / span 2',
605
+ 'span-3': 'span 3 / span 3',
606
+ 'span-4': 'span 4 / span 4',
607
+ 'span-5': 'span 5 / span 5',
608
+ 'span-6': 'span 6 / span 6',
609
+ },
610
+ gridRowStart: {
611
+ auto: 'auto',
612
+ '1': '1',
613
+ '2': '2',
614
+ '3': '3',
615
+ '4': '4',
616
+ '5': '5',
617
+ '6': '6',
618
+ '7': '7',
619
+ },
620
+ gridRowEnd: {
621
+ auto: 'auto',
622
+ '1': '1',
623
+ '2': '2',
624
+ '3': '3',
625
+ '4': '4',
626
+ '5': '5',
627
+ '6': '6',
628
+ '7': '7',
629
+ },
630
+ transformOrigin: {
631
+ center: 'center',
632
+ top: 'top',
633
+ 'top-right': 'top right',
634
+ right: 'right',
635
+ 'bottom-right': 'bottom right',
636
+ bottom: 'bottom',
637
+ 'bottom-left': 'bottom left',
638
+ left: 'left',
639
+ 'top-left': 'top left',
640
+ },
641
+ scale: {
642
+ '0': '0',
643
+ '50': '.5',
644
+ '75': '.75',
645
+ '90': '.9',
646
+ '95': '.95',
647
+ '100': '1',
648
+ '105': '1.05',
649
+ '110': '1.1',
650
+ '125': '1.25',
651
+ '150': '1.5',
652
+ },
653
+ rotate: {
654
+ '-180': '-180deg',
655
+ '-90': '-90deg',
656
+ '-45': '-45deg',
657
+ '0': '0',
658
+ '45': '45deg',
659
+ '90': '90deg',
660
+ '180': '180deg',
661
+ },
662
+ translate: (theme, { negative }) => ({
663
+ ...theme('spacing'),
664
+ ...negative(theme('spacing')),
665
+ '-full': '-100%',
666
+ '-1/2': '-50%',
667
+ '1/2': '50%',
668
+ full: '100%',
669
+ }),
670
+ skew: {
671
+ '-12': '-12deg',
672
+ '-6': '-6deg',
673
+ '-3': '-3deg',
674
+ '0': '0',
675
+ '3': '3deg',
676
+ '6': '6deg',
677
+ '12': '12deg',
678
+ },
679
+ transitionProperty: {
680
+ none: 'none',
681
+ all: 'all',
682
+ DEFAULT: 'background-color, border-color, color, fill, stroke, opacity, box-shadow, transform',
683
+ colors: 'background-color, border-color, color, fill, stroke',
684
+ opacity: 'opacity',
685
+ shadow: 'box-shadow',
686
+ transform: 'transform',
687
+ },
688
+ transitionTimingFunction: {
689
+ linear: 'linear',
690
+ in: 'cubic-bezier(0.4, 0, 1, 1)',
691
+ out: 'cubic-bezier(0, 0, 0.2, 1)',
692
+ 'in-out': 'cubic-bezier(0.4, 0, 0.2, 1)',
693
+ },
694
+ transitionDuration: {
695
+ '75': '75ms',
696
+ '100': '100ms',
697
+ '150': '150ms',
698
+ '200': '200ms',
699
+ '300': '300ms',
700
+ '500': '500ms',
701
+ '700': '700ms',
702
+ '1000': '1000ms',
703
+ },
704
+ },
705
+ variants: {
706
+ accessibility: ['responsive', 'focus'],
707
+ alignContent: ['responsive'],
708
+ alignItems: ['responsive'],
709
+ alignSelf: ['responsive'],
710
+ appearance: ['responsive'],
711
+ backgroundAttachment: ['responsive'],
712
+ backgroundColor: ['responsive', 'hover', 'focus'],
713
+ backgroundPosition: ['responsive'],
714
+ backgroundRepeat: ['responsive'],
715
+ backgroundSize: ['responsive'],
716
+ borderCollapse: ['responsive'],
717
+ borderColor: ['responsive', 'hover', 'focus', 'active'],
718
+ borderRadius: ['responsive', 'hover', 'focus', 'active'],
719
+ borderStyle: ['responsive', 'hover', 'focus', 'active'],
720
+ borderWidth: ['responsive', 'hover', 'focus', 'active'],
721
+ boxShadow: ['responsive', 'hover', 'focus', 'active'],
722
+ boxSizing: ['responsive'],
723
+ cursor: ['responsive'],
724
+ display: ['responsive'],
725
+ fill: ['responsive'],
726
+ flex: ['responsive'],
727
+ flexDirection: ['responsive'],
728
+ flexGrow: ['responsive'],
729
+ flexShrink: ['responsive'],
730
+ flexWrap: ['responsive'],
731
+ float: ['responsive'],
732
+ clear: ['responsive'],
733
+ fontFamily: ['responsive'],
734
+ fontSize: ['responsive'],
735
+ fontSmoothing: ['responsive'],
736
+ fontStyle: ['responsive'],
737
+ fontWeight: ['responsive', 'hover', 'focus'],
738
+ height: ['responsive'],
739
+ inset: ['responsive'],
740
+ justifyContent: ['responsive'],
741
+ letterSpacing: ['responsive'],
742
+ lineHeight: ['responsive'],
743
+ listStylePosition: ['responsive'],
744
+ listStyleType: ['responsive'],
745
+ margin: ['responsive'],
746
+ maxHeight: ['responsive'],
747
+ maxWidth: ['responsive'],
748
+ minHeight: ['responsive'],
749
+ minWidth: ['responsive'],
750
+ objectFit: ['responsive'],
751
+ objectPosition: ['responsive'],
752
+ opacity: ['responsive', 'hover', 'focus'],
753
+ order: ['responsive'],
754
+ outline: ['responsive', 'focus'],
755
+ overflow: ['responsive'],
756
+ padding: ['responsive'],
757
+ placeholderColor: ['responsive', 'focus'],
758
+ pointerEvents: ['responsive'],
759
+ position: ['responsive'],
760
+ resize: ['responsive'],
761
+ spinner: ['responsive'],
762
+ stroke: ['responsive'],
763
+ strokeWidth: ['responsive'],
764
+ tableLayout: ['responsive', 'hover', 'focus'],
765
+ textAlign: ['responsive'],
766
+ textColor: ['responsive', 'hover', 'focus'],
767
+ textDecoration: ['responsive', 'hover', 'focus'],
768
+ textTransform: ['responsive'],
769
+ userSelect: ['responsive'],
770
+ verticalAlign: ['responsive'],
771
+ visibility: ['responsive'],
772
+ whitespace: ['responsive'],
773
+ width: ['responsive'],
774
+ wordBreak: ['responsive'],
775
+ zIndex: ['responsive'],
776
+ gap: ['responsive'],
777
+ gridAutoFlow: ['responsive'],
778
+ gridTemplateColumns: ['responsive'],
779
+ gridColumn: ['responsive'],
780
+ gridColumnStart: ['responsive'],
781
+ gridColumnEnd: ['responsive'],
782
+ gridTemplateRows: ['responsive'],
783
+ gridRow: ['responsive'],
784
+ gridRowStart: ['responsive'],
785
+ gridRowEnd: ['responsive'],
786
+ transform: ['responsive'],
787
+ transformOrigin: ['responsive'],
788
+ scale: ['responsive', 'hover', 'focus'],
789
+ rotate: ['responsive', 'hover', 'focus'],
790
+ translate: ['responsive', 'hover', 'focus'],
791
+ skew: ['responsive', 'hover', 'focus'],
792
+ transitionProperty: ['responsive', 'hover', 'focus'],
793
+ transitionTimingFunction: ['responsive', 'hover', 'focus'],
794
+ transitionDuration: ['responsive', 'hover', 'focus'],
795
+ },
796
+ corePlugins: {
797
+ preflight: false
798
+ },
799
+ plugins: [
800
+ require('tailwindcss-grid')({
801
+ grids: [2, 3, 4, 5, 6, 8, 10, 12],
802
+ gaps: {
803
+ 0: '0',
804
+ 4: '1rem',
805
+ 8: '2rem',
806
+ 16: '4rem',
807
+ 32: '8rem',
808
+ '4-x': '1rem',
809
+ '4-y': '1rem',
810
+ },
811
+ autoMinWidths: {
812
+ '16': '4rem',
813
+ '24': '6rem',
814
+ '300px': '300px',
815
+ },
816
+ variants: ['responsive'],
817
+ }),
818
+ ],
819
+ }
820
+