Default.css 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846
  1. /* Default user-agent stylesheet for LibWeb
  2. * Note: This stylesheet starts with a bunch of ad-hoc custom rules.
  3. * After that, rules from the HTML spec follow.
  4. */
  5. html {
  6. font-family: serif;
  7. color: CanvasText;
  8. }
  9. body {
  10. margin: 8px;
  11. }
  12. center {
  13. text-align: -libweb-center;
  14. }
  15. blink {
  16. display: inline;
  17. }
  18. /* FIXME: This doesn't seem right. */
  19. label {
  20. display: inline-block;
  21. }
  22. /* FIXME: This is a temporary hack until we can render a native-looking frame for these. */
  23. input:not([type=submit], input[type=button], input[type=image], input[type=reset], input[type=color], input[type=checkbox], input[type=radio], input[type=range]), textarea {
  24. border: 1px solid ButtonBorder;
  25. min-height: 16px;
  26. width: attr(size ch, 20ch);
  27. cursor: text;
  28. overflow: hidden;
  29. }
  30. textarea {
  31. padding: 2px;
  32. display: inline-block;
  33. overflow: auto;
  34. font-family: monospace;
  35. width: attr(cols ch, 20ch);
  36. height: attr(rows lh, 2lh);
  37. }
  38. input::placeholder, textarea::placeholder {
  39. color: GrayText;
  40. }
  41. button, input[type=submit], input[type=button], input[type=reset], select {
  42. padding: 1px 4px;
  43. background-color: ButtonFace;
  44. border: 1px solid ButtonBorder;
  45. color: ButtonText;
  46. cursor: default;
  47. }
  48. input[type=image] {
  49. cursor: pointer;
  50. }
  51. button:hover, input[type=submit]:hover, input[type=button]:hover, input[type=reset]:hover, select:hover {
  52. /* FIXME: There isn't a <system-color> keyword for this, so this is a slightly lightened
  53. * version of our light ButtonFace color. Once we support `color-scheme: dark`
  54. * we'll need to use a different color for that.
  55. */
  56. background-color: #e5e0d7;
  57. }
  58. option {
  59. display: none;
  60. }
  61. /* Custom <input type="range"> styles */
  62. input[type=range] {
  63. display: inline-block;
  64. width: 20ch;
  65. height: 16px;
  66. }
  67. input[type=range]::-webkit-slider-runnable-track, input[type=range]::-webkit-slider-thumb {
  68. display: block;
  69. }
  70. input[type=range]::-webkit-slider-runnable-track {
  71. height: 4px;
  72. margin-top: 6px;
  73. background-color: hsl(217, 71%, 53%);
  74. border: 1px solid rgba(0, 0, 0, 0.5);
  75. }
  76. input[type=range]::-webkit-slider-thumb {
  77. margin-top: -6px;
  78. width: 16px;
  79. height: 16px;
  80. transform: translateX(-50%);
  81. border-radius: 50%;
  82. background-color: hsl(0, 0%, 96%);
  83. outline: 1px solid rgba(0, 0, 0, 0.5);
  84. }
  85. /* Custom <meter> styles */
  86. meter {
  87. display: inline-block;
  88. width: 300px;
  89. height: 12px;
  90. }
  91. meter::-webkit-meter-bar, meter::-webkit-meter-optimum-value, meter::-webkit-meter-suboptimum-value, meter::-webkit-meter-even-less-good-value {
  92. display: block;
  93. height: 100%;
  94. }
  95. meter::-webkit-meter-bar {
  96. background-color: hsl(0, 0%, 96%);
  97. border: 1px solid rgba(0, 0, 0, 0.5);
  98. }
  99. meter::-webkit-meter-optimum-value {
  100. background-color: hsl(141, 53%, 53%);
  101. }
  102. meter::-webkit-meter-suboptimum-value {
  103. background-color: hsl(48, 100%, 67%);
  104. }
  105. meter::-webkit-meter-even-less-good-value {
  106. background-color: hsl(348, 100%, 61%);
  107. }
  108. /* Custom <progress> styles */
  109. progress {
  110. display: inline-block;
  111. width: 300px;
  112. height: 12px;
  113. }
  114. progress::-webkit-progress-bar, progress::-webkit-progress-value {
  115. display: block;
  116. height: 100%;
  117. }
  118. progress::-webkit-progress-bar {
  119. background-color: hsl(0, 0%, 96%);
  120. border: 1px solid rgba(0, 0, 0, 0.5);
  121. }
  122. progress::-webkit-progress-value {
  123. background-color: hsl(204, 86%, 53%);
  124. }
  125. /* 15.3.1 Hidden elements
  126. * https://html.spec.whatwg.org/multipage/rendering.html#hidden-elements
  127. */
  128. area, base, basefont, datalist, head, link, meta, noembed,
  129. noframes, param, rp, script, style, template, title {
  130. display: none;
  131. }
  132. [hidden]:not([hidden=until-found i]) {
  133. display: none;
  134. }
  135. [hidden=until-found i]:not(embed) {
  136. content-visibility: hidden;
  137. }
  138. embed[hidden] {
  139. display: inline;
  140. height: 0;
  141. width: 0;
  142. }
  143. input[type=hidden i] {
  144. display: none !important;
  145. }
  146. @media (scripting) {
  147. noscript {
  148. display: none !important;
  149. }
  150. }
  151. /* 15.3.2 The page
  152. * https://html.spec.whatwg.org/multipage/rendering.html#the-page
  153. */
  154. html, body {
  155. display: block;
  156. }
  157. /* 15.3.3 Flow content
  158. * https://html.spec.whatwg.org/multipage/rendering.html#flow-content-3
  159. */
  160. address, blockquote, center, dialog, div, figure, figcaption, footer, form,
  161. header, hr, legend, listing, main, p, plaintext, pre, search, xmp {
  162. display: block;
  163. }
  164. blockquote, figure, listing, p, plaintext, pre, xmp {
  165. margin-top: 1em;
  166. margin-bottom: 1em;
  167. }
  168. blockquote, figure {
  169. margin-left: 40px;
  170. margin-right: 40px;
  171. }
  172. address {
  173. font-style: italic;
  174. }
  175. listing, plaintext, pre, xmp {
  176. font-family: monospace;
  177. white-space: pre;
  178. }
  179. dialog:not([open]) {
  180. display: none;
  181. }
  182. dialog {
  183. position: absolute;
  184. inset-inline-start: 0;
  185. inset-inline-end: 0;
  186. width: fit-content;
  187. height: fit-content;
  188. margin: auto;
  189. border: solid;
  190. padding: 1em;
  191. background-color: Canvas;
  192. color: CanvasText;
  193. }
  194. dialog:modal {
  195. position: fixed;
  196. overflow: auto;
  197. inset-block: 0;
  198. max-width: calc(100% - 6px - 2em);
  199. max-height: calc(100% - 6px - 2em);
  200. }
  201. dialog::backdrop {
  202. background: rgba(0, 0, 0, 0.1);
  203. }
  204. [popover]:not(:popover-open):not(dialog[open]) {
  205. display:none;
  206. }
  207. dialog:popover-open {
  208. display:block;
  209. }
  210. [popover] {
  211. position: fixed;
  212. inset: 0;
  213. width: fit-content;
  214. height: fit-content;
  215. margin: auto;
  216. border: solid;
  217. padding: 0.25em;
  218. overflow: auto;
  219. color: CanvasText;
  220. background-color: Canvas;
  221. }
  222. :popover-open::backdrop {
  223. position: fixed;
  224. inset: 0;
  225. pointer-events: none !important;
  226. background-color: transparent;
  227. }
  228. slot {
  229. display: contents;
  230. }
  231. /* 15.3.4 Phrasing content
  232. * https://html.spec.whatwg.org/multipage/rendering.html#phrasing-content-3
  233. */
  234. cite, dfn, em, i, var {
  235. font-style: italic;
  236. }
  237. b, strong {
  238. font-weight: bolder;
  239. }
  240. code, kbd, samp, tt {
  241. font-family: monospace;
  242. }
  243. big {
  244. font-size: larger;
  245. }
  246. small {
  247. font-size: smaller;
  248. }
  249. sub {
  250. vertical-align: sub;
  251. }
  252. sup {
  253. vertical-align: super;
  254. }
  255. sub, sup {
  256. line-height: normal;
  257. font-size: smaller;
  258. }
  259. ruby {
  260. display: ruby;
  261. }
  262. rt {
  263. display: ruby-text;
  264. }
  265. :link {
  266. color: LinkText;
  267. }
  268. :visited {
  269. color: VisitedText;
  270. }
  271. :link:active, :visited:active {
  272. color: ActiveText;
  273. }
  274. :link, :visited {
  275. text-decoration: underline;
  276. cursor: pointer;
  277. }
  278. :focus-visible {
  279. outline: auto;
  280. }
  281. mark {
  282. background: Mark;
  283. color: MarkText;
  284. }
  285. abbr[title], acronym[title] {
  286. text-decoration: dotted underline;
  287. }
  288. ins, u {
  289. text-decoration: underline;
  290. }
  291. del, s, strike {
  292. text-decoration: line-through;
  293. }
  294. q::before {
  295. content: open-quote;
  296. }
  297. q::after {
  298. content: close-quote;
  299. }
  300. /*
  301. NOTE: This isn't a real property and value. See https://github.com/whatwg/html/issues/2291
  302. br {
  303. display-outside: newline;
  304. }
  305. */
  306. /* this also has bidi implications */
  307. nobr {
  308. white-space: nowrap;
  309. }
  310. /*
  311. NOTE: This isn't a real property and value. See https://github.com/whatwg/html/issues/2291
  312. wbr {
  313. display-outside: break-opportunity;
  314. }
  315. */
  316. /* this also has bidi implications */
  317. nobr wbr {
  318. white-space: normal;
  319. }
  320. /* 15.3.5 Bidirectional text
  321. * https://html.spec.whatwg.org/multipage/rendering.html#bidi-rendering
  322. */
  323. [dir]:dir(ltr), bdi:dir(ltr), input[type=tel i]:dir(ltr) {
  324. direction: ltr;
  325. }
  326. [dir]:dir(rtl), bdi:dir(rtl) {
  327. direction: rtl;
  328. }
  329. address, blockquote, center, div, figure, figcaption, footer, form, header, hr,
  330. legend, listing, main, p, plaintext, pre, summary, xmp, article, aside, h1, h2,
  331. h3, h4, h5, h6, hgroup, nav, section, table, caption, colgroup, col, thead,
  332. tbody, tfoot, tr, td, th, dir, dd, dl, dt, menu, ol, ul, li, bdi, output,
  333. [dir=ltr i], [dir=rtl i], [dir=auto i] {
  334. unicode-bidi: isolate;
  335. }
  336. bdo, bdo[dir] {
  337. unicode-bidi: isolate-override;
  338. }
  339. input[dir=auto i]:is([type=search i], [type=tel i], [type=url i],
  340. [type=email i]), textarea[dir=auto i], pre[dir=auto i] {
  341. unicode-bidi: plaintext;
  342. }
  343. /* 15.3.6 Sections and headings
  344. * https://html.spec.whatwg.org/multipage/rendering.html#sections-and-headings
  345. */
  346. article, aside, h1, h2, h3, h4, h5, h6, hgroup, nav, section {
  347. display: block;
  348. }
  349. h1 {
  350. margin-top: 0.67em;
  351. margin-bottom: 0.67em;
  352. font-size: 2.00em;
  353. font-weight: bold;
  354. }
  355. h2 {
  356. margin-top: 0.83em;
  357. margin-bottom: 0.83em;
  358. font-size: 1.50em;
  359. font-weight: bold;
  360. }
  361. h3 {
  362. margin-top: 1.00em;
  363. margin-bottom: 1.00em;
  364. font-size: 1.17em;
  365. font-weight: bold;
  366. }
  367. h4 {
  368. margin-top: 1.33em;
  369. margin-bottom: 1.33em;
  370. font-size: 1.00em;
  371. font-weight: bold;
  372. }
  373. h5 {
  374. margin-top: 1.67em;
  375. margin-bottom: 1.67em;
  376. font-size: 0.83em;
  377. font-weight: bold;
  378. }
  379. h6 {
  380. margin-top: 2.33em;
  381. margin-bottom: 2.33em;
  382. font-size: 0.67em;
  383. font-weight: bold;
  384. }
  385. :is(article, aside, nav, section) h1 {
  386. margin-top: 0.83em;
  387. margin-bottom: 0.83em;
  388. font-size: 1.50em;
  389. }
  390. :is(article, aside, nav, section) :is(article, aside, nav, section) h1 {
  391. margin-top: 1.00em;
  392. margin-bottom: 1.00em;
  393. font-size: 1.17em;
  394. }
  395. :is(article, aside, nav, section) :is(article, aside, nav, section) :is(article, aside, nav, section) h1 {
  396. margin-top: 1.33em;
  397. margin-bottom: 1.33em;
  398. font-size: 1.00em;
  399. }
  400. :is(article, aside, nav, section) :is(article, aside, nav, section) :is(article, aside, nav, section) :is(article, aside, nav, section) h1 {
  401. margin-top: 1.67em;
  402. margin-bottom: 1.67em;
  403. font-size: 0.83em;
  404. }
  405. :is(article, aside, nav, section) :is(article, aside, nav, section) :is(article, aside, nav, section) :is(article, aside, nav, section) :is(article, aside, nav, section) h1 {
  406. margin-top: 2.33em;
  407. margin-bottom: 2.33em;
  408. font-size: 0.67em;
  409. }
  410. /* 15.3.7 Lists
  411. * https://html.spec.whatwg.org/multipage/rendering.html#lists
  412. */
  413. dir, dd, dl, dt, menu, ol, ul {
  414. display: block;
  415. }
  416. li {
  417. display: list-item;
  418. text-align: match-parent;
  419. }
  420. dir, dl, menu, ol, ul {
  421. margin-block-start: 1em;
  422. margin-block-end: 1em;
  423. }
  424. :is(dir, dl, menu, ol, ul) :is(dir, dl, menu, ol, ul) {
  425. margin-block-start: 0;
  426. margin-block-end: 0;
  427. }
  428. dd {
  429. margin-inline-start: 40px;
  430. }
  431. dir, menu, ol, ul {
  432. padding-inline-start: 40px;
  433. }
  434. ol, ul, menu {
  435. counter-reset: list-item;
  436. }
  437. ol {
  438. list-style-type: decimal;
  439. }
  440. dir, menu, ul {
  441. list-style-type: disc;
  442. }
  443. :is(dir, menu, ol, ul) :is(dir, menu, ul) {
  444. list-style-type: circle;
  445. }
  446. :is(dir, menu, ol, ul) :is(dir, menu, ol, ul) :is(dir, menu, ul) {
  447. list-style-type: square;
  448. }
  449. /* 15.3.8 Tables
  450. * https://html.spec.whatwg.org/multipage/rendering.html#tables-2
  451. */
  452. table {
  453. display: table;
  454. }
  455. caption {
  456. display: table-caption;
  457. }
  458. colgroup, colgroup[hidden] {
  459. display: table-column-group;
  460. }
  461. col, col[hidden] {
  462. display: table-column;
  463. }
  464. thead, thead[hidden] {
  465. display: table-header-group;
  466. }
  467. tbody, tbody[hidden] {
  468. display: table-row-group;
  469. }
  470. tfoot, tfoot[hidden] {
  471. display: table-footer-group;
  472. }
  473. tr, tr[hidden] {
  474. display: table-row;
  475. }
  476. td, th {
  477. display: table-cell;
  478. }
  479. colgroup[hidden], col[hidden], thead[hidden], tbody[hidden],
  480. tfoot[hidden], tr[hidden] {
  481. visibility: collapse;
  482. }
  483. table {
  484. box-sizing: border-box;
  485. border-spacing: 2px;
  486. border-collapse: separate;
  487. text-indent: initial;
  488. }
  489. td, th {
  490. padding: 1px;
  491. }
  492. th {
  493. font-weight: bold;
  494. /*
  495. The text-align property for table headings is non-standard, but all
  496. existing user-agents seem to render them centered by default.
  497. See:
  498. - https://trac.webkit.org/browser/trunk/Source/WebCore/css/html.css?rev=295625#L272
  499. - https://searchfox.org/mozilla-central/rev/0b55b868c17835942d40ca3fedfca8057481207b/layout/style/res/html.css#473
  500. */
  501. text-align: center;
  502. }
  503. caption {
  504. text-align: center;
  505. }
  506. thead, tbody, tfoot, table > tr {
  507. vertical-align: middle;
  508. }
  509. tr, td, th {
  510. vertical-align: inherit;
  511. }
  512. thead, tbody, tfoot, tr {
  513. border-color: inherit;
  514. }
  515. table[rules=none i], table[rules=groups i], table[rules=rows i],
  516. table[rules=cols i], table[rules=all i], table[frame=void i],
  517. table[frame=above i], table[frame=below i], table[frame=hsides i],
  518. table[frame=lhs i], table[frame=rhs i], table[frame=vsides i],
  519. table[frame=box i], table[frame=border i],
  520. table[rules=none i] > tr > td, table[rules=none i] > tr > th,
  521. table[rules=groups i] > tr > td, table[rules=groups i] > tr > th,
  522. table[rules=rows i] > tr > td, table[rules=rows i] > tr > th,
  523. table[rules=cols i] > tr > td, table[rules=cols i] > tr > th,
  524. table[rules=all i] > tr > td, table[rules=all i] > tr > th,
  525. table[rules=none i] > thead > tr > td, table[rules=none i] > thead > tr > th,
  526. table[rules=groups i] > thead > tr > td, table[rules=groups i] > thead > tr > th,
  527. table[rules=rows i] > thead > tr > td, table[rules=rows i] > thead > tr > th,
  528. table[rules=cols i] > thead > tr > td, table[rules=cols i] > thead > tr > th,
  529. table[rules=all i] > thead > tr > td, table[rules=all i] > thead > tr > th,
  530. table[rules=none i] > tbody > tr > td, table[rules=none i] > tbody > tr > th,
  531. table[rules=groups i] > tbody > tr > td, table[rules=groups i] > tbody > tr > th,
  532. table[rules=rows i] > tbody > tr > td, table[rules=rows i] > tbody > tr > th,
  533. table[rules=cols i] > tbody > tr > td, table[rules=cols i] > tbody > tr > th,
  534. table[rules=all i] > tbody > tr > td, table[rules=all i] > tbody > tr > th,
  535. table[rules=none i] > tfoot > tr > td, table[rules=none i] > tfoot > tr > th,
  536. table[rules=groups i] > tfoot > tr > td, table[rules=groups i] > tfoot > tr > th,
  537. table[rules=rows i] > tfoot > tr > td, table[rules=rows i] > tfoot > tr > th,
  538. table[rules=cols i] > tfoot > tr > td, table[rules=cols i] > tfoot > tr > th,
  539. table[rules=all i] > tfoot > tr > td, table[rules=all i] > tfoot > tr > th {
  540. border-color: black;
  541. }
  542. /* 15.3.10 Form controls
  543. * https://html.spec.whatwg.org/multipage/rendering.html#form-controls
  544. */
  545. input, select, button, textarea {
  546. letter-spacing: initial;
  547. word-spacing: initial;
  548. line-height: initial;
  549. text-transform: initial;
  550. text-indent: initial;
  551. text-shadow: initial;
  552. appearance: auto;
  553. }
  554. input, select, textarea {
  555. text-align: initial;
  556. }
  557. input:is([type=reset i], [type=button i], [type=submit i]), button {
  558. text-align: center;
  559. }
  560. input, button {
  561. display: inline-block;
  562. }
  563. input[type=hidden i], input[type=file i], input[type=image i] {
  564. appearance: none;
  565. }
  566. input:is([type=radio i], [type=checkbox i], [type=reset i], [type=button i],
  567. [type=submit i], [type=color i], [type=search i]), select, button {
  568. box-sizing: border-box;
  569. }
  570. textarea {
  571. white-space: pre-wrap;
  572. }
  573. /* 15.3.11 The hr element
  574. * https://html.spec.whatwg.org/multipage/rendering.html#the-hr-element-2
  575. */
  576. hr {
  577. color: gray;
  578. border-style: inset;
  579. border-width: 1px;
  580. margin-block-start: 0.5em;
  581. margin-inline-end: auto;
  582. margin-block-end: 0.5em;
  583. margin-inline-start: auto;
  584. overflow: hidden;
  585. }
  586. /* 15.3.12 The fieldset and legend elements
  587. * https://html.spec.whatwg.org/multipage/rendering.html#the-fieldset-and-legend-elements
  588. */
  589. fieldset {
  590. display: block;
  591. margin-inline-start: 2px;
  592. margin-inline-end: 2px;
  593. border: groove 2px ThreeDFace;
  594. padding-block-start: 0.35em;
  595. padding-inline-end: 0.75em;
  596. padding-block-end: 0.625em;
  597. padding-inline-start: 0.75em;
  598. min-inline-size: min-content;
  599. }
  600. legend {
  601. padding-left: 2px;
  602. padding-right: 2px;
  603. }
  604. legend[align=left i] {
  605. justify-self: left;
  606. }
  607. legend[align=center i] {
  608. justify-self: center;
  609. }
  610. legend[align=right i] {
  611. justify-self: right;
  612. }
  613. /* 15.4.1 Embedded content
  614. * https://html.spec.whatwg.org/multipage/rendering.html#embedded-content-rendering-rules
  615. */
  616. iframe {
  617. border: 2px inset;
  618. }
  619. video {
  620. object-fit: contain;
  621. }
  622. /* 15.4.3 Attributes for embedded content and images
  623. * https://html.spec.whatwg.org/multipage/rendering.html#attributes-for-embedded-content-and-images
  624. */
  625. iframe[frameborder='0'], iframe[frameborder=no i] { border: none; }
  626. embed[align=left i], iframe[align=left i], img[align=left i],
  627. input[type=image i][align=left i], object[align=left i] {
  628. float: left;
  629. }
  630. embed[align=right i], iframe[align=right i], img[align=right i],
  631. input[type=image i][align=right i], object[align=right i] {
  632. float: right;
  633. }
  634. embed[align=top i], iframe[align=top i], img[align=top i],
  635. input[type=image i][align=top i], object[align=top i] {
  636. vertical-align: top;
  637. }
  638. embed[align=baseline i], iframe[align=baseline i], img[align=baseline i],
  639. input[type=image i][align=baseline i], object[align=baseline i] {
  640. vertical-align: baseline;
  641. }
  642. embed[align=texttop i], iframe[align=texttop i], img[align=texttop i],
  643. input[type=image i][align=texttop i], object[align=texttop i] {
  644. vertical-align: text-top;
  645. }
  646. embed[align=absmiddle i], iframe[align=absmiddle i], img[align=absmiddle i],
  647. input[type=image i][align=absmiddle i], object[align=absmiddle i],
  648. embed[align=abscenter i], iframe[align=abscenter i], img[align=abscenter i],
  649. input[type=image i][align=abscenter i], object[align=abscenter i] {
  650. vertical-align: middle;
  651. }
  652. embed[align=bottom i], iframe[align=bottom i], img[align=bottom i],
  653. input[type=image i][align=bottom i], object[align=bottom i] {
  654. vertical-align: bottom;
  655. }
  656. /* 15.5.4 The details and summary elements
  657. * https://html.spec.whatwg.org/multipage/rendering.html#the-details-and-summary-elements
  658. */
  659. details > summary:first-of-type {
  660. display: list-item;
  661. counter-increment: list-item 0;
  662. list-style: disclosure-closed inside;
  663. }
  664. details[open] > summary:first-of-type {
  665. list-style-type: disclosure-open;
  666. }
  667. /* 15.5.12 The marquee element
  668. * https://html.spec.whatwg.org/multipage/rendering.html#the-marquee-element-2
  669. */
  670. marquee {
  671. display: inline-block;
  672. text-align: initial;
  673. }
  674. /* 15.5.13 The meter element
  675. * https://html.spec.whatwg.org/multipage/rendering.html#the-meter-element-2
  676. */
  677. meter {
  678. appearance: auto;
  679. }
  680. /* 15.5.14 The progress element
  681. * https://html.spec.whatwg.org/multipage/rendering.html#the-progress-element-2
  682. */
  683. progress {
  684. appearance: auto;
  685. }
  686. /* https://www.w3.org/TR/mediaqueries-5/#descdef-media-inverted-colors
  687. */
  688. @media (inverted-colors) {
  689. img:not(picture>img),
  690. picture,
  691. video {
  692. filter: invert(100%);
  693. }
  694. }