Skip to content

Commit 73d4450

Browse files
crawfxrdehuss
authored andcommitted
Use logical CSS properties
Replace phyiscal properties (top/bottom/left/right) with logical properties (start/end) that can be used in non-LTR contexts (e.g., content in Arabic or Hebrew). Based on the CSS Logical Properties and Values Level 1 specification, currently an Editor's Draft [1]. Referencing MDN, all major browsers except Internet Explorer support the margin, padding, and border properties. [1]: https://drafts.csswg.org/css-logical/ Signed-off-by: Tim Crawford <crawfxrd@gmail.com>
1 parent 25aaff0 commit 73d4450

File tree

3 files changed

+53
-35
lines changed

3 files changed

+53
-35
lines changed

src/theme/css/chrome.css

Lines changed: 41 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,9 @@ a > .hljs {
3737
display: flex;
3838
flex-wrap: wrap;
3939
background-color: var(--bg);
40-
border-bottom-color: var(--bg);
41-
border-bottom-width: 1px;
42-
border-bottom-style: solid;
40+
border-block-end-color: var(--bg);
41+
border-block-end-width: 1px;
42+
border-block-end-style: solid;
4343
}
4444
#menu-bar.sticky,
4545
.js #menu-bar-hover-placeholder:hover + #menu-bar,
@@ -56,7 +56,7 @@ a > .hljs {
5656
height: var(--menu-bar-height);
5757
}
5858
#menu-bar.bordered {
59-
border-bottom-color: var(--table-border-color);
59+
border-block-end-color: var(--table-border-color);
6060
}
6161
#menu-bar i, #menu-bar .icon-button {
6262
position: relative;
@@ -160,7 +160,7 @@ a > .hljs {
160160
}
161161

162162
.nav-wrapper {
163-
margin-top: 50px;
163+
margin-block-start: 50px;
164164
display: none;
165165
}
166166

@@ -174,10 +174,12 @@ a > .hljs {
174174
}
175175

176176
.previous {
177+
/* Only Firefox supports flow-relative values */
177178
float: left;
178179
}
179180

180181
.next {
182+
/* Only Firefox supports flow-relative values */
181183
float: right;
182184
right: var(--page-padding);
183185
}
@@ -237,7 +239,7 @@ pre > .buttons :hover {
237239
background-color: var(--theme-hover);
238240
}
239241
pre > .buttons i {
240-
margin-left: 8px;
242+
margin-inline-start: 8px;
241243
}
242244
pre > .buttons button {
243245
cursor: inherit;
@@ -274,7 +276,7 @@ pre > code {
274276
}
275277

276278
pre > .result {
277-
margin-top: 10px;
279+
margin-block-start: 10px;
278280
}
279281

280282
/* Search */
@@ -285,8 +287,14 @@ pre > .result {
285287

286288
mark {
287289
border-radius: 2px;
288-
padding: 0 3px 1px 3px;
289-
margin: 0 -3px -1px -3px;
290+
padding-block-start: 0;
291+
padding-block-end: 1px;
292+
padding-inline-start: 3px;
293+
padding-inline-end: 3px;
294+
margin-block-start: 0;
295+
margin-block-end: -1px;
296+
margin-inline-start: -3px;
297+
margin-inline-end: -3px;
290298
background-color: var(--search-mark-bg);
291299
transition: background-color 300ms linear;
292300
cursor: pointer;
@@ -298,14 +306,17 @@ mark.fade-out {
298306
}
299307

300308
.searchbar-outer {
301-
margin-left: auto;
302-
margin-right: auto;
309+
margin-inline-start: auto;
310+
margin-inline-end: auto;
303311
max-width: var(--content-max-width);
304312
}
305313

306314
#searchbar {
307315
width: 100%;
308-
margin: 5px auto 0px auto;
316+
margin-block-start: 5px;
317+
margin-block-end: 0;
318+
margin-inline-start: auto;
319+
margin-inline-end: auto;
309320
padding: 10px 16px;
310321
transition: box-shadow 300ms ease-in-out;
311322
border: 1px solid var(--searchbar-border-color);
@@ -321,20 +332,23 @@ mark.fade-out {
321332
.searchresults-header {
322333
font-weight: bold;
323334
font-size: 1em;
324-
padding: 18px 0 0 5px;
335+
padding-block-start: 18px;
336+
padding-block-end: 0;
337+
padding-inline-start: 5px;
338+
padding-inline-end: 0;
325339
color: var(--searchresults-header-fg);
326340
}
327341

328342
.searchresults-outer {
329-
margin-left: auto;
330-
margin-right: auto;
343+
margin-inline-start: auto;
344+
margin-inline-end: auto;
331345
max-width: var(--content-max-width);
332-
border-bottom: 1px dashed var(--searchresults-border-color);
346+
border-block-end: 1px dashed var(--searchresults-border-color);
333347
}
334348

335349
ul#searchresults {
336350
list-style: none;
337-
padding-left: 20px;
351+
padding-inline-start: 20px;
338352
}
339353
ul#searchresults li {
340354
margin: 10px 0px;
@@ -347,7 +361,10 @@ ul#searchresults li.focus {
347361
ul#searchresults span.teaser {
348362
display: block;
349363
clear: both;
350-
margin: 5px 0 0 20px;
364+
margin-block-start: 5px;
365+
margin-block-end: 0;
366+
margin-inline-start: 20px;
367+
margin-inline-end: 0;
351368
font-size: 0.8em;
352369
}
353370
ul#searchresults span.teaser em {
@@ -423,13 +440,13 @@ ul#searchresults span.teaser em {
423440
@media only screen and (min-width: 620px) {
424441
#sidebar-toggle-anchor:checked ~ .page-wrapper {
425442
transform: none;
426-
margin-left: var(--sidebar-width);
443+
margin-inline-start: var(--sidebar-width);
427444
}
428445
}
429446

430447
.chapter {
431448
list-style: none outside none;
432-
padding-left: 0;
449+
padding-inline-start: 0;
433450
line-height: 2.2em;
434451
}
435452

@@ -459,7 +476,7 @@ ul#searchresults span.teaser em {
459476
.chapter li > a.toggle {
460477
cursor: pointer;
461478
display: block;
462-
margin-left: auto;
479+
margin-inline-start: auto;
463480
padding: 0 10px;
464481
user-select: none;
465482
opacity: 0.68;
@@ -476,7 +493,7 @@ ul#searchresults span.teaser em {
476493

477494
.chapter li.chapter-item {
478495
line-height: 1.5em;
479-
margin-top: 0.6em;
496+
margin-block-start: 0.6em;
480497
}
481498

482499
.chapter li.expanded > a.toggle div {
@@ -499,7 +516,7 @@ ul#searchresults span.teaser em {
499516

500517
.section {
501518
list-style: none outside none;
502-
padding-left: 20px;
519+
padding-inline-start: 20px;
503520
line-height: 1.9em;
504521
}
505522

@@ -532,7 +549,7 @@ ul#searchresults span.teaser em {
532549
padding: 2px 20px;
533550
line-height: 25px;
534551
white-space: nowrap;
535-
text-align: left;
552+
text-align: start;
536553
cursor: pointer;
537554
color: inherit;
538555
background: inherit;

src/theme/css/general.css

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -48,13 +48,13 @@ h1 code, h2 code, h3 code, h4 code, h5 code, h6 code {
4848
.hide-boring .boring { display: none; }
4949
.hidden { display: none !important; }
5050

51-
h2, h3 { margin-top: 2.5em; }
52-
h4, h5 { margin-top: 2em; }
51+
h2, h3 { margin-block-start: 2.5em; }
52+
h4, h5 { margin-block-start: 2em; }
5353

5454
.header + .header h3,
5555
.header + .header h4,
5656
.header + .header h5 {
57-
margin-top: 1em;
57+
margin-block-start: 1em;
5858
}
5959

6060
h1:target::before,
@@ -65,7 +65,7 @@ h5:target::before,
6565
h6:target::before {
6666
display: inline-block;
6767
content: "»";
68-
margin-left: -30px;
68+
margin-inline-start: -30px;
6969
width: 30px;
7070
}
7171

@@ -74,13 +74,14 @@ h6:target::before {
7474
https://bugs.webkit.org/show_bug.cgi?id=218076
7575
*/
7676
:target {
77+
/* Safari does not support logical properties */
7778
scroll-margin-top: calc(var(--menu-bar-height) + 0.5em);
7879
}
7980

8081
.page {
8182
outline: 0;
8283
padding: 0 var(--page-padding);
83-
margin-top: calc(0px - var(--menu-bar-height)); /* Compensate for the #menu-bar-hover-placeholder */
84+
margin-block-start: calc(0px - var(--menu-bar-height)); /* Compensate for the #menu-bar-hover-placeholder */
8485
}
8586
.page-wrapper {
8687
box-sizing: border-box;
@@ -96,8 +97,8 @@ h6:target::before {
9697
padding: 0 5px 50px 5px;
9798
}
9899
.content main {
99-
margin-left: auto;
100-
margin-right: auto;
100+
margin-inline-start: auto;
101+
margin-inline-end: auto;
101102
max-width: var(--content-max-width);
102103
}
103104
.content p { line-height: 1.45em; }
@@ -147,8 +148,8 @@ blockquote {
147148
padding: 0 20px;
148149
color: var(--fg);
149150
background-color: var(--quote-bg);
150-
border-top: .1em solid var(--quote-border);
151-
border-bottom: .1em solid var(--quote-border);
151+
border-block-start: .1em solid var(--quote-border);
152+
border-block-end: .1em solid var(--quote-border);
152153
}
153154

154155
kbd {
@@ -166,7 +167,7 @@ kbd {
166167

167168
:not(.footnote-definition) + .footnote-definition,
168169
.footnote-definition + :not(.footnote-definition) {
169-
margin-top: 2em;
170+
margin-block-start: 2em;
170171
}
171172
.footnote-definition {
172173
font-size: 0.9em;

src/theme/css/print.css

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
#page-wrapper.page-wrapper {
1010
transform: none;
11-
margin-left: 0px;
11+
margin-inline-start: 0px;
1212
overflow-y: initial;
1313
}
1414

0 commit comments

Comments
 (0)