forked from giraud/bs-css
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Css.rei
1857 lines (1562 loc) · 54.9 KB
/
Css.rei
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
/* Css documentation is copy/pasted from mozilla mdn web docs */
module Types = Css_AtomicTypes;
type rule;
type cache;
let empty: list(rule);
let merge: list(string) => string;
let style: list(rule) => string;
let toJson: list(rule) => Js.Json.t;
let cache: cache;
let global: (string, list(rule)) => unit;
let insertRule: string => unit;
let important: rule => rule;
let label: string => rule;
module Shadow: {
type value('a);
type box;
type text;
type t('a) = [ | `shadow(value('a)) | `none];
let box:
(
~x: Types.Length.t=?,
~y: Types.Length.t=?,
~blur: Types.Length.t=?,
~spread: Types.Length.t=?,
~inset: bool=?,
Types.Color.t
) =>
[> t(box)];
let text:
(
~x: Types.Length.t=?,
~y: Types.Length.t=?,
~blur: Types.Length.t=?,
Types.Color.t
) =>
[> t(text)];
let toString: t('a) => string;
};
/* ********
Properties
********** */
/** If nothing works, use this (unsafe) escape hatch */
let unsafe: (string, string) => rule;
/**
The CSS align-content property sets the distribution of space between and around content items along a flexbox's
cross-axis or a grid's block axis.
*/
let alignContent:
[<
Types.AlignContent.t
| Types.NormalAlignment.t
| Types.BaselineAlignment.t
| Types.DistributedAlignment.t
| Types.Cascading.t
] =>
rule;
/**
The CSS align-items property sets the align-self value on all direct children as a group.
In Flexbox, it controls the alignment of items on the Cross Axis.
In Grid Layout, it controls the alignment of items on the Block Axis within their grid area.
*/
let alignItems:
[<
Types.AlignItems.t
| Types.PositionalAlignment.t
| Types.BaselineAlignment.t
| Types.Cascading.t
] =>
rule;
/**
The align-self CSS property overrides a grid or flex item's align-items value.
In Grid, it aligns the item inside the grid area. In Flexbox, it aligns the item on the cross axis.
*/
let alignSelf:
[<
Types.AlignSelf.t
| Types.PositionalAlignment.t
| Types.BaselineAlignment.t
| Types.Cascading.t
] =>
rule;
/**
The animation-delay CSS property sets when an animation starts.
The animation can start later, immediately from its beginning, or immediately and partway through the animation.
*/
let animationDelay: int => rule;
/**
The animation-direction CSS property sets whether an animation should play forwards, backwards,
or alternating back and forth.
*/
let animationDirection: Types.AnimationDirection.t => rule;
/**
The animation-duration CSS property sets the length of time that an animation takes to complete one cycle.
*/
let animationDuration: int => rule;
/**
The animation-fill-mode CSS property sets how a CSS animation applies styles to its target before and after
its execution.
*/
let animationFillMode: Types.AnimationFillMode.t => rule;
/**
The animation-iteration-count CSS property sets the number of times an animation cycle should be played
before stopping.
*/
let animationIterationCount: Types.AnimationIterationCount.t => rule;
/**
The animation-play-state CSS property sets whether an animation is running or paused.
*/
let animationPlayState: Types.AnimationPlayState.t => rule;
/**
The animation-timing-function CSS property sets how an animation progresses through the duration of each cycle.
*/
let animationTimingFunction: Types.TimingFunction.t => rule;
/* Warning: experimental */
let backfaceVisibility:
[< Types.BackfaceVisibility.t | Types.Cascading.t] => rule;
/**
The background-attachment CSS property sets whether a background image's position is fixed within the viewport,
or scrolls with its containing block.
*/
let backgroundAttachment:
[< Types.BackgroundAttachment.t | Types.Cascading.t] => rule;
/**
The background-color CSS property sets the background color of an element.
*/
let backgroundColor: Types.Color.t => rule;
/**
The background-clip CSS property sets whether an element's background extends underneath its border box,
padding box, or content box.
*/
let backgroundClip: [< Types.BackgroundClip.t | Types.Cascading.t] => rule;
/**
The background-image CSS property sets one or more background images on an element.
*/
let backgroundImage:
[< Types.BackgroundImage.t | Types.Url.t | Types.Gradient.t] => rule;
/**
The background-origin CSS property sets the background's origin: from the border start,
inside the border, or inside the padding.
*/
let backgroundOrigin: [< Types.BackgroundClip.t | Types.Cascading.t] => rule;
/**
The background-position CSS property sets the initial position for each background image.
The position is relative to the position layer set by background-origin.
*/
let backgroundPosition:
[<
Types.BackgroundPosition.t
| `hv(
[ Types.BackgroundPosition.X.t | Types.Length.t],
[ Types.BackgroundPosition.Y.t | Types.Length.t],
)
| Types.Length.t
| Types.Cascading.t
] =>
rule;
let backgroundPositions:
list(
[<
Types.BackgroundPosition.t
| `hv(
[ Types.BackgroundPosition.X.t | Types.Length.t],
[ Types.BackgroundPosition.Y.t | Types.Length.t],
)
| Types.Length.t
| Types.Cascading.t
],
) =>
rule;
let backgroundPosition4:
(
~x: Types.BackgroundPosition.X.t,
~offsetX: Types.Length.t,
~y: Types.BackgroundPosition.Y.t,
~offsetY: Types.Length.t
) =>
rule;
/**
The background-repeat CSS property sets how background images are repeated.
A background image can be repeated along the horizontal and vertical axes, or not repeated at all.
*/
let backgroundRepeat:
[<
Types.BackgroundRepeat.t
| `hv(Types.BackgroundRepeat.horizontal, Types.BackgroundRepeat.vertical)
| Types.Cascading.t
] =>
rule;
/**
The border-bottom shorthand CSS property sets an element's bottom border.
It sets the values of border-bottom-width, border-bottom-style and border-bottom-color.
*/
let borderBottom:
(
Types.Length.t,
[< Types.BorderStyle.t | Types.Cascading.t],
Types.Color.t
) =>
rule;
/**
The border-bottom-color CSS property sets the color of an element's bottom border.
It can also be set with the shorthand CSS properties border-color or border-bottom.
*/
let borderBottomColor: Types.Color.t => rule;
/**
The border-bottom-left-radius CSS property rounds the bottom-left corner of an element.
*/
let borderBottomLeftRadius: Types.Length.t => rule;
/**
The border-bottom-right-radius CSS property rounds the bottom-right corner of an element.
*/
let borderBottomRightRadius: Types.Length.t => rule;
/**
The border-bottom-style CSS property sets the line style of an element's bottom border.
*/
let borderBottomStyle: [< Types.BorderStyle.t | Types.Cascading.t] => rule;
/**
The border-bottom-width CSS property sets the width of the bottom border of an element.
*/
let borderBottomWidth: Types.Length.t => rule;
/**
The border-collapse CSS property sets whether cells inside a <table> have shared or separate borders.
*/
let borderCollapse: [< Types.BorderCollapse.t | Types.Cascading.t] => rule;
/**
The border-color shorthand CSS property sets the color of an element's border.
*/
let borderColor: Types.Color.t => rule;
/**
The border-left shorthand CSS property set an element's left border.
*/
let borderLeft:
(
Types.Length.t,
[< Types.BorderStyle.t | Types.Cascading.t],
Types.Color.t
) =>
rule;
let borderLeftColor: Types.Color.t => rule;
let borderLeftStyle: [< Types.BorderStyle.t | Types.Cascading.t] => rule;
let borderLeftWidth: Types.Length.t => rule;
let borderRight:
(
Types.Length.t,
[< Types.BorderStyle.t | Types.Cascading.t],
Types.Color.t
) =>
rule;
let borderRightColor: Types.Color.t => rule;
let borderRightStyle: [< Types.BorderStyle.t | Types.Cascading.t] => rule;
let borderRightWidth: Types.Length.t => rule;
let borderRadius: Types.Length.t => rule;
let borderSpacing: Types.Length.t => rule;
/**
The border-style shorthand CSS property sets the line style for all four sides of an element's border.
*/
let borderStyle: [< Types.BorderStyle.t | Types.Cascading.t] => rule;
let borderTopColor: Types.Color.t => rule;
let borderTopLeftRadius: Types.Length.t => rule;
let borderTopRightRadius: Types.Length.t => rule;
let borderTopStyle: [< Types.BorderStyle.t | Types.Cascading.t] => rule;
let borderTopWidth: Types.Length.t => rule;
let borderWidth: Types.Length.t => rule;
let bottom: [< Types.Length.t | Types.Cascading.t] => rule;
/**
The box-sizing CSS property sets how the total width and height of an element is calculated.
*/
let boxSizing: [< Types.BoxSizing.t | Types.Cascading.t] => rule;
let boxShadow: [< Shadow.t(Shadow.box) | Types.Cascading.t] => rule;
let boxShadows: list([ Shadow.t(Shadow.box)]) => rule;
/**
The clear CSS property sets whether an element must be moved below (cleared) floating elements that precede it.
The clear property applies to floating and non-floating elements.
*/
let clear: [< Types.Clear.t | Types.Cascading.t] => rule;
/**
The clip-path CSS property creates a clipping region that sets what part of an element should be shown.
Parts that are inside the region are shown, while those outside are hidden.
*/
let clipPath:
[<
Types.ClipPath.t
| Types.Url.t
| Types.GeometyBox.t
| Types.Cascading.t
] =>
rule;
let color: Types.Color.t => rule;
/**
The column-count CSS property breaks an element's content into the specified number of columns.
*/
let columnCount: [< Types.ColumnCount.t | Types.Cascading.t] => rule;
let contentRule: string => rule;
let cursor: Types.Cursor.t => rule;
/**
The direction CSS property sets the direction of text, table columns, and horizontal overflow.
Use rtl for languages written from right to left (like Hebrew or Arabic),
and ltr for those written from left to right (like English and most other languages).
*/
let direction: [< Types.Direction.t | Types.Cascading.t] => rule;
/**
The display CSS property sets whether an element is treated as a block or inline element
and the layout used for its children, such as grid or flex.
*/
let display:
[<
Types.DisplayOutside.t
| Types.DisplayInside.t
| Types.DisplayListItem.t
| Types.DisplayInternal.t
| Types.DisplayBox.t
| Types.DisplayLegacy.t
| Types.Cascading.t
] =>
rule;
/**
The flex CSS property sets how a flex item will grow or shrink to fit the space available in its flex container.
It is a shorthand for flex-grow, flex-shrink, and flex-basis.
*/
let flex: [< Types.Flex.t | `num(float)] => rule;
/**
The flex-basis CSS property sets the initial main size of a flex item.
It sets the size of the content box unless otherwise set with box-sizing.
*/
let flexBasis:
[< Types.FlexBasis.t | Types.Percentage.t | Types.Length.t] => rule;
/**
The flex-direction CSS property sets how flex items are placed in the flex container defining the main axis and the direction (normal or reversed).
*/
let flexDirection: [< Types.FlexDirection.t | Types.Cascading.t] => rule;
let flexGrow: float => rule;
let flexShrink: float => rule;
/**
The flex-wrap CSS property sets whether flex items are forced onto one line or can wrap onto multiple lines.
If wrapping is allowed, it sets the direction that lines are stacked.
*/
let flexWrap: [< Types.FlexWrap.t | Types.Cascading.t] => rule;
/**
The float CSS property places an element on the left or right side of its container,
allowing text and inline elements to wrap around it.
The element is removed from the normal flow of the page, though still remaining a part of the flow
(in contrast to absolute positioning).
*/
let float: [< Types.Float.t | Types.Cascading.t] => rule;
/**
The font-family CSS property specifies a prioritized list of one or more font family names and/or generic family names
for the selected element.
*/
let fontFamily: [< Types.FontFamilyName.t | Types.Cascading.t] => rule;
let fontFamilies: list([ Types.FontFamilyName.t]) => rule;
/**
The font-size CSS property sets the size of the font. This property is also used to compute the size of em, ex, and
other relative <length> units.
*/
let fontSize: [< Types.Length.t | Types.Cascading.t] => rule;
/**
The font-style CSS property sets whether a font should be styled with a normal, italic, or oblique face from its
font-family.
*/
let fontStyle: [< Types.FontStyle.t | Types.Cascading.t] => rule;
/**
The font-variant CSS property is a shorthand for the longhand properties font-variant-caps, font-variant-numeric,
font-variant-alternates, font-variant-ligatures, and font-variant-east-asian.
You can also set the CSS Level 2 (Revision 1) values of font-variant, (that is, normal or small-caps),
by using the font shorthand.
*/
let fontVariant: [< Types.FontVariant.t | Types.Cascading.t] => rule;
/**
The font-weight CSS property sets the weight (or boldness) of the font. The weights available depend on the
font-family you are using.
*/
let fontWeight: [< Types.FontWeight.t | Types.Cascading.t] => rule;
/**
The grid-area CSS property is a shorthand property for grid-row-start, grid-column-start, grid-row-end and
grid-column-end, specifying a grid item’s size and location within the grid by contributing a line, a span,
or nothing (automatic) to its grid placement, thereby specifying the edges of its grid area.
*/
let gridArea: [< Types.GridArea.t | Types.Cascading.t] => rule;
let gridArea2: (Types.GridArea.t, Types.GridArea.t) => rule;
let gridArea3: (Types.GridArea.t, Types.GridArea.t, Types.GridArea.t) => rule;
let gridArea4:
(Types.GridArea.t, Types.GridArea.t, Types.GridArea.t, Types.GridArea.t) =>
rule;
/**
The grid-auto-flow CSS property controls how the auto-placement algorithm works,
specifying exactly how auto-placed items get flowed into the grid.
*/
let gridAutoFlow: [< Types.GridAutoFlow.t | Types.Cascading.t] => rule;
/**
The grid-column CSS property is a shorthand property for grid-column-start and grid-column-end
specifying a grid item's size and location within the grid column by contributing a line, a span,
or nothing (automatic) to its grid placement, thereby specifying the inline-start and
inline-end edge of its grid area.
*/
let gridColumn: (int, int) => rule;
/**
The grid-column-end CSS property specifies a grid item’s end position within the grid column by contributing a line,
a span, or nothing (automatic) to its grid placement, thereby specifying the block-end edge of its grid area.
*/
let gridColumnEnd: int => rule;
/**
The column-gap CSS property sets the size of the gap (gutter) between an element's columns.
*/
let gridColumnGap:
[<
Types.GridColumnGap.t
| Types.Percentage.t
| Types.Length.t
| Types.Cascading.t
] =>
rule;
/**
The grid-column-start CSS property specifies a grid item’s start position within the grid column
by contributing a line, a span, or nothing (automatic) to its grid placement.
This start position defines the block-start edge of the grid area.
*/
let gridColumnStart: int => rule;
/**
The gap CSS property sets the gaps (gutters) between rows and columns. It is a shorthand for row-gap and column-gap.
*/
let gridGap:
[< Types.Percentage.t | Types.Length.t | Types.Cascading.t] => rule;
/**
The grid-row CSS property is a shorthand property for grid-row-start and grid-row-end specifying a grid item’s size
and location within the grid row by contributing a line, a span, or nothing (automatic) to its grid placement,
thereby specifying the inline-start and inline-end edge of its grid area.
*/
let gridRow: (int, int) => rule;
/**
The grid-row-end CSS property specifies a grid item’s end position within the grid row by contributing a line, a span,
or nothing (automatic) to its grid placement, thereby specifying the inline-end edge of its grid area.
*/
let gridRowEnd: int => rule;
/**
The row-gap CSS property sets the size of the gap (gutter) between an element's grid rows.
*/
let gridRowGap:
[< Types.Percentage.t | Types.Length.t | Types.Cascading.t] => rule;
/**
The grid-row-start CSS property specifies a grid item’s start position within the grid row by contributing a line,
a span, or nothing (automatic) to its grid placement, thereby specifying the inline-start edge of its grid area.
*/
let gridRowStart: int => rule;
/**
The grid-template-areas CSS property specifies named grid areas.
*/
let gridTemplateAreas:
[< Types.GridTemplateAreas.t | Types.Cascading.t] => rule;
/**
The height CSS property specifies the height of an element.
By default, the property defines the height of the content area.
If box-sizing is set to border-box, however, it instead determines the height of the border area.
*/
let height:
[<
Types.Height.t
| Types.Percentage.t
| Types.Length.t
| Types.Cascading.t
] =>
rule;
/**
The CSS justify-content property defines how the browser distributes space between and around content items
along the main-axis of a flex container, and the inline axis of a grid container.
*/
let justifyContent:
[<
Types.PositionalAlignment.t
| Types.NormalAlignment.t
| Types.DistributedAlignment.t
| Types.Cascading.t
] =>
rule;
/**
The CSS justify-self property sets the way a box is justified inside its alignment container along the appropriate axis.
*/
let justifySelf:
[<
Types.JustifySelf.t
| Types.PositionalAlignment.t
| Types.BaselineAlignment.t
| Types.Cascading.t
] =>
rule;
let left: [< Types.Length.t | Types.Cascading.t] => rule;
/**
The letter-spacing CSS property sets the spacing behavior between text characters
*/
let letterSpacing:
[< Types.LetterSpacing.t | Types.Length.t | Types.Cascading.t] => rule;
/**
The line-height CSS property sets the height of a line box. It's commonly used to set the distance between lines of text.
On block-level elements, it specifies the minimum height of line boxes within the element.
On non-replaced inline elements, it specifies the height that is used to calculate line box height.
*/
let lineHeight:
[< Types.LineHeight.t | Types.Length.t | Types.Cascading.t] => rule;
/**
The list-style CSS property is a shorthand to set list style properties list-style-type,
list-style-image, and list-style-position.
*/
let listStyle:
(
Types.ListStyleType.t,
Types.ListStylePosition.t,
[< Types.ListStyleImage.t | Types.Url.t]
) =>
rule;
/**
The list-style-image CSS property sets an image to be used as the list item marker.
It is often more convenient to use the shorthand list-style.
*/
let listStyleImage:
[< Types.ListStyleImage.t | Types.Url.t | Types.Cascading.t] => rule;
/**
The list-style-type CSS property sets the marker (such as a disc, character, or custom counter style) of a list item element.
*/
let listStyleType: [< Types.ListStyleType.t | Types.Cascading.t] => rule;
/**
The list-style-position CSS property sets the position of the ::marker relative to a list item.
*/
let listStylePosition:
[< Types.ListStylePosition.t | Types.Cascading.t] => rule;
let margin: [< Types.Length.t | Types.Margin.t] => rule;
let margin2:
(
~v: [< Types.Length.t | Types.Margin.t],
~h: [< Types.Length.t | Types.Margin.t]
) =>
rule;
let margin3:
(
~top: [< Types.Length.t | Types.Margin.t],
~h: [< Types.Length.t | Types.Margin.t],
~bottom: [< Types.Length.t | Types.Margin.t]
) =>
rule;
let margin4:
(
~top: [< Types.Length.t | Types.Margin.t],
~right: [< Types.Length.t | Types.Margin.t],
~bottom: [< Types.Length.t | Types.Margin.t],
~left: [< Types.Length.t | Types.Margin.t]
) =>
rule;
let marginLeft: [< Types.Length.t | Types.Margin.t] => rule;
let marginRight: [< Types.Length.t | Types.Margin.t] => rule;
let marginTop: [< Types.Length.t | Types.Margin.t] => rule;
let marginBottom: [< Types.Length.t | Types.Margin.t] => rule;
/**
The max-height CSS property sets the maximum height of an element.
It prevents the used value of the height property from becoming larger than the value specified for max-height.
*/
let maxHeight:
[<
Types.MaxHeight.t
| Types.Percentage.t
| Types.Length.t
| Types.Cascading.t
] =>
rule;
/**
The max-width CSS property sets the maximum width of an element.
It prevents the used value of the width property from becoming larger than the value specified by max-width.
*/
let maxWidth:
[<
Types.MaxWidth.t
| Types.Percentage.t
| Types.Length.t
| Types.Cascading.t
] =>
rule;
/**
The min-height CSS property sets the minimum height of an element.
It prevents the used value of the height property from becoming smaller than the value specified for min-height.
*/
let minHeight:
[<
Types.Height.t
| Types.Percentage.t
| Types.Length.t
| Types.Cascading.t
] =>
rule;
/**
The min-width CSS property sets the minimum width of an element.
It prevents the used value of the width property from becoming smaller than the value specified for min-width.
*/
let minWidth:
[<
Types.Width.t
| Types.Percentage.t
| Types.Length.t
| Types.Cascading.t
] =>
rule;
/**
The object-fit CSS property sets how the content of a replaced element,
such as an <img> or <video>, should be resized to fit its container.
*/
let objectFit: [< Types.ObjectFit.t | Types.Cascading.t] => rule;
let opacity: float => rule;
let order: int => rule;
let outline: (Types.Length.t, Types.OutlineStyle.t, Types.Color.t) => rule;
let outlineColor: Types.Color.t => rule;
let outlineOffset: Types.Length.t => rule;
let outlineStyle: Types.OutlineStyle.t => rule;
let outlineWidth: Types.Length.t => rule;
let overflow: Types.Overflow.t => rule;
let overflowX: Types.Overflow.t => rule;
let overflowY: Types.Overflow.t => rule;
/**
The overflow-wrap CSS property applies to inline elements, setting whether the browser
should insert line breaks within an otherwise unbreakable string to prevent text
from overflowing its line box.
*/
let overflowWrap: [< Types.OverflowWrap.t | Types.Cascading.t] => rule;
let padding: Types.Length.t => rule;
let padding2: (~v: Types.Length.t, ~h: Types.Length.t) => rule;
let padding3:
(~top: Types.Length.t, ~h: Types.Length.t, ~bottom: Types.Length.t) => rule;
let padding4:
(
~top: Types.Length.t,
~right: Types.Length.t,
~bottom: Types.Length.t,
~left: Types.Length.t
) =>
rule;
let paddingLeft: Types.Length.t => rule;
let paddingRight: Types.Length.t => rule;
let paddingTop: Types.Length.t => rule;
let paddingBottom: Types.Length.t => rule;
/**
The perspective CSS property determines the distance between the z=0 plane and the user in order
to give a 3D-positioned element some perspective.
Each 3D element with z>0 becomes larger; each 3D-element with z<0 becomes smaller.
The strength of the effect is determined by the value of this property.
*/
let perspective:
[< Types.Perspective.t | Types.Length.t | Types.Cascading.t] => rule;
/**
The perspective-origin CSS property determines the position at which the viewer is looking.
It is used as the vanishing point by the perspective property.
*/
let perspectiveOrigin:
(
[< Types.Perspective.t | Types.Length.t],
[< Types.Perspective.t | Types.Length.t]
) =>
rule;
/**
The pointer-events CSS property sets under what circumstances (if any) a particular graphic element can become the target of pointer events.
*/
let pointerEvents: [< Types.PointerEvents.t | Types.Cascading.t] => rule;
/**
The position CSS property sets how an element is positioned in a document.
The top, right, bottom, and left properties determine the final location of positioned elements.
*/
let position: [< Types.Position.t | Types.Cascading.t] => rule;
/**
The resize CSS property sets whether an element is resizable, and if so,
in which directions.
*/
let resize: [< Types.Resize.t | Types.Cascading.t] => rule;
let right: [< Types.Length.t | Types.Cascading.t] => rule;
/**
The table-layout CSS property sets the algorithm used to lay out <table> cells, rows, and columns.
*/
let tableLayout: [< Types.TableLayout.t | Types.Cascading.t] => rule;
/**
The text-align CSS property sets the horizontal alignment of a block element or table-cell box.
This means it works like vertical-align but in the horizontal direction.
*/
let textAlign: [< Types.TextAlign.t | Types.Cascading.t] => rule;
/**
The text-decoration-color CSS property sets the color of decorations added to text by text-decoration-line.
*/
let textDecorationColor: [< Types.Color.t | Types.Cascading.t] => rule;
/**
The text-decoration-line CSS property sets the kind of decoration
that is used on text in an element, such as an underline or overline.
*/
let textDecorationLine:
[< Types.TextDecorationLine.t | Types.Cascading.t] => rule;
/**
The text-decoration-style CSS property sets the style of the lines specified by text-decoration-line.
The style applies to all lines that are set with text-decoration-line.
*/
let textDecorationStyle:
[< Types.TextDecorationStyle.t | Types.Cascading.t] => rule;
/**
The text-indent CSS property sets the length of empty space (indentation)
that is put before lines of text in a block.
*/
let textIndent:
[< Types.Percentage.t | Types.Length.t | Types.Cascading.t] => rule;
/**
The text-overflow CSS property sets how hidden overflow content is signaled to users.
It can be clipped, display an ellipsis ('…'), or display a custom string.
*/
let textOverflow: [< Types.TextOverflow.t | Types.Cascading.t] => rule;
/**
The text-shadow CSS property adds shadows to text.
It accepts a comma-separated list of shadows to be applied to the text and any of its decorations.
Each shadow is described by some combination of X and Y offsets from the element, blur radius, and color.
*/
let textShadow: [< Shadow.t(Shadow.text) | Types.Cascading.t] => rule;
let textShadows: list([ Shadow.t(Shadow.text)]) => rule;
/**
The text-transform CSS property specifies how to capitalize an element's text.
It can be used to make text appear in all-uppercase or all-lowercase, or with each word capitalized.
*/
let textTransform: [< Types.TextTransform.t | Types.Cascading.t] => rule;
let top: [< Types.Length.t | Types.Cascading.t] => rule;
let transform: Types.Transform.t => rule;
let transforms: list(Types.Transform.t) => rule;
/**
The transform-origin CSS property sets the origin for an element's transformations.
*/
let transformOrigin: (Types.Length.t, Types.Length.t) => rule;
let transformOrigin3d:
(Types.Length.t, Types.Length.t, Types.Length.t) => rule;
let transitionDelay: int => rule;
let transitionDuration: int => rule;
let transitionProperty: string => rule;
let transformStyle: [< Types.TransformStyle.t | Types.Cascading.t] => rule;
let transitionTimingFunction: Types.TimingFunction.t => rule;
/**
The user-select CSS property controls whether the user can select text.
This doesn't have any effect on content loaded as chrome, except in textboxes.
*/
let userSelect: [< Types.UserSelect.t | Types.Cascading.t] => rule;
/**
The vertical-align CSS property sets vertical alignment of an inline or table-cell box.
*/
let verticalAlign:
[< Types.VerticalAlign.t | Types.Length.t | Types.Cascading.t] => rule;
/**
The visibility CSS property shows or hides an element without changing the layout of a document.
The property can also hide rows or columns in a <table>.
*/
let visibility: [< Types.Visibility.t | Types.Cascading.t] => rule;
/**
The width CSS property sets an element's width.
By default, it sets the width of the content area, but if box-sizing is set to border-box,
it sets the width of the border area.
*/
let width:
[<
Types.Width.t
| Types.Percentage.t
| Types.Length.t
| Types.Cascading.t
] =>
rule;
/**
The white-space CSS property sets how white space inside an element is handled.
*/
let whiteSpace: [< Types.WhiteSpace.t | Types.Cascading.t] => rule;
/**
The word-break CSS property sets whether line breaks appear wherever the text would otherwise overflow its content box.
*/
let wordBreak: [< Types.WordBreak.t | Types.Cascading.t] => rule;
/**
The word-spacing CSS property sets the length of space between words and between tags
*/
let wordSpacing:
[<
Types.WordSpacing.t
| Types.Length.t
| Types.Percentage.t
| Types.Cascading.t
] =>
rule;
/**
see overflowWrap
*/
let wordWrap: [< Types.OverflowWrap.t | Types.Cascading.t] => rule;
/**
The z-index CSS property sets the z-order of a positioned element and its descendants or flex items.
Overlapping elements with a larger z-index cover those with a smaller one.
*/
let zIndex: int => rule;
/* *******
selectors
********* */
let selector: (string, list(rule)) => rule;
let media: (string, list(rule)) => rule;
/** type selector */
/*
Pseudo-classes selectors
A CSS pseudo-class is a keyword added to a selector that specifies a special state of the selected element(s).
*/
/**
The :active CSS pseudo-class represents an element (such as a button) that is being activated by the user.
When using a mouse, "activation" typically starts when the user presses down the primary mouse button.
*/
let active: list(rule) => rule;
/**
The :checked CSS pseudo-class selector represents any radio (<input type="radio">), checkbox (<input type="checkbox">),
or option (<option> in a <select>) element that is checked or toggled to an on state.
*/
let checked: list(rule) => rule;
/**
The :default CSS pseudo-class selects form elements that are the default in a group of related elements.
*/
let default: list(rule) => rule;
/**
The :defined CSS pseudo-class represents any element that has been defined.
This includes any standard element built in to the browser, and custom elements that have been successfully defined
(i.e. with the CustomElementRegistry.define() method).
*/
let defined: list(rule) => rule;
/**
The :disabled CSS pseudo-class represents any disabled element.
An element is disabled if it can't be activated (selected, clicked on, typed into, etc.) or accept focus.
The element also has an enabled state, in which it can be activated or accept focus.
*/
let disabled: list(rule) => rule;
/**
The :empty CSS pseudo-class represents any element that has no children.
Children can be either element nodes or text (including whitespace).
Comments, processing instructions, and CSS content do not affect whether an element is considered empty.