diff options
author | bptato <nincsnevem662@gmail.com> | 2025-01-21 17:31:53 +0100 |
---|---|---|
committer | bptato <nincsnevem662@gmail.com> | 2025-01-21 17:31:53 +0100 |
commit | c3461ec8d2a2972cf7ef93e29c756e609af6f94d (patch) | |
tree | 662db3ce958d44a2095fb25c083bdc57119ed2f8 /src | |
parent | 4d57a29eed27c881111ecd4f4d3d57d85d0dac1f (diff) | |
download | chawan-c3461ec8d2a2972cf7ef93e29c756e609af6f94d.tar.gz |
cssvalues: add newer length units
I'm not convinced that anybody even knows these exist, but whatever.
Diffstat (limited to 'src')
-rw-r--r-- | src/css/cssvalues.nim | 54 |
1 files changed, 36 insertions, 18 deletions
diff --git a/src/css/cssvalues.nim b/src/css/cssvalues.nim index 933b6c87..86309591 100644 --- a/src/css/cssvalues.nim +++ b/src/css/cssvalues.nim @@ -99,22 +99,37 @@ type CSSUnit* = enum cuAuto = "" + cuCap = "cap" + cuCh = "ch" cuCm = "cm" - cuMm = "mm" - cuIn = "in" - cuPx = "px" - cuPt = "pt" - cuPc = "pc" + cuDvmax = "dvmax" + cuDvmin = "dvmin" cuEm = "em" cuEx = "ex" - cuCh = "ch" + cuIc = "ic" + cuIn = "in" + cuLh = "lh" + cuLvmax = "lvmax" + cuLvmin = "lvmin" + cuMm = "mm" + cuPc = "pc" + cuPerc = "%" + cuPt = "pt" + cuPx = "px" + cuRcap = "rcap" + cuRch = "rch" cuRem = "rem" - cuVw = "vw" + cuRex = "rex" + cuRic = "ric" + cuRlh = "rlh" + cuSvmax = "svmax" + cuSvmin = "svmin" + cuVb = "vb" cuVh = "vh" - cuVmin = "vmin" + cuVi = "vi" cuVmax = "vmax" - cuPerc = "%" - cuIc = "ic" + cuVmin = "vmin" + cuVw = "vw" CSSValueType* = enum cvtLength = "length" @@ -888,10 +903,11 @@ func resolveLength*(u: CSSUnit; val: float32; attrs: WindowAttributes): CSSLength = return case u of cuAuto: CSSLength(u: clAuto) - of cuEm, cuRem: cssLength(val * float32(attrs.ppl)) - of cuCh: cssLength(val * float32(attrs.ppc)) - of cuIc: cssLength(val * float32(attrs.ppc) * 2) - of cuEx: cssLength(val * float32(attrs.ppc) / 2) + of cuEm, cuRem, cuCap, cuRcap, cuLh, cuRlh: + cssLength(val * float32(attrs.ppl)) + of cuCh, cuRch: cssLength(val * float32(attrs.ppc)) + of cuIc, cuRic: cssLength(val * float32(attrs.ppc) * 2) + of cuEx, cuRex: cssLength(val * float32(attrs.ppc) / 2) of cuPerc: CSSLength(u: clPerc, num: val) of cuPx: cssLength(val) of cuCm: cssLength(val * 37.8) @@ -899,10 +915,12 @@ func resolveLength*(u: CSSUnit; val: float32; attrs: WindowAttributes): of cuIn: cssLength(val * 96) of cuPc: cssLength(val * 16) of cuPt: cssLength(val * 4 / 3) - of cuVw: cssLength(float32(attrs.widthPx) * val / 100) - of cuVh: cssLength(float32(attrs.heightPx) * val / 100) - of cuVmin: cssLength(min(attrs.widthPx, attrs.heightPx) / 100 * val) - of cuVmax: cssLength(max(attrs.widthPx, attrs.heightPx) / 100 * val) + of cuVw, cuVi: cssLength(float32(attrs.widthPx) * val / 100) + of cuVh, cuVb: cssLength(float32(attrs.heightPx) * val / 100) + of cuVmin, cuSvmin, cuLvmin, cuDvmin: + cssLength(min(attrs.widthPx, attrs.heightPx) / 100 * val) + of cuVmax, cuSvmax, cuLvmax, cuDvmax: + cssLength(max(attrs.widthPx, attrs.heightPx) / 100 * val) func parseLength(val: float32; u: string; attrs: WindowAttributes): Opt[CSSLength] = |