git.iko.soy/rowtype-yoga/purescript-fahrtwind
on main help sign in
13 files changed+167−735
since splitsnapshots
unifiedsplit
bower.json+29 packages.dhall+2−676 src/Fahrtwind.purs+1−1 src/Fahrtwind/Animation.purs+1−1 src/Fahrtwind/Style.purs+4−4 src/Fahrtwind/Style/Border.purs+10 src/Fahrtwind/Style/Color/Background.purs+32−10 src/Fahrtwind/Style/Divide.purs+6−5 src/Fahrtwind/Style/Global.purs+1−1 src/Fahrtwind/Style/ScollBar.purs−34 src/Fahrtwind/Style/ScrollBar.purs+59 src/Fahrtwind/Style/Size.purs+1−1 src/Fahrtwind/Style/Text.purs+21−2
bower.jsonnew file+29
@@ -0,0 +1,29 @@
1+{
2+ "name": "purescript-fahrtwind",
3+ "license": [
4+ "MIT"
5+ ],
6+ "repository": {
7+ "type": "git",
8+ "url": "https://github.com/rowtype-yoga/purescript-fahrtwind.git"
9+ },
10+ "ignore": [
11+ "**/.*",
12+ "node_modules",
13+ "bower_components",
14+ "output"
15+ ],
16+ "dependencies": {
17+ "purescript-arrays": "^v7.1.0",
18+ "purescript-colors": "^v7.0.1",
19+ "purescript-foreign-object": "^v4.1.0",
20+ "purescript-integers": "^v6.0.0",
21+ "purescript-prelude": "^v6.0.1",
22+ "purescript-react-basic": "^v17.0.0",
23+ "purescript-react-basic-dom": "https://github.com/lumihq/purescript-react-basic-dom.git#v6.0.0",
24+ "purescript-react-basic-emotion": "^v7.1.0",
25+ "purescript-tuples": "^v7.0.0",
26+ "purescript-typelevel-prelude": "^v7.0.0",
27+ "purescript-unsafe-coerce": "^v6.0.0"
28+ }
29+}
packages.dhall+2−676
@@ -1,679 +1,5 @@
11let upstream =
2− https://github.com/purescript/package-sets/releases/download/psc-0.15.2-20220531/packages.dhall
3− sha256:278d3608439187e51136251ebf12fabda62d41ceb4bec9769312a08b56f853e3
2+ https://github.com/purescript/package-sets/releases/download/psc-0.15.4-20221103/packages.dhall
3+ sha256:26d3b3b4052e533534b9a888052a46b594abdd615cb56e58fde188b110480857
44
55in upstream
6− with playwright =
7− { repo =
8− "https://github.com/working-group-purescript-es/purescript-playwright.git"
9− , version = "es-modules"
10− , dependencies =
11− [ "argonaut-core"
12− , "console"
13− , "effect"
14− , "prelude"
15− , "psci-support"
16− , "aff-promise"
17− , "test-unit"
18− , "untagged-union"
19− , "node-buffer"
20− , "node-fs-aff"
21− , "undefined"
22− , "aff"
23− , "either"
24− , "exceptions"
25− , "foreign"
26− , "foreign-object"
27− , "literals"
28− , "maybe"
29− , "node-streams"
30− , "ordered-collections"
31− , "refs"
32− , "strings"
33− , "transformers"
34− ]
35− }
36− with milkis =
37− { repo =
38− "https://github.com/working-group-purescript-es/purescript-milkis.git"
39− , version = "es-modules"
40− , dependencies =
41− [ "aff-promise"
42− , "arraybuffer-types"
43− , "foreign-object"
44− , "prelude"
45− , "typelevel-prelude"
46− ]
47− }
48− with debug =
49− { dependencies = [ "prelude", "functions" ]
50− , repo =
51− "https://github.com/working-group-purescript-es/purescript-debug.git"
52− , version = "es-modules"
53− }
54− with checked-exceptions =
55− { dependencies = [ "prelude", "transformers", "variant" ]
56− , repo = "https://github.com/natefaubion/purescript-checked-exceptions.git"
57− , version = "v3.1.1"
58− }
59− with language-cst-parser =
60− { dependencies =
61− [ "arrays"
62− , "const"
63− , "effect"
64− , "either"
65− , "foldable-traversable"
66− , "free"
67− , "functors"
68− , "maybe"
69− , "numbers"
70− , "ordered-collections"
71− , "strings"
72− , "transformers"
73− , "tuples"
74− , "typelevel-prelude"
75− ]
76− , repo = "https://github.com/natefaubion/purescript-language-cst-parser.git"
77− , version = "v0.9.3"
78− }
79− with stringutils =
80− { dependencies =
81− [ "arrays"
82− , "either"
83− , "integers"
84− , "maybe"
85− , "partial"
86− , "prelude"
87− , "strings"
88− ]
89− , repo =
90− "https://github.com/working-group-purescript-es/purescript-stringutils.git"
91− , version = "es-modules"
92− }
93− with plumage =
94− { dependencies =
95− [ "aff"
96− , "arrays"
97− , "colors"
98− , "console"
99− , "datetime"
100− , "debug"
101− , "effect"
102− , "either"
103− , "enums"
104− , "exceptions"
105− , "foldable-traversable"
106− , "foreign"
107− , "foreign-object"
108− , "framer-motion"
109− , "integers"
110− , "literals"
111− , "maybe"
112− , "newtype"
113− , "now"
114− , "nullable"
115− , "ordered-collections"
116− , "prelude"
117− , "psci-support"
118− , "react-basic"
119− , "react-basic-dom"
120− , "react-basic-emotion"
121− , "react-basic-hooks"
122− , "record"
123− , "remotedata"
124− , "ry-blocks"
125− , "strings"
126− , "tuples"
127− , "typelevel-prelude"
128− , "unsafe-coerce"
129− , "unsafe-reference"
130− , "untagged-union"
131− , "web-dom"
132− , "web-html"
133− ]
134− , repo = "https://github.com/murmuras-tech/plumage.git"
135− , version = "99374fa494823a8d1fa7568cd488edff99600e0f"
136− }
137− with web-router =
138− { dependencies =
139− [ "aff"
140− , "effect"
141− , "freet"
142− , "indexed-monad"
143− , "prelude"
144− , "profunctor-lenses"
145− , "routing"
146− ]
147− , repo = "https://github.com/robertdp/purescript-web-router.git"
148− , version = "v0.3.0"
149− }
150− with framer-motion =
151− { version = "es-modules"
152− , repo = "https://github.com/i-am-the-slime/purescript-framer-motion.git"
153− , dependencies =
154− [ "aff"
155− , "aff-promise"
156− , "arrays"
157− , "console"
158− , "effect"
159− , "foreign"
160− , "foreign-object"
161− , "heterogeneous"
162− , "literals"
163− , "maybe"
164− , "nullable"
165− , "prelude"
166− , "psci-support"
167− , "react-basic"
168− , "react-basic-dom"
169− , "react-basic-hooks"
170− , "record"
171− , "tuples"
172− , "two-or-more"
173− , "typelevel-prelude"
174− , "unsafe-coerce"
175− , "untagged-union"
176− , "web-dom"
177− , "web-events"
178− , "web-uievents"
179− ]
180− }
181− with spec =
182− { repo = "https://github.com/purescript-spec/purescript-spec.git"
183− , version = "master"
184− , dependencies =
185− [ "aff"
186− , "ansi"
187− , "avar"
188− , "console"
189− , "exceptions"
190− , "foldable-traversable"
191− , "fork"
192− , "now"
193− , "pipes"
194− , "prelude"
195− , "strings"
196− , "transformers"
197− ]
198− }
199− with spec-discovery =
200− { repo = "https://github.com/purescript-spec/purescript-spec-discovery.git"
201− , version = "master"
202− , dependencies =
203− [ "aff"
204− , "aff-promise"
205− , "arrays"
206− , "console"
207− , "effect"
208− , "foldable-traversable"
209− , "node-fs"
210− , "prelude"
211− , "spec"
212− ]
213− }
214− with playwright =
215− { repo =
216− "https://github.com/working-group-purescript-es/purescript-playwright.git"
217− , version = "es-modules"
218− , dependencies =
219− [ "argonaut-core"
220− , "console"
221− , "effect"
222− , "prelude"
223− , "psci-support"
224− , "aff-promise"
225− , "test-unit"
226− , "untagged-union"
227− , "node-buffer"
228− , "node-fs-aff"
229− , "undefined"
230− , "aff"
231− , "either"
232− , "exceptions"
233− , "foreign"
234− , "foreign-object"
235− , "literals"
236− , "maybe"
237− , "node-streams"
238− , "ordered-collections"
239− , "refs"
240− , "strings"
241− , "transformers"
242− ]
243− }
244− with milkis =
245− { repo =
246− "https://github.com/working-group-purescript-es/purescript-milkis.git"
247− , version = "es-modules"
248− , dependencies =
249− [ "aff-promise"
250− , "arraybuffer-types"
251− , "foreign-object"
252− , "prelude"
253− , "typelevel-prelude"
254− ]
255− }
256− with debug =
257− { dependencies = [ "prelude", "functions" ]
258− , repo =
259− "https://github.com/working-group-purescript-es/purescript-debug.git"
260− , version = "es-modules"
261− }
262− with checked-exceptions =
263− { dependencies = [ "prelude", "transformers", "variant" ]
264− , repo = "https://github.com/natefaubion/purescript-checked-exceptions.git"
265− , version = "v3.1.1"
266− }
267− with language-cst-parser =
268− { dependencies =
269− [ "arrays"
270− , "const"
271− , "effect"
272− , "either"
273− , "foldable-traversable"
274− , "free"
275− , "functors"
276− , "maybe"
277− , "numbers"
278− , "ordered-collections"
279− , "strings"
280− , "transformers"
281− , "tuples"
282− , "typelevel-prelude"
283− ]
284− , repo = "https://github.com/natefaubion/purescript-language-cst-parser.git"
285− , version = "v0.9.3"
286− }
287− with stringutils =
288− { dependencies =
289− [ "arrays"
290− , "either"
291− , "integers"
292− , "maybe"
293− , "partial"
294− , "prelude"
295− , "strings"
296− ]
297− , repo =
298− "https://github.com/working-group-purescript-es/purescript-stringutils.git"
299− , version = "es-modules"
300− }
301− with web-router =
302− { dependencies =
303− [ "aff"
304− , "effect"
305− , "freet"
306− , "indexed-monad"
307− , "prelude"
308− , "profunctor-lenses"
309− , "routing"
310− ]
311− , repo = "https://github.com/robertdp/purescript-web-router.git"
312− , version = "v0.3.0"
313− }
314− with framer-motion.version = "24dc0a89dd65458b768f3731c886f9911898788d"
315− with visx =
316− { repo = "https://github.com/i-am-the-slime/purescript-visx.git"
317− , version = "d79d4485a3abde28e0573da0384f29fe894ab253"
318− , dependencies =
319− [ "arrays"
320− , "console"
321− , "datetime"
322− , "debug"
323− , "effect"
324− , "either"
325− , "foldable-traversable"
326− , "foreign"
327− , "foreign-object"
328− , "functions"
329− , "integers"
330− , "js-date"
331− , "justifill"
332− , "lists"
333− , "maybe"
334− , "newtype"
335− , "nullable"
336− , "orders"
337− , "prelude"
338− , "psci-support"
339− , "react-basic"
340− , "react-basic-dom"
341− , "react-basic-hooks"
342− , "record"
343− , "record-extra"
344− , "transformers"
345− , "tuples"
346− , "typelevel-prelude"
347− , "unsafe-coerce"
348− , "untagged-union"
349− , "web-dom"
350− ]
351− }
352− with graphql-fundeps =
353− { dependencies =
354− [ "aff"
355− , "affjax"
356− , "console"
357− , "effect"
358− , "either"
359− , "http-methods"
360− , "maybe"
361− , "media-types"
362− , "prelude"
363− , "psci-support"
364− , "simple-json"
365− , "strings"
366− ]
367− , repo =
368− "https://github.com/working-group-purescript-es/purescript-graphql-fundeps.git"
369− , version = "main"
370− }
371− with foreign-generic =
372− { repo =
373− "https://github.com/working-group-purescript-es/purescript-foreign-generic.git"
374− , version = "v0.15.0-updates"
375− , dependencies =
376− [ "effect"
377− , "exceptions"
378− , "foreign"
379− , "foreign-object"
380− , "identity"
381− , "ordered-collections"
382− , "record"
383− ]
384− }
385− with heterogeneous =
386− { dependencies =
387− [ "either", "functors", "prelude", "record", "tuples", "variant" ]
388− , repo = "https://github.com/natefaubion/purescript-heterogeneous.git"
389− , version = "v0.5.1"
390− }
391− with interpolate =
392− { dependencies = [ "prelude" ]
393− , repo = "https://github.com/jordanmartinez/purescript-interpolate.git"
394− , version = "v3.0.1"
395− }
396− with interpolate.version = "patch-1"
397− with interpolate.repo
398− = "https://github.com/i-am-the-slime/purescript-interpolate.git"
399− with justifill =
400− { dependencies = [ "record", "spec", "typelevel-prelude" ]
401− , repo = "https://github.com/i-am-the-slime/purescript-justifill.git"
402− , version = "v0.2.1"
403− }
404− with morello =
405− { dependencies =
406− [ "console", "debug", "effect", "heterogeneous", "strings", "validation" ]
407− , repo = "https://github.com/sigma-andex/purescript-morello.git"
408− , version = "v0.2.0"
409− }
410− with react-basic-emotion =
411− { dependencies =
412− [ "colors"
413− , "console"
414− , "effect"
415− , "foreign"
416− , "foreign-object"
417− , "numbers"
418− , "prelude"
419− , "react-basic"
420− , "react-basic-hooks"
421− , "typelevel-prelude"
422− , "unsafe-reference"
423− ]
424− , repo = "https://github.com/lumihq/purescript-react-basic-emotion.git"
425− , version = "v6.0.0"
426− }
427− with uuid =
428− { dependencies = [ "effect", "maybe", "foreign-generic", "console", "spec" ]
429− , repo = "https://github.com/i-am-the-slime/purescript-uuid.git"
430− , version = "patch-2"
431− }
432− with react-basic-emotion.repo
433− =
434− "https://github.com/working-group-purescript-es/purescript-react-basic-emotion.git"
435− with react-basic-emotion.version = "es-modules"
436− with literals =
437− { dependencies =
438− [ "assert"
439− , "effect"
440− , "console"
441− , "integers"
442− , "numbers"
443− , "partial"
444− , "psci-support"
445− , "unsafe-coerce"
446− , "typelevel-prelude"
447− ]
448− , repo = "https://github.com/jvliwanag/purescript-literals.git"
449− , version = "v0.2.0"
450− }
451− with literals.repo
452− =
453− "https://github.com/working-group-purescript-es/purescript-literals.git"
454− with literals.version = "es-modules"
455− with untagged-union =
456− { dependencies =
457− [ "assert"
458− , "console"
459− , "effect"
460− , "foreign"
461− , "foreign-object"
462− , "literals"
463− , "maybe"
464− , "newtype"
465− , "psci-support"
466− , "tuples"
467− , "unsafe-coerce"
468− ]
469− , repo = "https://github.com/jvliwanag/purescript-untagged-union.git"
470− , version = "v0.3.0"
471− }
472− with untagged-union.repo
473− =
474− "https://github.com/working-group-purescript-es/purescript-untagged-union.git"
475− with untagged-union.version = "es-modules"
476− with react-testing-library =
477− { name = "react-testing-library"
478− , dependencies = [ "react-basic", "react-basic-hooks", "react-basic-dom" ]
479− , repo =
480− "https://github.com/i-am-the-slime/purescript-react-testing-library.git"
481− , version = "main"
482− }
483− with record-extra =
484− { repo =
485− "https://github.com/working-group-purescript-es/purescript-record-extra.git"
486− , version = "v0.15.0-update"
487− , dependencies =
488− [ "arrays"
489− , "console"
490− , "effect"
491− , "functions"
492− , "lists"
493− , "maybe"
494− , "prelude"
495− , "record"
496− , "tuples"
497− , "typelevel-prelude"
498− ]
499− }
500− with framer-motion.version = "24dc0a89dd65458b768f3731c886f9911898788d"
501− with visx =
502− { repo = "https://github.com/i-am-the-slime/purescript-visx.git"
503− , version = "es-modules"
504− , dependencies =
505− [ "arrays"
506− , "console"
507− , "datetime"
508− , "debug"
509− , "effect"
510− , "either"
511− , "foldable-traversable"
512− , "foreign"
513− , "foreign-object"
514− , "functions"
515− , "integers"
516− , "js-date"
517− , "justifill"
518− , "lists"
519− , "maybe"
520− , "newtype"
521− , "nullable"
522− , "orders"
523− , "prelude"
524− , "psci-support"
525− , "react-basic"
526− , "react-basic-dom"
527− , "react-basic-hooks"
528− , "record"
529− , "record-extra"
530− , "transformers"
531− , "tuples"
532− , "typelevel-prelude"
533− , "unsafe-coerce"
534− , "untagged-union"
535− , "web-dom"
536− ]
537− }
538− with ry-blocks =
539− { repo = "https://github.com/rowtype-yoga/ry-blocks.git"
540− , version = "c75ba817af9dcbc1107cc0dbe76ce9637adede66"
541− , dependencies =
542− [ "aff"
543− , "aff-promise"
544− , "arrays"
545− , "colors"
546− , "console"
547− , "control"
548− , "datetime"
549− , "debug"
550− , "effect"
551− , "either"
552− , "enums"
553− , "exceptions"
554− , "foldable-traversable"
555− , "foreign"
556− , "foreign-generic"
557− , "foreign-object"
558− , "framer-motion"
559− , "free"
560− , "functions"
561− , "heterogeneous"
562− , "integers"
563− , "interpolate"
564− , "lists"
565− , "literals"
566− , "maybe"
567− , "newtype"
568− , "nullable"
569− , "numbers"
570− , "ordered-collections"
571− , "partial"
572− , "prelude"
573− , "profunctor-lenses"
574− , "psci-support"
575− , "random"
576− , "react-basic"
577− , "react-basic-dom"
578− , "react-basic-emotion"
579− , "react-basic-hooks"
580− , "react-testing-library"
581− , "record"
582− , "record-extra"
583− , "routing"
584− , "routing-duplex"
585− , "spec"
586− , "spec-discovery"
587− , "strings"
588− , "tailrec"
589− , "transformers"
590− , "tuples"
591− , "two-or-more"
592− , "typelevel-peano"
593− , "typelevel-prelude"
594− , "unsafe-coerce"
595− , "untagged-union"
596− , "web-dom"
597− , "web-events"
598− , "web-html"
599− , "web-uievents"
600− ]
601− }
602− with heterogeneous =
603− { dependencies =
604− [ "either", "functors", "prelude", "record", "tuples", "variant" ]
605− , repo = "https://github.com/natefaubion/purescript-heterogeneous.git"
606− , version = "v0.5.1"
607− }
608− with interpolate =
609− { dependencies = [ "prelude" ]
610− , repo = "https://github.com/jordanmartinez/purescript-interpolate.git"
611− , version = "v3.0.1"
612− }
613− with morello =
614− { dependencies =
615− [ "console", "debug", "effect", "heterogeneous", "strings", "validation" ]
616− , repo = "https://github.com/sigma-andex/purescript-morello.git"
617− , version = "v0.2.0"
618− }
619− with simple-json =
620− { dependencies =
621− [ "arrays"
622− , "exceptions"
623− , "foreign-object"
624− , "foreign"
625− , "nullable"
626− , "prelude"
627− , "record"
628− , "typelevel-prelude"
629− , "variant"
630− ]
631− , repo =
632− "https://github.com/working-group-purescript-es/purescript-simple-json.git"
633− , version = "v0.15.0-update"
634− }
635− with interpolate =
636− { dependencies = [ "prelude" ]
637− , repo = "https://github.com/i-am-the-slime/purescript-interpolate.git"
638− , version = "v3.0.1"
639− }
640− with interpolate.version = "patch-1"
641− with justifill =
642− { dependencies =
643− [ "aff", "effect", "maybe", "prelude", "record", "typelevel-prelude" ]
644− , repo = "https://github.com/i-am-the-slime/purescript-justifill.git"
645− , version = "v0.3.1"
646− }
647− with react-basic-hooks =
648− { dependencies =
649− [ "aff"
650− , "aff-promise"
651− , "bifunctors"
652− , "console"
653− , "control"
654− , "datetime"
655− , "effect"
656− , "either"
657− , "exceptions"
658− , "foldable-traversable"
659− , "functions"
660− , "indexed-monad"
661− , "integers"
662− , "maybe"
663− , "newtype"
664− , "now"
665− , "nullable"
666− , "ordered-collections"
667− , "prelude"
668− , "psci-support"
669− , "react-basic"
670− , "refs"
671− , "tuples"
672− , "type-equality"
673− , "unsafe-coerce"
674− , "unsafe-reference"
675− , "web-html"
676− ]
677− , repo = "https://github.com/spicydonuts/purescript-react-basic-hooks.git"
678− , version = "e7494bd4656b4a43c2efc69bf5f512e154f05cc1"
679− }
src/Fahrtwind.purs+1−1
@@ -8,4 +8,4 @@ module Fahrtwind
88import Fahrtwind.Animation (fadeInAndOutAnimationName, headShakeAnimationName, infiniteSpinAnimation, scaleAnimationName, spinAnimationName)
99import Fahrtwind.Layer (base, basePopper, level3, level3Popper, level4, level4Popper, level5, level5Popper, notification, notificationPopper, overlay, overlayPopper, topmost, zIndex)
1010import Fahrtwind.Style.PseudoElements (afterElement, beforeElement, content, firstLetter, firstLine, selection)
11−import Fahrtwind.Style (BlendMode(..), TailwindColor, acceptClicks, active, afterElement, alignSelfCenter, alignSelfEnd, alignSelfStart, amber, attributeValueStyle, background, background', backgroundBlendMode, backgroundImage, backgroundImage', backgroundNoRepeat, backgroundPosition, backgroundRepeat, backgroundRepeatX, backgroundRepeatY, backgroundSize, backgroundSize', beforeElement, black, blendModeToStyleProperty, block, blue, blueGray, blurredBackground, blurredBackground', border, borderBottom, borderCol, borderCol', borderLeft, borderNone, borderRight, borderSolid, borderTop, bottom, bottom', boxSizingBorderBox, boxSizingContentBox, checked, content, coolGray, cursorAuto, cursorDefault, cursorHelp, cursorMove, cursorNotAllowed, cursorPointer, cursorText, cursorWait, cyan, default, disabled, displayGrid, displayNone, divideCol, divideX, divideXReverse, divideY, divideYReverse, emerald, empty, enabled, evenChild, first, firstChild, firstLetter, firstLine, firstOfType, flex, flexCol, flexGrow, flexNoWrap, flexRow, flexShrink, flexWrap, flexWrapReverse, focus, focusWithin, fontBlack, fontBold, fontExtrabold, fontExtralight, fontFamilyOrMono, fontFamilyOrSans, fontFamilyOrSerif, fontLight, fontMedium, fontNormal, fontSemiMedium, fontSemibold, fontSize, fontSize', fontThin, fuchsia, full, fullscreen, gap, globalStyles, gray, green, height, height', heightFull, heightScreen, hover, hue, ignoreClicks, inRange, indeterminate, indigo, inlineBlock, inlineFlex, inlineGrid, invalid, invisible, isolate, isolationAuto, itemsAround, itemsBetween, itemsCenter, itemsEnd, itemsEvenly, itemsStart, justifyAround, justifyBetween, justifyCenter, justifyEnd, justifyEvenly, justifySelfCenter, justifySelfEnd, justifySelfStart, justifyStart, lastChild, lastOfType, left, left', lightBlue, lightness, lime, lineHeight, lineHeight', linearGradient, linearGradientStops, linearGradientStopsString, linearGradientString, link, m', mB, mB', mL, mL', mR, mR', mT, mT', mX, mX', mXAuto, mXY, mY, mY', maxHeight, maxHeight', maxWidth, maxWidth', minHeight, minHeight', minWidth, minWidth', mixBlendMode, mkRotate, mkShadow, mkTranslate, nest, nthChild, nthOfType, oddChild, onlyChild, onlyOfType, opacity, optional, orange, outOfRange, outlineNone, overflowHidden, overflowScroll, overflowVisible, overflowXHidden, overflowXScroll, overflowYHidden, overflowYScroll, p', pB, pB', pL, pL', pR, pR', pT, pT', pX, pX', pXY, pY, pY', pink, placeholder, pointerEventsAuto, pointerEventsNone, positionAbsolute, positionFixed, positionRelative, positionStatic, positionSticky, pseudoLeft, pseudoRight, purple, readOnly, readWrite, red, required, right, right', root, rose, rotate, rounded, rounded2xl, rounded3xl, roundedDefault, roundedFull, roundedLg, roundedMd, roundedNone, roundedSm, roundedXl, saturation, scope, screen2xl, screenHeight, screenLg, screenMd, screenSm, screenWidth, screenXl, selection, shadow, shadow', shadowDefault, shadowDefaultCol, shadowLg, shadowLgCol, shadowMd, shadowMdCol, shadowSm, shadowSmCol, shadowXl, shadowXlCol, shadowXxl, shadowXxlCol, shadows, svgBackgroundImage, target, teal, templateCols, templateRows, text2xl, text3xl, text4xl, text5xl, text6xl, text7xl, text8xl, text9xl, textBase, textCenter, textCol, textCol', textDefault, textJustify, textLeft, textLg, textOverflowEllipsis, textRight, textSized, textSm, textTransformUppercase, textXl, textXs, top, top', tracking, trackingNormal, trackingTight, trackingTighter, trackingWide, trackingWider, trackingWidest, transform, transform', transformMany, transition, transition', transitionRec, translate, trueGray, underline, userSelectNone, userSelectText, valid, variables, violet, visible, visited, warmGray, white, width, width', widthAndHeight, widthAndHeight', widthFull, widthScreen, withAlpha, withHue, withLightness, withSaturation, yellow)
11+import Fahrtwind.Style
src/Fahrtwind/Animation.purs+1−1
@@ -48,4 +48,4 @@ headShakeAnimationName =
4848 , "31.5%": E.css { transform: E.str " translateX(-3px) rotateY(-5deg)" }
4949 , "43.5%": E.css { transform: E.str " translateX(2px) rotateY(3deg)" }
5050 , "50%": E.css { transform: E.str "translateX(0)" }
51− }
51+ }
src/Fahrtwind/Style.purs+4−4
@@ -36,11 +36,11 @@ module Fahrtwind.Style
3636
3737import Fahrtwind.Style.BlendMode (backgroundBlendMode, mixBlendMode)
3838import Fahrtwind.Style.BlendMode.Types (BlendMode(..), blendModeToStyleProperty)
39−import Fahrtwind.Style.Border (border, borderBottom, borderCol, borderCol', borderLeft, borderNone, borderRight, borderSolid, borderTop, boxSizingBorderBox, boxSizingContentBox, rounded, rounded2xl, rounded3xl, roundedDefault, roundedFull, roundedLg, roundedMd, roundedNone, roundedSm, roundedXl)
39+import Fahrtwind.Style.Border (border, borderBottom, borderCol, borderCol', borderLeft, borderNone, borderRight, borderSolid, borderTop, boxSizingBorderBox, boxSizingContentBox, rounded, rounded2xl, rounded3xl, roundedDefault, roundedFull, roundedLg, roundedMd, roundedNone, roundedSm, roundedXl, borderGradient)
4040import Fahrtwind.Style.BoxModel (m', mB, mB', mL, mL', mR, mR', mT, mT', mX, mX', mXAuto, mXY, mY, mY', p', pB, pB', pL, pL', pR, pR', pT, pT', pX, pX', pXY, pY, pY')
4141import Fahrtwind.Style.BoxShadow (mkShadow, shadow, shadow', shadowDefault, shadowDefaultCol, shadowLg, shadowLgCol, shadowMd, shadowMdCol, shadowSm, shadowSmCol, shadowXl, shadowXlCol, shadowXxl, shadowXxlCol, shadows)
4242import Fahrtwind.Style.Breakpoint (screen2xl, screenLg, screenMd, screenSm, screenXl)
43−import Fahrtwind.Style.Color.Background (background, background', backgroundImage, backgroundImage', backgroundNoRepeat, backgroundPosition, backgroundRepeat, backgroundRepeatX, backgroundRepeatY, backgroundSize, backgroundSize', blurredBackground, blurredBackground', linearGradient, linearGradientStops, linearGradientStopsString, linearGradientString, svgBackgroundImage)
43+import Fahrtwind.Style.Color.Background (background, background', backgroundImage, backgroundImage', backgroundNoRepeat, backgroundPosition, backgroundRepeat, backgroundRepeatX, backgroundRepeatY, backgroundSize, backgroundSize', blurredBackground, blurredBackground', linearGradient, linearGradient', linearGradientStops, linearGradientStopsString, linearGradientString, linearGradientString', svgBackgroundImage)
4444import Fahrtwind.Style.Color.Tailwind (TailwindColor, amber, black, blue, blueGray, coolGray, cyan, emerald, fuchsia, gray, green, indigo, lightBlue, lime, orange, pink, purple, red, rose, teal, trueGray, violet, warmGray, white, yellow)
4545import Fahrtwind.Style.Color.Text (textCenter, textCol, textCol', textJustify, textLeft, textRight)
4646import Fahrtwind.Style.Color.Util (hue, lightness, saturation, withAlpha, withHue, withLightness, withSaturation)
@@ -48,7 +48,7 @@ import Fahrtwind.Style.Cursor (cursorAuto, cursorDefault, cursorHelp, cursorMove
4848import Fahrtwind.Style.Display (block, displayNone, flex, inlineBlock, inlineFlex, inlineGrid)
4949import Fahrtwind.Style.Display.Flex (alignSelfCenter, alignSelfEnd, alignSelfStart, flexCol, flexGrow, flexNoWrap, flexRow, flexShrink, flexWrap, flexWrapReverse, gap, itemsAround, itemsBetween, itemsCenter, itemsEnd, itemsEvenly, itemsStart, justifyAround, justifyBetween, justifyCenter, justifyEnd, justifyEvenly, justifySelfCenter, justifySelfEnd, justifySelfStart, justifyStart)
5050import Fahrtwind.Style.Display.Grid (displayGrid, templateCols, templateRows)
51−import Fahrtwind.Style.Divide (divideCol, divideX, divideXReverse, divideY, divideYReverse)
51+import Fahrtwind.Style.Divide (divideCol, divideCol', divideX, divideXReverse, divideY, divideYReverse)
5252import Fahrtwind.Style.Global (globalStyles, nest, variables)
5353import Fahrtwind.Style.Input (outlineNone, placeholder)
5454import Fahrtwind.Style.Inset (bottom, bottom', left, left', right, right', top, top')
@@ -61,7 +61,7 @@ import Fahrtwind.Style.Position (positionAbsolute, positionFixed, positionRelati
6161import Fahrtwind.Style.PseudoClasses (active, checked, default, disabled, empty, enabled, evenChild, first, firstChild, firstOfType, focus, focusWithin, fullscreen, hover, inRange, indeterminate, invalid, lastChild, lastOfType, link, nthChild, nthOfType, oddChild, onlyChild, onlyOfType, optional, outOfRange, pseudoLeft, pseudoRight, readOnly, readWrite, required, root, scope, target, valid, visited)
6262import Fahrtwind.Style.PseudoElements (afterElement, beforeElement, content, firstLetter, firstLine, selection)
6363import Fahrtwind.Style.Size (full, height, height', heightFull, heightScreen, maxHeight, maxHeight', maxWidth, maxWidth', minHeight, minHeight', minWidth, minWidth', screenHeight, screenWidth, width, width', widthAndHeight, widthAndHeight', widthFull, widthScreen)
64−import Fahrtwind.Style.Text (fontBlack, fontBold, fontExtrabold, fontExtralight, fontFamilyOrMono, fontFamilyOrSans, fontFamilyOrSerif, fontLight, fontMedium, fontNormal, fontSemiMedium, fontSemibold, fontSize, fontSize', fontThin, lineHeight, lineHeight', text2xl, text3xl, text4xl, text5xl, text6xl, text7xl, text8xl, text9xl, textBase, textDefault, textLg, textSized, textSm, textTransformUppercase, textXl, textXs, tracking, trackingNormal, trackingTight, trackingTighter, trackingWide, trackingWider, trackingWidest, underline)
64+import Fahrtwind.Style.Text (fontBlack, fontBold, fontExtrabold, fontExtralight, fontFamilyOrMono, fontFamilyOrSans, fontFamilyOrSerif, fontLight, fontMedium, fontNormal, fontSemiMedium, fontSemibold, fontSize, fontSize', fontThin, italic, lineHeight, lineHeight', noTextDecoration, text2xl, text3xl, text4xl, text5xl, text6xl, text7xl, text8xl, text9xl, textBase, textDefault, textLg, textLinearGradient, textSized, textSm, textTransformUppercase, textXl, textXs, tracking, trackingNormal, trackingTight, trackingTighter, trackingWide, trackingWider, trackingWidest, underline)
6565import Fahrtwind.Style.Transform (mkRotate, mkTranslate, rotate, transform, transform', transformMany, translate)
6666import Fahrtwind.Style.Transition (transition, transition', transitionRec)
6767import Fahrtwind.Style.UserSelect (userSelectNone, userSelectText)
src/Fahrtwind/Style/Border.purs+10
@@ -1,6 +1,7 @@
11module Fahrtwind.Style.Border where
22
33import Prelude
4+
45import Color (Color)
56import React.Basic.Emotion (Style, StyleProperty, borderBox, color, contentBox, css, px, rem, str)
67
@@ -66,3 +67,12 @@ boxSizingBorderBox = css { boxSizing: borderBox }
6667
6768boxSizingContentBox ∷ Style
6869boxSizingContentBox = css { boxSizing: contentBox }
70+
71+borderGradient :: { backgroundGradient :: String, borderGradient :: String } -> Style
72+borderGradient args =
73+ css
74+ { background: str $
75+ args.backgroundGradient <> " padding-box, "
76+ <> (args.borderGradient <> " border-box")
77+ , borderColor: str "transparent"
78+ }
src/Fahrtwind/Style/Color/Background.purs+32−10
@@ -24,10 +24,22 @@ backgroundImage' ∷ StyleProperty → Style
2424backgroundImage' = css <<< { backgroundImage: _ }
2525
2626svgBackgroundImage ∷ JSX → Style
27−svgBackgroundImage jsx = backgroundImage
28− $ "url('data:image/svg+xml;utf8,"
29− <> renderToStaticMarkup jsx
30− <> "')"
27+svgBackgroundImage = backgroundImage <<< embeddedJSX
28+
29+maskImage :: String -> Style
30+maskImage = maskImage' <<< str
31+
32+maskImage' :: StyleProperty -> Style
33+maskImage' = css <<< { maskImage: _ }
34+
35+svgMaskImage ∷ JSX → Style
36+svgMaskImage = maskImage <<< embeddedJSX
37+
38+embeddedJSX ∷ JSX → String
39+embeddedJSX jsx =
40+ "url('data:image/svg+xml;utf8,"
41+ <> renderToStaticMarkup jsx
42+ <> "')"
3143
3244backgroundPosition ∷ String → Style
3345backgroundPosition bp = css { backgroundPosition: str bp }
@@ -50,6 +62,16 @@ backgroundSize' = css <<< { backgroundSize: _ }
5062backgroundSize ∷ String → Style
5163backgroundSize = backgroundSize' <<< str
5264
65+linearGradient' :: Int -> Array String -> Style
66+linearGradient' deg colours = css { background: str (linearGradientString' deg colours) }
67+
68+linearGradientString' :: Int -> Array String -> String
69+linearGradientString' deg colours = bg
70+ where
71+ bg = "linear-gradient(" <> show deg <> "deg, "
72+ <> intercalate "," (colours)
73+ <> ")"
74+
5375linearGradient ∷ Int → Array Color → Style
5476linearGradient deg colors = css { background: str bg }
5577 where
@@ -86,20 +108,20 @@ linearGradientString deg colors = bg
86108blurredBackground ∷ Color → Int → Style
87109blurredBackground col blurRadius =
88110 blurredBackground'
89− { blurredCol: col # withAlpha 0.3
90− , fallbackCol: col # withAlpha 0.8
111+ { blurredCol: col # withAlpha 0.3 # cssStringRGBA
112+ , fallbackCol: col # withAlpha 0.8 # cssStringRGBA
91113 , blurRadius
92114 }
93115
94−blurredBackground' ∷
95− { blurredCol ∷ Color, fallbackCol ∷ Color, blurRadius ∷ Int } → Style
116+blurredBackground'
117+ ∷ { blurredCol ∷ String, fallbackCol ∷ String, blurRadius ∷ Int } → Style
96118blurredBackground' { blurredCol, fallbackCol, blurRadius } =
97119 css
98− { background: str $ cssStringRGBA fallbackCol
120+ { background: str $ fallbackCol
99121 , "@supports (backdrop-filter: blur(12px)) or (-webkit-backdrop-filter: blur(12px))":
100122 nested
101123 $ css
102− { background: str $ cssStringRGBA blurredCol
124+ { background: str $ blurredCol
103125 , backdropFilter: str $ "blur(" <> show blurRadius <> "px)"
104126 }
105127 }
src/Fahrtwind/Style/Divide.purs+6−5
@@ -3,12 +3,13 @@ module Fahrtwind.Style.Divide
33 , divideXReverse
44 , divideY
55 , divideYReverse
6+ , divideCol'
67 , divideCol
78 ) where
89
910import Prelude
1011import Color (Color)
11−import React.Basic.Emotion (Style, color, css, nested, px, solid)
12+import React.Basic.Emotion (Style, StyleProperty, color, css, nested, px, solid)
1213
1314nestChildren ∷ Style → Style
1415nestChildren inner = css { "& > * + *": nested inner }
@@ -47,8 +48,8 @@ divideY pixels =
4748divideYReverse ∷ Int → Style
4849divideYReverse = negate >>> divideY
4950
51+divideCol' ∷ StyleProperty → Style
52+divideCol' borderColor = nestChildren $ css { borderColor }
53+
5054divideCol ∷ Color → Style
51−divideCol col =
52− nestChildren
53− $ css
54− { borderColor: color col }
55+divideCol = divideCol' <<< color
src/Fahrtwind/Style/Global.purs+1−1
@@ -2,7 +2,7 @@ module Fahrtwind.Style.Global where
22
33import Prelude
44
5−import Color (cssStringRGBA, darken)
5+import Color (darken)
66import Data.Array (intercalate)
77import Fahrtwind.Style.Color.Tailwind (gray, violet, white)
88import Prim.RowList (class RowToList)
src/Fahrtwind/Style/ScollBar.pursdeleted−34
@@ -1,34 +0,0 @@
1−module Fahrtwind.Style.ScollBar where
2−
3−import Prelude
4−
5−import Color (Color, cssStringRGBA)
6−import React.Basic.Emotion (Style, css, nested, str)
7−import React.Basic.Emotion as E
8−
9−scrollBar
10− :: { background :: Color
11− , col :: Color
12− , width :: Int
13− , borderRadius :: Int
14− , borderWidth :: Int
15− }
16− -> Style
17−scrollBar { background, col, width, borderRadius, borderWidth } = css
18− { -- Firefox
19− scrollbarWidth: E.auto
20− , scrollbarColor:
21− str $ cssStringRGBA col <> " " <> cssStringRGBA background
22− -- Chrome, Edge, and Safari
23− , "&::-webkit-scrollbar": nested $ css
24− { width: str $ show width <> "px"
25− }
26− , "&::-webkit-scrollbar-track": nested $ css
27− { background: str $ cssStringRGBA background
28− }
29− , "&::-webkit-scrollbar-thumb": nested $ css
30− { background: str $ cssStringRGBA col
31− , borderRadius: str $ show borderRadius <> "px"
32− , border: str $ show borderWidth <> "px solid " <> cssStringRGBA background
33− }
34− }
src/Fahrtwind/Style/ScrollBar.pursnew file+59
@@ -0,0 +1,59 @@
1+module Fahrtwind.Style.ScrollBar where
2+
3+import Prelude
4+
5+import Color (Color, cssStringRGBA)
6+import React.Basic.Emotion (Style, StyleProperty, css, nested, str)
7+import React.Basic.Emotion as E
8+import Unsafe.Coerce (unsafeCoerce)
9+
10+scrollBar ∷
11+ { background ∷ Color
12+ , col ∷ Color
13+ , width ∷ Int
14+ , borderRadius ∷ Int
15+ , borderWidth ∷ Int
16+ } →
17+ Style
18+scrollBar { background, col, width, borderRadius, borderWidth } = css
19+ { -- Firefox
20+ scrollbarWidth: E.auto
21+ , scrollbarColor:
22+ str $ cssStringRGBA col <> " " <> cssStringRGBA background
23+ -- Chrome, Edge, and Safari
24+ , "&::-webkit-scrollbar": nested $ css
25+ { width: str $ show width <> "px"
26+ }
27+ , "&::-webkit-scrollbar-track": nested $ css
28+ { background: str $ cssStringRGBA background
29+ }
30+ , "&::-webkit-scrollbar-thumb": nested $ css
31+ { background: str $ cssStringRGBA col
32+ , borderRadius: str $ show borderRadius <> "px"
33+ , border: str $ show borderWidth <> "px solid " <> cssStringRGBA
34+ background
35+ }
36+ }
37+
38+scrollBar' ∷
39+ { background ∷ StyleProperty
40+ , col ∷ StyleProperty
41+ , width ∷ StyleProperty
42+ , borderRadius ∷ StyleProperty
43+ , borderWidth ∷ StyleProperty
44+ } →
45+ Style
46+scrollBar' { background, col, width, borderRadius, borderWidth } = css
47+ { -- Firefox
48+ scrollbarWidth: E.auto
49+ , scrollbarColor: str (unsafeCoerce col <> " " <> unsafeCoerce background)
50+ -- Chrome, Edge, and Safari
51+ , "&::-webkit-scrollbar": nested $ css { width }
52+ , "&::-webkit-scrollbar-track": nested $ css { background }
53+ , "&::-webkit-scrollbar-thumb": nested $ css
54+ { background: col
55+ , borderRadius
56+ , border: str
57+ (unsafeCoerce borderWidth <> " solid " <> unsafeCoerce background)
58+ }
59+ }
src/Fahrtwind/Style/Size.purs+1−1
@@ -46,7 +46,7 @@ minHeight ∷ Int → Style
4646minHeight = px >>> minHeight'
4747
4848maxHeight' ∷ StyleProperty → Style
49−maxHeight' = css <<< { minHeight: _ }
49+maxHeight' = css <<< { maxHeight: _ }
5050
5151maxHeight ∷ Int → Style
5252maxHeight = px >>> maxHeight'
src/Fahrtwind/Style/Text.purs+21−2
@@ -2,7 +2,8 @@ module Fahrtwind.Style.Text where
22
33import Prelude
44
5−import React.Basic.Emotion (Style, StyleProperty, css, em, int, px, rem, str)
5+import Data.Array (intercalate)
6+import React.Basic.Emotion (Style, StyleProperty, css, em, int, none, px, rem, str)
67
78textSized ∷ Number → Number → Style
89textSized fs lh = css { fontSize: fs # rem, lineHeight: lh # rem }
@@ -124,5 +125,23 @@ fontFamilyOrMono ff = css { fontFamily: str $ ff <> ", monospace" }
124125underline ∷ Style
125126underline = css { textDecoration: str "underline" }
126127
128+noTextDecoration ∷ Style
129+noTextDecoration = css { textDecoration: none }
130+
131+italic ∷ Style
132+italic = css { fontStyle: str "italic" }
133+
134+textLinearGradient :: Int -> Array String -> Style
135+textLinearGradient deg colours =
136+ css
137+ { background: str bg
138+ , backgroundClip: str "text"
139+ , textFillColor: str "transparent"
140+ }
141+ where
142+ bg = "linear-gradient(" <> show deg <> "deg, "
143+ <> intercalate "," (colours)
144+ <> ")"
145+
127146textTransformUppercase ∷ Style
128−textTransformUppercase = css { textTransform: str "uppercase" }
147+textTransformUppercase = css { textTransform: str "uppercase" }