Skip to content

Commit a550e40

Browse files
css fixes & updates; added CSSFunction and CSSFunctionType
1 parent 6c9c077 commit a550e40

19 files changed

+517
-195
lines changed

Sources/CSS/CSSFunction.swift

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
//
2+
// CSSFunction.swift
3+
//
4+
//
5+
// Created by Evan Anderson on 2/13/25.
6+
//
7+
8+
public struct CSSFunction : Hashable {
9+
public var value:String
10+
public var type:CSSFunctionType
11+
12+
public func hash(into hasher: inout Hasher) {
13+
hasher.combine(type)
14+
}
15+
}

Sources/CSS/CSSFunctionType.swift

Lines changed: 138 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,138 @@
1+
//
2+
// CSSFunctionType.swift
3+
//
4+
//
5+
// Created by Evan Anderson on 2/13/25.
6+
//
7+
8+
// https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Functions
9+
public enum CSSFunctionType : String {
10+
case abs
11+
case acos
12+
case anchor
13+
case anchorSize
14+
case asin
15+
case atan
16+
case atan2
17+
case attr
18+
case blur
19+
case brightness
20+
case calcSize
21+
case calc
22+
case circle
23+
case clamp
24+
case colorMix
25+
case color
26+
case conicGradient
27+
case contrast
28+
case cos
29+
case counter
30+
case counters
31+
case crossFade
32+
case cubicBezier
33+
case deviceCmyk
34+
case dropShadow
35+
case element
36+
case ellipse
37+
case env
38+
case exp
39+
case fitContent
40+
case grayscale
41+
case hsl
42+
case hueRotate
43+
case hwb
44+
case hypot
45+
case imageSet
46+
case image
47+
case inset
48+
case invert
49+
case lab
50+
case layer
51+
case lch
52+
case lightDark
53+
case linearGradient
54+
case linear
55+
case log
56+
case matrix
57+
case matrix3d
58+
case max
59+
case min
60+
case minmax
61+
case mod
62+
case oklab
63+
case oklch
64+
case opacity
65+
case paint
66+
case paletteMix
67+
case path
68+
case perspective
69+
case polygon
70+
case pow
71+
case radialGradient
72+
case ray
73+
case rect
74+
case rem
75+
case `repeat`
76+
case repeatingConicGradient
77+
case repeatingLinearGradient
78+
case repeatingRadialGradient
79+
case rgb
80+
case rotate
81+
case rotate3d
82+
case rotateX
83+
case rotateY
84+
case rotateZ
85+
case round
86+
case saturate
87+
case scale
88+
case scale3d
89+
case scaleX
90+
case scaleY
91+
case scaleZ
92+
case scroll
93+
case sepia
94+
case shape
95+
case sign
96+
case sin
97+
case skew
98+
case skewX
99+
case skewY
100+
case sqrt
101+
case steps
102+
case symbols
103+
case tan
104+
case translate
105+
case translate3d
106+
case translateX
107+
case translateY
108+
case translateZ
109+
case url
110+
case `var`
111+
case view
112+
case xywh
113+
114+
@inlinable
115+
public var key : String {
116+
switch self {
117+
case .anchorSize: return "anchor-size"
118+
case .calcSize: return "calc-size"
119+
case .colorMix: return "color-mix"
120+
case .conicGradient: return "conic-gradient"
121+
case .crossFade: return "cross-fade"
122+
case .cubicBezier: return "cubic-bezier"
123+
case .deviceCmyk: return "device-cmyk"
124+
case .dropShadow: return "drop-shadow"
125+
case .fitContent: return "fit-content"
126+
case .hueRotate: return "hue-rotate"
127+
case .imageSet: return "image-set"
128+
case .lightDark: return "light-dark"
129+
case .linearGradient: return "linear-gradient"
130+
case .paletteMix: return "palette-mix"
131+
case .radialGradient: return "radial-gradient"
132+
case .repeatingConicGradient: return "repeating-conic-gradient"
133+
case .repeatingLinearGradient: return "repeating-linear-gradient"
134+
case .repeatingRadialGradient: return "repeating-radial-gradient"
135+
default: return rawValue
136+
}
137+
}
138+
}

Sources/CSS/CSS.swift renamed to Sources/CSS/CSSStyle.swift

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,6 @@
88
import HTMLKitUtilities
99

1010
public enum CSSStyle : HTMLInitializable {
11-
public typealias SFloat = Swift.Float
12-
1311
//case accentColor(AccentColor?)
1412
//case align(Align?)
1513
case all(All?)
@@ -38,7 +36,7 @@ public enum CSSStyle : HTMLInitializable {
3836
case counterIncrement
3937
case counterReset
4038
case counterSet
41-
//case cursor(Cursor?)
39+
case cursor(Cursor?)
4240

4341
case direction(Direction?)
4442
case display(Display?)
@@ -82,7 +80,7 @@ public enum CSSStyle : HTMLInitializable {
8280
case objectPosition
8381
case offset
8482
case opacity(Opacity?)
85-
//case order(Order?)
83+
case order(Order?)
8684
case orphans
8785
case outline
8886
case overflow
@@ -124,7 +122,7 @@ public enum CSSStyle : HTMLInitializable {
124122

125123
case whiteSpace(WhiteSpace?)
126124
case whiteSpaceCollapse(WhiteSpaceCollapse?)
127-
case windows(Windows?)
125+
case widows(Widows?)
128126
case width(CSSUnit?)
129127
//case word(Word?)
130128
case writingMode(WritingMode?)
@@ -164,7 +162,7 @@ public enum CSSStyle : HTMLInitializable {
164162
case .counterIncrement: return "counter-increment"
165163
case .counterReset: return "counter-reset"
166164
case .counterSet: return "counter-set"
167-
//case .cursor: return "cursor"
165+
case .cursor: return "cursor"
168166

169167
case .direction: return "direction"
170168
case .display: return "display"
@@ -208,7 +206,7 @@ public enum CSSStyle : HTMLInitializable {
208206
case .objectPosition: return "object-position"
209207
case .offset: return "offset"
210208
case .opacity: return "opacity"
211-
//case .order: return "order"
209+
case .order: return "order"
212210
case .orphans: return "orphans"
213211
case .outline: return "outline"
214212
case .overflow: return "overflow"
@@ -250,7 +248,7 @@ public enum CSSStyle : HTMLInitializable {
250248

251249
case .whiteSpace: return "white-space"
252250
case .whiteSpaceCollapse: return "white-space-collapse"
253-
case .windows: return "windows"
251+
case .widows: return "widows"
254252
case .width: return "width"
255253
//case .word: return "word"
256254
case .writingMode: return "writing-mode"
@@ -285,6 +283,7 @@ extension CSSStyle {
285283
case .clear(let v): return get(v)
286284
case .color(let v): return get(v)
287285
case .colorScheme(let v): return get(v)
286+
case .cursor(let v): return get(v)
288287

289288
case .direction(let v): return get(v)
290289
case .display(let v): return get(v)
@@ -301,13 +300,14 @@ extension CSSStyle {
301300

302301
case .objectFit(let v): return get(v)
303302
case .opacity(let v): return get(v)
303+
case .order(let v): return get(v)
304304

305305
case .visibility(let v): return get(v)
306306

307307
case .whiteSpace(let v): return get(v)
308308
case .whiteSpaceCollapse(let v): return get(v)
309309
case .width(let v): return get(v)
310-
case .windows(let v): return get(v)
310+
case .widows(let v): return get(v)
311311
case .writingMode(let v): return get(v)
312312

313313
case .zoom(let v): return get(v)

0 commit comments

Comments
 (0)