From d69f74baaa3f0695bbb58b3f43b955b7d768d115 Mon Sep 17 00:00:00 2001 From: Jiminy Panoz Date: Mon, 16 Feb 2026 15:13:38 +0100 Subject: [PATCH 1/3] Remove defaultLineLength --- css/dist/ReadiumCSS-after.css | 6 ++---- css/dist/cjk-horizontal/ReadiumCSS-after.css | 6 ++---- css/dist/cjk-vertical/ReadiumCSS-after.css | 6 ++---- css/dist/rtl/ReadiumCSS-after.css | 6 ++---- .../ReadiumCSS-pagination-vertical.css | 2 +- css/src/modules/ReadiumCSS-pagination.css | 2 +- .../modules/ReadiumCSS-scroll-vertical.css | 2 +- css/src/modules/ReadiumCSS-scroll.css | 2 +- css/vars/pagination.json | 1 - docs/CSS03-injection_and_pagination.md | 10 +--------- docs/CSS19-api.md | 8 -------- docs/ReadiumCSS_docs.epub | Bin 3687385 -> 3687216 bytes .../OEBPS/Text/Section-003.xhtml | 8 +------- .../OEBPS/Text/Section-019.xhtml | 6 ------ 14 files changed, 14 insertions(+), 51 deletions(-) diff --git a/css/dist/ReadiumCSS-after.css b/css/dist/ReadiumCSS-after.css index 11c68886..414a9f9f 100644 --- a/css/dist/ReadiumCSS-after.css +++ b/css/dist/ReadiumCSS-after.css @@ -27,8 +27,6 @@ --RS__pageGutter:0; - --RS__defaultLineLength:40rem; - --RS__colGap:0; --RS__colCount:1; @@ -70,7 +68,7 @@ body{ width:100%; - max-width:var(--RS__defaultLineLength) !important; + max-width:100% !important; padding:0 var(--RS__pageGutter) !important; margin:0 auto !important; box-sizing:border-box; @@ -105,7 +103,7 @@ body{ } :root[style*="readium-scroll-on"] body{ - max-width:var(--RS__defaultLineLength) !important; + max-width:100% !important; box-sizing:border-box !important; } diff --git a/css/dist/cjk-horizontal/ReadiumCSS-after.css b/css/dist/cjk-horizontal/ReadiumCSS-after.css index d5f830c1..677a8eff 100644 --- a/css/dist/cjk-horizontal/ReadiumCSS-after.css +++ b/css/dist/cjk-horizontal/ReadiumCSS-after.css @@ -27,8 +27,6 @@ --RS__pageGutter:0; - --RS__defaultLineLength:40rem; - --RS__colGap:0; --RS__colCount:1; @@ -70,7 +68,7 @@ body{ width:100%; - max-width:var(--RS__defaultLineLength) !important; + max-width:100% !important; padding:0 var(--RS__pageGutter) !important; margin:0 auto !important; box-sizing:border-box; @@ -105,7 +103,7 @@ body{ } :root[style*="readium-scroll-on"] body{ - max-width:var(--RS__defaultLineLength) !important; + max-width:100% !important; box-sizing:border-box !important; } diff --git a/css/dist/cjk-vertical/ReadiumCSS-after.css b/css/dist/cjk-vertical/ReadiumCSS-after.css index 26d62298..7cecdabb 100644 --- a/css/dist/cjk-vertical/ReadiumCSS-after.css +++ b/css/dist/cjk-vertical/ReadiumCSS-after.css @@ -27,8 +27,6 @@ --RS__pageGutter:0; - --RS__defaultLineLength:40rem; - --RS__colGap:0; --RS__colCount:1; @@ -81,7 +79,7 @@ body{ width:100%; - max-height:var(--RS__defaultLineLength) !important; + max-height:100% !important; padding:var(--RS__pageGutter) 0 !important; margin:auto 0 !important; box-sizing:border-box; @@ -116,7 +114,7 @@ body{ :root[style*="readium-scroll-on"] body, :root[style*="readium-noVerticalPagination-on"] body{ - max-width:var(--RS__defaultLineLength) !important; + max-width:100% !important; box-sizing:border-box !important; } diff --git a/css/dist/rtl/ReadiumCSS-after.css b/css/dist/rtl/ReadiumCSS-after.css index 7ae9abfe..b8d12ee1 100644 --- a/css/dist/rtl/ReadiumCSS-after.css +++ b/css/dist/rtl/ReadiumCSS-after.css @@ -27,8 +27,6 @@ --RS__pageGutter:0; - --RS__defaultLineLength:40rem; - --RS__colGap:0; --RS__colCount:1; @@ -70,7 +68,7 @@ body{ width:100%; - max-width:var(--RS__defaultLineLength) !important; + max-width:100% !important; padding:0 var(--RS__pageGutter) !important; margin:0 auto !important; box-sizing:border-box; @@ -105,7 +103,7 @@ body{ } :root[style*="readium-scroll-on"] body{ - max-width:var(--RS__defaultLineLength) !important; + max-width:100% !important; box-sizing:border-box !important; } diff --git a/css/src/modules/ReadiumCSS-pagination-vertical.css b/css/src/modules/ReadiumCSS-pagination-vertical.css index 6426e761..10455f19 100644 --- a/css/src/modules/ReadiumCSS-pagination-vertical.css +++ b/css/src/modules/ReadiumCSS-pagination-vertical.css @@ -87,7 +87,7 @@ body { /* Limit line-length but we have to reset when 2 columns and control the viewport. By using max-width + margin auto, margins will shrink when font-size increases, which is what would be expected in terms of typography. */ - max-height: var(--RS__defaultLineLength) !important; + max-height: 100% !important; margin: auto 0 !important; /* We need a minimum padding on body so that descandants/ascendants in italic/script are not cut-off. diff --git a/css/src/modules/ReadiumCSS-pagination.css b/css/src/modules/ReadiumCSS-pagination.css index 36516dad..094f1457 100644 --- a/css/src/modules/ReadiumCSS-pagination.css +++ b/css/src/modules/ReadiumCSS-pagination.css @@ -73,7 +73,7 @@ body { /* Limit line-length but we have to reset when 2 columns and control the viewport. By using max-width + margin auto, margins will shrink when font-size increases, which is what would be expected in terms of typography. */ - max-width: var(--RS__defaultLineLength) !important; + max-width: 100% !important; margin: 0 auto !important; /* We need a minimum padding on body so that descandants/ascendants in italic/script are not cut-off. diff --git a/css/src/modules/ReadiumCSS-scroll-vertical.css b/css/src/modules/ReadiumCSS-scroll-vertical.css index 91196532..8bb0d090 100644 --- a/css/src/modules/ReadiumCSS-scroll-vertical.css +++ b/css/src/modules/ReadiumCSS-scroll-vertical.css @@ -25,7 +25,7 @@ :root:--scroll-view body, :root:--no-vertical-pagination body { box-sizing: border-box !important; - max-width: var(--RS__defaultLineLength) !important; + max-width: 100% !important; } @supports (overflow: clip) { diff --git a/css/src/modules/ReadiumCSS-scroll.css b/css/src/modules/ReadiumCSS-scroll.css index a9899e25..8a25261b 100644 --- a/css/src/modules/ReadiumCSS-scroll.css +++ b/css/src/modules/ReadiumCSS-scroll.css @@ -24,7 +24,7 @@ /* Make sure line-length is limited in all configs */ :root:--scroll-view body { box-sizing: border-box !important; - max-width: var(--RS__defaultLineLength) !important; + max-width: 100% !important; } :root:--scroll-view:not(:--no-overflow) body { diff --git a/css/vars/pagination.json b/css/vars/pagination.json index 581f8cfe..c88e3b2e 100644 --- a/css/vars/pagination.json +++ b/css/vars/pagination.json @@ -2,7 +2,6 @@ "RS__colWidth": "100vw", "RS__colCount": 1, "RS__colGap": 0, - "RS__defaultLineLength": "40rem", "RS__pageGutter": 0, "RS__viewportWidth": "100%" } \ No newline at end of file diff --git a/docs/CSS03-injection_and_pagination.md b/docs/CSS03-injection_and_pagination.md index 4967c608..2e571997 100644 --- a/docs/CSS03-injection_and_pagination.md +++ b/docs/CSS03-injection_and_pagination.md @@ -75,7 +75,7 @@ This is the model you’re dealing with. It’s been simplified in version 2 in ![The single page model relies on the column width of the :root element. Line-length is constrained by the max-width of the body element, including its padding. Finally an auto margin centers the content.](assets/Page-Model.jpg) -Page gutters are part of `body` (`--RS__pageGutter`), hence `--USER__lineLength` (or `--RS__defaultLineLength` if no user preference is set). Contents are centered in `:root` using the `auto` value for `body` margins. +Page gutters are part of `body` (`--RS__pageGutter`), hence `--USER__lineLength`. Contents are centered in `:root` using the `auto` value for `body` margins. By default, `--RS__pageGutter` is set to `0`. You can set it as you wish, but take into account it will substract from `--USER__lineLength`. @@ -119,14 +119,6 @@ The inline (horizontal by default, vertical in vertical-writing) page margins. * * * -``` ---RS__defaultLineLength -``` - -The default line-length when none is set by the user. It should be set in `rem` in order to take `:root`’s `font-size` as a reference, whichever the `body`’s `font-size` might be. - -* * * - ``` --USER__lineLength ``` diff --git a/docs/CSS19-api.md b/docs/CSS19-api.md index fd89de07..60537807 100644 --- a/docs/CSS19-api.md +++ b/docs/CSS19-api.md @@ -267,14 +267,6 @@ You must account for this gap when scrolling. The inline (horizontal by default, vertical in vertical-writing) page margins. -* * * - -``` ---RS__defaultLineLength -``` - -The default line-length when none is set by the user. It must be set in `rem` in order to take `:root`’s `font-size` as a reference, whichever the `body`’s `font-size` might be. - ### Scroll * * * diff --git a/docs/ReadiumCSS_docs.epub b/docs/ReadiumCSS_docs.epub index 9eeebac483113f1b9a3e154ff700e72c449dc1c4..ae27765dc8af3f96474363fd037f0af2e0af45ec 100644 GIT binary patch delta 10256 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 U0S5Lzht$7W_iu|W8}J|cKWBM;y#N3J delta 10329 zcmZ8{bx@r#-z*%wxI45s6nA$k6e;d*#oY=#$icl(4({$!+}+*XwODcI_WR!V&YijW zC)t^u%_K9)B){G2kZtJY&~0dcFfOI#sTAk@xb_C0x%(%2uutn0h5Bsz~tbM;7?!*FeR7@Obw<1(}L;1^k4??XD}m} z3Cs*;0keYH!0ccSFejMnH}@bZ$i<;?n3S8484cUsQE5x2J^nz0+H?zcMQX$}G?sAl{Bp%4Qc%$`=RcD85we`40Sliut^;ELcm zj?m=PJE)eLX3qn5^-lW~+s-F$(BNT$sB21-HNqq4+}zA9{M&lpbd2uzuc&@7=S%9B zR&nnvWs+mJO2&tV9$sZc9=&#^SEx9ZekfD8b9D7^wxm+SOOv#W49zP|m&uBGb9Vgk zj&2C}ygwW{uyo*zI{zYD>u8UC$Gx<-Adg8hPq|Pi`g7}D+abc%Z{mI59fUB;LBg>k z_Jg6yq9UGu_>l8%BSYYwjjOpJ{zpk)usV036hw{&p)q*LutX)olODNDPHFzP*U#Z! z-n=@+UvXetG(M(q&d&sZ|(JoxU#`zR7eg zz0#xi;;Uq2goziR%QURzk1+pYkjY)!tJW!*82N4+aAKZwfG(3Td=m$+kXD23gJyG~ ztDgGsOVPlW-`TY%QgpICE|W#Al08uXT0T*p`bsUyMYY^YNl~(Y zKuuI9M>23Ug=DZd+o@flrqq_+LJnXJW(W{Tw5VE!XVfUjl;hurp_QIff5IUKQ#Z?TrUU%Wb(G5Y zGSIq7_pcnn-D8PWt|16~{GJmDn3&^cj@kDT6MG1u{E_PI+bWr?=q{>>xg(r$F_x5O zBxwwv2gR55`gIDArB8!URS=3sU+G`PPUl!a_;{nv9*k!6D%4IU7)djGk`rTz1=>iB z>pBEoj@4S<<)eNPMfE3d_yf_u9Y}lq3#L{nCSSd$<|Z zswG{it{?kYVZpxhd6z?TO25AT^$dTjhvrf$QWFU^R7I(k zwK$8ITF9cpayf)cmfB-?4Nd!j;LB4`x!Lrw${yUX8g+)7CJtyhA?cumk@W)=heB9Z z_I_>hacx|GNJ-GQ>aIWy{eVxYVMQsdmk{xCh4`*+s2?^+YyQksnQ~fbg`wf{oW^g0 zj{4OmshmVgnpQLefnER~VCft01?x<65DZ`Up_L(S0Jbs0C(=payY&KyJ8_u=mOYZk zO71&fgXLw`z?MdmU0rGzCDlB0IG6mdgKp^bNuS1EDQk;M(6DsusW|B+6`(jeNkZBX zCZ_jQz0Z2b2o95c22HrRcSSCVZS5H-FCR~|B!|R}e@rNjWFG=T zLB%Lin&%6WQ(gh5%a<@ZT6-2J<1%7c)hmfM2dCu8r~`0D0pb&`rK8c+dtl=m75*pV zv@JRwN!Rd;xNOj4D6y7pzu$T<7M8p>(>KR0!k7eP*3?r^%|oM1)w~Q$CtaAmwTFLTTR_dF z%twYrONM&c`w{=Q{3po(A%xs6iH~En0#a4DaAbr5SiudMG}U-Kjd?U%**m3CV?N9n z+UL1vP^{YveW+XxB`5@Cpk4!x$N*w?lJ~laC*X&0ZpulXQS)EVMSgU?AV)hi)vtY; z*&=j`SjlYCklsXD!SJVY4Aagy#Di_++P(pHO)CamO5@-Lsj(Z7(>Gs|-A`8i3wV92 z0UOvdWl3>)sn9y2TTzEsD9ocX2L+wG8HjYD?IE+rEnvRJWoTYSdchHlfh_B&t zhXA(56{F6d{PF-M9rQ!aPrPdM*)siju zeu{I1&$j+w+`Zsl5H2KxqeV$<)d+TX7eNI~J<ZMnb1HmES@4rqq||4iBaEA^DvyLJj2VoE{-%llw){^$D$;^V#TrE9C2Q*=k7J zohd%0SGI_NF28^y*e9n3f-MkCV}F4bF$8+Qp`8%I$7P$hF$^{Qb%cd7B2~cr{CN1Z zsGo#(h9MoTrw&gwIALx^Y$?lu``HE>89iR);|$INNa>EhSEBP&kRzJM2y_VbcMbTX zk3J+3Ak#G?)VP8MwRU7!Y}}d?5&ay?7ji0?l~NZ*D+rA14Rq&{OwU8%=SKpQ=07=A z>)Xr*l^Ph4M!p+Ep{9zzM@@gh<~S*r=7qYjg~S&Q$|6*SLE$}GeY%d6MP*be2KA0L zonqNBdqwWoG0%SN-f?{HAJvbrrUHyx`g>C2iD@W$O7hV*QbT)^%lzVGZL=LuJdHj?LfCkrUc#llc&mmIFaQeZQB;PD z3#h&8x3-+wQ-t*cMjKWA6B)c?5*7W%@CmGv&}Eu5;o$@Qp)dMUbRbo(1VM@)+OgjT zgh#U?Jn{Tt6h*WUKe`PJ{LH(7Bo5q^=4m7N3D$Y0)pRzoj(Xa+_jT8R}m=TZbRYvMMITx^0a(gza^o zDsO|QN)+3b%>&U9H?wk}p*j-K{-#u_0X`uxmx%N`N`P5N;J2cmu2G$D7mu2O!s43@xod?&eJOe z_(M9Gf^e`2q#_LZTBZo#Pg?}R$cE``J)3CzB%ZW>ult>R|84_{``_+gp@CM>KRXJ2 zyqBvv8e4ja*w9^Ta$5X@lb~ZXYL?$(J${wFh4RDQKzi+62X7d*~9iNbZ0>Mn)?N)*sv8i-4)2#@M@fqa@fX%Oo6v}7{et`Mzr-iiwgG(vAM%b6B98=1H0ULORyiE&%0=tMZJ07>SPyQ-WI?sTm?D z(%U|%NK+)02N^Uu;yTxjVI^#F86gwqPNK8tkJ{FqazfSdA<jxbLv&h;U~Y*Pz8{C|%5^GMkU-`JfzKEV7IZouf%qj2)Eo`!wJ?{=H3vJy zx*z&Z-EJxUeKgAmMg+#Ac#PXn1G+Y2`_mN1!h9}6)UBKC>u5_t>t#rI9Z zfU+%6eEiqjp4raTVbt4NiF*9Mw^=JsbHC_H;i_@PPY&SA=IIh@w8zsAYkdExnSf{6 zlnWe!Y~FP|U0U+xhKmIPH%{N_`Z#Dmy#7`7*{+=x^u1Z9bWDyUR;<%cwdZ9UnU%-@#9f8e1AYd640Yx2|VlK1B)et_IKhntLom2mBJi>kJ18#cR=CmkB)I*Bl( zsV&0`inMmr<>Irp7L&VyQHZidE6-Z5UI&M5+fNkXZ*}4o4ziCbuM^3Oj|F9Om)N?y z4eR8m8qmuLb5)==1R3!u;}c(dvob=0kz!?Je}sOEKS9&bgz662{hx&JUbJwDPXR_k zIR=u?=gMEPV#pZ1#qI!U%K`_sbWL;h;&8|2`sToDO9Q%oBsObX#2osj@mza0)NEq& z&l>(?bl0aeY4qVzJ^@S?OPV0qyv19w7c@(ofGlF;62X?y?C{>7aCdB7lqb}A2gp#G z>WWlsa|0+w5?WI){FtHDK~Ksw3BWO?y9IeIdieR8*A~%$4|;glPU-r<2qheNlB;Kz zzcp-}w`gmWuVzK)O}vs8S)aL#P#h)8e2_UeaJ92K;QL9-uOcYMGqufE&d74fDWjrf z?_}AqVQB<6%#_vH5;y?@h7RCw|0got8D$ZSALs~99Ju`$PoFk&KUTWe9RWVwNb;i7 zi!qzRgPy^(e^CO&%4dD^CBxQ2jkd|zTcKDCflUjwL zDnFdL-b=K&Nw)y4mI#Pl?uk04Un9P~dYg`Tgb7it*T)#k-JT4chGEvM1h?hy!8`4~ z;N|jle)Adh*C90HNwMzn?hgX`0=q#_&J=z_)#%8I&`hNJwt)q|Yk`ilF$md5>8=wL ze0zFptBi|3E5>;a^%VmKwKO`Ck7x2g>z^dy^BhM3CghW1T-GJ|(qb5=cW~D0r-)RU z4k1rzq(L)^+@o}jH9WZAPa;km-c>(9hyev}O!nAt>qXTRnC!2J?*#17ZAjyxx#zKq zJGR&~Ynp4-%je)(KOp_!^#G&wax2+l-d5V%VE^UAabsW1JNCZLRrv^`=R$0u=#JNS z?aR4IfLAcLr|PLB@L2VvIi~d+)4a1Ng-zW~h9^doO9p%x?V}DfthVQ;fLE`-R^waI zXsp8`=rknGVVePk=i#PPzKiTt6)Xi#@3D7ZK))lG%EP2&6@Uz%lm`-#9HPi7bsv+$ zckSWw@&}hpQ!at&%9%a+0BiMvpDU|A8qRdF%f-95+5xMoqQ|J;k99Fz zkHP27!+13FZ$MSa9Fm{bcBip3`NczppBnM9f9iomarGnnv`cAaVp~cM3LhYa+i+R0 zy28aa5zNMxCY$+v)kk5^YSsMbaCg1uenj?S*C)oW+$|o5=d>OdY^7xds3<4}uD-rW zA5@?m@M(f(#kXcoR$vWq(xp~HEQDzo>0*dFwd-)XJprtS-~5^N;~}BT9d%>ZxYsjt zh;rnRU+lt8U!)RtX{Pu_qFypRTt%TQY8De?X!T^WHc{&lOf@Op$5bG(&g4zX%N$?t zkni+e6+05B=yWW)rs2Mv;ZV_OHoOG}D*pg~ickVu3sAwY5l=lgeV$J0_#2mEz*j-= zq89<8BLHkKk%{ed4mNNE=HNFP9<`3+y7t~*M{qaQ#RpU0o<`rJr=hpy@{y}~-PeQu zB%Lw|P6R@N&hHQQwk9dixHsGl%1`M!8;@=J`Q zg`#5LQR-GmVoOB!ey^0fzyL#^Dm{DVc@j#r<>TezoD2N7ZjwFKI;&k7I9k}Y%SbyY z7+K)v>$Z+SSdyw}iD*K%unsjHreUMtZ;`reKhv$3^wLE!?cP$Ob77@sXh8>GA{BTh zxTdZp-&Kv>Yi{{tU1Wa4CH-+fpPcI5YOj*@#(|`~Z=*unKcT)^yq)lF3PyWxFNlsc z%{uUqpI)_PTdg9VD^DJxTG#7GKPcz6i-iM8Ux!6g?*8&@a%bhVMF+3k*OIm9BRc4T z+SQP*kmPb2m{Rpjl03;4h~nXK)UtZjA)sS&hD3*IaW4`{GzX`EnczSk#_^Z7m+>-* z`eOV}se+lBZ>J=<{)oyxAD`OTRP$(|bT{}W3}l1@YE-Hm3}E0h$w+}Xb&F%{mtx>m z_n~v~Q^{t>rt`>S9r5{AU)y2s@pU}UT3_tdE8YNqz>i*q@>;~AmTkt#7=wtCOSq?! zhY7P2HzyvZjlrZikA~QQD$t8uXm~+L2N_-cciif$x3(;~ApyrWmxJZtjYQl9{1t z_OoXlm&!Zo)x8JFi9zeJ(CK_cwb$tVctZjtFOeXJz3-4inHcYWMT= zZ3}waO(D@nqpIKT-EEA$pX(W1QGo;y$zj_`V_;W$rn`aR0k1% zV(v_I3wQX|I+!GTJE>0ldpG7$&o7#BI((X2iV=G)ObaZI3~yWInbz5{E9+Ofn{_&s zsP|;fNflq#^?ht88@P8;AIJcmX{9b~W;|Ea-=4=8hqogdKdl}<%d?s%UcPGTo>!LN zD{n?bX=ZBK!W5vxzj9IBx_$C#K^iH&I4bB6^bq)s<{-d-A>P07S8sK4CLHBa;Z(>x zgbn7ex7eE{*Asjm(GlBqih*KHOGj(H;@FD2{Rb{7w3rFB^?alz3wSYLCj4T4bwT0x z+MfKcj8#Y25UxDHPI}92&rwphwF;gYdEE&j&9mqcL@%1L>w1&bfR&VDLaq8*chmT} zDYDC=F1K^@ww$0tsm`PS`=6h)Bl@Bt>urVE?@|GJI1c?^p91pM#)Alb+KAB3WBCEV78dBmPJRgwL->>5&sT@J$^T1+dBc0o`S$Jt*Qb@u6fpx(=F1ZM9D$49%uHv`<`2w zHzPMS6SECnsjKhm!o2FC{v%WM#|nGkwk4ZMg4Ro|$$Fm8TJuQ%A^H-BwI&>5wLf0v zr34#Zl{LBMVulw!0MG?Otv$x$8P_+>pJ98hvS=-4UEfrSE9xO~Y}u{^a;A9iq#X-;NQG}!rrsOSZ09OC%|yl^M@M?FhqS|rP^HPLeL zZXydiPa1XKKNdqw>INuty2$oVdDSo1-dZr2Ib(0FzxGi~s<8g7F@L`LJ3V3EO48E5 za+HL*Py{8<(GjfIuq5=g5*UGTnHt0)-lJes4s7RTs9hr7ka&2eqiM^eV-1gMC5yCT zoSLzmlvIocF2p;-gj7v;8fa^2qhe8Fe%6G@+;r?S0Rocf*O;*d6N=BaxDEPsW#S(A z8a#NGLu&D-#=LER5lOY0v_fG+%khPH8}_Gm0v=LZl?|w|-x}nBt1n| za(6&tF-xw37UCYso@wE6FoP=5^<&WQN9m^7pf{tc>oz?CHpU|%mS4Av&x^Ue-|psp z%v%7^?&+u}{J?IxAKUr%Z~?sj?OZklUaC4@Mlas4ibQtniu5(OJF|%#90HGI7=jXB zbOVmC@-%7^(chA?_R;3}UNjAMS~W#pw&&5`?@pfIJ#Tw2-Y*Q_FaM2=SsaK!$stJu z4freTk3)G&fzow2L70ZV@10eC58Lzi@4)eq#_!hRHy2l%SQa{py&LYsmT^SQ+p-S4 zM=g3Xj$EhXpEX3i#6tsr`Y+RxB7d3Gh*B+l>62b1C3Cf93~%6D8eaurD>kmLo_G5* zfBV$~Z*-mvZDVhSNSK)S!wSQ1pN1%hEN_&j{Ad+}c z+oz~N3oYtTcCOII!9ixfo88PSZcV5Z5TWM%1!bRVAiKPs~O<>`pth<`mwPk!h( z6jGyuYLh@~MqW8=g*WRk%&%PKLnPpv$qe0L)P4y%Zsyv{tE~9A{G5p9uNqJ@! z7R<#Qc?qF3zM>vSis??>%hmQ?71IU>1!dO#^$QmJdYyGkqRS|6%C<-%+~xp((w9KU zT%#V?1GK4KZOURY<@Ho1Hj=P?LxExxx)cb5L91U~*T=uN?S|a_bsV}y%_xpn&e=tb z7`OR0)fC0o>1$nY3wQLwawy6s5%v@cJZ0!C!O<7KCZ>eaUQ?I;%wtS`dKHQSxbHjm zgDtvosds`u_VMq8lnYXL76qx&0`#+gC&`+*a4nfDpYc)O2;678y!OT(ke{zN3B6xR z$EW2$p2m2{0nbK49$xv1Rz_pTV|#A=_RM7i`YZd&<49LVhHuUiBzxIvlCJ9$)q&HQ z8D~i~3w=7Z7?X2XkezD}1xywds+nz0;+Tdc7YNnZ7_Tm(zyZWvO#c^KVZAKk!Rnb3?$9 zngRmx5i)(M3Hn-d;}F^j9x}iIuBv8k0_m+ffJCS?9#+t~=FvO6QzVG)y_WN3Job#3 zG;TaY3!-|&zRTu@@yg~zQxo_#&ZMV^DM?DJ3i`xaX7I#?W8GlMd1F4pXS~hIGp};Z z{i^ zHB%eDVCo0hn28w}O7X^EYC#eDEh(Ap}8`XE^dOhC8eLSN_QGZ6>eo_GM#Sb^otV1wqw zz#u0)ySQco1#E`#OND}FXyH`4)axy&T(nb%|4tc&8V-}h*tdh>9^wicA>5A)u|>nm zecmaYB0!(>-2pOc4wFT2XUJS+uC*pz31r0iusZxY z`k9=MrrZ0Sm9XuGccDo8+nsst42LFb38O}o=~`XZX^EP&{fF-}2bU+1<=*0*G5Ki; zo_n;~2CuiaRTD>&;mL4L7ITu)aBivJB?cX3hJgNpavlt2eWuZHfoSxWlU1aiQiXxM z8t0j5Vf+~5@2qRK3zY(9U6*LAco46eng2z5dkNDglw8H-O{x~EdT!^?LG<_q?2NaQ z@;+;6liAVSljrpV5F!r2KFyYs({#@W)oj!WG_jB-!FOXWLxl2xk%T&fCZo+cpTxP< zQ-Cg`*7@4Ih{4I6(gW2?3fo1%Ln`R;bT)U|A@@`jgFqC?PuGeKUgWy+q27PrA_?v% zTsi%L=Ar#8jw<&di~kv;w!)7;6aBcEwTC|1#as#Y3tre`>Wtg9O@fSlB@=cyf0D9< zv`k(Lg%j)dJ6dzscD_YL$lwbU()rD_JpkQV<|TDDDs<7-=tmnBP32mj2x5}Sdl7al zzeHQPVI9eNOEw4_xM&+3O{7)Z`UptJK!%goiKMg!j{5#8mq!(c>q4iKy0Zd={vy;+YybX)bORoIPsV1 z1rEyk2xQoYe&p)Y#p0v(QkV+@v z7mQL|rIG4Y{!{vB294Ax&t>F;;)KLC6@7SU{c zQ4neJ1RHEH7O6T)hh9Eo-m2oEJ0yJUG2)e-W+j5w?uC8>OL#Andc z;rsR?!=G=*sf~fxS9J1xe%AzOEIMFyCJ;=8cl%8+9%XY|+GEU6kMNG*ww2<)gMZ2g zYC5gZUaxKJ5V58l&WrWN12Q&7H+89ijiT42FI(+Hc*i_htL)zhpW-ayP0Y^4_=i!h zIO`2Z2*XF?$9Cim(}oUc4C(ZO@ZL>-j9y;(uOxfT)S` z5`mb!A&#QFvM^6!|5sM@pDa?vf6-d`f7zt}@6QSaMFRDo2K}$g5BS{vzhpefdm9e| z#8!-#0ffKspQ)?Fc-f$DAlqWRa-i?fkZy5aJcxuiFFS}8@joE?AAmlEbcyqR{ -

Page gutters are part of body (--RS__pageGutter), hence --USER__lineLength (or --RS__defaultLineLength if no user preference is set). Contents are centered in :root using the auto value for body margins.

+

Page gutters are part of body (--RS__pageGutter), hence --USER__lineLength. Contents are centered in :root using the auto value for body margins.

By default, --RS__pageGutter is set to 0. You can set it as you wish, but take into account it will substract from --USER__lineLength.

@@ -156,12 +156,6 @@

The inline (horizontal by default, vertical in vertical-writing) page margins.

-
- -
--RS__defaultLineLength
- -

The default line-length when none is set by the user. It must be set in rem in order to take :root’s font-size as a reference, whichever the body’s font-size might be.

-
--USER__lineLength
diff --git a/docs/ReadiumCSS_docs/OEBPS/Text/Section-019.xhtml b/docs/ReadiumCSS_docs/OEBPS/Text/Section-019.xhtml index 0278f81a..781f0140 100644 --- a/docs/ReadiumCSS_docs/OEBPS/Text/Section-019.xhtml +++ b/docs/ReadiumCSS_docs/OEBPS/Text/Section-019.xhtml @@ -242,12 +242,6 @@
--RS__pageGutter

The inline (horizontal by default, vertical in vertical-writing) page margins.

- -
- -
--RS__defaultLineLength
- -

The default line-length when none is set by the user. It must be set in rem in order to take :root’s font-size as a reference, whichever the body’s font-size might be.

From b5fcbed17019082e43edc003fad182cde0f56b9c Mon Sep 17 00:00:00 2001 From: Jiminy Panoz Date: Mon, 16 Feb 2026 15:27:48 +0100 Subject: [PATCH 2/3] Compensate safeguards --- css/src/modules/ReadiumCSS-safeguards-vertical.css | 6 +++++- css/src/modules/ReadiumCSS-safeguards.css | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/css/src/modules/ReadiumCSS-safeguards-vertical.css b/css/src/modules/ReadiumCSS-safeguards-vertical.css index 786bed0b..2e056123 100644 --- a/css/src/modules/ReadiumCSS-safeguards-vertical.css +++ b/css/src/modules/ReadiumCSS-safeguards-vertical.css @@ -13,7 +13,7 @@ --RS__maxMediaWidth: 100%; /* max-height for media, you can override that via JS if not compiled to static */ - --RS__maxMediaHeight: 100vw; + --RS__maxMediaHeight: calc(100vw * (1 / var(--USER__fontSize, 1))); /* value for medias’ box-sizing */ --RS__boxSizingMedia: border-box; @@ -22,6 +22,10 @@ --RS__boxSizingTable: border-box; } +:root:not(:--deprecated-font-size):not(:--iOS-patch) { + --RS__maxMediaHeight: 100vw; +} + /* Wrap long strings if larger than line-length */ a, a span, span a, h1, h2, h3, h4, h5, h6 { word-wrap: break-word; diff --git a/css/src/modules/ReadiumCSS-safeguards.css b/css/src/modules/ReadiumCSS-safeguards.css index bbc36e66..4d6c7da4 100644 --- a/css/src/modules/ReadiumCSS-safeguards.css +++ b/css/src/modules/ReadiumCSS-safeguards.css @@ -14,7 +14,7 @@ /* max-height for media, you can override that via JS if not compiled to static Please consider figures might have a figcaption, which is why 95vh in the first place */ - --RS__maxMediaHeight: 95vh; + --RS__maxMediaHeight: calc(95vh * (1 / var(--USER__fontSize, 1))); /* value for medias’ box-sizing */ --RS__boxSizingMedia: border-box; @@ -23,6 +23,10 @@ --RS__boxSizingTable: border-box; } +:root:not(:--deprecated-font-size):not(:--iOS-patch) { + --RS__maxMediaHeight: 95vh; +} + /* Wrap long strings if larger than line-length */ a, a span, span a, h1, h2, h3, h4, h5, h6 { word-wrap: break-word; From 88b2ea5a2df53e08b6c94d35565b695ad3bb7cd0 Mon Sep 17 00:00:00 2001 From: JayPanoz <12599652+JayPanoz@users.noreply.github.com> Date: Mon, 16 Feb 2026 14:30:29 +0000 Subject: [PATCH 3/3] Update dist --- css/dist/ReadiumCSS-before.css | 6 +++++- css/dist/cjk-horizontal/ReadiumCSS-before.css | 6 +++++- css/dist/cjk-vertical/ReadiumCSS-before.css | 6 +++++- css/dist/rtl/ReadiumCSS-before.css | 6 +++++- 4 files changed, 20 insertions(+), 4 deletions(-) diff --git a/css/dist/ReadiumCSS-before.css b/css/dist/ReadiumCSS-before.css index 5d569100..3e31edd7 100644 --- a/css/dist/ReadiumCSS-before.css +++ b/css/dist/ReadiumCSS-before.css @@ -402,11 +402,15 @@ ruby > rt, ruby > rp{ :root{ --RS__maxMediaWidth:100%; - --RS__maxMediaHeight:95vh; + --RS__maxMediaHeight:calc(95vh * (1 / var(--USER__fontSize, 1))); --RS__boxSizingMedia:border-box; --RS__boxSizingTable:border-box; } +:root:not([style*="readium-deprecatedFontSize-on"]):not([style*="readium-iOSPatch-on"]){ + --RS__maxMediaHeight:95vh; +} + a, a span, span a, h1, h2, h3, h4, h5, h6{ word-wrap:break-word; } diff --git a/css/dist/cjk-horizontal/ReadiumCSS-before.css b/css/dist/cjk-horizontal/ReadiumCSS-before.css index 925a65d3..55dc8f9a 100644 --- a/css/dist/cjk-horizontal/ReadiumCSS-before.css +++ b/css/dist/cjk-horizontal/ReadiumCSS-before.css @@ -374,11 +374,15 @@ ruby > rt, ruby > rp{ :root{ --RS__maxMediaWidth:100%; - --RS__maxMediaHeight:95vh; + --RS__maxMediaHeight:calc(95vh * (1 / var(--USER__fontSize, 1))); --RS__boxSizingMedia:border-box; --RS__boxSizingTable:border-box; } +:root:not([style*="readium-deprecatedFontSize-on"]):not([style*="readium-iOSPatch-on"]){ + --RS__maxMediaHeight:95vh; +} + a, a span, span a, h1, h2, h3, h4, h5, h6{ word-wrap:break-word; } diff --git a/css/dist/cjk-vertical/ReadiumCSS-before.css b/css/dist/cjk-vertical/ReadiumCSS-before.css index 5bce37d9..4fcafc0b 100644 --- a/css/dist/cjk-vertical/ReadiumCSS-before.css +++ b/css/dist/cjk-vertical/ReadiumCSS-before.css @@ -374,11 +374,15 @@ ruby > rt, ruby > rp{ :root{ --RS__maxMediaWidth:100%; - --RS__maxMediaHeight:100vw; + --RS__maxMediaHeight:calc(100vw * (1 / var(--USER__fontSize, 1))); --RS__boxSizingMedia:border-box; --RS__boxSizingTable:border-box; } +:root:not([style*="readium-deprecatedFontSize-on"]):not([style*="readium-iOSPatch-on"]){ + --RS__maxMediaHeight:100vw; +} + a, a span, span a, h1, h2, h3, h4, h5, h6{ word-wrap:break-word; } diff --git a/css/dist/rtl/ReadiumCSS-before.css b/css/dist/rtl/ReadiumCSS-before.css index 925a65d3..55dc8f9a 100644 --- a/css/dist/rtl/ReadiumCSS-before.css +++ b/css/dist/rtl/ReadiumCSS-before.css @@ -374,11 +374,15 @@ ruby > rt, ruby > rp{ :root{ --RS__maxMediaWidth:100%; - --RS__maxMediaHeight:95vh; + --RS__maxMediaHeight:calc(95vh * (1 / var(--USER__fontSize, 1))); --RS__boxSizingMedia:border-box; --RS__boxSizingTable:border-box; } +:root:not([style*="readium-deprecatedFontSize-on"]):not([style*="readium-iOSPatch-on"]){ + --RS__maxMediaHeight:95vh; +} + a, a span, span a, h1, h2, h3, h4, h5, h6{ word-wrap:break-word; }